Перелік відділень, що входять до мережі Power Bank

Регуляторне API Openbanking

Регулятором API виступає НБУ (ЄМА)

Терміни

PSU (Payment Service User) - користувач платіжних послуг

Домен для API викликів

vOpenBanking.radabank.com.ua

Безпека API викликів

Transport Layer Security (TLS)

Зв'язок між TPP та нами завжди захищений за допомогою TLS версії 1.2 або вище. TLS (Transport Layer Security) — це криптографічний протокол, який використовується для захисту комунікацій у мережі. Він забезпечує безпечне та зашифроване з'єднання між вами та нашими API.

Сертифікати

Клієнтський сертифікат

Цей сертифікат використовується для встановлення TLS-сесії між застосунком TPP та платформою. Це дає змогу забезпечити те, що повідомлення, надіслані між двома сторонами, не будуть прочитані або викрадені. Сертифікат розташовується на транспортному рівні та перевіряється веб-браузером. Сертифікат клієнта є обов'язковим для живих застосунків.

Сертифікат від регулятора

Європейське законодавство (стаття 34 з EBA Regulatory Technical Standard щодо Strong Customer Authentication, далі 'RTS') та Національний банк України передбачають використання QWAC та QSealC TPP для доступу до регуляторних API-сервісів.

Регуляторні сертифікати містять унікальний ідентифікатор ліцензії TPP, за допомогою якого Платформа відкритого банкінгу та банки можуть ідентифікувати TPP та перевірити його юридичний статус у Національному реєстрі TPP. Ці сертифікати також містять ролі PSD2 (PISP, AISP, PIISP), на основі яких Платформа може обмежити використання регуляторних API клієнтськими застосунками. Наприклад, якщо TPP не має призначеної ролі "PISP", то цей TPP не зможе використовувати API сервісу ініціювання платежів (PIS).

Таким чином, для використання регуляторних API ви повинні отримати сертифікати QWAC та QSealC від вашого національного QTSP (Quality Trust Service Provider), завантажити їх через сторінку управління сертифікатами на порталі розробника та прив'язати їх до одного або кількох живих застосунків.
Регуляторні сертифікати мають бути завантажені з наступними розширеннями: .crt, .cer, .pem

QWAC

Qualified Web Authentication Certificate використовується для встановлення безпечного TLS-з'єднання між TPP та Платформою. Він розташовується на транспортному рівні та перевіряється веб-браузером.

QsealC

Цей Qualified Electronic Seal Certificate використовується для підпису API-запитів до XS2A. Це допомагає забезпечити незмінність повідомлень, що обмінюються з Платформою.

Щоб правильно підписати запит, TPP має розрахувати хеш тіла HTTP запиту і помістити його в заголовок "digest". Потім потрібно сформувати рядок, закодований в base64, сформований із заголовків "digest", "x-request-id", "psu-id" і "tpp-redirect-uri", підписати цей рядок приватним ключем, пов'язаним з їхнім QSealC, і помістити його в заголовок "signature" разом з відповідними метаданими. Платформа перевіряє підпис за допомогою сертифіката QSealC, прикріпленого в заголовку "tpp-signature-certificate".
https://www.youtube.com/watch?v=BiiVKoo-fTc

Ліміти на API виклики

Всі API, що розміщені на платформі, лімітовані за кількістю викликів для захсту від DDoS атак та задля гарантій стабільності продуктивності.

Облікові дані клієнта

Банк надає провайдеру ідентіфікатор клієнта, секретний ключ ідентифікатор ключа. Провайдер генерує hash код за допомогою метода HMAC. В якості даних бере скомбіновану строку з ідентифікатора клієнта, ідентифікатора ключа і поточної дати у форматі «yyyy.mm.dd».

OAuth 2.0

API захищені за допомогою OAuth 2.0 Client Credentials Grant, що забезпечує надійний механізм автентифікації. Щоб отримати доступ до API, треба отримати токен доступу з виділеної кінцевої точки:

POST /gate_openbank/providers/{{providerId}}/v0/openbank/token

Запит повинен включати заголовки

--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'X-Request-ID' \
- header ‘Signature' \
- header ‘Signdate’ \

Правила та конвенції API

Ми прагнемо ділитись досвідом, що перевершує очікування. Ми побудували наш відкритий API на основі архітектури Representational State Transfer Service (REST), стандартного HTTP та легкого для читання і запису JavaScript Object Notation (JSON). Ми дотримуємося ідеології API специфікацій та інструкцій з впровадження від Berlin Group, а також розширяємо відповідні документації для відповідності вимогам національного регулятора.

Методи HTTP API

Усі сервіси доступні через API, використовуючи методи HTTPS на основі REST:

GET: Читає ресурс і повертає його;
POST: Створює новий ресурс;
PUT: Запитує збереження наданої сутності за наданим URI;
DELETE: Видаляє ресурс, ідентифікований URI.

Нові основні версії регуляторних API залежатимуть від випусків мандатів Національного банку України.

Коди відповідей HTTP та коди помилок

Разом із HTTP статус кодами Платформа також повертає коди помилок для підвищення прозорості та полегшення обробки винятків TPP.

Помилки завжди повертаються у наступному форматі:

Copy

"apiClientMessages": [

   {

     "category": "ERROR", //can be either ERROR or WARNING

     "code": "FORMAT_ERROR", //error code

     "text": "Invalid request for some reason" //explanation or error code

   }

Нижче наведено список неспецифічних кодів помилок, які повертаються як для Преміум, так і для Регуляторних API:
У цій документації ви також можете знайти специфічні коди помилок для сервісів PIS (Payment Initiation Service) та AIS (Account Information Service).
Scenario
Status code - Error code
Non-existent URL (including missing or unexpected path parameter)

404 - RESOURCE_UNKNOWN

Unexpected or non-existent HTTP method

405 - SERVICE_INVALID

Unexpected Content-Type header

415 – SERVICE_INVALID

Unexpected Accept header

406 - REQUESTED_FORMATS
_INVALID

Value of query parameter does not match data type in OAS

400 - PARAMETER_NOT_CONSISTENT

Query parameter is missing

400 - PARAMETER_NOT_CONSISTENT

Unexpected query parameter

400-PARAMETER_NOT_SUPPORTED

Value of header (except Accept and Content-Type) OR field in body does not match data type in OAS or missing

400 - FORMAT_ERROR

Header (except Accept and Content-Type) OR field in body is missing

400 – FORMAT_ERROR

Unexpected header OR field in body

400 – FORMAT_ERROR

Body is missing or JSON has invalid format

400 – FORMAT_ERROR

Application sends request with certificate associated with another app

401 - CERTIFICATE_INVALID

Certificate has been revoked

401 - CERTIFICATE_REVOKED

Certificate has expired

401 - CERTIFICATE_EXPIRED

No signature

401 - SIGNATURE_MISSING

Invalid signature

401 - SIGNATURE_INVALID

Expired token

401 - TOKEN_EXPIRED

System cannot identify TPP by token

401 - TOKEN_UNKNOWN

Sandbox token is used for live API

401 - TOKEN_INVALID

Missing token

401 - TOKEN_MISSING

Operation (with specific version) is out of application’s scopes

403 - OPERATION_NOT_ALLOWED

Operation (with specific version) is not offered by the provider or provider is no longer active

403 - OPERATION_NOT_ALLOWED

TPP hits the limit set for the product by bank

429 - OPERATION_NOT_ALLOWED

Купівля Продаж
USD
41.25 41.7
EUR
48 48.45
PLN
11.15 11.35

* Курси валют Головного Банку (Дніпро, вул. В. Мономаха, 5). Курси у відділеннях можуть відрізнятися. Уточнюйте курс валют у Вашому відділені за номером 0 800 500 999.