Для выполнения платежей через терминал необходимо получить персональную ссылку для открытия терминала. Ссылка содержит персональный код, который регистрируется в терминале и позволит открыть терминал и выполнить платеж. Время жизни ссылки ограничено, на сегодняшний день оно составляет 60 минут. Если в течение этого времени не был произведен платеж, то персональный код для открытия сессии становится недействительным.
Каждое приложение, которое выполняет запрос на получение персональной ссылки для открытия сессии терминала должно быть зарегистрировано в системе B2B Backoffice. Приложение, из которого выполняется получение персональной ссылки для открытия сессии терминала, должно иметь Client ID приложения, из которого выполняется запрос, а также секретный ключ, при помощи которого необходимо формировать подпись запроса.
URL:
https://payment-terminal-form.sandbox.idynsys.org/api/auth/personal-urlhttps://pay.trustedskycenter.com/api/auth/personal-urlМетод запроса: POST
Заголовки запросе:
X-Client-Id: (обязательно). Идентификатор приложения, получаемый при регистрации приложения в системе B2B BackofficeX-Authorization-Sign: (обязательно). Подпись запроса по секретному ключу приложения, который определяется в системе B2B Backoffice. Подпись формируется по алгоритму, описанному на странице “Подпись”Content-Type: (обязательно) Тип содержимого запроса, должно быть 'application/json'.Структура тела запроса:
Тело запроса должно быть в формате JSON и иметь следующую структуру:
{
"paymentInfo": {
"type": "deposit",
"amount": 5001,
"currency": "RUB",
"merchantOrderId": "234345",
"merchantOrderDescription": "deposit for order"
},
"sessionSettings": {
"clientTheme": "dark",
"clientLanguage": "eng",
"visibleMethods": [
{
"paymentMethodName": "P2P",
"communicationType": "h2c"
}
]
},
"userInfo": {
"externalId": "112345",
"email": "user_email@site.com",
"phone": "79991112233",
"trafficType": "ftd",
"firstName": "firstName",
"middleName": "middleName",
"lastName": "lastName",
"trafficSegment": "VIP",
"riskGroupCode": "LOW",
"city": "London",
"state": "GB",
"postcode": "254722123456",
"birthday": "2025-10-20",
"address": "Tisova str.",
"country": "GBR",
"docId": "12345678910",
"docType": "CUIT"
},
"userAccount": {
"pan": "8310021622",
"bankName": "sberbank",
"identifierSystemCode": "NESF0000169",
"bankAccountType": "Savings"
},
"userCard": {
"pan": "2200290551745442",
"expiration": "04/31",
"cvv": "111",
"holderName": "USER NAME"
},
"urls": {
"redirectSuccess": "http:website.com/redirectSuccess",
"redirectFail": "http:website.com/redirectFail",
"return": "http:website.com/return",
"callback": "http://website.com/callback"
}
}
Поля в paymentInfo:
| Наименование | Обязательное? | Тип | Описание |
|---|---|---|---|
type |
Да | string | Тип платежа, возможные значения:
|
amount |
Нет | float | Сумма платежа. Допустимые значения - больше 0. Если передается значение с дробной частью, то оно может округляться по правилам платежной системы.
|
currency |
Да | string | 3-х значный буквенный код валюты платежа по ISO 4217. |
merchantOrderId |
Да | string | Идентификатор ордера клиента (организации заказчика). |
merchantOrderDescription |
Да | string | Описание ордера клиента. |
Поля в userInfo:
| Наименование | Обязательное? | Тип | Описание |
|---|---|---|---|
externalId |
Да | string | Идентификатор пользователя, который выполняет платеж. |
email |
Нет | string | Электронная почта пользователя, который выполняет платеж. |
phone |
Нет | string | Номер телефона пользователя в международном формате, который выполняет платеж. |
trafficType |
Да | string | Тип трафика. Возможные значения:
|
lastName |
Нет | string | Фамилия |
firstName |
Нет | string | Имя |
middleName |
Нет | string | Отчество |
trafficSegment |
Нет | string | Сегмент трафика для текущего пользователя |
riskGroupCode |
Нет | string | Код рисковой группы пользователя |
city |
Нет | string | Город |
state |
Нет | string | 2-х значный буквенный код страны по ISO 3166-1 alpha-2 |
postcode |
Нет | string | Почтовый код |
birthday |
Нет | string | Дата рождения, формат - YYYY.MM.DD |
address |
Нет | string | Адрес |
country |
Нет | string | Страна |
docId |
Нет | string | Номер документа пользователя |
docType |
Нет | string | Тип документа |
Поля в userAccount (не обязательное):
| Наименование | Обязательное? | Тип | Описание |
|---|---|---|---|
pan |
Нет | string | Номер электронного или банковского счёта |
bankName |
Нет | string | Имя банка |
identifierSystemCode |
Нет | string | Код банка |
bankAccountType |
Нет | string | Тип банковского счёта |
Поля в userCard (не обязательное):
| Наименование | Обязательное? | Тип | Описание |
|---|---|---|---|
pan |
Нет | string | Номер кредитной или дебетовой карты |
expiration |
Нет | string | Срок дейтсвия карты |
cvv |
Нет | string | CVV код карты |
holderName |
Нет | string | Имя держателя карты |
Поля в urls:
| Наименование | Обязательное? | Тип | Описание |
|---|---|---|---|
redirectSuccess |
Да | string | URL для перенаправления после успешного депозита. |
redirectFail |
Да | string | URL для перенаправления после неудачного депозита. |
callback |
Да | string | URL для отправки уведомлений о статусе транзакции. |
return |
Да | string | URL для возврата на сайт клиента |
Поля sessionSettings:
| Наименование | Обязательное? | Тип | Описание |
|---|---|---|---|
clientTheme |
Нет | string | Тема терминала при его открытии. Возможные значения:
|
clientLanguage |
Нет | string | Язык терминала при его открытии. Возможные значения:
|
visibleMethods |
Нет | Возможные варианты:
|
Поддерживаются два формата данных:
|
presetAmounts |
Нет | array [object] | Предподготовленные суммы для совершения платежа (если paymentInfo.amount не передан):[{"paymentMethodName":"P2P","communicationType":"h2h","amounts":[300,500,1000]}] |
bonuses |
Нет | array [object] | Доступные бонусы при оплате:[{"code":"new_year_promo","name":"New Year","description":"New Year Promo"}] |
Варианты ответов
Формат: JSON
1. Успешный ответ (статус 200)
При успешном выполнении запроса API возвращает ответ со статусом 200 OK и следующей структурой:
{
"url": "https://payment-terminal-form.idynsys.org/open/bj9MBmsE0ovw1a75Si867Le1MpDg5O-1733321054223170",
"sessionId: "bj9MBmsE0ovw1a75Si867Le1MpDg5O-1733321054223170",
}
2. Ошибка доступа (статус 403)
Если подпись некорректна, секретный ключ не совпадает с ключом, зарегистрированном в системе B2B Backoffice, отсутствует или неактивно приложение, определенное в заголовке запроса X-Client-Id, то API вернет ответ со статусом 403 Forbidden и со следующей структурой:
{
"error": {
"code": "403",
"message": "Access denied"
}
}