> For the complete documentation index, see [llms.txt](https://doc.ob.ukrgasbank.com/lK1gBsaUtPKuTrcrSKw3/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.ob.ukrgasbank.com/lK1gBsaUtPKuTrcrSKw3/api-servisi/komplayens-api/servis-informaciyi-pro-rakhunok.md).

# Сервіс інформації про рахунок

Сервіс отримання інформації про рахунок (AIS) надає стороннім постачальникам послуг (TPP) можливість отримувати інформацію про рахунок користувача платіжних послуг (PSU).\
Щоб отримати доступ до інформації про рахунок, TPP спочатку мають отримати авторизацію (підтвердження згоди) від PSU. Після надання згоди TPP можуть отримувати інформацію про рахунок користувача — залишки, історію транзакцій та інші відповідні дані. Нижче наведено візуалізації процесу авторизації згоди для **Decoupled** і **Redirect SCA**.

{% hint style="warning" %}
Подані нижче схеми зосереджуються на обміні даними між TPP та інтерфейсом **XS2A** платформи відкритого банкінгу (OBP), спрощуючи деталі взаємодії між OBP і Банком.
{% endhint %}

## Decoupled SCA

<div data-full-width="true"><figure><img src="https://3925264737-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWOo2kMPxtN9uTnz5Xi3J%2Fuploads%2FJnxby1le5h1VxEg7AXwv%2FPayment%20Redirect%20_%20Mermaid%20Chart-2025-10-08-110342.png?alt=media&amp;token=92ec05b2-9fdf-4d78-890e-b7066c8fece5" alt=""><figcaption></figcaption></figure></div>

1. Користувач платіжних послуг (PSU) ініціює створення згоди через інтерфейс TPP.
2. TPP викликає `POST /consents/account-access` для створення згоди AIS:

```json
POST /ais/v2/consents/account-access
X-Request-Id: dc7b16a5-4ac8-4fdc-9c4e-9f9d0387dc07
Content-Type: application/json
Client-Redirect-Uri: https://test1.api.tieto.com
Client-Nok-Redirect-Uri: https://test1.api.tieto.com
PSU-ID: 446456475755
PSU-IP-Address: 123.321.123.321
{
  "access": {
    "payments": [
      {
        "account": {
          "iban": "XX80BANK0000435195001"
        },
        "rights": [
          "accountDetails",
          "balances",
          "transactions"
        ]
      }
    ]
  },
  "consentType": "detailed",
  "recurringIndicator": true,
  "validTo": "2025-10-30",
  "frequencyPerDay": "4"
}
```

{% hint style="warning" %}
`frequencyPerDay` cannot be larger than 4!
{% endhint %}

{% hint style="success" %}
Якщо використовується право доступу **«balances»** або **«transactions»**, тоді згода на надання **«accountDetails»** надається **неявно**.
{% endhint %}

3. OBP повертає унікальний ідентифікатор згоди:

```json
{
  "consentId": "e521cf62-a45f-49c5-8372-94853fffeb55",
  "consentStatus": "received",
  "_links": {
    "startAuthorisation": {
      "href": "/consents/account-access/e521cf62-a45f-49c5-8372-94853fffeb55/authorisations"
    }
  }
}
```

4. TPP викликає `POST /consents/account-access/{consent-id}/authorisations` (із заголовками **Client-Redirect-URI** та **Client-Redirect-Nok-URI**), щоб явно розпочати авторизацію (SCA).
5. OBP повертає повідомлення (`$.psuMessage`) для користувача, наприклад:

```json
{
    "scaStatus": "received",
    "authorisationId": "d3f9c3f2-7a8f-4c7f-9b7e-b02e6fdc9420",
    "psuMessage": "Authorize transaction in Bank's mobile application",
    "_links": {
        "self": {
            "href": "/ais/v2/consents/account-access/e521cf62-a45f-49c5-8372-94853fffeb55/authorisations/d3f9c3f2-7a8f-4c7f-9b7e-b02e6fdc9420"
        }
    }
}
```

6. TPP відображає повідомлення від Банку користувачу (PSU).
7. Банк сповіщає PSU про необхідність авторизації, наприклад, через push-сповіщення.
8. PSU використовує застосунок Банку для авторизації згоди.
9. TPP продовжує перевіряти статус згоди, доки не отримає <mark style="color:red;">**REJECTED**</mark> або <mark style="color:$success;">**VALID**</mark> (`GET /consents/account-access/{consent-id}/status`).
10. OBP відповідає статусом згоди (`$.consentStatus`):

```json
{
  "consentStatus": "valid"
}
```

11. TPP інформує PSU про результат авторизації згоди.
12. PSU запитує інформацію про свої рахунки через інтерфейс TPP.
13. TPP викликає `GET /accounts?withBalance=true` із заголовком **Consent-ID**.

14-16. OBP перевіряє, що згода все ще дійсна, і запитує дані в Банку.

17. OBP повертає дані про рахунки користувача (PSU):

```json
{
  "accounts": [
    {
      "iban": "UA80BANK0000435195001",
      "currency": "UAH",
      "resourceId": 12321,
      "name": "string",
      "balances": [
        {
          "balanceAmount": {
            "currency": "UAH",
            "amount": 12.21
          },
          "balanceType": "closingBooked",
          "referenceDate": "12.12.2021"
        }
      ]
    }
  ]
}
```

18. TPP відображає інформацію про рахунки користувачу (PSU).

## Redirect SCA

<div data-full-width="true"><figure><img src="https://3925264737-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWOo2kMPxtN9uTnz5Xi3J%2Fuploads%2FwOLfPMNNHxNzdilAIcEr%2FPayment%20Redirect%20_%20Mermaid%20Chart-2025-10-08-110105.png?alt=media&amp;token=c97ea9a0-843f-4ac9-9ecb-4bffbe6d072d" alt=""><figcaption></figcaption></figure></div>

1. Користувач платіжних послуг (PSU) ініціює створення згоди через інтерфейс TPP.
2. TPP викликає `POST /consents/account-access` для створення згоди AIS:

```json
POST /ais/v2/consents/account-access
X-Request-Id: dc7b16a5-4ac8-4fdc-9c4e-9f9d0387dc07
Content-Type: application/json
Client-Redirect-Uri: https://test1.api.tieto.com
Client-Nok-Redirect-Uri: https://test1.api.tieto.com
PSU-ID: 446456475755
PSU-IP-Address: 123.321.123.321
{
  "access": {
    "payments": [
      {
        "account": {
          "iban": "XX80BANK0000435195001"
        },
        "rights": [
          "accountDetails",
          "balances",
          "transactions"
        ]
      }
    ]
  },
  "consentType": "detailed",
  "recurringIndicator": true,
  "validTo": "2025-10-30",
  "frequencyPerDay": "4"
}
```

{% hint style="warning" %}
`frequencyPerDay` не може бути більшим за 4!
{% endhint %}

{% hint style="success" %}
Якщо використовується право доступу **«balances»** або **«transactions»**, тоді згода на надання **«accountDetails»** надається **неявно**.
{% endhint %}

3. OBP повертає унікальний ідентифікатор згоди:

```json
{
  "consentId": "e521cf62-a45f-49c5-8372-94853fffeb55",
  "consentStatus": "received",
  "_links": {
    "startAuthorisation": {
      "href": "/consents/account-access/e521cf62-a45f-49c5-8372-94853fffeb55/authorisations"
    }
  }
}
```

4. TPP викликає `POST /consents/account-access/{consent-id}/authorisations` (із заголовками **Client-Redirect-URI** та **Client-Redirect-Nok-URI**), щоб явно розпочати авторизацію (SCA).
5. OBP повертає SCA Redirect URL (`$.links.scaRedirect.href`), щоб користувач (PSU) міг виконати автентифікацію з підвищеним рівнем безпеки (SCA):

```json
{
    "scaStatus": "received",
    "authorisationId": "d3f9c3f2-7a8f-4c7f-9b7e-b02e6fdc9420",
    "_links": {
        "self": {
            "href": "/ais/v2/consents/account-access/e521cf62-a45f-49c5-8372-94853fffeb55/authorisations/d3f9c3f2-7a8f-4c7f-9b7e-b02e6fdc9420"
        },
        "scaRedirect": {
             "href": "https://bankscaserver.com/auth/d3f9c3f2-7a8f-4c7f-9b7e-b02e6fdc9420"
        }
    }
}
```

6. TPP переадресовує PSU на SCA Redirect URL Банку. Це веб-сторінка Банку, де очікується, що PSU пройде автентифікацію та авторизує транзакцію.
7. PSU завершує авторизацію в інтерфейсі Банку (веб або мобільний застосунок).

8-9. Банк переадресовує PSU назад до TPP, використовуючи **Client-Redirect-URI**, наданий TPP.

10. TPP продовжує перевіряти статус згоди, доки не отримає <mark style="color:red;">**REJECTED**</mark> або <mark style="color:$success;">**VALID**</mark> (`GET /consents/account-access/{consent-id}/status`).
11. OBP відповідає статусом згоди (`$.consentStatus`):

```json
{
  "consentStatus": "valid"
}
```

12. TPP інформує PSU про результат авторизації згоди.
13. PSU запитує інформацію про свої рахунки через інтерфейс TPP.
14. TPP викликає `GET /accounts?withBalance=true` із заголовком **Consent-ID**.

15-17. OBP перевіряє, що згода все ще дійсна, і запитує дані в Банку.

18. OBP повертає дані про рахунки користувача (PSU):

```json
{
  "accounts": [
    {
      "iban": "UA80BANK0000435195001",
      "currency": "UAH",
      "resourceId": 12321,
      "name": "string",
      "balances": [
        {
          "balanceAmount": {
            "currency": "UAH",
            "amount": 12.21
          },
          "balanceType": "closingBooked",
          "referenceDate": "12.12.2021"
        }
      ]
    }
  ]
}
```

19. TPP відображає інформацію про рахунки користувачу (PSU).

## Історія транзакцій

Ви можете запитувати історію транзакцій рахунку без додаткової SCA протягом до 90 днів. Якщо ви хочете запитати старіші транзакції (тобто параметр `?dateFrom` містить дату, яка старша за 90 днів), вам потрібна авторизована одноразова згода AIS для цього (тобто ваш заголовок `Consent-ID` повинен посилатися на AIS-згоду зі статусом `"valid"`, `"recurringIndicator": false` і масивом `"rights"`, що містить `'transactions'`).

Якщо ви спробуєте запитати історію транзакцій старшу за 90 днів із дійсною повторюваною згодою, XS2A поверне помилку 400:

```json
{
    "psuMessage": "From parameter cannot be farther than 90 days in past for recurring account information consent!",
    "apiClientMessages": [
        {
            "category": "ERROR",
            "code": "FORMAT_ERROR",
            "text": "From parameter cannot be farther than 90 days in past for recurring account information consent!"
        }
    ]
}
```

## Специфічні для AIS коди помилок

<table><thead><tr><th width="387">Scenario</th><th>HTTP Status code - Error code</th></tr></thead><tbody><tr><td>Згода, яку ви намагаєтесь використати для доступу до інформації про рахунок, більше не дійсна.</td><td>401 - CONSENT_INVALID</td></tr><tr><td>Ви перевищили добовий <a href="/lK1gBsaUtPKuTrcrSKw3/posibnik-dlya-pochatku-roboti/oglyad-api.md#account-information-service-limiti">ліміт у 4 GET-запити без присутності користувача (PSU)</a>.</td><td>429 - ACCESS_EXCEEDED</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://doc.ob.ukrgasbank.com/lK1gBsaUtPKuTrcrSKw3/api-servisi/komplayens-api/servis-informaciyi-pro-rakhunok.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
