Создание чека по ФФД 1.2

LifePay позволяет удаленно создать фискальный чек (в том числе коррекции) в соответствии с ФФД 1.2.

Отличительные особенности запроса на формирование чека по ФФД 1.2 от ФФД 1.05.

Основные данные чека

  • type - увеличилось кол-во возможных значений признака расчета. Теперь кассовые чеки коррекции формируются аналогично обычному чеку с указанием типа совершаемой коррекции.
  • customier_inn – обязательный при передаче параметра customer_name
  • industry_props – включается в состав чека если включение этого реквизита предусмотрено законодательством РФ.
  • correction_doc_date, correction_initiator - обязательные при значении реквизита type равным sell_correction, sell_return_correction, buy_correction, buy_return_correction.
  • agent – признак агента на весь чек исключен из ФФД 1.2

Для позиций

  • item_type - расширен до 31 значения.
  • supplier_inn, supplier_data – обязательные если передан agent_item_type
  • marking_code – при наличии, обязательная передача всего кода маркировки как есть, со всеми символами-разделителями, если таковые присутствуют.
  • marking_code_status – планируемый статус товара при передачи кода маркировки, в зависимости от выбранного значения означает передачу или получение штучного или весового товара.
  • marking_fractional_quantity – дробное кол-во штучного маркируемого товара, используется при продаже частями товара имеющего только маркировку упаковки (например, штучная реализация ампул лекарственных препаратов из маркируемой упаковки)
  • measurement_unit – новый параметр, вместо “unit”, в ФФД 1.2 носит обязательный характер, выбор возможен только из значений по ФФД. Если не передан по умолчанию передается значение 0 – «шт.».
  • item_industry_props - включается в состав чека если включение этого реквизита предусмотрено законодательством РФ.

Отправка чека на фискализацию

Тип запроса:

POST

Формат данных:

Данные в теле запроса предварительно сериализуются в json-формат

Адрес URL:

https://sapi.life-pay.ru/cloud-print-ffd1_2/create-receipt

Описание полей

Параметр Тег Тип Описание Обязательный
apikey Строка АПИ-ключ компании в системе Lifepay. Узнать свой АПИ-ключ можно в личном кабинете Lifepay. Да
login Строка Логин администратора компании или торговой точки в системе Lifepay. Если логин относится к торговой точке, к которой привязан принтер, документ будет отправлен на этот принтер. Как правило, логин - номер телефона в формате 7xxxxxxxxxx. Да
purchase json Позиции в чеке. Да
test Целое Тестовый режим отправки запроса без фискализации. Может принимать значения 0, 1, или отсутствовать (фискализировать по умолчанию). В тестовом режиме uuid сгенерирован не будет, оповещения о результате фискализации отправляться не будут. Нет
mode Строка Режим печати/отправки чека. Возможные значения:
print - распечатать чек (по умолчанию),
email - отправить электронный чек по email и/или смс,
print_email - распечатать чек и отправить по email и/или смс.
Нет
type
значения
1054 Строка Тип документа. Нет
customer_phone 1008 Строка Номер телефона клиента для отправки чека. Максимум 15 символов. Рекомендуемый формат +7xxxxxxxxxx. Нет
customer_email 1008 Строка Электронный адрес клиента для отправки чека. Максимум 100 символов. Нет
customer_name 1227 Строка Покупатель (клиент). Максимум 256 символов. Нет
customer_inn 1228 Строка ИНН покупателя. Да, если передан customer_name
card_amount 1081 Вещественное | Строка Сумма, оплаченная клиентом по карте. Особое значение - #. Нет
cash_amount 1031 Вещественное | Строка Сумма, оплаченная клиентом наличными. Особое значение - #. Нет
prepayment_amount 1215 Вещественное | Строка Сумма, внесенная авансом. Особое значение - #. Нет
credit_amount 1216 Вещественное | Строка Сумма, внесенная кредитными средствами. Особое значение - #. Нет
other_amount 1217 Вещественное | Строка Сумма иной формы оплаты (встречное предоставление). Особое значение - #. Нет
cashier_name 1021 Строка Имя кассира. Нет
cashier_inn 1203 Строка ИНН кассира. Нет
target_serial Строка Серийный номер принтера, на котором необходимо фискализировать данные. Если не задан, чек будет фискализирован на одном из подключенных (активных) фискальных принтеров. Нет
target_kkt_group_uuid Строка Идентификатор группы касс для фискализации. При задании параметра чек будет фискализирован на одном из ККТ, входящих в указанную группу. Объединить кассы в группы, и получить идентификатор можно в Личном кабинете Lifepay. Нет
target_service
замечание
Строка Сервис фискализации. Возможные значения:
lifepayCloud - облачная фискализация Lifepay (по умолчанию),
ofdRu - фискализация в сервисе OFD.ru Ferma
Нет
chpu_login Строка Логин, на который необходимо направить чек после печати фискального. Нет
ext_id Строка Идентификатор в сторонней системе. Максимум 50 символов. В случае, если в систему повторно передан запрос с одинаковым ext_id, документ создан не будет, сервер вернет uuid первого документа. Нет
callback_url Строка URL для отправки уведомления об обработке документа. Максимум 255 символов. Уведомление будет сформировано при смене статуса обработки документа на “обработан”, “ожидает повтора”, “ошибка”. Нет
callback_data Строка | Объект | Массив Пользовательские данные, которые будут отправлены обратно на URL, указанный в параметре callback_url. Нет
ref_uuid
замечание
Строка Идентификатор, который вернул сервер при создании документа. Может использоваться только при возврате прихода (см. замечания). Нет
pos
описание
json | Объект | Массив Опции для подключенного POS-терминала (см. описание поля и замечания). Нет
tax_system
замечание
1055 Строка Система налогообложения.
Возможные значения:
osn - ОСН
usn6 - УСН доход
usn15 - УСН доход-расход
eshn - ЕСН
patent - Патент
Нет
payment_place 1187 Строка Место осуществления расчетов между пользователем и покупателем (клиентом) Нет
additional_receipt_details 1192 Строка Дополнительный реквизит чека (БСО) Нет
receipt_header_lines
описание
json | Объект | Массив Кастомные строки заголовка чека. Нет
sender_email 1117 Строка Электронный адрес (email) отправителя чеков. Нет
additional_user_detail
описание
1084 json | Объект Дополнительный реквизит пользователя. Нет
industry_props
описание
1261 json | Объект Отраслевой реквизит чека. Нет
correction_doc_date 1178 Строка Дата совершения корректируемого расчет (формат ГГГГ-ММ-ДД). Да, при значении реквизита type равным sell_correction, sell_return_correction, buy_correction, buy_return_correction
correction_doc_number 1179 Строка Номер документа основания коррекции. Нет
correction_initiator 1173 Строка Возможные значения:
independently - самостоятельно,
directive - по предписанию.
Да, при значении реквизита type равным sell_correction, sell_return_correction, buy_correction, buy_return_correction

Пример содержимого поля purchase:

{
    "products": [
        {
            "name": "Пылесос SAMSUNG SC6573",
            "price": 9500.59,
            "quantity": 1,
            "tax": "vat20",
            "discount": {
                "type": "percent",
                "value": 10
            },
           "marking_code": "00000123456789aaaaaa!ABm8wAYa",
           "marking_code_status": 2,
           "measurement_unit": 10
        }
    ]
}

Описание поля purchase

Параметр Описание
products Массив позиций для печати

Описание позиций в поле products

Параметр Тег Тип Описание Обязательный
name 1030 Строка Наименование позиции. Да
price 1079 Вещественное Цена за единицу. Да
quantity 1023 Вещественное Количество товаров в позиции. В случае с весовыми товарами данное значение может быть дробным (до четырех знаков после запятой, разделитель - точка). Да
tax 1199 Строка Налог на позицию. Возможные значения:
none - НДС не облагается;
vat0 - НДС по ставке 0%;
vat10 - НДС чека по ставке 10%;
vat20 - НДС чека по ставке 20%;
vat110 - НДС расчитанный 10/110;
vat120 - НДС расчитанный 20/120;
Нет
discount json Скидка на позицию. Нет
type 1214 Строка | Целое Признак способа расчета. Для стандартных случаев данный параметр заполнять не следует.
Возможные значения:
1 - Полная предварительная оплата до момента передачи предмета расчета;
2 - Частичная предварительная оплата до момента передачи предмета расчета;
3 - Аванс;
4 - Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчета;
5 - Частичная оплата предмета расчета в момент его передачи с последующей оплатой в кредит;
6 - Передача предмета расчета без его оплаты в момент его передачи с последующей оплатой в кредит;
7 - Оплата предмета расчета после его передачи с оплатой в кредит (оплата кредита);
Нет
item_type
значения
1212 Строка | Целое Признак предмета расчета. Нет
agent_item_type
описание
1222 Массив Признак агента по предмету расчета. Нет
agent_data 1223 Массив Данные агента. Нет
supplier_data 1224 Массив Данные поставщика. Да, если передан agent_item_type
supplier_inn 1226 Строка ИНН поставщика. Должен быть корректным. Да, если передан agent_item_type
marking_code 1163 Строка Передается код маркировки со всеми символами разделителями, если таковые присутствуют в коде. Нет
marking_code_status
значения
2003 Строка Планируемый статус товара. Да, если задано marking_code
measurement_unit
значения
2108 Целое Мера количества предмета расчета. Нет
marking_fractional_quantity 1291 Строка Дробное кол-во ед. товара. Может включаться в состав чека если реквизит measurement_unit равен 0. Передается правильной дробью (1/2, 3/4 и т.д.) Нет
item_industry_props
описание
1260 json | Объект Отраслевой реквизит по предмету расчета. Нет
country_code 1230 Строка Код страны происхождения товара. 3 цифры. Нет
declaration_number 1231 Строка Номер таможенной декларации. Максимум 32 символа. Нет
excise_amount 1229 Вещественное Сумма акциза в рублях. Нет
additional_detail 1191 Строка Дополнительный реквизит предмета расчета. Максимум 64 символа. Нет

Описание поля discount объекта products

Параметр Тип Описание Обязательный
type Строка Тип скидки. Возможные значения:
amount - абсолютное значение,
percent процентное значение.
Да
value Вещественное Значение скидки. Да

Описание поля agent_data объекта products

Параметр Тег Тип Описание Максимальная длина
tag1005 1005 Строка Адрес оператора перевода. 256
tag1016 1016 Строка ИНН оператора перевода. Должен быть корректным. 12
tag1026 1026 Строка Наименование оператора перевода. 64
tag1075 1075 Массив строк Телефон оператора перевода. 19 (для каждого элемента)
tag1044 1044 Строка Операция платежного агента. 24
tag1073 1073 Массив строк Телефон платежного агента. 19 (для каждого элемента)
tag1074 1074 Массив строк Телефон оператора по приему платежей. 19 (для каждого элемента)

Описание поля supplier_data объекта products

Параметр Тег Тип Описание Максимальная длина
tag1171 1171 Массив строк Телефон поставщика. 19 (для каждого элемента)
tag1225 1225 Строка Наименование поставщика. 256

Возможные значения параметра type

  • payment - приход (по умолчанию)
  • refund - возврат прихода
  • buy - расход
  • buy_refund - возврат расхода
  • sell_correction - чек коррекции прихода
  • sell_return_correction - чек коррекции возврата прихода
  • buy_correction - чек коррекции расхода
  • buy_return_correction - чек коррекции возврата расхода

Возможные значения параметра marking_code_status объекта products

Значение реквизита Описание планируемого статуса товара, подлежащего обязательной маркировке средством идентификации
1 Штучный товар, подлежащий обязательной маркировке средством идентификации, реализован
2 Мерный товар, подлежащий обязательной маркировке средством идентификации, в стадии реализации
3 Штучный товар, подлежащий обязательной маркировке средством идентификации, возвращен
4 Часть товара, подлежащего обязательной маркировке средством идентификации, возвращена
255 Статус товара, подлежащего обязательной маркировке средством идентификации, не изменился

Возможные значения параметра measurement_unit объекта products

Примечание Значение
Применяется для предметов расчета, которые могут быть реализованы поштучно или единицами 0
Грамм 10
Килограмм 11
Тонна 12
Сантиметр 20
Дециметр 21
Метр 22
Квадратный сантиметр 30
Квадратный дециметр 31
Квадратный метр 32
Миллилитр 40
Литр 41
Кубический метр 42
Киловатт час 50
Гигакалория 51
Сутки (день) 70
Час 71
Минута 72
Секунда 73
Килобайт 80
Мегабайт 81
Гигабайт 82
Терабайт 83
Применяется при использовании иных единиц измерения 255

Возможные значения параметра item_type объекта products

Описание Значение
товар 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
платеж казино 26
выдача денежных средств 27
подакцизный товар, не имеющий код маркировки 30
подакцизный товар, имеющий код маркировки 31
товар, не имеющий код маркировки 32
товар, имеющий код маркировки 33

Описание поля pos

Параметр Описание
perform Перед фискализаций принять карту через POS-терминал. Возможные значения: 0 - не использовать, 1 - использовать.
slip_count Количество слип-чеков, которые необходимо распечатать после успешной транзакции по POS-терминалу. Возможные значения: 0, 1, 2.

Описание поля agent_item_type

Параметр Описание
bankPaymentAgent Оказание услуг покупателю (клиенту) пользователем, являющимся банковским платежным агентом. Возможные значения: 0 - нет, 1 - да.
bankPaymentSubagent Оказание услуг покупателю (клиенту) пользователем, являющимся банковским платежным субагентом. Возможные значения: 0 - нет, 1 - да.
paymentAgent Оказание услуг покупателю (клиенту) пользователем, являющимся платежным агентом. Возможные значения: 0 - нет, 1 - да.
paymentSubagent Оказание услуг покупателю (клиенту) пользователем, являющимся платежным субагентом. Возможные значения: 0 - нет, 1 - да.
attorney Осуществление расчета с покупателем (клиентом) пользователем, являющимся поверенным. Возможные значения: 0 - нет, 1 - да.
commissioner Осуществление расчета с покупателем (клиентом) пользователем, являющимся комиссионером. Возможные значения: 0 - нет, 1 - да.
agent Осуществление расчета с покупателем (клиентом) пользователем, являющимся агентом и не являющимся банковским платежным агентом (субагентом), платежным агентом (субагентом), поверенным, комиссионером. Возможные значения: 0 - нет, 1 - да.

Описание поля receipt_header_lines

Содержит массив строк:

Параметр Тип Описание
text Строка Строка для печати.
align Строка Выравнивание текста. Возможные значения: left, center, right. По умолчанию left.
text_wrap Строка Перенос строки. Возможные значения: no - не переносить, words - переносить по словам. По умолчанию no.
char_size_multiply Целое Мультипликатор ширины и высоты символов. Возможные значения: 1, 2. По умолчанию 1.

Описание поля additional_user_detail

Параметр Тег Тип Описание
tag1085 1085 Строка Наименование дополнительного реквизита пользователя.
tag1086 1086 Строка Значение дополнительного реквизита пользователя.

Описание поля industry_props

Параметр Тег Тип Описание
tag1262 1262 Строка Идентификатор ФОИВ.
tag1263 1263 Строка Дата документа основания (формат ДД.ММ.ГГГГ).
tag1264 1264 Строка Номер документа основания.
tag1265 1265 Строка Значение отраслевого реквизита.

Возможные значения параметра tag1262

Наименование ФОИВ Значение реквизита
Министерство внутренних дел Российской Федерации 001
Министерство Российской Федерации по делам гражданской обороны, чрезвычайным ситуациям и ликвидации последствий стихийных бедствий 002
Министерство иностранных дел Российской Федерации 003
Федеральное агентство по делам Содружества Независимых Государств, соотечественников, проживающих за рубежом, и по международному гуманитарному сотрудничеству 004
Министерство обороны Российской Федерации 005
Федеральная служба по военно-техническому сотрудничеству 006
Федеральная служба по техническому и экспортному контролю 007
Министерство юстиции Российской Федерации 008
Федеральная служба исполнения наказаний 009
Федеральная служба судебных приставов 010
Государственная фельдъегерская служба Российской Федерации (федеральная служба) 011
Служба внешней разведки Российской Федерации (федеральная служба) 012
Федеральная служба безопасности Российской Федерации (федеральная служба) 013
Федеральная служба войск национальной гвардии Российской Федерации (федеральная служба) 014
Федеральная служба охраны Российской Федерации (федеральная служба) 015
Федеральная служба по финансовому мониторингу (федеральная служба) 016
Федеральное архивное агентство (федеральное агентство) 017
Главное управление специальных программ Президента Российской Федерации (федеральное агентство) 018
Управление делами Президента Российской Федерации (федеральное агентство) 019
Министерство здравоохранения Российской Федерации 020
Федеральная служба по надзору в сфере здравоохранения 021
Министерство культуры Российской Федерации 022
Министерство науки и высшего образования Российской Федерации 023
Министерство природных ресурсов и экологии Российской Федерации 024
Федеральная служба по гидрометеорологии и мониторингу окружающей среды 025
Федеральная служба по надзору в сфере природопользования 026
Федеральное агентство водных ресурсов 027
Федеральное агентство лесного хозяйства 028
Федеральное агентство по недропользованию 029
Министерство промышленности и торговли Российской Федерации 030
Федеральное агентство по техническому регулированию и метрологии 031
Министерство просвещения Российской Федерации 032
Министерство Российской Федерации по развитию Дальнего Востока и Арктики 033
Министерство сельского хозяйства Российской Федерации 034
Федеральная служба по ветеринарному и фитосанитарному надзору 035
Федеральное агентство по рыболовству 036
Министерство спорта Российской Федерации 037
Министерство строительства и жилищно-коммунального хозяйства Российской Федерации 038
Министерство транспорта Российской Федерации 039
Федеральная служба по надзору в сфере транспорта 040
Федеральное агентство воздушного транспорта 041
Федеральное дорожное агентство 042
Федеральное агентство железнодорожного транспорта 043
Федеральное агентство морского и речного транспорта 044
Министерство труда и социальной защиты Российской Федерации 045
Федеральная служба по труду и занятости 046
Министерство финансов Российской Федерации 047
Федеральная налоговая служба 048
Федеральная пробирная палата (федеральная служба) 049
Федеральная служба по регулированию алкогольного рынка 050
Федеральная таможенная служба 051
Федеральное казначейство (федеральная служба) 052
Федеральное агентство по управлению государственным имуществом 053
Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации 054
Федеральная служба по надзору в сфере связи, информационных технологий и массовых коммуникаций 055
Федеральное агентство по печати и массовым коммуникациям 056
Федеральное агентство связи 057
Министерство экономического развития Российской Федерации 058
Федеральная служба по аккредитации 059
Федеральная служба государственной статистики 060
Федеральная служба по интеллектуальной собственности 061
Федеральное агентство по туризму 062
Министерство энергетики Российской Федерации 063
Федеральная антимонопольная служба 064
Федеральная служба государственной регистрации, кадастра и картографии 065
Федеральная служба по надзору в сфере защиты прав потребителей и благополучия человека 066
Федеральная служба по надзору в сфере образования и науки 067
Федеральная служба по экологическому, технологическому и атомному надзору 068
Федеральное агентство по государственным резервам 069
Федеральное медико-биологическое агентство 070
Федеральное агентство по делам молодежи 071
Федеральное агентство по делам национальностей 072

Замечания

  1. Ни одно из полей card_amount, `cash_amount“ не являются обязательными, но их сумма должна быть не меньше суммы позиций в чеке. Например, если сумма чека по позициям 1000, card_amount = 700, cash_amount = 500 то это означает, что покупатель оплатил покупку по карте на 700 рублей и 500 рублей наличными, сдача при этом будет составлять 200 рублей.

Если оплата была по карте, то в поле card_amount должна быть указана общая сумма, которую клиент оплатил по карте и совпадать с суммой позиций в чеке (в примере выше 239.45 рублей).

Любое из этих полей card_amount, cash_amount, prepayment_amount, credit_amount, other_amount может принимать значение #, которое будет сообщать системе, что значение является вычисляемым: # = {сумма всех позиций из products} - (card_amount + cash_amount + prepayment_amount + credit_amount + other_amount). Данное значение может быть полезно для того, чтобы не вычислять сумму, которую заплатил покупатель по products и не беспокоиться о проблемах с округлением в подсчетах.

В самом простом варианте, если покупка была оплачена, например, по карте, то необходимо заполнить только card_amount = #.

В примере выше, если оплата была по карте на 100, а остальное клиент оплатил наличными, то значения полей можно заполнить как: card_amount = 100, cash_amount = #. В результате cash_amount будет вычислен автоматически и в примере выше будет равен 139.45.

  1. Параметр mode актуален для принтеров, соответствующих 54-ФЗ. Если этот параметр равен email или print_email, электронный чек будет отправлен покупателю по смс или email (в зависимости от заполненности полей customer_phone и customer_email).

  2. Функционал аванса/кредита (в соответствии с ФФД 1.05) доступен на принтерах АТОЛ начиная с версии прошивки 3689. Версию прошивки можно посмотреть в личном кабинете Lifepay в разделе Фискализация -> Принтеры.

  3. Параметр ref_uuid позволяет сопоставить 2 документа - приход и возврат прихода. Актуален только для запроса возврата прихода (type = refund). В случае, если параметр ref_uuid задан, система попытается найти документ прихода и, если он будет найден и сумма возвратов не превышает суммы прихода, создаст документ возврата прихода. Если осуществляется возврат прихода с параметром pos (perform = 1), ref_uuid является обязательным для заполнения для поиска RRN платежа в документе прихода.

  4. Параметр tax_system позволяет фискализировать продажи в случае нескольких СНО. Если товары продаются по одной СНО, а услуги по другой, необходимо сформировать 2 чека с разными значениями tax_system. Если tax_system не будет указана в запросе, система применит значение СНО, установленное в личном кабинете Lifepay. Если в личном кабинете СНО не была установлена, будет применена СНО - ОСН.

  5. Опция target_serivce позволяет принудительно задать сервис для фискализации чека. Параметры интеграции при использовании сервисов отличных от облачной фискализации Lifepay необходимо предварительно прописать в личном кабинете Lifepay в разделе Фискализация → Интеграции.

  6. Опция pos со значением perform = 1 позволяет перед фискализацией принять оплату/возврат по POS-терминалу, в случае успеха будет распечатан фискальный чек прихода (в случае type = payment), либо возврата прихода (в случае type = refund). Сумма, которая будет отправлена на POS-терминал, берется из параметра card_amount. Поддерживаемые терминалы: Ingenico IPP* с поддержкой библиотеки arcus2.

    Особенности работы с POS-терминалом при удаленной фискализации.

    1. В рамках одной смены до сверки на POS терминале при возврате осуществляется попытка отмены, при ее неудаче обрабатывается возврат.
    2. Смена на терминале закрывается при снятии z-отчета на принтере, подключенному к тому же микрокомпьютеру.
    3. Если смена на терминале не была закрыта в течение 48 часов, сверка осуществляется автоматически спустя 48 часов.
    4. В рамках одного микрокомпьютера можно подключить только 1 POS терминал.
    5. POS терминалу может не хватать питания только лишь от микрокомпьютера (зависит от блока питания). Нехватка питания выражается в постоянной перезагрузке при попытке оплаты. Поможет подключение отдельного питания к POS-терминалу, либо замена блока питания.
    6. Если оплата/возврат по POS терминалу прошла, но чек по каким-либо причинам не распечатался, транзакция откатываться не будет. В зависимости от ошибки принтера, сервер предпримет попытку повторной печати.

Если оплата осуществляется через приложение Lifepay, а в личном кабинете в разделе “Фискализация” -> “Сотрудники” разрешена для указанного логина удаленная фискализация и печать на ЧПУ, чек на ЧПУ будет отправлен на устройство с которого был принят платеж.

Список принтеров или логины пользователей, которые подключены к организации можно посмотреть в личном кабинете Lifepay.

Пример успешного ответа:

формат json
Object
(
    [code] => 0
    [message] =>
    [data] => Object
        (
            [uuid] => dabe3833-43ff-5e5c-a45e-9cff664503ff
        )

)

uuid - уникальный идентификатор документа

Пример ответа при ошибке:

формат json
Object
(
    [code] => 400
    [message] => Ошибка данных.
    [data] => Object
        (
            [purchase] => Array
                (
                    [0] => Ошибка в позиции 1: Значение «Value» не должно превышать 100.
                )

        )

)

Рекомендация:

Если http-код ответа (не путать с полем code) отличен от 200, необходимо повторять запрос с тем же ext_id через некоторые промежутки времени. Промежутки повтора запроса могут быть, например, такими: 1 минута, 3 минуты, 5 минут, далее – один раз в 10 минут до получения http кода ответа 200.

Продажа наличными. Пример запроса на языке php.

Продажа трех позиций на общую сумму 239,45 руб. Покупатель дал 500 руб. Сдача составляет 260,55 руб.

Выставлен режим печати бумажного чека.

$data = [];
$data['apikey'] = '{your_apikey}';
$data['login'] = '{your_login}';
$data['purchase'] = '
  {
      "products": [
          {
              "name": "Пылесос SAMSUNG SC6573",
              "price": 9500.59,
              "quantity": 1,
              "tax": "vat20",
              "discount": {
                  "type": "percent",
                  "value": 10
              },
              "marking_code": "00000123456789aaaaaa!ABm8wAYa",
              "marking_code_status": 1,
              "measurement_unit": 0
          },
          {
              "name": "Монитор DELL U2412M",
              "unit": "piece",
              "price": 20730.00,
              "quantity": 1,
              "tax": "vat20",
              "type": 1,
              "marking_code": "010466006821276821zWyn8vjJ2rp0u\u001d91ffd0\u001d92uMMKlJp9zosKgBPHZlTt0o5MO/LvWVC/g1cZZGHIJDJ5r3YiMTZbGKNWxRpyNCJL+0c8/cvWySuAEv2niJD2sg==",
              "marking_code_status": 1,
              "measurement_unit": 0
          }
      ]
  }
';
$data['type'] = 'payment';
$data['test'] = 0;
$data['mode'] = 'print';
$data['customer_phone'] = null;
$data['customer_email'] = null;
$data['cash_amount'] = 500;
$data['card_amount'] = null;
$data['payment_place'] = 'Станция метро Третьяковская (центр зала)';
$data['industry_props'] = [
    'tag1262' => '020',
    'tag1263' => '14.12.2018',
    'tag1264' => '1556',
    'tag1265' => 'tm=mdlp&sid=00000000105200',
];

$request = json_encode($data);

$url = "https://sapi.life-pay.ru/cloud-print-ffd1_2/create-receipt";
$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $request);

$result = curl_exec($curl);
curl_close($curl);

$resultJson = @json_decode($result);

printf("Res: %s\n", print_r($resultJson ? : $result, true));