Открытие смены
LifePay позволяет удаленно открыть смену на фискальном регистраторе. Смену можно открыть как посредством запроса по АПИ, так и в личном кабинете Lifepay.
Отправка на печать
Тип запроса:
POST
Формат данных:
Данные в теле запроса предварительно сериализуются в json-формат
Адрес URL:
https://sapi.life-pay.ru/cloud-print/create-session
Описание полей
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
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
Не удалось найти пользователя по login6010
Не удалось найти пользователя по login и apikey6080
Облачная фискализация запрещена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-session";
$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));