Вопрос:
Нам нужна твоя помощь в решении вопроса по выстраиванию URI-ресурсов с ВТБ. У нас возникли разногласия по спецификации, и хотелось бы их разрешить.Существует требование в стандартах Банка России по формированию URI (п. 3.4): Стандарт Банка России (https://www.cbr.ru/statichtml/file/59420/standart_3.pdf).
Примеры URI от ВТБ:
{host}/openapi/open-banking/v1.0/account-rb/accounts
{host}/openapi/open-banking/v1.0/account-rb/accounts/
{host}/openapi/open-banking/v1.0/balance-rb/accounts/{accountId}/balances
Примеры URI от Альфы:
{host}/api/pp/open-banking/v1.3/accounts
{host}/api/pp/open-banking/v1.3/accounts/
{host}/api/pp/open-banking/v1.3/accounts/{accountId}/balances
Основные отличия:
Версионирование.
У ВТБ между версией и ресурсом [version]/[resource] есть дополнительный префикс, который может отличаться в разных ендпоинтах: account-rb, balance-rb, paymentcard-rb и т.д. Мы полагаем, что такие вставки не предусмотрены спецификацией.
Можешь помочь нам разобраться, как правильно формировать URI в соответствии с требованиями Банка России?
Будем очень признательны за твою помощь
Ответ:
Да, зафиксировано сейчас для целевой системы
Путь URI соответствует следующей структуре:
• [participant-path-prefix]/open-banking/[version]/[resource-group]/[resource]/[resource-id]/[sub-resource]
Структура URI пути состоит из следующих элементов:
ППИУ использует один и тот же participant-path-prefix и host name для всех своих ресурсов.
Примеры:
https://bank.ru/oapi-channel/open-banking/v1.2/pisp/payments
https://bank.ru/oapi-channel/open-banking/v1.2/pisp/payments/1234
https://bank.ru/oapi-channel/open-banking/v1.3/aisp/v1.1/account-consents
https://bank.ru/oapi-channel/open-banking/v1.3/aisp/accounts
https://bank.ru/oapi-channel/open-banking/v1.3/aisp/accounts/1234
https://bank.ru/oapi-channel/open-banking/v1.3/aisp/accounts/1234/transactions
но resource-group предполагается как один параметр на всю спецификацию.
Т.е у Альфы допустимо без группы, у ВТБ не допустимо, так как группы разные а роль участника одна
По группе ресурсов наверное есть упущение, обычно мы описывали, для для счетов группу применять aisp.
Мнение Сбера
Я что то не припомню что бы у нас в этом месте возникали вопросы. К примеру в Сбере так - взяли за основу п.3.4 из документа "Получение информации о счете клиента третьей стороной", но после версии добавили еще /aisp и потом уже идет ресурс и тд.
Точно так, как в примерах выше
Мнение ВТБ
Итого, у ВТБ корректно сформированы пути. Единственный вопрос - регламентирование группировки ресурсов - каждый выбирает свое или же значения для всех из enum (фиксированные в стандарте)?
И необходимо явно везде это указать - сейчас по разным стандартам разные примеры и виды (=скорректировать).
И дополнительно - на колько корректно разделение как у Альфы - префиксом (фраза: ппиу использует один и тот же participant-path-prefix и host для всех своих ресурсов приводит к запрету использования префикса для разделения фл и юл)?
И остался вопрос с версионированием - почему 1.3? Он должен приравниваться к версии стандарта спецификации?
Т.е. если 1.3 для фл, а 1.6 для юл, то как разделить? Или не предполагается для фл и юл будут версии синхронизированы?
Эти раз'яснения где будут, в каком стандарте?
И вопрос - критично ли для пилота указывать 1.3?
На что влияет?
Ответ АФТ
Пока по вопросам, которые определены.
По путям ожидается, что конечные точки представлены в одной группе для в рамках одной роли участника. По счетам это aisp. У ВТБ указаны группы - account-rb и balance-rb, а они различны по значению, а так же не соответствуют ожидаемому значению.
Ожидается версия v 1.3. так как последняя опубликованная версия стандарта ЦБ РФ была 1.2.
Касательно использование префикса для разделения физических и юридических лиц - пока кажется очевидным, что префикс может быть и может быть разный, Очевидно есть проблема; как маршрутизировать один и тот же запрос (например get /accounts) на разные ресурсы.
На предыдущей встречи, мы уже обсуждали вопрос по разделению scope для физиков и юриков. Может это достаточно будет?
**Ответ ВТБ **
Вот здесь совсем все не понятно. Что за роль, откуда это появилось, где в стандартах это зафиксировано?
Что за aisp? Какие еще есть значения? Где они регламентированы? Ожидаемым значениям каким??
По разделению - однозначно необходимо, скоупом не обойтись: юл в банках еще и на смб, киб делятся - разные процессы
По версионированию - запланирована ли версия 1.4? Т.е. мы можем 1.3 занять пилотной реализацией, чтобы целевую планировать на 1.4?
Больше всего беспокоит появление ограничения по роли участника - здесь совсем ничего не понятно (как это связано со scope, permissions и связано ли, почему именование пути к конечной точке завязывается на роль и т.д.).
Ответ АФТ
Версия в URL указывается как в спецификации, до минорной без патч. Мы ожидаем, что ЦБ утвердит новые стандарты в версии 1.3 как ранее планировалось.
Ответ ВТБ
Префикс и хост - речь только про них в стандарте. Это учтено и реализовано.
На основании чего появляется вывод про 1 url?
1 группы на все методы не сделать - у нас есть деление фл, юл - это уже обсуждалось. Там разные процессы и принципы работы.
Как тогда нам сделать версию не до 1.3 (1.3* или 1.3.1)? И изменения не мажорные планируются?
Готова изменить в путях на 1.3 - но мне необходимо понимать принцип версионирования и управления такими минорами (первое время это пилоты, в основном)
Ответ АФТ
Основной вопрос в том, что нельзя делить счета и балансы на разные URL. До вызова метода ресурсный URL должен быть один.
Далее мы определяем как делить на физиков и юриков. Мы это еще обсудим, Внутри юриков сегодня обсуждали, будут при авторизации пользователя токен доступа привязывать к роли бизнеса внутри Сервера Авторизации.
Этот вопрос мы зафиксировали, но нормативные документы от ЦБ по данным вопросам будут позднее, Это общий вопрос ко всем нормативным требованиям.