5. Обробка помилок
Цей розділ описує загальні правила обробки помилок у фреймворку відкритого банкінгу. Структури даних API, визначені тут, не будуть повторюватися в описах окремих сервісів.
5.1. Responses у випадках помилок
Для досягнення кращої читабельності описи окремих сервісів у фреймворку відкритого банкінгу визначають відповіді лише у випадку позитивного результату обробки. Цей підрозділ надає специфічні правила для випадку негативного результату обробки, які застосовуються до всіх сервісів.
5.1.1. Header
Вцілому правила щодо наявності елементів header поширюються як на позитивні, так і на негативні відповіді. Виняток становлять випадки, коли перед функціональною обробкою сталася помилка. Прикладами для таких випадків помилок є загальні помилки сервера (як правило, з 50Х HTTP код відповіді). У цих випадках помилок ASPSP може пропустити вказані headers.
Однак, коли функціональна обробка вже відбулася, ASPSP зобов’язаний включати обов’язкові (і, якщо застосовуються, умовні) headers також у негативну відповідь.
5.1.2. Body
Всі описи елементів body в описах сервісу поширюються тільки на випадки з позитивною відповіддю. Відповідні атрибути також повинні бути надані в body, де це можливо і застосовується.
Крім того, API надає додаткову інформацію про помилки, як описано в розділі 5.2 цього документу, коли сервер API технічно здатний надати його.
5.2. Додаткова інформація про помилку
При необхідності ASPSP може передавати додаткову інформацію про помилки API client в діалозі request/response, який призводить до кодів HTTP відповіді 4ХХ або 50Х.
Додаткова інформація про помилку надсилається API client за допомогою елемента даних apiClientMessages з категорією атрибута, встановленою на ERROR. Атрибут code вказує на помилку, а атрибут path — шлях до елемента повідомлення про request, який викликав це повідомлення про помилку. У вільному текстовому полі може бути вказаний опис контексту помилок або дій, які потрібно виконати API client.
Крім того, повідомлення response може містити розділ _links, що містить гіперпосилання, щоб повідомити API client, наприклад, про наступний крок.
Response Code
Код відповіді HTTP становить 4ХХ або 50Х, як визначено в розділі 4.7.
Response Header
| Атрибут | Тип | Умова | Опис |
|---|---|---|---|
| Content-Type | String | Mandatory | Використовується application/json. |
Response Body
| Атрибут | Тип | Умова | Опис |
|---|---|---|---|
| apiClientMessages | Array of Client Message Information | Optional | Інформація про помилку. |
| _links | Links | Optional | У цьому параметрі надсилаються гіперпосилання для надання додаткових даних. |
Приклад
{
"apiClientMessages": [
{
"category": "ERROR",
"code": "BAD_REQUEST",
"text": "Account not found"
}
]
}