Выставление счета

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 Строка Метод оплаты. Возможные значения:
internetAcquiring (по умолчанию) - платеж через интернет эквайринг. Покупателю приходит ссылка по SMS или email на форму оплаты.
mobileCommerce - платеж с баланса телефона. Покупателю приходит подтверждающий запрос на мобильный телефон.
Нет
Замечание:
  1. В случае использования метода оплаты mobileCommerce, аттрибут customer_phone является обязательным, в ином случае аттрибут обязательным не является.
  2. В случае, если description передается в формате <товар 1> x <кол-во> = <сумма>[, <товар 2> x <кол-во> = <сумма>] как из примера 2, позиции в чеке и счете на оплату будут разбиты на отдельные строчки.

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

формат json
Object
(
    [code] => 0
    [message] =>
    [data] => Object
        (
            [status] => 15
            [number] => 18948962804043
            [created] => 1476091037
            [interval] => 5
            [paymentUrl] => https://secure.life-pay.ru/t/86a92122a09f0b
        )

)

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

Параметр Тип Описание
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 и т.д.

Пример запроса на языке 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));