Skip to main content

Внесение и выдача наличных

LifePay позволяет удаленно осуществить внесение, либо выдачу наличных из кассы

Отправка на ККТ

Тип запроса:

POST

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

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

Адрес URL:

Внесение

https://sapi.life-pay.ru/cloud-print/cash-in

Выдача

https://sapi.life-pay.ru/cloud-print/cash-out

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

ПараметрТипОписаниеОбязательный
apikeyСтрокаАПИ-ключ компании в системе Lifepay. Узнать свой АПИ-ключ можно в личном кабинете Lifepay.Да
loginСтрокаЛогин администратора компании или торговой точки в системе Lifepay. Если логин относится к торговой точке, к которой привязан принтер, документ будет отправлен на этот принтер. Как правило, логин - номер телефона в формате 7xxxxxxxxxx.Да
testЦелоеТестовый режим отправки запроса без фискализации. Может принимать значения 0, 1, или отсутствовать (фискализировать по умолчанию). В тестовом режиме uuid сгенерирован не будет, оповещения о результате фискализации отправляться не будут.Нет
amountВещественное | СтрокаСумма внесения/выдачи.Да
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] => 7b503217-3314-59cc-a20e-087b329e8635
)

)

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['amount'] = 10000;
$data['target_serial'] = '{your_printer_serial_number}';

$request = json_encode($data);

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