Перейти к содержанию

Формирование чека


Данные для формирования чека в онлайн-кассе представляет собой JSON - строку. Для корректного отображения названия товара в чеке, параметр text передавать в кодировке UTF-8. Корректно сформировать JSON-строку из массива данных можно функцией языка программирования PHP json_encode. Проверить правильность составления JSON-строки можно воспользовавшись функцией языка программирования PHP json_decode.

Важно

Документы генерируются фискальным накопителем(ФН), данный факт накладывает на кодировку передаваемых строк, обмен сообщениями по http с кассой осуществляется в кодировке UTF-8, но при записи в ФН строки передаются в кодировке CP866, которая поддерживает меньший набор символов чем UTF-8, например: в CP866 отсутствуют символы «» и в ФН они не будут переданы - вместо строки "Сок «Груша»" в документе будет "Сок Груша". Экранирование символов возможно через обратный слэш "\" или функцией addslashes в PHP.

JSON
{
"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 Нужно передать число, согласно действию:
  1. Приход
  2. Возврат прихода
  3. Расход
  4. Возврат расхода
Данные покупателя customerContact Телефон или Email покупателя.
Формат телефона: +ХХХХХХХХХХ
Признак агента agentType Необязательное поле. Передается в том случае, если отчет о регистрации и (или) текущий отчет о перерегистрации содержит реквизит «признак агента» (тег 1057).
Для типов агентов необходимо передавать следующие значения:
  1. банковский платежный агент - agentType = 1
  2. Банковский платежный субагент - agentType = 2
  3. Платежный агент - agentType = 4
  4. Платежный субагент - agentType = 8
  5. Поверенный - agentType = 16
  6. Комиссионер - agentType = 32
  7. Иной агент - agentType = 64
В случае, если продавец имеет несколько признаков агента, значение параметра agentType должно складываться из значений agentType каждого из признаков агента, т.е. для перечисленных в данном примере типов параметр 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) кассового чека.
Для типов агентов необходимо передавать следующие значения:
  1. банковский платежный агент - agentType = 1
  2. банковский платежный субагент - agentType = 2
  3. платежный агент - agentType = 4
  4. платежный субагент - agentType = 8
  5. поверенный - agentType = 16
  6. комиссионер - agentType = 32
  7. иной агент - agentType = 64
В случае, если продавец имеет несколько признаков агента, например и банковский платежный субагент (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.
  • 1 – сумма по чеку наличными, 1031
  • 2 – сумма по чеку безналичными, 1081
  • 14 – сумма по чеку предоплатой (зачетом аванса и (или) предыдущих платежей), 1215
  • 15 – сумма по чеку постоплатой (в кредит), 1216
  • 16 – сумма по чеку (БСО) встречным предоставлением, 1217
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 символов