Переадресация клиента в систему Провайдера происходит с помощью следующей HTMLформы:
<form method="POST" class="application" accept-charset="UTF-8" action="https://partner.life-pay.ru/alba/input/">
<input type="hidden" name="key" value="8IR+noSkM/EMr8LNd1JjJd22ltodr6xeIrOImyywNNU=" />
<input type="hidden" name="cost" value="[СТОИМОСТЬ]" />
<input type="hidden" name="name" value="[НАЗВАНИЕ]" />
<input type="hidden" name="email" value="[EMAIL]" />
<input type="hidden" name="order_id" value="0" />
<input type="image" id="a1lite_button" style="border: 0;" src="https://partner.life-pay.ru/gui/images/a1lite_buttons/button_small.png" value="Оплатить" />
</form>
Общая информация о методе
Метод позволяет создавать инвойс (счёт на оплату) или просматривать его параметры, не прибегая к использованию клиентского личного кабинета. Так же в случае необходимости с помощью API вы можете изменить параметры сформированного инвойса.
Доступные действия с invoice по API
Создать счёт на оплату
Для создания счёта через API необходимо выполнить POST
запрос на URL: https://api-ecom.life-pay.ru/v1/invoices/
.
В заголовке запроса необходимо передать Content-Type: “application/json”. Авторизация осуществляется с помощью JWT Bearer, полученного в ответ на запрос https://api-ecom.life-pay.ru/v1/auth
Параметры запроса:
Параметр | Тип объекта | Описание |
---|---|---|
string {email} | email покупателя | |
phone | string | телефон покупателя |
is_recurrent | boolean | согласие на проведение повторных списаний |
send_receipt_through | string | отправить чек через (email, sms, nothing) |
split_data | Array of objects (Split invoice fields) | Данные о сплитованных платежах (опционально) |
order_id | string {<= 64 characters} | номер заказа на стороне интернет-магазина |
amount | number {float} | сумма в валюте |
currency_code | string Enum: "RUB" "EUR" "USD" | валюта (по умолчанию RUB) |
service_id | int {int32} | ИД сервиса (магазина) |
name | string {1...128} characters | наименование счета |
comment | string {1...512} characters | комментарий платежа |
В параметр "comment" можно помещать любую сопутствующую информацию. Информация переданная в данном параметре не отображается на странице оплаты и может использоваться для внутренних нужд магазина. Необязательный параметр.
Поля, возвращающиеся в случае некорректного запроса:
Параметр | Тип объекта | Описание |
---|---|---|
message | string | текст ошибки (опционально) |
status | string | статус сущности |
Примеры
- Python
- C#
- PHP
import http.client
import json
conn = http.client.HTTPSConnection("api-ecom.life-pay.ru")
headersList = {
"Accept": "*/*",
"User-Agent": "Thunder Client (https://www.thunderclient.com)",
"Content-Type": "application/json",
"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiIsImtpZCI6ImlrYW9paW91eXRBb3V5ckRTVVRZT0FGU2l5U2ZvdHVBZ3lsU0FEIiwiZXhwIjoxNjgwNzAyNjkyLjczMTU2MX0.eyJleHAiOjE2ODA3MDI2OTIuNzMxNTYxLCJpbnZvaWNlX2lkIjpudWxsLCJzZXJ2aWNlX2lkIjo4MDcxNX0.yqCiB2P0YsyYhksv0b-ceRSkZ8fykCo2_G-GOdouHxgjbw5-B6xE_4oV8o7uSM4HW9yssa4jZeOY8418B5u4Eg"
}
payload = json.dumps({
"name": "New invoice on service 80715",
"email": "acq_integration@life-test.ru",
"phone": 79999999999,
"is_recurrent": false,
"send_receipt_through": "nothing",
"order_id": "order-Wed135206",
"amount": 213,
"currency_code": "RUB",
"service_id": 80715
}
)
conn.request("POST", "/v1/invoices", payload, headersList)
response = conn.getresponse()
result = response.read()
print(result.decode("utf-8"))
var client = new HttpClient();
var request = new HttpRequestMessage();
request.RequestUri = new Uri("https://api-ecom.life-pay.ru/v1/invoices");
request.Method = HttpMethod.Post;
request.Headers.Add("Accept", "*/*");
request.Headers.Add("User-Agent", "Thunder Client (https://www.thunderclient.com)");
request.Headers.Add("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiIsImtpZCI6ImlrYW9paW91eXRBb3V5ckRTVVRZT0FGU2l5U2ZvdHVBZ3lsU0FEIiwiZXhwIjoxNjgwNzAyNjkyLjczMTU2MX0.eyJleHAiOjE2ODA3MDI2OTIuNzMxNTYxLCJpbnZvaWNlX2lkIjpudWxsLCJzZXJ2aWNlX2lkIjo4MDcxNX0.yqCiB2P0YsyYhksv0b-ceRSkZ8fykCo2_G-GOdouHxgjbw5-B6xE_4oV8o7uSM4HW9yssa4jZeOY8418B5u4Eg");
var bodyString = "{\"name\": \"New invoice on service 80715\", \"email\": \"acq_integration@life-test.ru\",\"phone\": 79999999999,\"is_recurrent\": false,\"send_receipt_through\": \"nothing\",\"order_id\": \"order-Wed135206\",\"amount\": 213,\"currency_code\": \"RUB\",\"service_id\": 80715}";
var content = new StringContent(bodyString, Encoding.UTF8, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
<?php
use Illuminate\Support\Facades\Http;
$response = Http::withBody(
'{
"name": "New invoice on service 80715",
"email": "acq_integration@life-test.ru",
"phone": 79999999999,
"is_recurrent": false,
"send_receipt_through": "nothing",
"order_id": "order-Wed135206",
"amount": 213,
"currency_code": "RUB",
"service_id": 80715
}
', 'json'
)
->withHeaders([
'Accept'=> '*/*',
'User-Agent'=> 'Thunder Client (https://www.thunderclient.com)',
'Content-Type'=> 'application/json',
'Authorization'=> 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiIsImtpZCI6ImlrYW9paW91eXRBb3V5ckRTVVRZT0FGU2l5U2ZvdHVBZ3lsU0FEIiwiZXhwIjoxNjgwNzAyNjkyLjczMTU2MX0.eyJleHAiOjE2ODA3MDI2OTIuNzMxNTYxLCJpbnZvaWNlX2lkIjpudWxsLCJzZXJ2aWNlX2lkIjo4MDcxNX0.yqCiB2P0YsyYhksv0b-ceRSkZ8fykCo2_G-GOdouHxgjbw5-B6xE_4oV8o7uSM4HW9yssa4jZeOY8418B5u4Eg',
])
->post('https://api-ecom.life-pay.ru/v1/invoices');
echo $response->body();
Получить параметры существующего Invoice
Для получения информации через API необходимо выполнить GET
запрос на URL: https://api-ecom.life-pay.ru/v1/invoices/\{invoice_id}/
, где {invoice_id} ИД вашего счёта из вебхук-нотфикации или из запроса "создать счёт на оплату".
В заголо вке запроса необходимо передать Content-Type: “application/json”. Авторизация осуществляется с помощью JWT Bearer, полученного в ответ на запрос https://api-ecom.life-pay.ru/v1/auth
В ответ возвращается JSON
с результатом обработки запроса
{
"name": "some-name",
"email": "dev@life-pay.ru",
"phone": 79999999999,
"is_recurrent": false,
"send_receipt_through": "email",
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"service_id": 1,
"short_id": 491883531,
"order_id": "my-order-01",
"status": "open",
"amount": 100,
"currency_code": "RUB",
"recurrent_url": "https://life-pay.ru"
}
Поля, возвращающиеся в случае успеха:
Параметр | Тип объекта | Описание |
---|---|---|
order_id | string {<= 64 characters} | номер заказа на стороне интернет-магазина |
amount | number {float} | сумма в валюте |
currency_code | string Enum: "RUB" "EUR" "USD" | валюта (по умолчанию RUB) |
service_id | int {int32} | ИД сервиса (магазина) |
name | string {1...128} characters | наименование счета |
id | string {uuid} | идентификатор счета |
short_id | string | инкрементальный идентификатор счета (удобно использовать при обращении в техподдержку) |
status | string | open - счет открыт; success - счет успешно оплачен; error - счет нельзя оплатить (истек) |
string {email} | email покупателя | |
phone | string | телефон покупателя |
is_recurrent | boolean | согласие на проведение повторных списаний |
send_receipt_through | string | отправить чек через (email, sms, nothing) |
recurrent_url | string {uri} | адрес с офертой для рекуррентных платежей |
split_data | Array of objects (Split invoice fields) | Данные о сплитованных платежах |
split_data
для осуществления Сплит-платежаПараметр | Тип объекта | Описание |
---|---|---|
order_id | string {<= 64 characters} | номер заказа на стороне интернет-магазина |
amount | number {float} | сумма в валюте |
comment | string {<= 64 characters} | комментарий |
merchant_id | string | идентификатор участника сплита |
Поля, возвращающиеся в случае некорректного запроса:
Параметр | Тип объекта | Описание |
---|---|---|
message | string | текст ошибки (опционально) |
status | string | статус сущности |
Примеры
- Python
- C#
- PHP
import http.client
conn = http.client.HTTPSConnection("api-ecom.life-pay.ru")
headersList = {
"Accept": "*/*",
"User-Agent": "Thunder Client (https://www.thunderclient.com)",
"Content-Type": "application/json",
"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiIsImtpZCI6ImlrYW9paW91eXRBb3V5ckRTVVRZT0FGU2l5U2ZvdHVBZ3lsU0FEIiwiZXhwIjoxNjgwNjk0MTAwLjcxMDYzfQ.eyJleHAiOjE2ODA2OTQxMDAuNzEwNjMsImludm9pY2VfaWQiOm51bGwsInNlcnZpY2VfaWQiOjgwNzE1fQ.XnVKYPmx0Ci-V2_gZt3C32JO3RdgJ75daMhTkRfjwTLQqiJv69HkY2pK5zjt23g1Et8Z_FEzB1z0fktJmahAlQ"
}
payload = ""
conn.request("GET", "/v1/invoices/b7c183e8-82cb-4edd-bf48-1e082dbb34ed", payload, headersList)
response = conn.getresponse()
result = response.read()
print(result.decode("utf-8"))
var client = new HttpClient();
var request = new HttpRequestMessage();
request.RequestUri = new Uri("https://api-ecom.life-pay.ru/v1/invoices/b7c183e8-82cb-4edd-bf48-1e082dbb34ed");
request.Method = HttpMethod.Get;
request.Headers.Add("Accept", "*/*");
request.Headers.Add("User-Agent", "Thunder Client (https://www.thunderclient.com)");
request.Headers.Add("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiIsImtpZCI6ImlrYW9paW91eXRBb3V5ckRTVVRZT0FGU2l5U2ZvdHVBZ3lsU0FEIiwiZXhwIjoxNjgwNjk0MTAwLjcxMDYzfQ.eyJleHAiOjE2ODA2OTQxMDAuNzEwNjMsImludm9pY2VfaWQiOm51bGwsInNlcnZpY2VfaWQiOjgwNzE1fQ.XnVKYPmx0Ci-V2_gZt3C32JO3RdgJ75daMhTkRfjwTLQqiJv69HkY2pK5zjt23g1Et8Z_FEzB1z0fktJmahAlQ");
var response = await client.SendAsync(request);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
<?php
use Illuminate\Support\Facades\Http;
$response = Http::withHeaders([
'Accept'=> '*/*',
'User-Agent'=> 'Thunder Client (https://www.thunderclient.com)',
'Content-Type'=> 'application/json',
'Authorization'=> 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiIsImtpZCI6ImlrYW9paW91eXRBb3V5ckRTVVRZT0FGU2l5U2ZvdHVBZ3lsU0FEIiwiZXhwIjoxNjgwNjk0MTAwLjcxMDYzfQ.eyJleHAiOjE2ODA2OTQxMDAuNzEwNjMsImludm9pY2VfaWQiOm51bGwsInNlcnZpY2VfaWQiOjgwNzE1fQ.XnVKYPmx0Ci-V2_gZt3C32JO3RdgJ75daMhTkRfjwTLQqiJv69HkY2pK5zjt23g1Et8Z_FEzB1z0fktJmahAlQ',
])
->get('https://api-ecom.life-pay.ru/v1/invoices/b7c183e8-82cb-4edd-bf48-1e082dbb34ed');
echo $response->body();
Обновить параметры счёта на оплату
Для изменения пар аметров счёта через API необходимо выполнить PATCH
запрос на URL: https://api-ecom.life-pay.ru/v1/invoices/\{invoice_id}/
, где {invoice_id} ИД вашего счёта из вебхук-нотфикации или из запроса "создать счёт на оплату".
В заголовке запроса необходимо передать Content-Type: “application/json”. Авторизация осуществляется с помощью JWT Bearer, полученного в ответ на запрос https://api-ecom.life-pay.ru/v1/auth
Параметры, доступные к изменению запросом:
Параметр | Тип объекта | Описание |
---|---|---|
string | email покупателя | |
phone | integer | телефон покупателя |
is_recurrent | boolean | False (по умолчанию) |
send_receipt_through | string | отправить чек через {email, sms, nothing} |
recurrent_schedule | object (опциональный) | расписание рекуррентного платежа (доступно только для счетов с согласием на проведение повторных списаний) |
recurrent_shedule
(опционально)Параметр | Тип объекта | Описание |
---|---|---|
interval | string | {day, week, month, quarter} |
frequency | integer | >=1 |
Ответ будет пустым, если изменения успешно применились. В противном случае вернётся JSON
с текстом ошибки.
Поля, возвращающиеся в случае некорректного запроса:
Параметр | Тип объекта | Описание |
---|---|---|
message | string | текст ошибки (опционально) |
status | string | статус сущности |
Примеры
- Python
- C#
- PHP
import http.client
import json
conn = http.client.HTTPSConnection("api-ecom.life-pay.ru")
headersList = {
"Accept": "*/*",
"User-Agent": "Thunder Client (https://www.thunderclient.com)",
"Content-Type": "application/json",
"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiIsImtpZCI6ImlrYW9paW91eXRBb3V5ckRTVVRZT0FGU2l5U2ZvdHVBZ3lsU0FEIiwiZXhwIjoxNjgwNjk0MTAwLjcxMDYzfQ.eyJleHAiOjE2ODA2OTQxMDAuNzEwNjMsImludm9pY2VfaWQiOm51bGwsInNlcnZpY2VfaWQiOjgwNzE1fQ.XnVKYPmx0Ci-V2_gZt3C32JO3RdgJ75daMhTkRfjwTLQqiJv69HkY2pK5zjt23g1Et8Z_FEzB1z0fktJmahAlQ"
}
payload = json.dumps({
"name": "some-name",
"email": "dev@life-pay.ru",
"phone": 79999999999,
"is_recurrent": false,
"send_receipt_through": "email"
})
conn.request("PATCH", "/v1/invoices/b7c183e8-82cb-4edd-bf48-1e082dbb34ed", payload, headersList)
response = conn.getresponse()
result = response.read()
print(result.decode("utf-8"))
var client = new HttpClient();
var request = new HttpRequestMessage();
request.RequestUri = new Uri("https://api-ecom.life-pay.ru/v1/invoices/b7c183e8-82cb-4edd-bf48-1e082dbb34ed");
request.Method = HttpMethod.Patch;
request.Headers.Add("Accept", "*/*");
request.Headers.Add("User-Agent", "Thunder Client (https://www.thunderclient.com)");
request.Headers.Add("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiIsImtpZCI6ImlrYW9paW91eXRBb3V5ckRTVVRZT0FGU2l5U2ZvdHVBZ3lsU0FEIiwiZXhwIjoxNjgwNjk0MTAwLjcxMDYzfQ.eyJleHAiOjE2ODA2OTQxMDAuNzEwNjMsImludm9pY2VfaWQiOm51bGwsInNlcnZpY2VfaWQiOjgwNzE1fQ.XnVKYPmx0Ci-V2_gZt3C32JO3RdgJ75daMhTkRfjwTLQqiJv69HkY2pK5zjt23g1Et8Z_FEzB1z0fktJmahAlQ");
var bodyString = "{ \"name\": \"some-name\", \"email\": \"dev@life-pay.ru\", \"phone\": 79999999999, \"is_recurrent\": false, \"send_receipt_through\": \"email\"}";
var content = new StringContent(bodyString, Encoding.UTF8, "application/json");
request.Content = content;
<?php
use Illuminate\Support\Facades\Http;
$response = Http::withBody(
'{
"name": "some-name",
"email": "dev@life-pay.ru",
"phone": 79999999999,
"is_recurrent": false,
"send_receipt_through": "email"
}', 'json'
)
->withHeaders([
'Accept'=> '*/*',
'User-Agent'=> 'Thunder Client (https://www.thunderclient.com)',
'Content-Type'=> 'application/json',
'Authorization'=> 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiIsImtpZCI6ImlrYW9paW91eXRBb3V5ckRTVVRZT0FGU2l5U2ZvdHVBZ3lsU0FEIiwiZXhwIjoxNjgwNjk0MTAwLjcxMDYzfQ.eyJleHAiOjE2ODA2OTQxMDAuNzEwNjMsImludm9pY2VfaWQiOm51bGwsInNlcnZpY2VfaWQiOjgwNzE1fQ.XnVKYPmx0Ci-V2_gZt3C32JO3RdgJ75daMhTkRfjwTLQqiJv69HkY2pK5zjt23g1Et8Z_FEzB1z0fktJmahAlQ',
])
->patch('https://api-ecom.life-pay.ru/v1/invoices/b7c183e8-82cb-4edd-bf48-1e082dbb34ed');
echo $response->body();
Принудительная проверка подписи активируется администратором Провайдера в настройках сервиса магазина.
Для рекуррентных операций необходимо передавать дополнительные поля, см описание работы рекуррентных платежей.