Рекомендации по реализации интеграции для Пользователя API
Last updated
Last updated
Необходимо, чтобы Пользователь API:
1. Прошел процедуру регистрации на Портале АО «НПК» (см. подробнее в Регистрация и вход)
2. Подал заявку на подключение к Open Banking в качестве Пользователя API (см. подробнее в Подключение к Open Banking)
3. Зарегистрировал приложение Участника (см. подробнее в Управление API и приложениями)
Пользователю API необходимо выполнить доработку программного обеспечения:
Реализовать перенаправление Клиента для прохождения аутентификации и регистрации его согласия на доступ к данным, реализовать получение кода авторизации.
Реализовать получение токена доступа.
Реализовать получение данных посредством интерфейсов API. Для получения информации посредством интерфейсов API используется полученный токен доступа.
Реализовать отображение клиенту полученной информации в приложении Пользователя API.
Клиент инициирует в приложении Пользователя API получение информации о его банковских счетах.
Если клиент уже дал согласие на доступ к его счетам для приложения Пользователя API и токен доступа не истек, то выполняется переход к шагу 7.
Если клиент еще не дал согласие на доступ к его счетам для приложения Пользователя API, необходимо изменить список банков, на доступ к счетам в которых предоставляется согласие, или истек токен доступа, то выполняется переход к шагу 2.
Для предоставления согласия на доступ к данным приложение Пользователя API перенаправляет клиента на Платформу.
Если в ОС Android при проведении liveness-сессии не отображается изображение клиента (см. пример на рисунке ниже), то потенциальным решением проблемы может являться применение следующих параметров:
webView.settings.allowContentAccess = true; webView.settings.mediaPlaybackRequiresUserGesture = false; webView.settings.domStorageEnabled = true
WebKit в Android, позволяет видео компонентам запускаться только по действию пользователя, при этом для корректной работы сервисов ЦОИД камера запускается программными средствами (autoplay), WebKit блокирует данное действие и выдает ошибку. Чтобы избежать этого, необходимо в компоненте webView указать данную настройку.
В IOS необходимо использовать SafariWebView. WKWebView не поддерживается.
То к каким данным клиента запрашивается доступ определяется значениями, указанными в параметре scopes (могут быть указаны несколько значений) при запросе URL-адреса для перенаправления клиента:
accounts - доступ к списку счетов клиента
account_balance - доступ к информации о балансе счета
account_transactions - доступ к списку транзакций счета
Время действия URL-адреса для перенаправления (время «жизни») составляет 15 минут
Клиенту отображается форма аутентификации. Клиент проходит двухфакторную аутентификацию личности.
Клиент должен дать согласие на доступ к его данным для приложения Пользователя API.
Клиент может отклонить согласие на доступ к его данным.
Если клиент отклоняет согласие на доступ к его данным или происходит ошибка, то клиент будет перенаправлен на указанный на шаге 2 redirectUri, с указанием кода ошибки, по следующему шаблону:
[redirectUri]?errorCode=[error code]&state=[state]
В таком случае процесс завершается, код авторизации не предоставляется.
После того, как клиент выполнит все действия по предоставлению согласия на доступ к его данным, осуществляется его возврат в приложение Пользователя API.
Если аутентификация клиента проходит успешно и он дает согласие на доступ к его данным, то клиент перенаправляется обратно в приложение Пользователя API (на указанный в запросе redirectUri) с одноразовым кодом авторизации (code), по следующему шаблону:
[redirectUri]?code=[authorization code]&state=[state]
Код авторизации является одноразовым.
Время действия кода авторизации (время «жизни») составляет 300 секунд
Редирект из webview в случае SafariWebView нужно перехватывать через диплинк (deeplink)
Приложение Пользователя API получает токен доступа, используя полученный на предыдущем шаге код авторизации.
Важно! Токен доступа должен сохраняться в тайне и не передаваться в публичный доступ, должен храниться на серверной стороне приложения, и вся обработка, связанная с ним, должна производиться на серверной стороне приложения.
Приложение Пользователя API получает информацию о счетах клиента посредством интерфейсов API используется токен доступа, полученный на предыдущем шаге. Перечень методов API для получения информации о банковском счете клиента, описание форматов запросов и ответов приведены в https://accounts-openapi.npck.kz/.
API v1 является устаревшим, рекомендуется перейти на использование API v2
Приложение Пользователя API отображает клиенту полученную информацию о его счетах (см. рекомендации Рекомендации для мобильного приложения).