# Рекомендации по реализации интеграции для Поставщика API

{% hint style="info" %}
Необходимо, чтобы Поставщик API:

1\.  Прошел процедуру регистрации на Портале АО «НПК» (см. подробнее в [Регистрация и авторизация в Портале НПК](/rabota-s-testovym-okruzheniem-is-npk/rabota-s-testovym-portalom-npk/registraciya-i-avtorizaciya-v-portale-npk.md))

2\. Подал заявку на подключение к Open Banking  в качестве Поставщика API (см. подробнее в [Подключение к Open Banking/Open API](/rabota-s-testovym-okruzheniem-is-npk/podklyuchenie-k-open-banking-open-api.md))
{% endhint %}

<figure><img src="/files/sAJZYh9HlNmxnib2agqF" alt=""><figcaption><p>Общая схема процесса получения сведений о банковском счете клиента</p></figcaption></figure>

1. Поставщику API необходимо выполнить доработку программного обеспечения:
   * Реализовать получение идентификаторов Платформы.

<details>

<summary>Получение идентификаторов Платформы</summary>

Для процессов информационного взаимодействия по получению информации о текущем счете клиента для идентификации счета используется идентификатор, сгенерированный Платформой (Идентификатор Платформы).

Поставщик API получает идентификаторы для счетов клиента посредством обращения к Платформе. При этом, получение идентификаторов Платформы может быть организовано при обработке запросов, а также в рамках процессов управления счетами клиентов Поставщиком API (например, при регистрации нового счета клиента).

Описание прикладного программного интерфейса для получения идентификатора Платформы приведено в <https://obid-openapi.npck.kz/#tag/OBID/operation/getOBIDsByIBANs>.

Общий процесс использования идентификаторов Платформы в рамках информационного взаимодействия по получению информации о счете клиента включает в себя следующие шаги:

1. Поставщик API, получив запрос предоставления списка текущих счетов клиента, проверяет для всех ли открытых текущих счетов клиента имеется идентификатор Платформы.
2. Поставщик API для открытых текущих счетов клиента, по которым ранее не был получен идентификатор Платформы, запрашивает на Платформе идентификаторы (accountId).
3. Поставщик API, получив идентификаторы Платформы, сохраняет их и информацию о том, каким счетам клиента (каким IBAN) они соответствуют.
4. Поставщик API в ответе на запрос предоставления списка текущих счетов в качестве идентификатора счета передает идентификатор Платформы (accountId).
5. Поставщик API при последующем получении запроса предоставления информации по идентификатору Платформы (например, баланса счета) при его обработке использует сопоставление идентификатора Платформы (accountId) с номером банковского счета клиента (IBAN).

</details>

* Выполнить разработку программных интерфейсов взаимодействия (API). Перечень методов API для предоставления информации о банковском счете клиента, описание форматов запросов и ответов приведены в <https://accounts-openapi.npck.kz/>

{% hint style="info" %}
*API v2 является устаревшим, необходимо реализовать API v3*
{% endhint %}

{% hint style="info" %}
Поставщик API предоставляет информацию о счетах только в случае успешной валидации запроса, в том числе:

* Платформа выполняет валидацию токена при маршрутизации сообщений, вместе с тем, для повышения безопасности рекомендуется выполнять проверку валидности токена также на стороне Поставщика API.

Сервер авторизации (Платформы) предоставляет возможность получения сведений из набора опубликованных ключей (JSON Web Key Set) в котором, содержится ключ проверки подписи сервера авторизации. Общие требования к структурам JWK и JWK Set приведены в RFC 7517 (<https://datatracker.ietf.org/doc/html/rfc7517>). Дополнительно доступен метод получения списка публичных ключей для проверки токена (см. <https://auth-openapi.npck.kz/#tag/Auth/operation/wellKnown>).

* должен проверять, что область действия (параметр \<scope>), связанная с предъявленным токеном доступа, соответствует запрошенному доступу;
* должен возвращать только ресурс, соответствующий объекту, явно указанному в запросе на доступ, и при условии, что доступ к этому ресурсу является допустимым с учетом разрешенной области действия (параметр \<scope>).
  {% endhint %}

2. Поставщик API должен войти в личный кабинет и опубликовать разработанные API (активировать соответствующие услуги, чтобы Пользователи API имели возможность к ним подключаться) на Платформе (см. [Публикация API](/rabota-s-testovym-okruzheniem-is-npk/rabota-s-testovymi-servisami/publikaciya-api.md)).


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.npck.kz/poluchenie-informacii-o-bankovskikh-schetakh-klienta-pilotnyi-proekt/rekomendacii-po-realizacii-integracii-dlya-postavshika-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
