Формирование чека
Данные для формирования чека в онлайн-кассе представляет собой JSON - строку.
Для корректного отображения названия товара в чеке, параметр text
передавать в кодировке UTF-8
.
Корректно сформировать JSON-строку из массива данных можно функцией языка программирования PHP json_encode
.
Проверить правильность составления JSON-строки можно воспользовавшись функцией языка программирования PHP json_decode
.
Важно
Документы генерируются фискальным накопителем(ФН), данный факт накладывает на кодировку передаваемых строк, обмен сообщениями по http
с кассой осуществляется в кодировке UTF-8
, но при записи в ФН строки передаются в кодировке CP866
, которая поддерживает меньший набор символов чем UTF-8
, например: в CP866
отсутствуют символы «» и в ФН они не будут переданы - вместо строки "Сок «Груша»"
в документе будет "Сок Груша"
. Экранирование символов возможно через обратный слэш "\"
или функцией addslashes
в PHP
.
{
"inn":"7704019762",
"group":"<ГРУППА>",
"content":
{
"type":1,
"customerContact":"foo@example.com",
"positions":[
{
"quantity":2.000,
"price":12.45,
"tax":6,
"text":"Булка"
},
{
"quantity":1.000,
"price":5.10,
"tax":4,
"text":"Спички",
"paymentSubjectType": 31,
"markCode":
{
"code": "0104600000000000215aAAAaa11AaAa\u001d91RRRR\u001d92dGVzdFUPYuxLbEhY1uyygtnwgsanSYnCbvgN0y4A2Ns="
},
"paymentMethodType": 4
},
{
"quantity":1.000,
"price":53.70,
"tax":4,
"text":"Кефир",
"supplierINN": 3808027390
}
],
}
}
Название | Элемент | Описание |
---|---|---|
Валидация суммы | skipAmountCheck |
Отключить встроенную проверку соответствия сумм позиций чека сумме счета. По умолчанию, если параметр не передан - 0 . Может принимать значения 0 или 1 . |
Ваш номер ИНН | inn |
Индивидуальный Номер Налогоплательщика, полученный в Федеральной налоговой службе. |
Название группы | group |
Группа устройств. Если передать группу, которой не существует, онлайн касса вернет ошибку. |
Содержимое документа | content |
Наполнение данного поля смотрите в Таблице content. |
Структура данных содержимого документа
Название | Элемент | Описание |
---|---|---|
Тип документа | type |
Нужно передать число, согласно действию:
|
Данные покупателя | customerContact |
Телефон или Email покупателя. Формат телефона: +ХХХХХХХХХХ |
Признак агента | agentType |
Необязательное поле. Передается в том случае, если отчет о регистрации и (или) текущий отчет о перерегистрации содержит реквизит «признак агента» (тег 1057). Для типов агентов необходимо передавать следующие значения:
agentType = 2 + 16 + 64 = 82 . Может принимать значение от 1 до 127 . |
Список позиций в чеке | positions |
Список товаров, за которые производится оплата. Максимальное количество товаров — 170 единиц. Наполнение данного поля смотрите в таблице positions. |
Параметры закрытия чека | checkClose |
Параметр является необязательным. |
Структура данных для позиций чека
Название | Обязательно | Описание |
---|---|---|
quantity |
Да | Количество товара. Десятичное число с точностью до 3 символов после точки. |
price |
Да | Цена товара с учётом всех скидок и наценок. Десятичное число с точностью до двух знаков после точки. |
tax |
Да | Ставка НДС. Нужно передать число от 1 до 10 |
text |
Да | Описание позиции в чеке (товара). Строка до 128 байтов. |
paymentSubjectType |
Нет | Предмет расчета. Нужно передать число от 1 до 33 . |
paymentMethodType |
Нет | Способ расчета. Нужно передать число от 1 до 7 (Если передано null , то в предмет расчета будет передано значение 4 - Полный расчет ) |
agentType |
Нет | Передается в том случае, если отчет о регистрации и (или) текущий отчет о перерегистрации содержит реквизит «признак агента» (тег 1222 ), имеющий значение, идентичное значению реквизита «признак агента» (тег 1222) кассового чека. Для типов агентов необходимо передавать следующие значения:
agentType = 2 ), и проверенный (agentType = 16 ), и иной агент (agentType = 64 ), тогда значение параметра agentType должно складываться из значений agentType каждого из признаков агента, т.е. для перечисленных в данном примере типов параметр agentType = 2 + 16 + 64 = 82 . Может принимать значение от 1 до 127 . |
supplierINN |
Нет | ИНН поставщика, тег 1226 . Строка до 12 символов. |
supplierInfo |
Нет | Данные поставщика, тег 1224 . |
MarkCode .Code |
Нет | Код маркировки. Строка от 1 до 223 символов. Необходимо в параметре paymentSubjectType передать число 31 или 33 . |
MarkCode .Format |
Нет | Формат кода маркировки товара. |
Структура данных поставщика
Название | Обязательно | Описание |
---|---|---|
phoneNumbers |
Нет | Телефон поставщика, тег 1171 . Массив строк длиной от 1 до 19 символов, формат +{Ц} . |
name |
Нет | Наименование поставщика, тег 1225 . Строка до 239 символов. Внимание: в данные 243 символа включаются телефоны поставщика + 4 символа на каждый телефон. Например, если передано 2 телефона поставщика длиной 12 и 14 символов, то максимальная длина наименования поставщика будет 239 – (12 + 4) – (14 + 4) = 205 символов. |
Структура данных параметра закрытия чека
Название | Обязательно | Описание |
---|---|---|
payments |
Да | Список платежей |
taxationSystem |
Да | Система налогообложения. Число от 0 до 6 |
Структура данных списка платежей
Название | Обязательно | Описание |
---|---|---|
type |
Да | Тип оплаты. Число от 1 до 16 .
|
amount |
Да | Сумма оплаты. Десятичное число с точностью до 2 символов после точки. |
Формат кода маркировки товара
Значение | Описание |
---|---|
Unknown |
1300 нераспознанный код товара |
Ean8 |
1301 Код товара в формате EAN-8, 8 цифр |
Ean13 |
Код товара в формате EAN-13, 13 цифр |
Itf14 |
Код товара в формате ITF-14, 14 цифр |
Gs1m |
Код товара в формате GS1, до 200 символов |
Short |
Код товара в формате короткого кода маркировки, до 38 символов |
Fur |
Контрольно-идентификационный знак мехового изделия. Ровно 20 символов, должно соответствовать маске СС-ЦЦЦЦЦЦСССССССССС |
Egais20 |
Код товара в формате ЕГАИС-2.0, 33 символа |
Egais30 |
Код товара в формате ЕГАИС-3.0, 14 символов |