Чек коррекции
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 | Вещественное | Сумма НДС. | Да |
Замечания
Параметр
tax_system
позволяет фискализировать продажи в случае нескольких СНО. Если товары продаются по одной СНО, а услуги по другой, необходимо сформировать 2 чека с разными значениямиtax_system
. Еслиtax_system
не будет указана в запросе, система применит значение СНО, установленное в личном кабинете Lifepay. Если в личном кабинете СНО не была установлена, будет применена СНО - ОСН.В запросе необходимо указывать один из параметров
tax
(для автоматического расчета НДС на стороне ФР), либоtax_list
(в случае расчета НДС на стороне клиента). Если указаны оба параметра, то приоритет отдаетсяtax_list
.В случае, если товары/услуги не облагаются НДС (либо НДС 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));