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

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

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

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

Тип запроса:

POST

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

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

Адрес URL:

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

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

Параметр Тег Тип Описание Обязательный
apikey Строка АПИ-ключ компании в системе Lifepay. Узнать свой АПИ-ключ можно в личном кабинете Lifepay. Да
login Строка Логин администратора компании или торговой точки в системе Lifepay. Если логин относится к торговой точке, к которой привязан принтер, документ будет отправлен на этот принтер. Как правило, логин - номер телефона в формате 7xxxxxxxxxx. Да
initiator 1173 Строка Инициатор коррекции. Возможные значения:
independently - самостоятельно (по умолчанию),
directive - по предписанию.
Да
doc_date 1178 Строка Дата документа коррекции в формате ГГГГ-ММ-ДД. Да
doc_number 1179 Строка Номер документа коррекции. Да
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 Вещественное | Строка Сумма коррекции иной формы оплаты (встречное предоставление). Нет
mc_amount 1081 Вещественное | Строка Сумма коррекции по мобильной коммерции. Нет
cashier_name 1021 Строка Имя кассира. Нет
cashier_inn 1203 Строка ИНН кассира. Нет
target_serial Строка Серийный номер принтера, на котором необходимо фискализировать данные. Если не задан, чек будет фискализирован на одном из подключенных (активных) фискальных принтеров. Нет
target_kkt_group_uuid Строка Идентификатор группы касс для фискализации. При задании параметра чек будет фискализирован на одном из ККТ, входящих в указанную группу. Объединить кассы в группы, и получить идентификатор можно в Личном кабинете Lifepay. Нет
ext_id Строка Идентификатор в сторонней системе. Максимум 50 символов. В случае, если в систему повторно передан запрос с одинаковым ext_id, документ создан не будет, сервер вернет uuid первого документа. Нет
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 json | Список Список налоговых ставок и их значения Нет
payment_place 1187 Строка Место осуществления расчетов между пользователем и покупателем (клиентом) Нет
customer_name 1227 Строка Покупатель (клиент). Максимум 256 символов. Нет
customer_inn 1228 Строка ИНН покупателя. Нет
additional_receipt_details 1192 Строка Дополнительный реквизит чека (БСО) Нет

Описание элементов списка 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] => Принтер не найден.
                 )

        )

)

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

Если 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));