Skip to main content

Закрытие смены

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

Отправка на печать

Тип запроса:

POST

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

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

Адрес URL:

https://sapi.life-pay.ru/cloud-print/create-z-report

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

ПараметрТипОписаниеОбязательный
apikeyСтрокаАПИ-ключ компании в системе Lifepay. Узнать свой АПИ-ключ можно в личном кабинете Lifepay.Да
loginСтрокаЛогин администратора компании или торговой точки в системе Lifepay. Если логин относится к торговой точке, к которой привязан принтер, документ будет отправлен на этот принтер. Как правило, логин - номер телефона в формате 7xxxxxxxxxx.Да
testЦелоеТестовый режим отправки запроса без фискализации. Может принимать значения 0, 1, или отсутствовать (фискализировать по умолчанию). В тестовом режиме uuid сгенерирован не будет, оповещения о результате фискализации отправляться не будут.Нет
cashier_nameСтрокаИмя кассира.Нет
cashier_innСтрокаИНН кассира.Нет
target_serialСтрокаСерийный номер принтера, на котором необходимо закрыть смену. Если не задан, смена будет закрыта на одном из подключенных (активных) фискальных принтеров.Нет
ext_idСтрокаИдентификатор в сторонней системе. Максимум 50 символов. В случае, если в систему повторно передан запрос с одинаковым ext_id, документ создан не будет, сервер вернет uuid первого документа.Нет
callback_urlСтрокаURL для отправки уведомления об обработке документа. Максимум 255 символов. Уведомление будет сформировано при смене статуса обработки документа на "обработан", "ожидает повтора", "ошибка".Нет
callback_dataСтрока | Объект | МассивПользовательские данные, которые будут отправлены обратно на URL, указанный в параметре callback_url.Нет

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

формат 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['test'] = 0;
$data['target_serial'] = '00106304012797';

$request = json_encode($data);

$url = "https://sapi.life-pay.ru/cloud-print/create-z-report";
$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));