Общие сведения
Payout API — это универсальное API для выплат денежных средств от юридических лиц. Среди возможных инструментов выплат доступны:
- Банковские карты
- Электронные кошельки
- Система быстрых платежей (СБП)
- Банковские счета юридических лиц
- Прочие инструменты
Обзор API
Выплатное API построено на архитектуре REST, где данные и функциональные возможности считаются ресурсами, доступ к которым осуществляется с помощью универсальных идентификаторов ресурсов (URI).
Ресурсы обрабатываются с помощью набора простых, четко определенных операций. Клиенты и серверы обмениваются представлениями ресурсов, используя стандартизированный интерфейс и HTTP протокол.
Используемые HTTP методы
- GET — методы для получения информации о существующих объектах.
- PUT — методы для создания новых объектов, с присвоением идентификатора на стороне клиента.
- POST — методы, производящие действие над существующими объектами.
Формат данных
Ресурсы представляются в виде JSON объектов, при создании которых (HTTP метод PUT) необходимо указывать Content-Type: application/json
в заголовках запроса.
Способы передачи данных
- path — как элемент URI запроса. Однозначно определяет ресурс, с которым происходит взаимодействие (идентификатор партнера, выплаты и т.п.).
- query - как параметр запроса. Определяет специфичность типа запроса, например, параметры для постраничного вывода.
- header - как заголовок запроса. Определяет дополнительные параметры запроса, например, подпись запроса.
- body - как тело запроса, представленного в виде JSON объекта. Определяет детали создаваемого ресурса, применимо только для HTTP метода PUT.
Идемпотентность
Большинство методов обеспечивают физическую или логическую идемпотентность, т.е. многократное повторение действия эквивалентно однократному. Несмотря на то, что идемпотентные операции производят один и тот же результат на сервере, ответ сам по себе может не быть тем же самым (например, состояние ресурса может измениться между запросами).
Авторизация
В рамках технического взаимодействия доступно два вида авторизации:
- С помощью Bearer токена
- С использованием клиентского сертификата
Авторизация с помощью Bearer токена
GET /partner/payout/v2/agents/acme/providers HTTP/1.1
Accept: application/json
Authorization: Bearer <Token-Value>
Host: api.qiwi.com
curl -X GET \
-H "Authorization: Bearer <Token-Value>" \
https://api.qiwi.com/partner/payout/v2/agents/acme/providers
При данном типе авторизации все запросы партнера, при вызовах методов, авторизуются по известному только партнеру значению Bearer токена.
Токен указывается в HTTP-заголовке Authorization с префиксом Bearer, согласно спецификации RFC 6750. Например: Authorization: Bearer <Token-Value>.
Авторизация с использованием клиентского сертификата
GET /partner/payout/v2/agents/acme HTTP/1.1
Accept: application/json
Host: private-api.qiwi.com
curl -X GET \
--key private.key \
--cert certificate.crt \
--cacert ca.pem \
https://private-api.qiwi.com/partner/payout/v2/agents/acme/providers
При использовании клиентского сертификата все запросы партнера, при вызовах методов, дополняются передачей сертификата и закрытого ключа известного только партнеру.
В этом случае на стороне клиента заголовок Authorization не формируется и запрос сопровождается цифровым сертификатом формата X.509 v3, согласно спецификации RFC 5280.
Версионирование
В универсальном выплатном API Payout поддерживается версионирование методов. URL для вызова метода содержит суффикс, определяющий требуемую версию метода:
https://api.qiwi.com/partner/payout/v<version>/<method>
На текущий момент поддерживается две версии API Payout — 1
и 2
. Актуальной текущей редакцией протокола выплат является 2
версия. В описании методов явно указываются версии API для использования.
Точки доступа к API
Тестовая среда
Для вызовов методов API в тестовой среде, в зависимости от типа шифрования и способа авторизации, используются следующие точки доступа:
Шифрование | Авторизация | Точка доступа |
---|---|---|
RSA | Токен | https://api-test.qiwi.com/ |
RSA | Сертификат | https://private-api-test.qiwi.com/ |
ГОСТ | Токен | https://api-gost-test.qiwi.com/ |
ГОСТ | Сертификат | https://private-api-gost-test.qiwi.com/ |
Производственная среда
Для вызовов методов API в производственной среде, в зависимости от типа шифрования и способа авторизации, используются следующие точки доступа:
Шифрование | Авторизация | Точка доступа |
---|---|---|
RSA | Токен | https://api.qiwi.com/ |
RSA | Сертификат | https://private-api.qiwi.com/ |
ГОСТ | Токен | https://api-gost.qiwi.com/ |
ГОСТ | Сертификат | https://private-api-gost.qiwi.com/ |
Сервисные методы
Методы для работы со списком доступных провайдеров для выплат, их параметрами, лимитами, а также получения баланса агента.
Баланс основного счета
GET /partner/payout/v2/agents/acme/balance HTTP/1.1
Accept: application/json
Authorization: Bearer <Token-Value>
Host: api.qiwi.com
curl -X GET \
-H "Authorization: Bearer <Token-Value>" \
https://api.qiwi.com/partner/payout/v2/agents/acme/balance
Используется для получения текущего баланса основного счета.
HTTP метод: | GET |
URI ресурса: | /partner/payout/v2/agents/{agentId}/balance |
Параметры
Параметр | Положение | ✓\× | Тип | Описание |
---|---|---|---|---|
agentId | path | ✓ | string | Уникальный идентификатор агента |
Ответ
Ответ
HTTP/1.1 200 OK
Content-Type: application/json
{
"balance": {
"currency": "RUB",
"value": "1000000.00"
},
"overdraft": {
"currency": "RUB",
"value": "500000.00"
},
"available": {
"currency": "RUB",
"value": "1500000.00"
}
}
Успешный ответ содержит текущий баланс основного счета в виде объекта Balance.
Ответ с HTTP кодом ошибки (4xx
, 5xx
) содержит объект Error, для подробной информации следует обратиться к разделу Обработка ошибок.
Баланс всех счетов
GET /partner/payout/v2/agents/acme/balances HTTP/1.1
Accept: application/json
Authorization: Bearer <Token-Value>
Host: api.qiwi.com
curl -X GET \
-H "Authorization: Bearer <Token-Value>" \
https://api.qiwi.com/partner/payout/v2/agents/acme/balances
Используется для получения текущих балансов всех счетов.
HTTP метод: | GET |
URI ресурса: | /partner/payout/v2/agents/{agentId}/balances |
Параметры
Параметр | Положение | ✓\× | Тип | Описание |
---|---|---|---|---|
agentId | path | ✓ | string | Уникальный идентификатор агента |
Ответ
Ответ
HTTP/1.1 200 OK
Content-Type: application/json
{
"RUB": {
"balance": {
"currency": "RUB",
"value": "1000000.00"
},
"available": {
"currency": "RUB",
"value": "1000000.00"
}
}
}
Успешный ответ содержит набор балансов всех счетов в виде отношения Currency и Balance.
Ответ с HTTP кодом ошибки (4xx
, 5xx
) содержит объект Error, для подробной информации следует обратиться к разделу Обработка ошибок.
Список провайдеров
GET /partner/payout/v2/agents/acme/providers HTTP/1.1
Accept: application/json
Authorization: Bearer <Token-Value>
Host: api.qiwi.com
curl -X GET \
-H "Authorization: Bearer <Token-Value>" \
https://api.qiwi.com/partner/payout/v2/agents/acme/providers
Используется для получения списка доступных провайдеров для выплат.
HTTP метод: | GET |
URI ресурса: | /partner/payout/v2/agents/{agentId}/providers |
Параметры
Параметр | Положение | ✓\× | Тип | Описание |
---|---|---|---|---|
agentId | path | ✓ | string | Уникальный идентификатор агента |
Ответ
Ответ
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"providerCode": "bank-card-russia",
"name": "Банковские карты РФ"
},
{
"providerCode": "qiwi-wallet",
"name": "Qiwi кошелек"
}
]
Успешный ответ содержит последовательный массив элементов провайдеров объекта Provider.
Ответ с HTTP кодом ошибки (4xx
, 5xx
) содержит объект Error, для подробной информации следует обратиться к разделу Обработка ошибок.
Информация о провайдере
GET /partner/payout/v2/agents/acme/providers/qiwi-wallet HTTP/1.1
Accept: application/json
Authorization: Bearer <Token-Value>
Host: api.qiwi.com
curl -X GET \
-H "Authorization: Bearer <Token-Value>" \
https://api.qiwi.com/partner/payout/v2/agents/acme/providers/qiwi-wallet
Используется для получения расширенной информации о провайдере.
HTTP метод: | GET |
URI ресурса: | /partner/payout/v2/agents/{agentId}/providers/{providerCode} |
Параметры
Параметр | Положение | ✓\× | Тип | Описание |
---|---|---|---|---|
agentId | path | ✓ | string | Уникальный идентификатор агента |
providerCode | path | ✓ | ProviderCode | Уникальный идентификатор провайдера |
Ответ
Ответ
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "Qiwi Wallet",
"legalName": "Qiwi Bank JSC",
"amountLimits": {
"RUB": {
"min": "1.00",
"max": "600000.00"
}
},
"parameters": [
{
"extKey": "account",
"required": true,
"description": "QW user's account",
"validationPattern": "7\\d{10}"
}
],
"inn": "3123011520",
"contactDetails": {
"address": "Russia, 117648, Moscow, md. Chertanovo Severnoe, 1A, bldg. 1",
"phoneNumber": "8-800-707-77-59"
}
}
Успешный ответ содержит расширенную информацию о провайдере в виде объекта ProviderInfo.
Ответ с HTTP кодом ошибки (4xx
, 5xx
) содержит объект Error, для подробной информации следует обратиться к разделу Обработка ошибок.
Платежные методы
Методы для работы с платежами, в том числе создание, проведение и получение информации о платеже.
Создание платежа
PUT /partner/payout/v2/agents/acme/payments/0123456789 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <Token-Value>
Host: api.qiwi.com
{
"amount": {
"value": "2.00",
"currency": "RUB"
},
"recipientDetails": {
"providerCode": "qiwi-wallet",
"fields": {
"account": "79010001122"
}
},
"webhookUrl": "https://acme.inc/webhook",
"customFields": {
"user": "Wile E. Coyote"
}
}
curl -X PUT \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <Token-Value>" \
https://api.qiwi.com/partner/payout/v2/agents/acme/payments/0123456789 \
-d '{
"amount": {
"value": "2.00",
"currency": "RUB"
},
"recipientDetails": {
"providerCode": "qiwi-wallet",
"fields": {
"account": "79010001122"
}
},
"webhookUrl": "https://acme.inc/webhook",
"customFields": {
"user": "Wile E. Coyote"
}
}'
Используется для создания нового платежа.
HTTP метод: | PUT |
URI ресурса: | /partner/payout/v2/agents/{agentId}/payments/{paymentId} |
Параметры
Параметр | Положение | ✓\× | Тип | Описание |
---|---|---|---|---|
agentId | path | ✓ | string | Уникальный идентификатор агента |
paymentId | path | ✓ | string | Уникальный идентификатор платежа от 1 до 36 символов |
payload | body | ✓ | PaymentPayload | Параметры создаваемого платежа |
Ответ
Ответ
HTTP/1.1 200 OK
Content-Type: application/json
{
"paymentId": "0123456789",
"creationDateTime": "2023-01-17T15:05:51+03:00",
"expirationDateTime": "2023-01-17T15:35:51+03:00",
"status": {
"value": "READY",
"changedDateTime": "2023-01-17T15:05:51+03:00"
},
"amount": {
"currency": "RUB",
"value": "2.00"
},
"recipientDetails": {
"providerCode": "qiwi-wallet",
"fields": {
"account": "79010001122"
}
},
"commission": {
"currency": "RUB",
"value": "0.04"
},
"webhookUrl": "https://acme.inc/webhook",
"customFields": {
"user": "Wile E. Coyote"
}
}
Успешный ответ содержит информацию по созданному платежу в виде объекта Payment.
Ответ с HTTP кодом ошибки (4xx
, 5xx
) содержит объект Error, для подробной информации следует обратиться к разделу Обработка ошибок.
Проведение платежа
POST /partner/payout/v2/agents/acme/payments/0123456789/execute HTTP/1.1
Accept: application/json
Authorization: Bearer <Token-Value>
Host: api.qiwi.com
curl -X POST \
-H "Authorization: Bearer <Token-Value>" \
https://api.qiwi.com/partner/payout/v2/agents/acme/payments/0123456789/execute
Используется для проведения платежа.
HTTP метод: | POST |
URI ресурса: | /partner/payout/v2/agents/{agentId}/payments/{paymentId}/execute |
Параметры
Параметр | Положение | ✓\× | Тип | Описание |
---|---|---|---|---|
agentId | path | ✓ | string | Уникальный идентификатор агента |
paymentId | path | ✓ | string | Уникальный идентификатор платежа от 1 до 36 символов |
Ответ
Ответ
HTTP/1.1 200 OK
Content-Type: application/json
{
"paymentId": "0123456789",
"creationDateTime": "2023-01-17T15:05:51+03:00",
"expirationDateTime": "2023-01-17T15:35:51+03:00",
"status": {
"value": "COMPLETED",
"changedDateTime": "2023-01-17T15:06:00+03:00"
},
"amount": {
"currency": "RUB",
"value": "2.00"
},
"recipientDetails": {
"providerCode": "qiwi-wallet",
"fields": {
"account": "79010001122"
}
},
"commission": {
"currency": "RUB",
"value": "0.04"
},
"webhookUrl": "https://acme.inc/webhook",
"customFields": {
"user": "Wile E. Coyote"
}
}
Успешный ответ содержит информацию по проведенному платежу в виде объекта Payment.
Ответ с HTTP кодом ошибки (4xx
, 5xx
) содержит объект Error, для подробной информации следует обратиться к разделу Обработка ошибок.
Список платежей
GET /partner/payout/v2/agents/acme/payments HTTP/1.1
Accept: application/json
Authorization: Bearer <Token-Value>
Host: api.qiwi.com
curl -X GET \
-H "Authorization: Bearer <Token-Value>" \
https://api.qiwi.com/partner/payout/v2/agents/acme/payments
Используется для получения списка последних платежей. Без указания фильтров from
и to
поиск платежей осуществляется за последние 50 дней.
HTTP метод: | GET |
URI ресурса: | /partner/payout/v2/agents/{agentId}/payments |
Параметры
Параметр | Положение | ✓\× | Тип | Описание |
---|---|---|---|---|
agentId | path | ✓ | string | Уникальный идентификатор агента |
limit | query | × | integer | Ограничение на число платежей, возвращаемое в ответе, по умолчанию 20 |
offset | query | × | integer | Число платежей, которое надо пропустить, по умолчанию 0 |
from | query | × | date | Дата начала интервала поиска в формате YYYY-MM-DD |
to | query | × | date | Дата конца интервала поиска в формате YYYY-MM-DD |
Ответ
Ответ
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"paymentId": "0123456789-01",
"creationDateTime": "2023-01-17T15:05:51+03:00",
"expirationDateTime": "2023-01-17T15:35:51+03:00",
"status": {
"value": "COMPLETED",
"changedDateTime": "2023-01-17T15:06:00+03:00"
},
"amount": {
"currency": "RUB",
"value": "2.00"
},
"recipientDetails": {
"providerCode": "qiwi-wallet",
"fields": {
"account": "79010001122"
}
},
"commission": {
"currency": "RUB",
"value": "0.04"
},
"webhookUrl": "https://acme.inc/webhook",
"customFields": {
"user": "Wile E. Coyote"
}
},
{
"paymentId": "0123456789-02",
"creationDateTime": "2023-01-18T15:05:51+03:00",
"expirationDateTime": "2023-01-18T15:35:51+03:00",
"status": {
"value": "COMPLETED",
"changedDateTime": "2023-01-18T15:06:00+03:00"
},
"amount": {
"currency": "RUB",
"value": "40.00"
},
"recipientDetails": {
"providerCode": "qiwi-wallet",
"fields": {
"account": "79010001122"
}
},
"commission": {
"currency": "RUB",
"value": "0.80"
},
"webhookUrl": "https://acme.inc/webhook",
"customFields": {
"user": "Wile E. Coyote"
}
}
]
Успешный ответ содержит коллекцию платежей Payment согласно условиям заданного поиска.
Ответ с HTTP кодом ошибки (4xx
, 5xx
) содержит объект Error, для подробной информации следует обратиться к разделу Обработка ошибок.
Информация по платежу
GET /partner/payout/v2/agents/acme/payments/0123456789-02 HTTP/1.1
Accept: application/json
Authorization: Bearer <Token-Value>
Host: api.qiwi.com
curl -X GET \
-H "Authorization: Bearer <Token-Value>" \
https://api.qiwi.com/partner/payout/v2/agents/acme/payments/0123456789-02
Используется для получения информации о платеже. Поиск платежа осуществляется за последние 50 дней.
HTTP метод: | GET |
URI ресурса: | /partner/payout/v2/agents/{agentId}/payments/{paymentId} |
Параметры
Параметр | Положение | ✓\× | Тип | Описание |
---|---|---|---|---|
agentId | path | ✓ | string | Уникальный идентификатор агента |
paymentId | path | ✓ | string | Уникальный идентификатор платежа от 1 до 36 символов |
Ответ
Ответ
HTTP/1.1 200 OK
Content-Type: application/json
{
"paymentId": "0123456789-02",
"creationDateTime": "2023-01-18T15:05:51+03:00",
"expirationDateTime": "2023-01-18T15:35:51+03:00",
"status": {
"value": "COMPLETED",
"changedDateTime": "2023-01-18T15:06:00+03:00"
},
"amount": {
"currency": "RUB",
"value": "40.00"
},
"recipientDetails": {
"providerCode": "qiwi-wallet",
"fields": {
"account": "79010001122"
}
},
"commission": {
"currency": "RUB",
"value": "0.80"
},
"webhookUrl": "https://acme.inc/webhook",
"customFields": {
"user": "Wile E. Coyote"
}
}
Успешный ответ содержит информацию по платежу в виде объекта Payment.
Ответ с HTTP кодом ошибки (4xx
, 5xx
) содержит объект Error, для подробной информации следует обратиться к разделу Обработка ошибок.
Уведомления
Методы для работы с уведомлениями партнера об изменениях в системе, в том числе уведомлениях об изменении статуса платежа.
Уведомление о статусе платежа
POST /webhook HTTP/1.1
Accept: application/json
Content-Type: application/json
QIWI-Signature: <Sign-Value>
Host: acme.inc
{
"agentId": "acme",
"paymentId": "c0d85b0b-a528-9c66-4a15-cb7a12eda9d6",
"status": {
"value": "FAILED",
"changedDateTime": "2023-01-18T13:00:28Z",
"errorCode": "INTERNAL_ERROR",
"errorMessage": "Some reason"
},
"amount": {
"value": "200.00",
"currency": "RUB"
},
"billingDetails": {
"transactionId": "20221101000019",
"rrn": "A123456",
"accountNumber": "4950001122",
"accountInfo": "Ivanov I.P.",
"receiptUrl": "https://billing.inc/receipt/6f5ec8cc-69ed-4fe5-aa2c-28850fc87ab2"
}
}
curl -X POST \
-H "Content-Type: application/json" \
-H "QIWI-Signature: <Sign-Value>" \
https://acme.inc/webhook \
-d '{
"agentId": "acme",
"paymentId": "c0d85b0b-a528-9c66-4a15-cb7a12eda9d6",
"status": {
"value": "FAILED",
"changedDateTime": "2023-01-18T13:00:28Z",
"errorCode": "INTERNAL_ERROR",
"errorMessage": "Some reason"
},
"amount": {
"value": "200.00",
"currency": "RUB"
},
"billingDetails": {
"transactionId": "20221101000019",
"rrn": "A123456",
"accountNumber": "4950001122",
"accountInfo": "Ivanov I.P.",
"receiptUrl": "https://billing.inc/receipt/6f5ec8cc-69ed-4fe5-aa2c-28850fc87ab2"
}
}'
Используется для уведомления партнера об изменении статуса платежа.
HTTP метод: | POST |
URI ресурса: | {webhookAddressUrl} |
Параметры
Параметр | Положение | ✓\× | Тип | Описание |
---|---|---|---|---|
webhookAddressUrl | path | ✓ | string | URL адрес для уведомлений со стороны партнера |
QIWI-Signature | header | ✓ | string | Подпись запроса, см. алгоритм вычисления подписи |
payload | body | ✓ | Webhook | Информация о платеже |
Алгоритм вычисления подписи запроса
Для вычисления подписи QIWI-Signature
используется следующий алгоритм:
- Сформировать строку для подписи вида:
{agentId}|{paymentId}|{status.value}|{amount.value}|{amount.currency}
.
Где каждый из{param}
является значением соответствующего параметра path в теле уведомления Webhook и затем склеены между собой символом|
. - Вычислить
HMAC
с хэш-функциейSHA256
от сформированной строки и секретного ключа как ключа шифрования. - Передать получившуюся подпись в заголовке запроса в поле
QIWI-Signature
.
Ответ
Тело ответа не анализируется, система ориентируется только на коды состояния HTTP.
Любой код, отличный от 2xx
, рассматривается как ошибка, система продолжит повторять уведомление.
Обработка ошибок
Согласно REST архитектуре верхнеуровневые ошибки обработки запросов передаются в коде состояния HTTP RFC 2068. В универсальном выплатном API применяются следующие HTTP коды:
Код | Описание |
---|---|
200 | Успешно или условно успешно |
400 | Параметры запроса некорректны, запрос не обработан |
401 | Токен или сертификат не предоставлен или невалиден |
403 | Недостаточно прав для выполнения запроса |
404 | Ресурс с запрошенным идентификатором не найден |
5xx | Ошибка при обработке запроса |
Детальная расшифровка результата обработки запроса может передаваться в поле errorCode
запрошенного (возвращаемого) объекта. В случае обработки запроса и невозможности вернуть корректный ответ, API возвращает объект Error с детальной информацией об ошибке.
При получении ошибки из перечня 5xx
в результате обработки платежных методов, особенно запроса проведения платежа, уточняйте результат обработки с помощью запроса информации по платежу.
Модель Error
{
"serviceName": "payout-api",
"errorCode": "internal.error",
"userMessage": "Описание ошибки для отображения пользователя",
"description": "Описание ошибки",
"traceId": "aa99e984dd230404",
"dateTime": "2023-01-01T00:23:46+03:00",
"cause": {
"amount": ["Payout's amount is greater than maximum available"]
}
}
Сводная информация об ошибке.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
serviceName | ✓ | string | Идентификатор сервиса |
errorCode | ✓ | ErrorCode | Код ошибки |
userMessage | ✓ | string | Описание ошибки для пользователя |
description | ✓ | string | Описание ошибки |
traceId | ✓ | string | Уникальный идентификатор запроса |
dateTime | ✓ | dateTime | Дата возникновения ошибки в формате YYYY-MM-DDThh:mm:ssTZD |
cause | × | map[string, array[string]] | Дополнительные детали ошибки |
Модель ErrorCode
Значение errorCode
имеет доменную структуру с разделителем .
(точка). Слева направо понижается уровень причины (системы), вызвавшей ошибку.
Ошибки уровня авторизации
Значение | Описание |
---|---|
auth.error | Общая ошибка авторизации |
auth.failed | Ошибка авторизации: токен/сертификат не предоставлен или не найден |
auth.forbidden | Доступ запрещен: нет прав для доступа к запрашиваемому ресурсу |
Ошибки уровня валидации
Значение | Описание |
---|---|
payout.bad.request | Некорректный запрос: обязательные параметры отсутствуют или указаны некорректно |
payout.resource.exists | Ресурс уже существует: ресурс с запрашиваемым идентификатором уже существует |
payout.payment.not-found | Платеж не найден: платеж по запрашиваемому идентификатору не найден |
payout.provider.not-found | Провайдер не найден: провайдер по запрашиваемому идентификатору не найден |
validation.error | Ошибка валидации запроса, некорректный JSON |
Ошибки уровня проведения платежа
Значение | Описание |
---|---|
payout.provider.forbidden | Провайдер запрещен: платежи по указанному провайдеру запрещены |
payout.provider.unavailable | Провайдер недоступен: платежи по указанному провайдеру временно невозможны |
payout.billing.declined | Платеж отклонен: получен отказ от информационной системы получателя в приеме платежа |
payout.billing.timeout | Таймаут запроса: не получен ответ от информационной системы получателя |
Ошибки уровня финансовых и законодательных рисков
Значение | Описание |
---|---|
payout.fraud.violated | Платеж запрещен: нарушены правила финансового или фрод-мониторинга |
payout.legislation.prohibited | Платеж запрещен: платеж запрещен согласно требованиям законодательства РФ |
Общие ошибки
Значение | Описание |
---|---|
payout.insufficient-funds | Недостаточно средств: недостаточно денежных средств на балансе партнера |
payout.internal.error | Внутренняя ошибка |
internal.error | Внутренняя ошибка |
Тестовые реквизиты
Для тестовых платежных запросов используйте следующие наборы данных:
- Для провайдеров bank-card-russia, self-employed-bank-card, self-employed-bank-card-tax-payment, bank-card-ruslom:
- Номер карты:
4874154455550061
, - Номер карты для получения статуса платежа COMPLETED:
1000000000000001
, - Номер карты для получения статуса платежа FAILED:
1000000000000002
, - Номер карты для получения статуса платежа IN_PROGRESS:
1000000000000003
.
- Номер карты:
- Для провайдеров bank-card-token, self-employed-card-token:
- Токен номера карты:
969cb317-ef77-4a4d-8977-0d30c5d89e3d
, - Токен номера карты для получения статуса платежа COMPLETED:
taccount-case-test-resp-success00000
, - Токен номера карты для получения статуса платежа FAILED:
taccount-case-test-resp-failed000000
, - Токен номера карты для получения статуса платежа IN_PROGRESS:
taccount-case-test-resp-suspended000
.
- Токен номера карты:
- Для выплат самозанятым на провайдеров self-employed-bank-card, self-employed-card-token и self-employed-bank-card-tax-payment:
- ИНН:
123456789012
.
- ИНН:
- Для выплат за вторсырьё самозанятым на провайдера self-employed-bank-card-recycling:
- ИНН:
123456789012
.
- ИНН:
- Для выплат по СБП на провайдеров sbp-b2c, sbp-mfo и self-employed-sbp:
- Номер телефона:
70070310009
, - Банк получателя:
1crt88888881
, - Сумма платежа:
10007.03
, - Фамилия получателя:
Петров
, - Имя получателя:
Петр
, - Отчество получателя:
Петрович
.
- Номер телефона:
- Для выплат за вторсырье по СБП на провайдера sbp-recycling:
- Номер телефона:
70070310009
, - Банк получателя:
1crt88888881
, - Сумма платежа:
10007.03
, - Фамилия получателя:
Петров
, - Имя получателя:
Петр
, - Отчество получателя:
Петрович
, - Основание выплаты:
ПСА 123
.
- Номер телефона:
Модели данных
Описание моделей данных, применяемых в API.
Модель Balance
{
"balance": {
"currency": "RUB",
"value": "1000000.00"
},
"overdraft": {
"currency": "RUB",
"value": "500000.00"
},
"available": {
"currency": "RUB",
"value": "1500000.00"
}
}
Информация о балансе счета.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
balance | × | Money | Текущий баланс |
overdraft | × | Money | Разрешенное превышение баланса |
available | ✓ | Money | Общий доступный лимит |
Модель Money
{
"currency": "RUB",
"value": "1000000.00"
}
Информация о сумме с указанием валюты.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
currency | ✓ | Currency | Код валюты |
value | ✓ | string | Сумма в формате числа c разделителем . (точка) и двумя цифрами после |
Модель Currency
Перечисление доступных кодов валют согласно спецификации ISO 4217 (буквенный код Alpha-3).
Значение | Описание |
---|---|
RUB | Российский рубль |
Модель Provider
{
"code" : "qiwi-wallet",
"name" : "Qiwi кошелек"
}
Краткая информация о провайдере.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
code | ✓ | ProviderCode | Уникальный идентификатор провайдера |
name | ✓ | string | Наименование провайдера |
Модель ProviderInfo
{
"name": "Qiwi Wallet",
"legalName": "Qiwi Bank JSC",
"amountLimits": {
"RUB": {
"min": "1.00",
"max": "600000.00"
}
},
"parameters": [
{
"extKey": "account",
"required": true,
"description": "QW user's account",
"validationPattern": "7\\d{10}"
}
],
"inn": "3123011520",
"contactDetails": {
"address": "Russia, 117648, Moscow, md. Chertanovo Severnoe, 1A, bldg. 1",
"phoneNumber": "8-800-707-77-59"
}
}
Расширенная информация о провайдере.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
name | ✓ | string | Наименование провайдера |
legalName | ✓ | string | Юридическое наименование провайдера |
amountLimits | ✓ | map[Currency, Limit] | Набор разрешенных сумм для каждой из доступных валют |
parameters | ✓ | set of Parameter | Используемые при вызове платежных методов параметры |
inn | × | string | ИНН провайдера |
contactDetails | × | Contact | Контактные данные провайдера |
Модель Parameter
{
"extKey": "account",
"required": true,
"description": "QW user's account",
"validationPattern": "7\\d{10}"
}
Описание параметра платежа для провайдера.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
extKey | ✓ | string | Код параметра |
required | ✓ | boolean | Признак обязательности |
description | ✓ | string | Описание параметра |
validationPattern | × | string | Шаблон заполнения |
Модель Contact
{
"address": "Russia, 117648, Moscow, md. Chertanovo Severnoe, 1A, bldg. 1",
"phoneNumber": "8-800-707-77-59"
}
Контактные данные контрагента.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
address | × | string | Почтовый адрес |
phoneNumber | × | string | Телефонный номер |
Модель CurrencyLimit
{
"currency": "RUB",
"min": "1.00",
"max": "600000.00"
}
Ограничения на сумму платежа с указанием валюты.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
currency | ✓ | Currency | Код валюты |
min | ✓ | string | Минимальная разрешенная сумма (включительно) |
max | ✓ | string | Максимально разрешенная сумма (включительно) |
Модель Limit
{
"min": "1.00",
"max": "600000.00"
}
Ограничения на сумму платежа без указания валюты.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
min | ✓ | string | Минимальная разрешенная сумма (включительно) |
max | ✓ | string | Максимально разрешенная сумма (включительно) |
Модель PaymentPayload
{
"amount": {
"value": "2.00",
"currency": "RUB"
},
"recipientDetails": {
"providerCode": "qiwi-wallet",
"fields": {
"account": "79010001122"
}
},
"webhookUrl": "https://acme.inc/webhook",
"customFields": {
"user": "Wile E. Coyote"
}
}
Параметры создаваемого платежа.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
amount | ✓ | Money | Сумма платежа |
recipientDetails | ✓ | RecipientDetails | Параметры получателя платежа |
webhookUrl | × | string | URL адрес для уведомлений |
customFields | × | map[string, string] | Дополнительные параметры для сопровождения платежа |
Модель RecipientDetails
{
"providerCode": "qiwi-wallet",
"fields": {
"account": "79010001122"
}
}
Параметры получателя платежа (направления выплаты).
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
providerCode | ✓ | Provider.code | Уникальный идентификатор провайдера |
fields | ✓ | map[Parameter.extKey, string] | Набор параметров получателя платежа |
Модель ProviderCode
Перечисление возможных кодов провайдеров.
Значение | Описание |
---|---|
bank-card-russia | Выплаты на карты РФ |
bank-card-token | Выплаты на карты РФ по токену |
self-employed-bank-card | Выплаты на карты самозанятым |
self-employed-card-token | Выплаты на карты самозанятым по токену |
self-employed-bank-card-tax-payment | Выплаты на карты самозанятым с уплатой налога |
self-employed-bank-card-recycling | Выплаты на карты самозанятым за вторсырье |
self-employed-bank-card-qmm | Выплаты на карты QIWI Mir Metal самозанятым |
self-employed-sbp | Выплаты по СБП самозанятым с регистрацией налога |
qiwi-wallet | Выплаты на QIWI Кошелёк |
wl-topup | Пополнение счета клиента продукта White Label |
bank-card-ruslom | Выплаты на карты за металлолом |
bank-card-ruslom-qmm | Выплаты на карты QIWI Mir Metal за металлолом |
sbp-b2c | Выплаты по СБП |
sbp-mfo | Выплаты по СБП с проверкой ФИО для МФО |
sbp-recycling | Выплаты по СБП за вторсырье с обязательным указанием основания выплаты |
legal-entity-bank-account | Выплаты на банковские счета юридических лиц |
Модель ProviderFields
Информация о параметрах платежа в разрезе провайдера.
Выплаты на банковские карты РФ "providerCode": "bank-card-russia"
{
"providerCode": "bank-card-russia",
"fields": {
"pan": "4111111111111111"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
pan | ✓ | string | Номер карты получателя |
cardholder_name | × | string | Имя получателя |
cardholder_lastname | × | string | Фамилия получателя |
description | × | string | Описание оказанной услуги |
Выплаты на банковские карты РФ по токену "providerCode": "bank-card-token"
{
"providerCode": "bank-card-token",
"fields": {
"account": "ac465705-16f9-477d-a194-6641e0e8e90e"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
account | ✓ | string | Токен номера карты |
cardholder_name | × | string | Имя получателя |
cardholder_lastname | × | string | Фамилия получателя |
description | × | string | Описание оказанной услуги |
Выплаты на банковские карты самозанятым "providerCode": "self-employed-bank-card"
{
"providerCode": "self-employed-bank-card",
"fields": {
"inn": "111111111111",
"account": "4111111111111111",
"incomeType": "FROM_LEGAL_ENTITY",
"description": "Платеж",
"name": "Имя получателя",
"lastname": "Фамилия получателя",
"customerInn": "7777777777",
"customerOrganization": "Наименование организации, оплачивающей услугу"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
account | ✓ | string | Номер карты получателя |
description | ✓ | string | Описание оказанной услуги |
inn | ✓ | string | ИНН самозанятого |
incomeType | ✓ | enum | Источник дохода (FROM_LEGAL_ENTITY , FROM_INDIVIDUAL ) |
name | × | string | Имя получателя |
lastname | × | string | Фамилия получателя |
customerInn | × | string | ИНН организации, оплачивающей услугу |
customerOrganization | × | string | Наименование организации, оплачивающей услугу |
Выплаты на банковские карты самозанятым по токену providerCode: "self-employed-card-token"
{
"providerCode": "self-employed-card-token",
"fields": {
"inn": "111111111111",
"account": "ac465705-16f9-477d-a194-6641e0e8e90e",
"incomeType": "FROM_LEGAL_ENTITY",
"description": "Платеж",
"name": "Имя получателя",
"lastname": "Фамилия получателя",
"customerInn": "7777777777",
"customerOrganization": "Наименование организации, оплачивающей услугу"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
account | ✓ | string | Токен номера карты |
description | ✓ | string | Описание оказанной услуги |
inn | ✓ | string | ИНН самозанятого |
incomeType | ✓ | enum | Источник дохода (FROM_LEGAL_ENTITY , FROM_INDIVIDUAL ) |
name | × | string | Имя получателя |
lastname | × | string | Фамилия получателя |
customerInn | × | string | ИНН организации, оплачивающей услугу |
customerOrganization | × | string | Наименование организации, оплачивающей услугу |
Выплаты на банковские карты самозанятым с уплатой налога providerCode: "self-employed-bank-card-tax-payment"
{
"providerCode": "self-employed-bank-card-tax-payment",
"fields": {
"inn": "111111111111",
"account": "4111111111111111",
"incomeType": "FROM_LEGAL_ENTITY",
"description": "Платеж",
"name": "Имя получателя",
"lastname": "Фамилия получателя",
"customerInn": "7777777777",
"customerOrganization": "Наименование организации, оплачивающей услугу"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
account | ✓ | string | Номер карты получателя |
description | ✓ | string | Описание оказанной услуги |
inn | ✓ | string | ИНН самозанятого |
incomeType | ✓ | enum | Источник дохода (FROM_LEGAL_ENTITY , FROM_INDIVIDUAL ) |
name | × | string | Имя получателя |
lastname | × | string | Фамилия получателя |
customerInn | × | string | ИНН организации, оплачивающей услугу |
customerOrganization | × | string | Наименование организации, оплачивающей услугу |
Выплаты на банковские карты самозанятым за вторсырьё providerCode: "self-employed-bank-card-recycling"
{
"providerCode": "self-employed-bank-card-recycling",
"fields": {
"inn": "111111111111",
"account": "4111111111111111",
"incomeType": "FROM_LEGAL_ENTITY",
"description": "ПСА 1001",
"firstName": "Имя получателя",
"lastname": "Фамилия получателя",
"middleName": "Отчество получателя",
"customerInn": "7777777777",
"customerOrganization": "Наименование организации, оплачивающей услугу"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
account | ✓ | string | Номер карты получателя |
description | ✓ | string | Номер приёмо-сдаточного акта или другое описание оказанной услуги |
inn | ✓ | string | ИНН самозанятого |
incomeType | ✓ | enum | Источник дохода (FROM_LEGAL_ENTITY – юридическое лицо, FROM_INDIVIDUAL – физическое лицо) |
firstName | ✓ | string | Имя получателя |
lastName | ✓ | string | Фамилия получателя |
middleName | × | string | Отчество получателя |
customerInn | × | string | ИНН организации, оплачивающей услугу |
customerOrganization | × | string | Наименование организации, оплачивающей услугу |
Выплаты на карты QIWI Mir Metal самозанятым "providerCode": "self-employed-bank-card-qmm"
{
"providerCode": "self-employed-bank-card-qmm",
"fields": {
"inn": "111111111111",
"account": "4111111111111111",
"incomeType": "FROM_LEGAL_ENTITY",
"description": "Платеж",
"name": "Имя получателя",
"lastname": "Фамилия получателя",
"customerInn": "7777777777",
"customerOrganization": "Наименование организации, оплачивающей услугу"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
account | ✓ | string | Номер карты получателя (только карты Qiwi Mir Metal) |
description | ✓ | string | Описание оказанной услуги |
inn | ✓ | string | ИНН самозанятого |
incomeType | ✓ | enum | Источник дохода (FROM_LEGAL_ENTITY , FROM_INDIVIDUAL ) |
name | × | string | Имя получателя |
lastname | × | string | Фамилия получателя |
customerInn | × | string | ИНН организации, оплачивающей услугу |
customerOrganization | × | string | Наименование организации, оплачивающей услугу |
Выплаты по СБП самозанятым с регистрацией налога providerCode: "self-employed-sbp"
{
"providerCode": "self-employed-sbp",
"fields": {
"inn": "111111111111",
"account": "79098087755",
"bankId": "100000000001",
"incomeType": "FROM_LEGAL_ENTITY",
"description": "Платеж",
"name": "Имя получателя",
"lastname": "Фамилия получателя",
"customerInn": "7777777777",
"customerOrganization": "Наименование организации, оплачивающей услугу"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
account | ✓ | string | Номер телефона получателя в международном формате без знака + |
bankId | ✓ | string | Идентификатор банка получателя в СБП |
description | ✓ | string | Описание оказанной услуги |
inn | ✓ | string | ИНН самозанятого |
incomeType | ✓ | enum | Источник дохода (FROM_LEGAL_ENTITY , FROM_INDIVIDUAL ) |
name | × | string | Имя получателя |
lastname | × | string | Фамилия получателя |
customerInn | × | string | ИНН организации, оплачивающей услугу |
customerOrganization | × | string | Наименование организации, оплачивающей услугу |
Выплаты на QIWI Кошелёк providerCode: "qiwi-wallet"
{
"providerCode": "qiwi-wallet",
"fields": {
"account": "79123456789",
"comment": "Комментарий"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
account | ✓ | string | Номер телефона |
comment | × | string | Комментарий |
Пополнение баланса White Label providerCode: "wl-topup"
{
"providerCode": "wl-topup",
"fields": {
"account": "21646",
"product_id": "company-id"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
account | ✓ | string | Идентификатор клиента в WL |
product_id | ✓ | string | Идентификатор продукта в WL |
Выплаты на банковскую карту за металлолом "providerCode": "bank-card-ruslom"
{
"providerCode": "bank-card-ruslom",
"fields": {
"pan": "4111111111111111",
"lastname": "Фамилия получателя",
"name": "Имя получателя",
"patronymic": "Отчество получателя",
"acceptanceCertificate": "Номер приемо-сдаточного акта"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
pan | ✓ | string | Номер карты получателя |
name | ✓ | string | Имя получателя |
lastname | ✓ | string | Фамилия получателя |
patronymic | × | string | Отчество получателя |
acceptanceCertificate | ✓ | string | Номер приемо-сдаточного акта |
Выплаты на банковскую карту Qiwi Mir Metal за металлолом "providerCode": "bank-card-ruslom-qmm"
{
"providerCode": "bank-card-ruslom-qmm",
"fields": {
"pan": "4111111111111111",
"lastname": "Фамилия получателя",
"name": "Имя получателя",
"patronymic": "Отчество получателя",
"acceptanceCertificate": "Номер приемо-сдаточного акта"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
pan | ✓ | string | Номер карты получателя (только карты Qiwi Mir Metal) |
name | ✓ | string | Имя получателя |
lastname | ✓ | string | Фамилия получателя |
patronymic | × | string | Отчество получателя |
acceptanceCertificate | ✓ | string | Номер приемо-сдаточного акта |
Выплаты по СБП "providerCode": "sbp-b2c"
{
"providerCode": "sbp-b2c",
"fields": {
"account": "79098087755",
"bankId": "100000000001"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
account | ✓ | string | Номер телефона получателя в международном формате без знака + |
bankId | ✓ | string | Идентификатор банка получателя в СБП |
Выплаты по СБП c проверкой ФИО для МФО "providerCode": "sbp-mfo"
{
"providerCode": "sbp-mfo",
"fields": {
"phone": "79098087755",
"bankId": "100000000001",
"lastName": "Иванов",
"firstName": "Иван",
"middleName": "Иванович"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
phone | ✓ | string | Номер телефона получателя в международном формате без знака + |
bankId | ✓ | string | Идентификатор банка получателя в СБП |
lastName | ✓ | string | Фамилия получателя |
firstName | ✓ | string | Имя получателя |
middleName | × | string | Отчество получателя |
Выплаты по СБП за вторсырье "providerCode": "sbp-recycling"
{
"providerCode": "sbp-recycling",
"fields": {
"phone": "79098087755",
"bankId": "100000000001",
"lastName": "Иванов",
"firstName": "Иван",
"middleName": "Иванович",
"description": "ПСА 123"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
phone | ✓ | string | Номер телефона получателя в международном формате без знака + |
bankId | ✓ | string | Идентификатор банка получателя в СБП |
lastName | ✓ | string | Фамилия получателя |
firstName | ✓ | string | Имя получателя |
middleName | × | string | Отчество получателя |
description | ✓ | string | Номер приемо-сдаточного акта или другое основание выплаты |
Выплаты на банковские счета юридических лиц "providerCode": "legal-entity-bank-account"
{
"providerCode": "legal-entity-bank-account",
"fields": {
"account": "50537928100000002463",
"bik": "304754657",
"inn": "1111111111",
"kpp": "389244830",
"name": "АО Qiwi",
"remarks": "Платежное поручение №454"
}
}
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
account | ✓ | string | Номер счета получателя |
bik | ✓ | string | БИК банка получателя |
inn | ✓ | string | ИНН получателя |
name | ✓ | string | Наименование организации получателя |
remarks | ✓ | string | Назначение платежа |
kpp | × | string | КПП получателя (для обществ с ограниченной ответственностью) |
Модель BillingDetails
{
"transactionId": "20221101000019",
"rrn": "A123456",
"accountNumber": "4950001122",
"accountInfo": "Ivanov I.P.",
"receiptUrl": "https://billing.inc/receipt/6f5ec8cc-69ed-4fe5-aa2c-28850fc87ab2"
}
Дополнительная информация со стороны получателя платежа.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
transactionId | × | string | Идентификатор платежа на стороне получателя |
rrn | × | string | Код акцептования платежа на стороне получателя |
accountNumber | × | string | Номер счета для подтверждения платежа |
accountInfo | × | string | Дополнительная информация для подтверждения платежа |
receiptUrl | × | string | Ссылка на документ с информацией о платеже |
Модель Payment
{
"paymentId": "0123456789",
"creationDateTime": "2023-01-17T15:05:51+03:00",
"expirationDateTime": "2023-01-17T15:35:51+03:00",
"status": {
"value": "READY",
"changedDateTime": "2023-01-17T15:05:51+03:00"
},
"amount": {
"currency": "RUB",
"value": "2.00"
},
"recipientDetails": {
"providerCode": "qiwi-wallet",
"fields": {
"account": "79010001122"
}
},
"commission": {
"currency": "RUB",
"value": "0.04"
},
"webhookUrl": "https://acme.inc/webhook",
"customFields": {
"user": "Wile E. Coyote"
},
"billingDetails": {
"transactionId": "20221101000019",
"rrn": "A123456",
"accountNumber": "4950001122",
"accountInfo": "Ivanov I.P.",
"receiptUrl": "https://billing.inc/receipt/6f5ec8cc-69ed-4fe5-aa2c-28850fc87ab2"
}
}
Детальная информация о платеже с актуальным статусом.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
paymentId | ✓ | string | Уникальный идентификатор платежа |
creationDateTime | ✓ | dateTime | Дата создания платежа в формате YYYY-MM-DDThh:mm:ssTZD |
expirationDateTime | ✓ | dateTime | Дата окончания жизни платежа в формате YYYY-MM-DDThh:mm:ssTZD |
status | ✓ | Status | Статус платежа |
amount | ✓ | Money | Сумма платежа |
recipientDetails | ✓ | RecipientDetails | Параметры получателя платежа |
commission | ✓ | Money | Рассчитанная сумма комиссии для платежа |
webhookUrl | × | string | URL адрес для уведомлений |
customFields | × | map[string, string] | Дополнительные параметры для сопровождения платежа |
billingDetails | × | BillingDetails | Дополнительная информация со стороны получателя |
Модель Status
{
"value": "READY",
"changedDateTime": "2023-01-17T15:05:51+03:00"
}
Подробная информация о статусе платежа.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
value | ✓ | StatusCode | Статус платежа |
changedDateTime | ✓ | dateTime | Дата изменения статуса платежа в формате YYYY-MM-DDThh:mm:ssTZD |
errorCode | × | StatusErrorCode | Код ошибки |
errorMessage | × | string | Описание ошибки |
Модель StatusCode
Перечисление возможных статусов платежей.
Значение | Описание |
---|---|
CREATED | Платеж создан, но не готов к проведению |
READY | Платеж создан и готов к проведению |
EXPIRED | Срок жизни платежа истек |
IN_PROGRESS | Платеж в процессе обработки |
FAILED | Платеж неуспешен |
COMPLETED | Платеж успешно завершен |
Модель StatusErrorCode
Перечисление возможных кодов ошибок.
Значение | Описание |
---|---|
INTERNAL_ERROR | Внутренняя ошибка |
INSUFFICIENT_FUNDS | Не проведен из-за недостатка денежных средств |
BILLING_DECLINED | Платеж отклонен биллингом получателя |
FRAUD_SUSPECTED | Отклонен из-за подозрения Фрод-мониторинга |
LIMIT_ERROR | Отклонен из-за превышения лимитов |
EXPIRED | Платеж просрочен |
Модель Webhook
{
"agentId": "acme",
"paymentId": "c0d85b0b-a528-9c66-4a15-cb7a12eda9d6",
"status": {
"value": "FAILED",
"changedDateTime": "2023-01-18T13:00:28Z",
"errorCode": "INTERNAL_ERROR",
"errorMessage": "Some reason"
},
"amount": {
"value": "200.00",
"currency": "RUB"
},
"billingDetails": {
"transactionId": "20221101000019",
"rrn": "A123456",
"accountNumber": "4950001122",
"accountInfo": "Ivanov I.P.",
"receiptUrl": "https://billing.inc/receipt/6f5ec8cc-69ed-4fe5-aa2c-28850fc87ab2"
}
}
Уведомление об изменении статуса платежа для партнера.
Параметр | ✓\× | Тип | Описание |
---|---|---|---|
agentId | ✓ | string | Уникальный идентификатор агента |
paymentId | ✓ | string | Уникальный идентификатор платежа |
status | ✓ | Status | Статус платежа |
amount | ✓ | Money | Сумма платежа |
billingDetails | × | BillingDetails | Дополнительная информация со стороны получателя |