Кассовый чек, бланк строгой отчетности

{
"receipt": {                                                  //для бланка строгой отчетности - bso
  "receiptCode": 3,                                           //number, обязательный для кассового чека - код документа, всегда равен 3
  "bsoCode": 4,                                               //number, обязательный для БСО - код документа, всегда равен 4
  "user": "ООО \"Золотой пятачок\"",                          //string, обязательный - наименование пользователя
  "userInn": "6699009482",                                    //string, обязательный - ИНН пользователя
  "buyerInn": "6699000000",                                   //string, необязательный - ИНН покупателя
  "requestNumber": 45,                                        //number, обязательный - номер чека за смену
  "dateTime": "2018-10-30T10:00:00",                          //string, обязательный - дата, время
  "shiftNumber": 8,                                           //number, обязательный - номер смены
  "operationType": 1,                                         //number, обязательный - признак расчета
  "taxationType": 1,                                          //number, обязательный - применяемая система налогообложения
  "operator": "Иван Петров",                                  //string, обязательный - кассир
  "kktRegId": "0000000003065864    ",                         //string, обязательный - регистрационный номер ККТ
  "fiscalDriveNumber": "99990788603",                         //string, обязательный - заводской номер фискального накопителя
  "retailPlaceAddress": "г. Екатеринбург. ул. Малопрудная 5", //string, необязательный - адрес расчетов
  "buyerAddress": "",                                         //string, необязательный - телефон или электронный адрес покупателя
  "senderAddress": "",                                        //string, необязательный - адрес электронной почты отправителя
  "addressToCheckFiscalSign": "",                             //string, необязательный - адрес сайта для проверки ФП
  "items": [{}],                                              //array of objects, необязательный - предметы расчета
  "stornoItems": [{}],                                        //array of objects, необязательный - сторно товара
  "paymentAgentType": 1,                                      //number, необязательный - признак агента
  "paymentAgentRemuneration": "",                             //number, необязательный - размер вознаграждения платежного агента (субагента), в копейках
  "paymentAgentPhone": "",                                    //string, необязательный - телефон оператора по приему платежей
  "paymentSubagentPhone": "",                                 //string, необязательный - телефон платежного субагента
  "operatorPhoneToReceive": "",                               //string, необязательный - телефон оператора по приему платежей
  "operatorPhoneToTransfer": "",                              //string, необязательный - телефон оператора по переводу денежных средств
  "bankAgentPhone": "",                                       //string, необязательный - телефон платежного агента (субагента) и банковского платежного агента (субагента)
  "bankSubagentPhone": "",                                    //string, необязательный - телефон банковского субагента
  "bankAgentOperation": "",                                   //string, необязательный - операция банковского платежного агента (субагента)
  "bankSubagentOperation": "",                                //string, необязательный - операция банковского субагента
  "bankAgentRemuneration": 0,                                 //number, необязательный - размер вознаграждения банковского агента (субагента)
  "operatorName": "",                                         //string, необязательный - наименование оператора по переводу денежных средств
  "operatorAddress": "",                                      //string, необязательный - адрес оператора по переводу денежных средств
  "operatorInn": "",                                          //string, необязательный - ИНН оператора по переводу денежных средств
  "Modifiers": [{}],                                          //array, необязательный - скидка/наценка
  "nds20": 230,                                               //number, необязательный - сумма НДС чека по ставке 20%, в копейках
  "nds18": 100,                                               //number, необязательный - сумма НДС чека по ставке 18%, в копейках
  "nds10": 120,                                               //number, необязательный - сумма НДС чека по ставке 10%, в копейках
  "nds0": 140,                                                //number, необязательный - сумма расчета по чеку с НДС по ставке 0%, в копейках
  "ndsNo": 0,                                                 //number, необязательный - сумма расчета по чеку без НДС, в копейках
  "ndsCalculated20": 120,                                     //number, необязательный - сумма НДС чека по расч. ставке 20/120, в копейках
  "ndsCalculated18": 100,                                     //number, необязательный - сумма НДС чека по расч. ставке 18/118, в копейках
  "ndsCalculated10": 120,                                     //number, необязательный - сумма НДС чека по расч. ставке 10/110, в копейках
  "totalSum": 1853,                                           //number, обязательный - ИТОГ, в копейках
  "cashTotalSum": 1853,                                       //number, обязательный - сумма по чеку (БСО) наличными, в копейках
  "ecashTotalSum": 0,                                         //number, обязательный - сумма по чеку (БСО) безналичными, в копейках
  "prePaymentTotalSum": 0,                                    //number, необязательный - сумма по чеку (БСО) предоплатой (зачетом аванса и (или) предыдущих платежей), в копейках
  "postPaymentTotalSum": 0,                                   //number, необязательный - сумма по чеку (БСО) постоплатой (в кредит), в копейках
  "considerationTotalSum": 0,                                 //number, необязательный - сумма по чеку (БСО) встречным предоставлением, в копейках
  "fiscalDocumentNumber": 544,                                //number, обязательный -  порядковый номер фискального документа
  "fiscalSign": 3423453811,                                   //number, обязательный - фискальный признак документа
  "cashReceiptProperty": "доп свойство",                      //string, необязательный - дополнительный реквизит чека (БСО)
  "properties": [{}],                                         //array of objects, необязательный - дополнительный реквизит пользователя
  "id": "00000000-0000-0000-0000-000000000000"                //string, обязательный - идентификатор документа
 }
}

В качестве возможных значений поля «признак расчета» могут выступать следующие:

Значение поля Описание
1 Приход
2 Возврат прихода
3 Расход
4 Возврат расхода

«Система налогообложения» число типа byte, интерпретировать как битовую маску:

Номер бита Тип системы налогообложения
0 Общая
1 Упрощенная Доход
2 Упрощенная Доход минус Расход
3 Единый налог на вмененный доход
4 Единый сельскохозяйственный налог
5 Патентная система налогообложения

«Признак агента» и «признак агента по предмету расчета» число типа byte, интерпретировать как битовую маску:

Номер бита Признак агента
0 Банковский платежный агент
1 Банковский платежный субагент
2 Платежный агент
3 Платежный субагент
4 Поверенный
5 Комиссионер
6 Агент

Поля paymentAgentRemuneration - operatorInn применяются в случае применения контрольно-кассовой техники платежным агентом, платежным субагентом при осуществлении деятельности по приему платежей физических лиц в соответствии с Федеральным законом «О деятельности по приему платежей физических лиц, осуществляемой платежными агентами» и в случае законом «О деятельности по приему платежей физических лиц, осуществляемой платежными агентами» и в случае применения контрольно-кассовой техники банковским платежным агентом, банковским платежным субагентом при осуществлении деятельности в соответствии с Федеральным законом «О национальной платежной системе».

PaymentAgentRemuneration, paymentSubagentPhone, operatorPhoneToReceive, bankSubagentPhone, bankSubagentOperation, bankAgentRemuneration есть только в формате фискальных данных 1.0.

Примечание

В чеке допускается передача несколько ставок НДС, начисленные на позиции в чеке. В позиции допускается передать только одной ставки.

Тип и формат реквизитов подструктур items и stornoItems приведены ниже:

{
"items": [                                        //array of objects, необязательный - предметы расчета
  {
    "name": "Горошек вкусный",                    //string, обязательный - наименование товара
    "barcode": "",                                //string, необязательный - штриховой код EAN13
    "price": 9845,                                //number, обязательный - цена за единицу предмета расчета с учетом скидок и наценок, в копейках
    "quantity": 1,                                //number, обязательный - количество
    "paymentMode": 3,                             //number, необязательный - признак способа расчета
    "paymentSubject": 3,                          //number, необязательный - признак предмета расчета
    "modifiers": [{}],                            //array of objects, необязательный - скидка/наценка
    "ndsCalculated20": 130,                       //number, необязательный - сумма НДС чека по расч. ставке 20/120, в копейках
    "ndsCalculated18": 100,                       //number, необязательный - сумма НДС чека по расч. ставке 18/118, в копейках
    "ndsCalculated10": 120,                       //number, необязательный - сумма НДС чека по расч. ставке 10/110, в копейках
    "nds20": 230,                                 //number, необязательный - сумма НДС чека по ставке 20%, в копейках
    "nds18": 100,                                 //number, необязательный - сумма НДС чека по ставке 18%, в копейках
    "nds10": 120,                                 //number, необязательный - сумма НДС чека по ставке 10%, в копейках
    "nds0": 140,                                  //number, необязательный - сумма расчета по чеку с НДС по ставке 0%, в копейках
    "ndsNo": 0,                                   //number, необязательный - сумма расчета по чеку без НДС, в копейках
    "sum": 9845,                                  //number, обязательный - стоимость предмета расчета с учетом скидок и наценок, в копейках
    "properties": [{}],                           //array of objects, необязательный - дополнительный реквизит пользователя
    "paymentAgentByProductType": 1,               //number, необязательный - признак агента по предмету расчета
    "additionalProperty": ""                      //string, необязательный - дополнительный реквизит предмета расчета
  }
 ]
}

Ставка скидки или наценки передаются в процентах (12.5 - это 12,5% или в долях - 0,125 от первоначальной суммы).

Возможные значения поля «способ расчета»:

Значение поля Описание
0 Предоплата 100%
1 Предоплата
2 Аванс
3 Полный расчет
4 Частичный расчет и кредит
5 Передача в кредит
6 Оплата кредита

Возможные значения поля «признак предмета расчета»:

Значение поля Описание
0 Товар
1 Подакцизный товар
2 Работа
3 Услуга
4 Ставка игры
5 Выигрыш
6 Лотерейный билет
7 Выигрыш лотереи
8 РИД
9 Платеж
10 Агентское вознаграждение
11 Выплата
12 Иной предмет расчета
13 Имущественное право
14 Внереализационный доход
15 Иные платежи и взносы
16 Торговый сбор
17 Курортный сбор
18 Залог
19 Расход
20 Взносы на ОПС ИП
21 Взносы на ОПС
22 Взносы на ОМС ИП
23 Взносы на ОМС
24 Взносы на ОСС
25 Платеж казино

Тип и формат реквизитов подструктур «скидки/наценки» приведены ниже. Ставка налога передается в виде процента. Есть только в формате фискальных данных 1.0.

{
  "modifiers": [                //array of objects, необязательный - скидка/наценка
    {
      "discountName": "Акция",  //string, необязательный - наименование скидки
      "markupName": ,           //string, необязательный - наименование наценки
      "discount": 12.5,         //number, необязательный - скидка (ставка)
      "markup": 5.43,           //number, необязательный - наценка (ставка)
      "discountSum": 4563,      //number, необязательный - скидка (сумма), в копейках
      "markupSum": 2.34         //number, необязательный -  наценка (сумма), в копейках
    }
  ]
}

Тип и формат реквизитов подструктуры «дополнительный реквизит пользователя»:

{
 "properties": [            //array of objects, необязательный - дополнительный реквизит пользователя
     {
      "key": "имя",         //string, необязательный - наименование дополнительного реквизита пользователя
      "value": "значение"   //string, необязательный - значение дополнительного реквизита пользователя
    }
   ]
 }