URL:
https://api-gateway.sandbox.idynsys.org/api/accounts/deposithttps://api-gateway.idynsys.org/api/accounts/depositМетод запроса: POST
Заголовки запросе:
X-Client-Id: (обязательно). Идентификатор приложения, получаемый при регистрации приложения в системе B2B Backoffice.X-Authorization-Sign: (обязательно). Подпись запроса по секретному ключу приложения, который определяется в системе B2B Backoffice. Подпись формируется по алгоритму, описанному на странице “Подпись”Content-Type: (обязательно) Тип содержимого запроса, должно быть application/json.Структура тела запроса:
Тело запроса должно быть в формате JSON и иметь следующую структуру:
{
"paymentMethodName": "P2P",
"communicationType": "h2c",
"trafficType": "ftd",
"trafficSegment": "VIP",
"riskGroupCode": "LOW",
"payment": {
"amount": 2000.00,
"currency": "RUB"
},
"merchantOrder": {
"id": "d07d573f-fc62-4652-8b35-9b4a9a9d2ed3",
"description": "desc"
},
"urls": {
"callback": "https://webhook.site/5e9dcb21-5668-4510-bcf6-f074f8849307",
"return": "https://webhook.site/return",
"redirectSuccess": "https://webhook.site/redirectSuccess",
"redirectFail": "https://webhook.site/redirectFail"
}
"sessionDetails": {
"ipAddress": "139.0.51.23",
"acceptLanguage": "en-US",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
"fingerprint": "aekrtpwoiertjw34tij34w2-t89twp3j409j"
},
"customer": {
"id": "test1",
"email": "srgpekl@hldrive.com"
}
}
В следующей таблице информация об обязательности атрибутов для платежных методов:
| Наименование | Платежные методы, которые требуют влючения подструктуры в тело запроса | Наименование атрибута подструктуры | Обязательное? | Тип | Описание |
|---|---|---|---|---|---|
| - | Все | paymentMethodName | Да | string | Код метода оплаты.Возможные значения
|
| - | Все | communicationType | Да | string | Тип коммуникации для выполнения платежа. Возможные значения:
|
| - | Все | trafficType | Да | string | Тип трафика. Возможные значения:
|
| - | Все | trafficSegment | Нет | string | Сегмент трафика. Задается через валютный счет. |
| - | Все | riskGroupCode | Нет | string | Код рисковой группы пользователя. |
| payment | Все | amount | Да | float | Сумма платежа. Допустимые значения - больше 0. Если передается значение с дробной частью, то оно может округляться по правилам платежной системы. |
| payment | Все | currency | Да | string | 3-х значный буквенный код валюты платежа по ISO 4217. |
| merchantOrder | Все | id | Да | string | Идентификатор ордера клиента (организации заказчика). |
| merchantOrder | Все | description | Да | string | Описание ордера клиента. |
| customer | Все | id | Да | string | Идентификатор пользователя в магазине, который выполняет платеж. |
| customer | Все | Да | string | Электронная почта пользователя, который выполняет платеж. | |
| customer | Все | phoneNumber | Только для:
|
string | Номер телефона пользователя в международном формате, который выполняет платеж. Значение должно содержать только цифры. |
| customer | Все | firstName, lastName | Только для:
|
string | Имя и фамилия пользователя латиницей, который выполняет платеж. |
| customer | Все | middleName | string | Отчество или второе имя | |
| customer | Все | address |
|
string | Адрес |
| customer | Все | birthday |
|
date | 2006-01-02 Дата |
| customer | Все | city |
|
string | Город |
| customer | Все | state |
|
string | 2-х значный буквенный код страны по ISO 3166-1 alpha-2 |
| customer | Все | postcode |
|
string | Почтовый код |
| customer | Все | docType | Только для:
|
string | Тип документа (CUIL, CUIT, CDI, DN, RUT, RUN, PAS, CE…) |
| customer | Все | docId | Только для:
|
string | Номер документа пользователя |
| customerAccount | Только для:
|
bankName | Только для:
|
string | Код банка, в который выполняется платеж.Возможные значения:RUBAbkhaziaSBP
|
Только для:
|
pan | Только для:
|
string | UPI ID | |
| sessionDetails | Все | acceptLanguage | Да | string | Соответствуете заголовку Accept-Language в браузере, используется для указания предпочтений клиента по языкам. |
| sessionDetails | Все | fingerprint | Да | string | Подпись данных пользователя в запросе. см. https://github.com/fingerprintjs/fingerprintjs |
| sessionDetails | Все | ipAddress | Да | string | IP адрес пользователя. |
| sessionDetails | Все | userAgent | Да | string | Информацию о браузере, операционной системе и устройстве пользователя. |
| urls | Все | callback | Да | string | URL для отправки уведомлений о статусе транзакции. |
| urls | Все | return | Да | string | |
| urls | Все | redirectSuccess | Да | string | |
| urls | Все | redirectFail | Да | string |
Ответ возвращается в формате JSON.
1. Успешный ответ (статус 200)
При успешном выполнении запроса API возвращает ответ со статусом 200 OK и следующей структурой:
{
"amount": 4000,
"currency": "RUB",
"id": 467343,
"redirectUrl": "https://dev.payment.test/test-payment-id",
"status": "IN_PROGRESS"
}
Описание полей ответа:
| Наименование | Тип | Обязательное? | Описание |
|---|---|---|---|
id |
integer | Да | Идентификатор ордера для выполненного платежа. Может содержать значение 0, если ордер не был создан по причине отсутствия настроенных маршрутов, некорректных данных для создания ордера и других случаев. |
amount |
integer | Да | Сумма платежа |
currency |
string | Да | Валюта платежа |
redirectUrl |
string | Нет | Ссылка на терминал платежной системы. Не приходит, если есть ошибка. |
status |
string | Да | Код статуса выполнения платежа.Возможные значения
|
error |
string | Нет | Содержит текстовое описание ошибки, в случае, если статус = ERROR |
2. Ошибка доступа (статус 403)
Если подпись некорректна, секретный ключ не совпадает с ключом, зарегистрированном в системе B2B Backoffice, отсутствует или неактивно приложение, определенное в заголовке запроса X-Client-Id, то API вернет ответ со статусом 403 Forbidden
{
"success": false,
"message": "access denied"
}
3. Ошибка валидации (статус 422)
Если не удается создать ордер по переданному body, то срабатывает ошибка валидации
{
"success": false,
"message": "data validation error for: payment.amount - Value is required"
}
4. Внутренняя ошибка (статус 500)
При внутренней ошибке:
{
"success": false,
"message": "internal error"
}