Для выполнения платежей через терминал необходимо получить персональную ссылку для открытия терминала. Ссылка содержит персональный код, который регистрируется в терминале и позволит открыть терминал и выполнить платеж. Время жизни ссылки ограничено, на сегодняшний день оно составляет 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 и иметь следующую структуру:
curl --location 'https://payment-terminal-form.sandbox.idynsys.org/api/auth/personal-url' \
--header 'X-Client-Id: {{xClientId}}' \
--header 'X-Authorization-Sign: {{xAuthorizationSign}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"paymentInfo": {
"type": "deposit",
"amount": 5001,
"currency": "TRY",
"merchantOrderId": "234345",
"merchantOrderDescription": "deposit for order"
},
"sessionSettings": {
"clientTheme": "dark",
"clientLanguage": "eng",
"visibleMethods": [
{
"paymentMethodName": "Papara",
"communicationType": "h2c"
}
]
},
"urls": {
"redirectSuccess": "https://website.com/redirectSuccess",
"redirectFail": "https://website.com/redirectFail",
"return": "https://website.com/return",
"callback": "https://website.com/callback"
},
"userInfo": {
"externalId": "112345",
"trafficSegment": "VIP",
"trafficType": "ftd",
"riskGroupCode": "LOW",
"firstName": "Ivan",
"lastName": "Ivanov"
}
}'
Поля в paymentInfo:
| Наименование | Обязательное? | Тип | Описание |
|---|---|---|---|
paymentInfo.type |
Да | string | Тип платежа - deposit |
paymentInfo.amount |
Нет | float | Сумма платежа. Допустимые значения - больше 0. Если передается значение с дробной частью, то оно может округляться по правилам платежной системы.
|
paymentInfo.currency |
Да | string | 3-х значный буквенный код валюты платежа по ISO 4217. |
paymentInfo.merchantOrderId |
Да | string | Идентификатор ордера клиента (организации заказчика). |
paymentInfo.merchantOrderDescription |
Да | string | Описание ордера клиента. |
Поля в userInfo:
| Наименование | Обязательное? | Тип | Описание |
|---|---|---|---|
userInfo.externalId |
Да | string | Идентификатор пользователя, который выполняет платеж. |
userInfo.trafficType |
Да | string | Тип трафика. Возможные значения:
|
userInfo.trafficSegment |
Нет | string | Сегмент трафика для текущего пользователя |
userInfo.riskGroupCode |
Нет | string | Код рисковой группы пользователя |
userInfo.firstName |
Да | string | Имя плательщика латиницей. |
userInfo.lastName |
Да | string | Фамилия плательщика латиницей. |
Поля в urls:
| Наименование | Обязательное? | Тип | Описание |
|---|---|---|---|
urls.redirectSuccess |
Да | string | URL для перенаправления после успешного депозита. |
urls.redirectFail |
Да | string | URL для перенаправления после неудачного депозита. |
urls.callback |
Да | string | URL для отправки уведомлений о статусе транзакции. |
urls.return |
Да | string | URL для возврата на сайт клиента |
Поля sessionSettings:
| Наименование | Обязательное? | Тип | Описание |
|---|---|---|---|
sessionSettings.clientTheme |
Нет | string | Тема терминала при его открытии. Возможные значения:
|
sessionSettings.clientLanguage |
Нет | string | Язык терминала при его открытии. Возможные значения:
|
sessionSettings.visibleMethods |
Нет | Возможные варианты:
|
Поддерживаются два формата данных:
|
sessionSettings.presetAmounts |
Нет | array [object] | Предподготовленные суммы для совершения платежа (если paymentInfo.amount не передан):[{"paymentMethodName":"Papara","communicationType":"h2c","amounts":[300,500,1000]}] |
Варианты ответов
Формат: 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"
}
}