Настоящий документ разработан для развития и детализация стандартов Банка России серии «Открытые программные интерфейсы». Он предназначен для устранения возможных неоднозначностей в толковании требований базовых спецификаций API и обеспечения корректной технической реализации взаимодействия между Сторонними поставщиками услуг (СПУ) и Поставщиками услуг (ПУ) в рамках экосистемы Open Banking.
Методические рекомендации фокусируются на практических аспектах формирования сообщений и заполнения атрибутов данных для реализации сценариев, которые требуются участникам взаимодействия.
Унификация подходов к формированию объектов данных в ответах API методов, с целью обеспечения семантической и функциональной совместимости между различными системами участников рынка.
Все рекомендации, приведенные в последующих разделах, основываются на следующих принципах:
Принцип совместимости: Заполнение объектов должно обеспечивать корректную работу сценариев как для ПУ, так и для СПУ.
Принцип минимальной достаточности: Рекомендуется предоставлять данные, необходимые и достаточные для реализации заявленного сценария.
Принцип приоритета спецификации: В случае возникновения противоречий, приоритет имеют требования, изложенные в базовых спецификациях API и нормативных актах Банка России. Методические рекомендации не являются обязательными для реализации, но могут существенно снизить риски возникновения проблем при интеграции.
Принцип расширяемости: Структура документа позволяет добавлять новые сценарии без изменения существующих рекомендаций.
В документе приведены рекомендации по заполнению объектов в методах из спецификации Получение информации о банковских счетах клиента. Методы для Физических Лиц, в зависимости от бизнес-кейсов.
Содержание:
**Account**
для сценария me2me-переводов через СБП.Бизнес-кейс: me2me-перевод через СБП позволяет физическим лицам переводить средства между своими счетами в разных банках-участниках.
Ключевые положения: Для корректной работы межбанковских me2me-переводов по СБП необходимо в ответах методов GET /accounts и GET /accounts/{accountId} передавать реальный 20-значный номер счета (BBAN).
Для этого массив accountDetails в объекте Account становится обязательным и должен содержать объект с schemeName: "RU.CBR.BBAN".
Детальное разъяснение: В рамках экосистемы Open Banking для идентификации банковского счета используется параметр accountId. Согласно спецификациям АФТ, это универсальный строковый идентификатор (до 40 символов), который не обязан совпадать с реальным номером счета клиента в банке-поставщике.
Однако, для успешного проведения me2me (межбанковского) перевода через Систему быстрых платежей (СБП) банку-получателю (СПУ) необходим оригинальный номер счета карточного продукта в формате BBAN (Basic Bank Account Number — 20 цифр номера счета), а не внутренний идентификатор accountId.
При условии, что у счета есть номер в формате BBAN, в ответе API методов GET /accounts, GET /accounts/{accountId} помимо прочей информации о счете, должен обязательно передаваться массив accountDetails со schemeName = "RU.CBR.BBAN". Пример:
Такой подход решает ключевую проблему совместимости между абстрактными идентификаторами Open API и конкретными требованиями платежных систем, таких как НСПК, обеспечивая конечным клиентам бесшовный и удобный опыт использования me2me-переводов.
Заполнение обязательных параметров при применении сценария в соответствии с таблицами ниже:
Счет
Наименование | Обязательность | Тип | Требования по заполнению | Шаблон/Список |
---|---|---|---|---|
accountId | (Да) | string | Особых требований нет, заполняется в соответствии со спецификацией. | /^[a-zA-Z0-9-]{1,40}$/ |
status | (Да) | AccountStatus | Особых требований нет, заполняется в соответствии со спецификацией. | |
statusUpdateDateTime | (Нет) | string; format: date-time | Особых требований нет, заполняется в соответствии со спецификацией. | |
currency | (Да) | string | Особых требований нет, заполняется в соответствии со спецификацией. | /^[A-Z]{3,3}$/ |
accountType | (Да) | AccountType | Особых требований нет, заполняется в соответствии со спецификацией. | |
accountDescription | (Да) | string | Особых требований нет, заполняется в соответствии со спецификацией. | /^[\w\W]{1,128}$/ |
AccountDetails | (Нет) | Array[CashAccount] | Обязателен для кейса с me2me переводом через СБП. | |
Owner | (Нет) | PartyIdentification | Особых требований нет, заполняется в соответствии со спецификацией. | |
Servicer | (Нет) | BranchAndFinancialInstitutionInformationPE | Особых требований нет, заполняется в соответствии со спецификацией. |
Идентификация счета
Наименование | Обязательность | Тип | Требования по заполнению | Шаблон/Список |
---|---|---|---|---|
name | (Нет) | string | Особых требований нет, заполняется в соответствии со спецификацией. | /^[\w\W]{1,70}$/ |
schemeName | (Да) | AccountIdentificationCode | При наличии у счета номера в формате BBAN, принимает значение "RU.CBR.BBAN". Если номера счета в формате BBAN не существует, то допускается заполнение другим идентификатором, но в таком случае СПУ не сможет корректно осуществить me2me перевод. | |
identification | (Да) | string | Базовый номер счета клиента в банке-поставщике, необходимый для проведения платежа. | /^[\w\W]{1,256}$/ |
Схема идентификации банковского счета
Значение | Требования по заполнению |
---|---|
RU.CBR.BBAN | Базовый номер банковского счета (RUCBRAccountIdentifier) |