Чек коррекции

LifePay позволяет удаленно создать чек коррекции в соответствии с требованиями налоговой. Чек коррекции можно создать как посредством запроса по АПИ, так и в личном кабинете Lifepay:

Пример распечатанного чека по запросу:

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

Тип запроса:

POST

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

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

Адрес URL:

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

Условные обозначения в формате данных

Обозначение Описание
Ц Атрибут, обозначающий, что данные реквизита должны быть представлены в виде цифры
С Атрибут, обозначающий, что данные реквизита должны быть представлены в виде символа
{} Атрибут повторяемый

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

Параметр Тег Тип Описание Обязательный Формат Максимальная длина
apikey Строка АПИ-ключ компании в системе Lifepay. Узнать свой АПИ-ключ можно в личном кабинете Lifepay. Да {С} 255
login Строка Логин администратора компании или торговой точки в системе Lifepay. Если логин относится к торговой точке, к которой привязан принтер, документ будет отправлен на этот принтер. Да 7{Ц} 11
initiator 1173 Строка Инициатор коррекции. Возможные значения:
independently - самостоятельно (по умолчанию),
directive - по предписанию.
Да
doc_date 1178 Строка Дата документа коррекции. Да ГГГГ-ММ-ДД
doc_number 1179 Строка Номер документа коррекции. Да {С} 32
test Целое Тестовый режим отправки запроса без фискализации. Может принимать значения 0, 1, или отсутствовать (фискализировать по умолчанию). В тестовом режиме uuid сгенерирован не будет, оповещения о результате фискализации отправляться не будут. Нет
type 1054 Строка Тип коррекции. Возможные значения:
sell_correction - коррекция прихода (по умолчанию),
buy_correction - коррекция расхода.
Нет
card_amount 1081 Вещественное Сумма, оплаченная клиентом по карте. Особое значение - #. Нет {Ц}.ЦЦ | {Ц}
cash_amount 1031 Вещественное Сумма, оплаченная клиентом наличными. Особое значение - #. Нет {Ц}.ЦЦ | {Ц}
prepayment_amount 1215 Вещественное Сумма, внесенная авансом. Особое значение - #. Нет {Ц}.ЦЦ | {Ц}
credit_amount 1216 Вещественное Сумма, внесенная кредитными средствами. Особое значение - #. Нет {Ц}.ЦЦ | {Ц}
other_amount 1217 Вещественное Сумма иной формы оплаты (встречное предоставление). Особое значение - #. Нет {Ц}.ЦЦ | {Ц}
cashier_name 1021 Строка Имя кассира. Нет {С} 64
cashier_inn 1203 Строка ИНН кассира. Нет {Ц} 12
target_serial Строка Серийный номер принтера, на котором необходимо фискализировать данные. Если не задан, чек будет фискализирован на одном из подключенных (активных) фискальных принтеров. Нет {С}
target_kkt_group_uuid Строка Идентификатор группы касс для фискализации. При задании параметра чек будет фискализирован на одном из ККТ, входящих в указанную группу. Объединить кассы в группы, и получить идентификатор можно в Личном кабинете Lifepay. Нет {С}
ext_id Строка Идентификатор в сторонней системе. В случае, если в систему повторно передан запрос с одинаковым ext_id, документ создан не будет, сервер вернет uuid первого документа. Нет {С} 50
order_number Строка Номер заказа в сторонней системе. Может использоваться для поиска чека в личном кабинете. Нет {С}
callback_url Строка URL для отправки уведомления об обработке документа. Уведомление будет сформировано при смене статуса обработки документа на “обработан”, “ожидает повтора”, “ошибка”. Нет {С} 255
callback_data Строка | Структура | Массив Пользовательские данные, которые будут отправлены обратно на URL, указанный в параметре callback_url. Нет
tax_system
замечание
1055 Строка Система налогообложения.
Возможные значения:
osn - ОСН
usn6 - УСН доход
usn15 - УСН доход-расход
eshn - ЕСН
patent - Патент
Нет
tax 1199 Строка Налог. Возможные значения:
none - НДС не облагается;
vat0 - НДС по ставке 0%;
vat10 - НДС чека по ставке 10%;
vat20 - НДС чека по ставке 20%;
vat110 - НДС расчитанный 10/110;
vat120 - НДС расчитанный 20/120;
Нет
tax_list Массив Список налоговых ставок и их значения Нет
payment_place 1187 Строка Место осуществления расчетов между пользователем и покупателем (клиентом) Нет {С} 256
customer_name 1227 Строка Покупатель (клиент). Нет {С} 256
customer_inn 1228 Строка ИНН покупателя. Нет {Ц} 12
additional_receipt_details 1192 Строка Дополнительный реквизит чека (БСО) Нет {С} 16

Описание элементов списка tax_list

Параметр Тег Тип Описание Обязательный Формат
tax 1199 Строка Возможные значения:
none - НДС не облагается;
vat0 - НДС по ставке 0%;
vat10 - НДС чека по ставке 10%;
vat20 - НДС чека по ставке 20%;
vat110 - НДС расчитанный 10/110;
vat120 - НДС расчитанный 20/120;
Да
value 1200 Вещественное Сумма НДС. Да {Ц}.ЦЦ | {Ц}

Замечания

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

  2. В запросе необходимо указывать один из параметров tax (для автоматического расчета НДС на стороне ФР), либо tax_list (в случае расчета НДС на стороне клиента). Если указаны оба параметра, то приоритет отдается tax_list.

  3. В случае, если товары/услуги не облагаются НДС (либо НДС 0%), в поле value из списка tax_list указывается сумма, которая не облагается НДС (либо НДС 0%).

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

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

)

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

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

формат json
Object
(
    [code] => 400
    [message] => Ошибка данных.
    [data] => Object
        (
            [target_serial] => Array
                 (
                     [0] => Принтер не найден.
                 )

        )

)

Возможные значения поля code:

  • 500 Внутренняя ошибка сервера
  • 400 Ошибка данных
  • 6000 Неверный формат данных
  • 6009 Не удалось найти пользователя по login
  • 6010 Не удалось найти пользователя по login и apikey
  • 6080 Облачная фискализация запрещена
  • 6095 Доступ запрещен

При значении поля “code” = 500 необходимо обратиться в тех поддержку, уточнить причину появления данной ошибки.

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

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

Пример запроса на языке php:


$data = []; $data['apikey'] = '{your_apikey}'; $data['login'] = '{your_login}'; $data['type'] = 'sell_correction'; $data['doc_date'] = "2017-01-01"; $data['doc_number'] = "3123"; $data['tax_list'] = ' [ { "tax": "none", "value": 1000 }, { "tax": "vat10", "value": 10.55 } ] '; $data['test'] = 0; $data['cash_amount'] = 500; $data['card_amount'] = null; $data['mc_amount'] = null; $data['cashier_name'] = null; $data['target_serial'] = null; $data['payment_place'] = 'Станция метро Выхино (центр зала)'; $request = json_encode($data); $url = "https://sapi.life-pay.ru/cloud-print/create-receipt-correction"; $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));