Выставление счета
LifePay позволяет выставить счет на оплату клиенту на номер телефона или email-адрес. Проверить успешность оплаты можно посмотрев её статус в Личном Кабинете Lifepay, либо отдельным запросом. Сервис полезен владельцам собственных CRM-систем, сервисов и интернет-магазинов, так как позволяет принять платеж без необходимости использовать кардридер.
Для использования данного сервиса, необходимо подключение интернет эквайринга для вашей компании. По вопросам подключения, обратитесь в техподдержку Lifepay 8 800 555 23 62.
Пример письма с выставленным счетом, который отправляется клиенту:
Выставить счет
Тип запроса:
POST
Формат данных:
Данные в теле запроса предварительно сериализуются в json-формат
Адрес URL:
https://api.life-pay.ru/v1/bill
Описание полей
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
apikey | Строка | АПИ-ключ компании в системе Lifepay. Узнать свой АПИ-ключ можно в личном кабинете Lifepay | Да |
login | Строка | Логин администратора в системе Lifepay. Как правило, это номер телефона в формате 7xxxxxxxxxx |
Да |
amount | Строка | Сумма счета, округленная до двух знаков после запятой. Разделитель - точка. Примеры корректных значений: 100.00 , 140 , 25.50 , 200.2 |
Да |
description | Строка | Описание платежа (назначение счета). Это значение будет отражено в чеке покупателю. Примеры: 1. Пицца Маргарита 30см 2. Капучино 150мл x 1.0 = 250.00, Латте 300мл x 1.0 = 300.00, Бургер «007» x 1.0 = 250.00 |
Да |
customer_phone | Строка | Номер телефона клиента на который выставляется счет в формате 7xxxxxxxxxx |
Условие |
customer_email | Строка | Email-адрес клиента на который выставляется счет. Пример корректного формата: mail@mail.ru |
Нет |
method | Строка | Метод оплаты. Возможные значения:sbp (по умолчанию) - платеж через сервис быстрых платежей. Покупателю приходит ссылка по SMS или email с ссылкой для оплаты.internetAcquiring - платеж через интернет эквайринг. Покупателю приходит ссылка по SMS или email с ссылкой на форму оплаты.mobileCommerce - платеж с баланса телефона. Покупателю приходит подтверждающий запрос на мобильный телефон. |
Нет |
callback_url | Строка | URL для отправки уведомления о смене статуса оплаты счета. Будет сформировано оповещение о транзакции на заданный URL. Сопоставить счет можно по полю number в ответе на запрос создания счета и по соответствующему полю в уведомлении. Пример заполения поля callback_url : https://myservice.local/lifepay_handler |
Нет |
Замечание:
- В случае использования метода оплаты
mobileCommerce
, аттрибутcustomer_phone
является обязательным, в ином случае аттрибут обязательным не является. - В случае, если description передается в формате
<товар 1> x <кол-во> = <сумма>[, <товар 2> x <кол-во> = <сумма>]
как из примера 2, позиции в чеке и счете на оплату будут разбиты на отдельные строчки.
Пример успешного ответа:
формат json
Object
(
[code] => 0
[message] =>
[data] => Object
(
[status] => 15
[number] => 18948962804043
[created] => 1476091037
[interval] => 5
[paymentUrl] => https://qr.nspk.ru/BD1354320168NM3Q3VV86RQ102DHQD6FI33?type=02&bank=100000000007&sum=36900&cur=RUB&crc=A2F1
[paymentUrlWeb] => https://web.qr.nspk.ru/BD1354320168NM3Q3VV86RQ102DHQD6FI33?type=02&bank=100000000007&sum=36900&cur=RUB&crc=A2F1
)
)
Описание полей
Параметр | Тип | Описание |
---|---|---|
code | Целое | Номер ошибки. 0 , если операция успешна. |
message | Строка | Сообщение. Поле не содержит значения, если операция успешна. |
data | Объект | Данные операции. |
Описание поля data
Параметр | Тип | Описание | Комментарий |
---|---|---|---|
status | Целое | Статус операции. 0 - инициирована, 10 - успешна, 15 - ожидает подтверждения, 20 - неуспешна, 30 - отменена. |
|
number | Целое | Уникальный номер транзакции. | |
created | Целое | Дата и время транзакции. Формат Unix timestamp, UTC+0. | |
interval | Целое | Рекомендуемый интервал проверки статуса операции в секундах. Рекомендуется использовать это значение между интервалами запросов на проверку статуса операции пока она находится в статусе 15 (ожидает подтверждение). |
|
paymentUrl | Строка | URL, который отправляется клиенту для оплаты. В случае, если в запросе не указаны customer_phone и customer_email данное значение может быть использовано менеджером магазина для отправки покупателю ссылки на оплату, например, в WhatsApp, Telegram и т.д. |
|
paymentUrlWeb | Строка | URL, который отправляется клиенту для оплаты. В случае, если в запросе не указаны customer_phone и customer_email данное значение может быть использовано менеджером магазина для отправки покупателю ссылки на оплату, например, в WhatsApp, Telegram и т.д. При переходе по данной ссылке клиенту будет предложено выбрать банк для оплаты. |
Данный URL возвращается только если метод оплаты = ‘sbp’. Данный URL отправляется клиенту вместо paymentUrl. |
Пример запроса на языке php:
$data = [];
$data['apikey'] = '{your_apikey}';
$data['login'] = '{your_login}';
$data['amount'] = 369.00;
$data['customer_phone'] = null;
$data['customer_email'] = 'mail@mail.ru';
$data['method'] = 'internetAcquiring';
$data['description'] = 'Пицца "Маргарита"';
$request = json_encode($data);
$url = "https://api.life-pay.ru/v1/bill";
$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));
Проверить статус счета
Проверить статус оплаты выставленного счета.
Тип запроса:
GET
Адрес URL:
https://api.life-pay.ru/v1/bill/status
Описание полей
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
apikey | Строка | АПИ-ключ компании в системе Lifepay. Узнать свой АПИ-ключ можно в личном кабинете Lifepay | Да |
login | Строка | Логин администратора в системе Lifepay. Как правило, это номер телефона в формате 7xxxxxxxxxx |
Да |
number | Строка | Номер транзакции, полученный в ответе на запрос выставления счета. Разрешается использовать через разделитель несколько значений. Примеры корректных значений:18948962804043 , 18948962804043, 1529783787609 |
Да |
Пример успешного ответа:
формат json
Object
(
[code] => 0
[message] =>
[data] => Object
(
[18948962804043] => Object
(
[status] => 15
[msg] => Ожидает подтверждения
)
[15297837876093] => Object
(
[status] => 15
[msg] => Ожидает подтверждения
)
[12109942444003] => Object
(
[status] =>
[msg] => Не найден
)
)
)
Описание полей
Параметр | Тип | Описание |
---|---|---|
code | Целое | Номер ошибки. 0 , если операция успешна. |
message | Строка | Сообщение. Поле не содержит значения, если операция успешна. |
data | Объект | Данные операции. Содержит хеш-массив с данными о статусе операции. В качестве ключа используется номер транзакции. |
Описание значений элементов хеш-массива data
Параметр | Тип | Описание |
---|---|---|
status | Целое | Статус операции. 0 - инициирована, 10 - успешна, 15 - ожидает подтверждения, 20 - неуспешна, 30 - отменена. |
msg | Строка | Текстовый статус операции. |
Пример запроса на языке php:
$data = [];
$data['apikey'] = '{your_apikey}';
$data['login'] = '{your_login}';
$data['number'] = '9999999999999';
$url = "https://api.life-pay.ru/v1/bill/status?".http_build_query($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$result = curl_exec($ch);
curl_close($ch);
$resultJson = @json_decode($result);
printf("Res: %s\n", print_r($resultJson ? : $result, true));
Отменить выставление счета
Отменить ошибочно выставленный счет до того, как покупатель произвел оплату.
Тип запроса:
POST
Формат данных:
Данные в теле запроса предварительно сериализуются в json-формат
Адрес URL:
https://api.life-pay.ru/v1/bill/cancellation
Описание полей
Параметр | Тип | Описание | Обязательный |
---|---|---|---|
apikey | Строка | АПИ-ключ компании в системе Lifepay. Узнать свой АПИ-ключ можно в личном кабинете Lifepay | Да |
login | Строка | Логин администратора в системе Lifepay. Как правило, это номер телефона в формате 7xxxxxxxxxx |
Да |
number | Строка | Номер транзакции, полученный в ответе на запрос выставления счета. Пример корректного значения: 18948962804043 |
Да |
Пример успешного ответа:
формат json
Object
(
[code] => 0
[message] =>
[data] => Object
(
)
)
Описание полей
Параметр | Тип | Описание |
---|---|---|
code | Целое | Номер ошибки. 0 , если операция успешна. |
message | Строка | Сообщение. Поле не содержит значения, если операция успешна. |
data | Объект | Данные операции. В случае успеха, объект пуст. |
Пример запроса на языке php:
$data = [];
$data['apikey'] = '{your_apikey}';
$data['login'] = '{your_login}';
$data['number'] = '9999999999999';
$request = json_encode($data);
$url = "https://api.life-pay.ru/v1/bill/cancellation";
$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));