Формирование чека
IntellectMoney предоставляет единый протокол (API) для формирования и передачи чеков в онлайн-кассы. На текущий момент поддерживаются провайдеры: Orange Data, Кит, Атол, ОФД Ферма, Бизнес.ру, Комтет, Эвотор, E-COM Kassa, Модулькасса, Life Pay, Бифит, Digitalkassa, а также другие — по запросу.
Общие правила
- Данные чека для онлайн-кассы передаются в виде JSON-строки.
- Набор параметров (тегов) чека зависят от провайдера и версии ФФД. Единый протокол унифицирует параметры, где это возможно, но специфика отдельных провайдеров сохраняется.
- Часть параметров передается автоматически.
- Параметры, помеченные атрибутом REQUIRED, обязательны к передаче на всех версия ФФД.
- Обмен с онлайн-кассой происходит по HTTPS, в UTF-8. При записи в фискальный накопитель (ФН) строки перекодируются в CP866, где набор символов меньше (например, кавычки
« »отсутствуют), вместо"Сок «Груша»"попадёт"Сок Груша". - Служебные символы нужно экранировать обратным слешем (
\") или используйте штатные библиотеки (PHP:json_encode / json_decode, NET:System.Text.Json / Newtonsoft.Json.). - Онлайн-касса должна быть зарегистрирована для расчётов в сети «Интернет».
Автозаполнение
| Параметр | Тег | Значение |
|---|---|---|
| Часовая зона | 1011 | Определяется настройками ККТ. |
| Признак расчёты в сети Интернет | 1125 | «Интернет». |
| Место расчётов | 1187 | Определяется параметром "Сайт магазина". |
| Мера количества предмета расчёта | 2108 | 0 (шт./ед.). |
Тело документа
| Параметр | Свойства | Описание |
|---|---|---|
Inn |
STRING REQUIRED max 12 | ИНН организации, для которой пробивается чек. Указан в личном кабинете или в онлайн-кассе с зарегистрированным ККТ. |
Group |
STRING CONDITION max 64 | Группа устройств в которую входит онлайн-касса. Условия:
|
Content |
OBJECT REQUIRED | Содержимое документа. |
SkipAmountCheck |
STRING OPTIONAL 0-1 | Пропустить проверку суммы позиций. Используется в ФФД 1.05, 1.2. Управляет сверкой: сумма по позициям (Σ Quantity × Price) должна равняться сумме СКО (итогу чека).Допустимые значения:
|
Содержимое документа
| Параметр | Свойства | Описание |
|---|---|---|
Type |
INT REQUIRED 1-4 | Признак расчета, тег 1054. Допустимые значения:
|
CustomerContact |
STRING REQUIRED max 64 | Телефон или электронный адрес покупателя, тег 1008. Формат: +{Ц} или {С}@{C}. |
Positions |
OBJECT REQUIRED | Список предметов расчёта, тег 1059. |
CheckClose |
OBJECT CONDITION | Параметры закрытия чека. Условия:
|
AgentType |
INT OPTIONAL 1-127 | Признак агента, тег 1057. Используется в ФФД 1.05. Для типов агентов необходимо передавать следующие значения:
Если у продавца несколько признаков агента, то значение передаётся как сумма флагов (битовая маска). Например, при сочетании поверенный (16) и иной агент (64) итог будет: 16 + 64 = 80. |
Предмет расчёта
| Параметр | Свойства | Описание |
|---|---|---|
Quantity |
STRING REQUIRED max 13 | Количество предмета расчёта, тег 1023. Минимальное значение 1.00. Формат: десятичное число с точностью до 6 знаков после точки, не использовать запятые и пробелы. |
Price |
STRING REQUIRED max 11 | Цена за единицу предмета расчёта с учётом скидок и наценок, тег 1079. Минимальное значение 1.00. Формат: десятичное число с двумя знаками после точки, не использовать запятые и пробелы. |
Tax |
INT REQUIRED 1-10 | Ставка НДС, тег 1199. Допустимые значения:
|
Text |
STRING REQUIRED max 128 | Наименование предмета расчёта, тег 1030. |
PaymentMethodType |
INT OPTIONAL 1-7 | Признак способа расчёта, тег 1214. Используется в ФФД 1.05, 1.2. Допустимые значения:
|
PaymentSubjectType |
INT OPTIONAL const | Признак предмета расчета, тег 1212. Допустимые значения, которые используется в ФФД 1.05, 1.2:
Допустимые значения, которые используется в ФФД 1.2:
|
SupplierInfo |
OBJECT OPTIONAL | Данные поставщика, тег 1224. |
SupplierINN |
STRING OPTIONAL max 12 | ИНН поставщика, тег 1226. Используется в ФФД 1.05, 1.2. |
AgentType |
INT OPTIONAL 1-127 | Признак агента, тег 1222. Используется в ФФД 1.05, 1.2. Для типов агентов необходимо передавать следующие значения:
Если у продавца несколько признаков агента, то значение передаётся как сумма флагов (битовая маска). Например, при сочетании поверенный (16) и иной агент (64) итог будет: 16 + 64 = 80. |
MarkCode |
OBJECT OPTIONAL | Данные о маркировки. Используется в ФФД 1.2. Работа с маркировкой поддерживается для онлайн-кассы Orange Data, другие провайдеры - по запросу. |
Данные поставщика
| Параметр | Свойства | Описание |
|---|---|---|
PhoneNumbers |
STRING OPTIONAL | Телефон поставщика, тег 1171. Используется в ФФД 1.05, 1.2. Формат: массив строк длиной от 1 до 19 символов, +{Ц}. |
Name |
STRING OPTIONAL max 256 | Наименование поставщика, тег 1225. Используется в ФФД 1.05, 1.2. |
Данные о маркировки
| Параметр | Свойства | Описание |
|---|---|---|
Code |
STRING REQUIRED max 223 | Код маркировки, теги: 1305, 1306, 1163, 1300, 2000.
|
PlannedStatus |
INT REQUIRED 1-6 | Планируемый статус, тег 2003. Допустимые значения:
|
Параметры закрытия чека
| Параметр | Свойства | Описание |
|---|---|---|
Payments |
OBJECT REQUIRED | Список оплат. |
TaxationSystem |
INT REQUIRED const | Система налогообложения, тег 1055. Допустимые значения:
|
Оплата
| Параметр | Свойства | Описание |
|---|---|---|
Type |
INT REQUIRED const | Тип оплаты. Допустимые значения:
|
Amount |
STRING REQUIRED max 10 | Сумма оплаты. Минимальное значение 1.00. Формат: десятичное число с двумя знаками после точки, не использовать запятые и пробелы. |
Пример чека
JSON
{
"Inn": "7000000000",
"Group": "Main_2",
"Content":
{
"Type": 1,
"CustomerContact": "test@mail.ru",
"Positions": [
{
"Quantity": 1.000,
"Price": 1.00,
"Tax": 6,
"Text": "Товар",
"PaymentSubjectType": 33,
"PaymentMethodType": 4,
"MarkCode":
{
"Code": "00000046210654eK7fYtcAAModGVz",
"PlannedStatus": 1
}
}
]
},
"CheckClose":
{
"Payments": [
{
"Type": 2,
"Amount": "1.00"
}
],
"TaxationSystem": 6
},
"SkipAmountCheck": 0
}