Настоящий стандарт содержит описание конечных точек, моделей данных и контроля доступа к данным, которые являются общими для всех API, определяющих взаимодействие между СПУ и ПУ в процессе получения согласия Пользователя на доступ к информации о банковском счете Пользователя (далее по тексту настоящего стандарта – согласие).
Настоящий стандарт рекомендован к использованию организациями при обмене финансовыми сообщениями, связанными с получением согласия. Настоящий стандарт предназначен для:
участников взаимодействия, осуществляющих обмен информацией о банковских счетах физических лиц, а также связанной с ними информацией;
разработчиков информационного и программного обеспечения.
Положения настоящего стандарта носят рекомендательный характер и применяются совместно со следующими документами:
Стандарт Банка России СТО БР ФАПИ.СЕК-1.6-2024 «Безопасность финансовых (банковских) операций. Прикладные программные интерфейсы обеспечения безопасности финансовых сервисов на основе протокола OpenID» (далее - ФАПИ.СЕК).
Стандарт Банка России СТО БР ФАПИ.ПАОК-1.0-2024 «Безопасность финансовых (банковских) операций. Обеспечение безопасности финансовых сервисов при инициации OpenID Connect клиентом потока аутентификации по отдельному каналу» (далее - ФАПИ.ПАОК).
Стандарт Банка России СТО БР «Открытые программные интерфейсы. Общие положения».
Стандарт Банка России СТО БР «Открытые программные интерфейсы. Глоссарий».
Стандарт Банка России СТО БР «Открытые программные интерфейсы. Общие требования к прикладным стандартам. Технический стандарт».
Стандарт Банка России СТО БР «Открытые программные интерфейсы. Получение информации о банковских счетах Пользователя. Описание взаимодействия».
Стандарт Банка России СТО БР «Открытые программные интерфейсы. Получение информации о банковских счетах Пользователя. Правила взаимодействия».
Стандарт Банка России СТО БР «Открытые программные интерфейсы. Получение информации о банковских счетах Пользователя. Методы для физических лиц».
Стандарт Банка России СТО БР «Открытые программные интерфейсы. Профили Открытых программных интерфейсов для расширенного режима безопасности. Технический стандарт».
Другими документами комплекса стандартов Открытых API, размещенными на официальном сайте Банка России в информационно-телекоммуникационной сети «Интернет».
В настоящем стандарте применяются термины и определения в соответствии со стандартами ФАПИ.СЕК, ФАПИ.ПАОК, «Открытые программные интерфейсы. Общие положения», «Открытые программные интерфейсы. Глоссарий».
Спецификация API определяет поток взаимодействия при предоставлении согласия через информационный сервис Открытых программных интерфейсов, которые позволяют СПУ инициировать запрос на создание или удаление ресурса согласия.
Сервер ресурсов в рамках данной спецификации должен предоставлять единственный URI, соответствующий следующей структуре:
- participant-path-prefix]/[open-banking/[version]/[resource-group]/[resource]/[resource-id]/[sub-resource]
При этом параметр resource-group для данной спецификации должен иметь значение acis-pe.
Спецификация API определяет следующие конечные точки
| Наименование API | Метод | Обязательность | Описание | Метод авторизации |
|---|---|---|---|---|
| AccountConsents | post /account-consents | Да | Создание ресурса согласия на доступ к счету | Client Credentials flow; scopes: obru_account_consents_pe: Доступ к ресурсу согласия |
| AccountConsents | delete /account-consents/{consentId} | Да | Отзыв согласия на доступ к счету | Client Credentials flow; scopes: obru_account_consents_pe: Доступ к ресурсу согласия |
| AccountConsents | get /account-consents/{consentId} | Да | Получение ресурса согласия | Client Credentials flow; scopes: obru_account_consents_pe: Доступ к ресурсу согласия |
post /account-consents
Создание ресурса согласия на доступ к счету (createAccountAccessConsents).
Конечная точка позволяет СПУ инициировать создание ресурса согласия на доступ к счету на стороне ПУ (account-consents).
ConsentRequest (required)
| Наименование | Обязательность | Тип | Описание | Паттерн |
|---|---|---|---|---|
| x-fapi-interaction-id | (Да) | UUID; format: uuid | RFC4122 UID, используемый в качестве идентификатора корреляции. Если необходимо, то СПУ передает обратно значение идентификатора корреляции в заголовке ответа x-fapi-interaction-id. | |
| x-jws-signature | (Да) | String | Отделяемая подпись полезной нагрузки в формате JWS | |
| x-customer-user-agent | (Нет) | String | В заголовке указывается тип устройства (user-agent), который использует Пользователь. СПУ может заполнить это поле значением типа устройства (user-agent), указанным Пользователем. Если Пользователь использует мобильное приложение СПУ, СПУ проверяет, что строка типа устройства (user-agent) отличается от строки типа устройства (user-agent) на основе браузера. |
Данный метод API предоставляет следующие типы данных (media types):
application/json
Значение должно быть указано в параметре заголовка запроса Accept и возвращено в ответе с указанием в параметре заголовка Content-Type
| HTTP код | Тип ответа |
|---|---|
| 201 | ConsentResponse |
| 400 | OBRUErrorResponse |
| 401 | |
| 403 | OBRUErrorResponse |
| 405 | |
| 406 | |
| 429 | |
| 500 | OBRUErrorResponse |
| 501 | OBRUErrorResponse |
| 503 | OBRUErrorResponse |
delete /account-consents/{consentId}
Отзыв согласия на доступ к счету (deleteAccountAccessConsentsConsentId).
Конечная точка позволяет СПУ инициировать запрос на удаление ресурса согласия на доступ к счету, если Пользователь его отозвал на стороне СПУ.
consentId (required)
Path Parameter — Идентификатор ресурса согласия
| Наименование | Обязательность | Тип | Описание | Паттерн |
|---|---|---|---|---|
| x-fapi-interaction-id | (Да) | UUID; format: uuid | RFC4122 UID, используемый в качестве идентификатора корреляции. Если необходимо, то СПУ передает обратно значение идентификатора корреляции в заголовке ответа x-fapi-interaction-id. | |
| x-customer-user-agent | (Нет) | String | В заголовке указывается тип устройства (user-agent), который использует Пользователь. СПУ может заполнить это поле значением типа устройства (user-agent), указанным Пользователем. Если Пользователь использует мобильное приложение СПУ, СПУ проверяет, что строка типа устройства (user-agent) отличается от строки типа устройства (user-agent) на основе браузера. |
Данный метод API предоставляет следующие типы данных (media types):
application/json
Значение должно быть указано в параметре заголовка запроса Accept и возвращено в ответе с указанием в параметре заголовка Content-Type
| HTTP код | Тип ответа |
|---|---|
| 204 | |
| 400 | OBRUErrorResponse |
| 401 | |
| 403 | OBRUErrorResponse |
| 405 | |
| 406 | |
| 429 | |
| 500 | OBRUErrorResponse |
| 501 | OBRUErrorResponse |
| 503 | OBRUErrorResponse |
get /account-consents/{consentId}
Получение ресурса согласия (getAccountAccessConsentsConsentId).
Конечная точка позволяет СПУ инициировать запрос на получение ресурса согласия и проверять его состояние по идентификатору ресурса.
consentId (required)
Path Parameter — Идентификатор ресурса согласия
| Наименование | Обязательность | Тип | Описание | Паттерн |
|---|---|---|---|---|
| x-fapi-interaction-id | (Да) | UUID; format: uuid | RFC4122 UID, используемый в качестве идентификатора корреляции. Если необходимо, то СПУ передает обратно значение идентификатора корреляции в заголовке ответа x-fapi-interaction-id. | |
| x-customer-user-agent | (Нет) | String | В заголовке указывается тип устройства (user-agent), который использует Пользователь. СПУ может заполнить это поле значением типа устройства (user-agent), указанным Пользователем. Если Пользователь использует мобильное приложение СПУ, СПУ проверяет, что строка типа устройства (user-agent) отличается от строки типа устройства (user-agent) на основе браузера. |
Данный метод API предоставляет следующие типы данных (media types):
application/json
Значение должно быть указано в параметре заголовка запроса Accept и возвращено в ответе с указанием в параметре заголовка Content-Type
| HTTP код | Тип ответа |
|---|---|
| 200 | ConsentResponse |
| 400 | OBRUErrorResponse |
| 401 | |
| 403 | OBRUErrorResponse |
| 405 | |
| 406 | |
| 429 | |
| 500 | OBRUErrorResponse |
| 501 | OBRUErrorResponse |
| 503 | OBRUErrorResponse |
Спецификация API определяет типы и форматы данных, значения по умолчанию, перечисления и справочную информацию.
Согласие на доступ к счету
Описание применения разрешений Разрешения,
предоставляемые в Согласии, определяются в элементе "permissions" в виде
кодов, которые используются для ограничения данных, возвращаемых в ответ
на запрос ресурса. Эти коды определяют, к каким именно данным или
операциям СПУ запрашивает доступ у Пользователя. При определении
разрешений необходимо применять следующие условия:
Связь между "Detail" и "Basic" кодами разрешений: Когда предоставляется разрешение с кодом "Detail" (например, ReadAccountsDetail), это автоматически подразумевает доступ к соответствующему "Basic" коду разрешения (например, ReadAccountsBasic). Запрос на получение и "Basic", и соответствующего ему "Detail" разрешения является дублирующим, но это не считается ошибкой, и ПУ не должен отклонять запрос только из-за дублирования.
Обязательные разрешения: Массив разрешений должен содержать хотя бы одно из разрешений: ReadAccountsBasic или ReadAccountsDetail. Недопустимые комбинации разрешений: Определены несколько комбинаций разрешений, которые запрещены, и если они присутствуют в запросе на доступ к учетной записи (Account Access Consent), ПУ должен отклонить такой запрос с кодом ответа 400 (Bad Request): Запрос на доступ к учетной записи с пустым массивом разрешений. Запрос на доступ с кодом разрешения, который не поддерживается ПУ (ПУ обязаны публиковать список поддерживаемых конечных точек API). Запрос на доступ с массивом разрешений, содержащим ReadTransactionsBasic, но без хотя бы одного из ReadTransactionsCredits или ReadTransactionsDebits. Запрос на доступ с массивом разрешений, содержащим ReadTransactionsDetail, но без хотя бы одного из ReadTransactionsCredits или ReadTransactionsDebits. Запрос на доступ с массивом разрешений, содержащим ReadTransactionsCredits, но без хотя бы одного из ReadTransactionsBasic или ReadTransactionsDetail. Запрос на доступ с массивом разрешений, содержащим ReadTransactionsDebits, но без хотя бы одного из ReadTransactionsBasic или ReadTransactionsDetail.
Связь между "permission" и конечными точками: При предоставлении доступа к конечным точкам ПУ необходимо проверить наличие необходимых "permission" в согласии, связанном с предъявленным токеном доступа. ПУ должен контролировать набор возвращаемых значений согласно ниже представленной таблице.
| permission | Конечные точки | Бизнес логика | Кластер данных(/Data/*) |
|---|---|---|---|
| ReadAccountsBasic | - /accounts - /accounts/{accountId} |
Возможность чтения основной информации о счете | - Account |
| ReadAccountsDetail | - /accounts - /accounts/{accountId} |
Возможность чтения детальной информации о счете | - Account/AccountDetails - Account/Servicer - Account/Owner |
| ReadAccountsDeposits | - /accounts/deposits/{accountId} | Возможность чтения информации о депозитном счете | - Deposit |
| ReadBalances | - /balances - /accounts/{accountId}/balances - /payment-card-balances (требует разрешение `ReadPaymentCards`) |
Возможность чтения полной информации о балансе счета | - Balance |
| ReadTransactionsBasic | - /transactions - /accounts/{accountId}/transactions |
Возможность чтения основной информации о транзакциях. Массив разрешений должен также включать одно из следующих значений permission: - ReadTransactionsCredits - ReadTransactionsDebits |
- Transaction |
| ReadTransactionsDetail | - /transactions - /accounts/{accountId}/transactions |
Возможность чтения детальной информации о транзакциях. Массив разрешений должен также включать одно из следующих значений permission: - ReadTransactionsCredits - ReadTransactionsDebits |
Для методов Transactions: - Transaction/Balance - Transaction/DebtorAgent - Transaction/DebtorAgentAccount - Transaction/DebtorAccount - Transaction/CreditorAccount - Transaction/CreditorAgent - Transaction/CreditorAgentAccount - Transaction/RemittanceInformation |
| ReadTransactionsCredits | - /transactions | Возможность чтения информации об операциях зачисления на счет | - Transaction |
| ReadTransactionsDebits | - /transactions | Возможность чтения информации об операциях списания со счета | - Transaction |
| ReadProducts | - /products - /accounts/{accountId}/product |
Возможность чтения информации о финансовых продуктах Пользователя, привязанных к банковскому счету | - Product |
| ReadPaymentCards | - /payment-cards - /accounts/{accountId}/payment-cards - /payment-card-balances (требует разрешение `ReadBalances`) |
Возможность чтения информации о платежной карте | - PaymentCard - Balance |
Список атрибутов объекта Consent
| Наименование | Обязательность | Тип | Описание | Шаблон/Список |
|---|---|---|---|---|
| permissions | (Да) | array[PermissionsTypePE] | Указание типов данных доступа к счетам Пользователя. Это список доменов данных, которые были одобрены Пользователем и запрошены для авторизации на стороне ПУ. | |
| accountCategory | (Нет) | array[AccountCategory] | Вид счета | |
| expirationDateTime | (Нет) | string; format: date-time | Дата и время истечения срока действия согласия. В случае, если дата истечения не указана Пользователем, максимальный срок действия такого согласия определяется внутренними политиками ПУ, на стороне которого выдается согласие. | |
| transactionFromDateTime | (Нет) | string; format: date-time | Дата и время начала периода запроса операции по счету. Если период не указан, данные будут возвращены с самой ранней из доступных операций по счету | |
| transactionToDateTime | (Нет) | string; format: date-time | Дата и время окончания периода запроса операции по счету. Если период не указан, данные будут возвращены до последней доступной операции по счету |
Запрос создания ресурса согласия на доступ к счету
| Наименование | Обязательность | Тип | Описание | Шаблон/Список |
|---|---|---|---|---|
| Data | (Да) | Consent | Раздел данных полезной нагрузки запроса на создание ресурса согласия на доступ к счету |
Ресурс согласия на доступ к счету
| Наименование | Обязательность | Тип | Описание | Шаблон/Список |
|---|---|---|---|---|
| Data | (Да) | DataConsentResponse | Раздел данных полезной нагрузки ответа согласия на доступ к счету | |
| Links | (Нет) | Links | Раздел для указания ссылок | |
| Meta | (Нет) | Meta | Раздел метаданных |
Раздел данных полезной нагрузки ответа согласия на доступ к счету
| Наименование | Обязательность | Тип | Описание | Шаблон/Список |
|---|---|---|---|---|
| consentId | (Да) | string | Уникальный идентификатор, предназначенный для идентификации ресурса согласия на доступ к счету | /^[a-zA-Z0-9-_]{1,40}$/ |
| creationDateTime | (Да) | string; format: date-time | Дата и время создания ресурса | |
| status | (Да) | ConsentStatus | Статус ресурса согласия | |
| statusUpdateDateTime | (Да) | string; format: date-time | Дата и время обновления статуса ресурса | |
| permissions | (Да) | array[PermissionsTypePE] | Указание типов данных доступа к счетам Пользователя. Это список доменов данных, которые были одобрены Пользователем и запрошены для авторизации на стороне ПУ | |
| accountCategory | (Нет) | array[AccountCategory] | Вид счета | |
| expirationDateTime | (Нет) | string; format: date-time | Дата и время истечения срока действия согласия. В случае, если дата истечения не указана Пользователем, максимальный срок действия такого согласия определяется внутренними политиками ПУ, на стороне которого выдается согласие. | |
| transactionFromDateTime | (Нет) | string; format: date-time | Дата и время начала периода запроса операции по счету. Если период не указан, данные будут возвращены с самой ранней из доступных операций по счету | |
| transactionToDateTime | (Нет) | string; format: date-time | Дата и время окончания периода запроса операции по счету. Если период не указан, данные будут возвращены до последней доступной операциию по счету |
Поставщик услуг предоставляет постраничный ответ для операций GET, которые возвращают множественные записи.
| Наименование | Обязательность | Тип | Описание | Шаблон/Список |
|---|---|---|---|---|
| self | (Да) | string; format: uri | Текущая ссылка | |
| first | (Нет) | string; format: uri | Первая ссылка | |
| prev | (Нет) | string; format: uri | Предыдущая ссылка | |
| next | (Нет) | string; format: uri | Следующая ссылка | |
| last | (Нет) | string; format: uri | Последняя ссылка |
Дополнительные данные о запросе. «totalPages», указывает на количество передаваемых страниц. Если передается более одной страницы, то элемент «totalPages» обязательно присутствует.
| Наименование | Обязательность | Тип | Описание | Шаблон/Список |
|---|---|---|---|---|
| totalPages | (Нет) | integer; format: int32 | Указывает на количество передаваемых страниц |
Контейнер с ошибкой
| Наименование | Обязательность | Тип | Описание | Шаблон/Список |
|---|---|---|---|---|
| errorCode | (Да) | OBRUErrorResponseErrorCode | Низкоуровневое описание ошибки | |
| message | (Да) | string | Описание ошибки | /^[\w\W]{1,500}$/ |
| path | (Нет) | string | Путь к элементу с ошибкой в JSON объекте. Рекомендуемое, но не обязательное поле | /^[\w\W]{1,500}$/ |
| url | (Нет) | string; format: uri | URL для помощи в устранении проблемы, Также через URL можно предоставлять дополнительную информацию |
Контейнер с детализацией ошибки
| Наименование | Обязательность | Тип | Описание | Шаблон/Список |
|---|---|---|---|---|
| code | (Да) | string | Высокоуровневый текстовый код ошибки, необходимый для классификации | /^[a-zA-Z0-9-]{1,40}$/ |
| id | (Нет) | string | Уникальный идентификатор ошибки, для целей аудита, в случае неизвестных / не классифицированных ошибок | /^[a-zA-Z0-9-]{1,40}$/ |
| message | (Да) | string | Краткое сообщение об ошибке. Например, «что-то не так с предоставленными параметрами запроса» | /^[\w\W]{1,500}$/ |
| Errors | (Да) | array[OBRUError] | Контейнер с ошибкой |
В рамках текущей спецификации определены статические типы данных в виде кодов, и динамические типы данных, представляющие собой расширяемый список значений. В случае необходимости Поставщик услуг может расширить список значений динамических данных, опубликовав информацию на портале разработчиков. Значения динамических типов данных располагаются в соответствующих пространствах имен, для идентификации источника, использующего расширение. Стандартные динамические значения представлены в данном стандарте и с префиксом RU.CBR. При добавлении собственных значений в справочники участники помещают такие значения в пространство имен, состоящее из двухбуквенного кода страны (код ISO 3166-1 Alpha-2), наименование организации в виде кода и значения справочного кода, разделенных между собой точкой, например:
RU.VTB.CODE1
RU.VTB.CODE2
Вид счета
| Значение | Описание |
|---|---|
| CurrentAccount | Текущий счет |
| DepositAccount | Счет по вкладу |
| SavingAccount | Накопительный счет |
| MetalAccount | Обезличенный металлический счет |
Статус ресурса account-consent
| Значение | Описание |
|---|---|
| AwaitingAuthorisation | Ресурс согласия ожидает авторизации Пользователя |
| Rejected | Ресурс согласия был отклонен |
| Authorised | Ресурс согласия был успешно авторизован |
| Revoked | Ресурс согласия отозван |
Низкоуровневое описание ошибки. Поставщик услуг должен заполнить сообщение детальным описанием ошибки, не раскрывая конфиденциальную информацию.
| Код ошибки | HTTP статус | Описание |
|---|---|---|
| RU.CBR.Field.Expected | 400 | Если поля передаются парой (ключ-значение) и значение не было передано. В поле path должен передаваться путь к ожидаемому полю (например, ErrorResponse.Errors.path == “AccountResponse.Data.Account.AccountDetails.identification”). Например, для допустимого значения поля «schemeName» должно передаваться соответствующее значение идентификатора в поле «identification». |
| RU.CBR.Field.Invalid | 400 | В поле указано недопустимое значение или длина предоставленного значения превышает соответствующую максимальную длину поля в домене ПУ. Ссылка на недопустимое поле должна быть указана в поле path (например, ErrorResponse.Errors.path == “AccountResponse.Data.Account.AccountDetails.schemeName”). В поле URL может быть ссылка на веб-страницу, объясняющую правильное поведение. |
| RU.CBR.Field.InvalidDate | 400 | Указана неверная дата. Например, когда ожидается будущая дата, а указана дата в прошлом или текущая дата. Ссылка на недопустимое поле должна быть указана в поле path. |
| RU.CBR.Field.Missing | 400 | Обязательное поле, необходимое для API, отсутствует в полезной нагрузке. Данный код ошибки можно использовать, если ошибка еще не определена при проверке RU.CBR.Resource.InvalidFormat. |
| RU.CBR.Header.Invalid | 400 | В элементе заголовка HTTP указано неверное значение. Элемент заголовка HTTP должен быть указан в элементе пути. |
| RU.CBR.Header.Missing | 400 | Обязательный элемент HTTP-заголовка не был предоставлен. Элемент заголовка HTTP должен быть указан в элементе path. |
| RU.CBR.Resource.InvalidFormat | 400 | Json-схема полезной нагрузки не соответствует конечной точке. Например, конечная точка POST /account-consents вызывается с полезной нагрузкой JSON, которая не может быть проанализирована в классе ConsentRequest. |
| RU.CBR.Resource.NotFound | 400 | Ресурс с указанным идентификатором не существует или не может быть обработан (в том числе неприемлемый формат или значение идентификатора ресурса). |
| RU.CBR.Resource.NotCreated | 400 | Ресурс с указанным идентификатором еще не создан и не может быть передан в ответном сообщении. Для асинхронных вызовов. |
| RU.CBR.Rules.AfterCutOffDateTime | 400 | Ресурс согласия или ресурс платежа запрашиваются после даты CutOffDateTime. |
| RU.CBR.Signature.Invalid | 400 | Заголовок подписи x-jws-signature был проанализирован и имеет действительный заголовок JOSE, соответствующий спецификации. Но сама подпись не может быть проверена. |
| RU.CBR.Signature.InvalidClaim | 400 | Заголовок JOSE в элементе x-jws-signature имеет одно или несколько утверждений (claim) с недопустимым значением. |
| RU.CBR.Signature.MissingClaim | 400 | Заголовок JOSE в элементе x-jws-signature имеет одно или несколько обязательных утверждений, которые не указаны. |
| RU.CBR.Signature.Malformed | 400 | x-jws-signature в заголовке запроса была искажена и не могла быть проанализирована как допустимый JWS. |
| RU.CBR.Signature.Missing | 400 | Запрос API предполагает x-jws-signature в заголовке, но элемент отсутствовал. |
| RU.CBR.Unsupported.AccountIdentifier | 400 | Идентификатор счета не поддерживается для данной схемы. Элемент path должен быть заполнен путем к элементу accountIdentifier. |
| RU.CBR.Unsupported.LocalInstrument | 400 | Указанный localInstrument не поддерживается ПУ. Элемент path должен быть заполнен путем к элементу localInstrument. |
| RU.CBR.Operation.Unprocessable | 400 | Операция по извлечению ресурса не может быть выполнена или недопустима. |
| RU.CBR.Authenticate.InvalidScope | 403 | Предъявленный токен доступа не содержит область действия ("scope") необходимую для доступа к ресурсу. |
| RU.CBR.Authenticate.InvalidConsent | 403 | Отказано доступу к ресурсу с указанным идентификатором, так как согласие Пользователя отсутствует или не корректно. |
| RU.CBR.Authenticate.SuspiciousActivityDetected | 403 | Доступ к ресурсу приостановлен по причине выявления подозрения на мошеннические действия. |
| RU.CBR.Rules.ResourceAlreadyExists | 409 | Ресурс с такими же параметрами уже существует. |
| RU.CBR.UnexpectedError | 5xx | Данный код ошибки можно использовать при возникновении непредвиденной ошибки. |
Типы разрешений на доступ к счету для физических лиц
| Значение | Описание |
|---|---|
| ReadAccountsBasic | Возможность чтения основной информации о счете |
| ReadAccountsDetail | Возможность чтения детальной информации о счете |
| ReadAccountsDeposits | Возможность чтения информации о депозитном счете |
| ReadBalances | Возможность чтения информации об остатке на счете |
| ReadProducts | Возможность чтения информации о продуктах, привязанных к счету |
| ReadTransactionsBasic | Возможность чтения основной информации об операциях по счету |
| ReadTransactionsCredits | Возможность чтения информации об операциях зачисления на счет |
| ReadTransactionsDebits | Возможность чтения информации об операциях списания со счета |
| ReadTransactionsDetail | Возможность чтения детальной информации об операциях по счету |
| ReadPaymentCards | Возможность чтения информации о платежной карте |
POST /account-consents HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-fapi-auth-date: Sun, 10 Sep 2024 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
Accept: application/json
{
"Data": {
"permissions": [
"ReadAccountsDetail",
"ReadBalances",
"ReadProducts",
"ReadTransactionsCredits",
"ReadTransactionsDebits",
"ReadTransactionsDetail",
"ReadPaymentCards"
],
"accountCategory": ["MetalAccount"],
"expirationDateTime": "2024-05-02T00:00:00+00:00",
"transactionFromDateTime": "2024-05-03T00:00:00+00:00",
"transactionToDateTime": "2024-12-03T00:00:00+00:00"
}
}
HTTP/1.1 201 Created
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
{
"Data": {
"consentId": "urn-anybank-intent-99880",
"status": "AwaitingAuthorisation",
"statusUpdateDateTime": "2024-05-02T00:00:00+00:00",
"creationDateTime": "2024-05-02T00:00:00+00:00",
"permissions": [
"ReadAccountsDetail",
"ReadBalances",
"ReadProducts",
"ReadTransactionsCredits",
"ReadTransactionsDebits",
"ReadTransactionsDetail",
"ReadPaymentCards"
],
"accountCategory": ["MetalAccount"],
"expirationDateTime": "2024-08-02T00:00:00+00:00",
"transactionFromDateTime": "2024-05-03T00:00:00+00:00",
"transactionToDateTime": "2024-12-03T00:00:00+00:00"
},
"Links": {
"self": "https://api.anybank.ru/open-banking/v2.0/acis-pe/account-consents/urn-anybank-intent-99880"
},
"Meta": {
"totalPages": 1
}
}
В данном примере запрос был выполнен до того, когда ресурс согласия был авторизован.
GET /account-consents/urn-anybank-intent-99880 HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-fapi-auth-date: Sun, 10 Sep 2024 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Accept: application/json
HTTP/1.1 200 OK
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
{
"Data": {
"consentId": "urn-anybank-intent-99880",
"status": "AwaitingAuthorisation",
"statusUpdateDateTime": "2024-05-02T00:05:00+00:00",
"creationDateTime": "2024-05-02T00:00:00+00:00",
"permissions": [
"ReadAccountsDetail",
"ReadBalances",
"ReadProducts",
"ReadTransactionsCredits",
"ReadTransactionsDebits",
"ReadTransactionsDetail",
"ReadPaymentCards"
],
"accountCategory": ["MetalAccount"],
"expirationDateTime": "2024-08-02T00:00:00+00:00",
"transactionFromDateTime": "2024-05-03T00:00:00+00:00",
"transactionToDateTime": "2024-12-03T00:00:00+00:00"
},
"Links": {
"self": "https://api.anybank.ru/open-banking/v2.0/acis-pe/account-consents/urn-anybank-intent-99880"
},
"Meta": {
"totalPages": 1
}
}
В данном примере запрос был выполнен после того, как ресурс согласия был авторизован.
GET /account-consents/urn-anybank-intent-99880 HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-fapi-auth-date: Sun, 10 Sep 2024 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Accept: application/json
HTTP/1.1 200 OK
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
{
"Data": {
"consentId": "urn-anybank-intent-99880",
"status": "Authorised",
"statusUpdateDateTime": "2024-05-02T00:05:00+00:00",
"creationDateTime": "2024-05-02T00:00:00+00:00",
"permissions": [
"ReadAccountsDetail",
"ReadBalances",
"ReadProducts",
"ReadTransactionsCredits",
"ReadTransactionsDebits",
"ReadTransactionsDetail",
"ReadPaymentCards"
],
"accountCategory": ["MetalAccount"],
"expirationDateTime": "2024-08-02T00:00:00+00:00",
"transactionFromDateTime": "2024-05-03T00:00:00+00:00",
"transactionToDateTime": "2024-12-03T00:00:00+00:00"
},
"Links": {
"self": "https://api.anybank.ru/open-banking/v2.0/acis-pe/account-consents/urn-anybank-intent-99880"
},
"Meta": {
"totalPages": 1
}
}
В данном примере запрос был выполнен после того, как срок действия ресурса согласия истек.
GET /account-consents/urn-anybank-intent-99880 HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-fapi-auth-date: Sun, 10 Sep 2024 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Accept: application/json
HTTP/1.1 200 OK
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
{
"Data": {
"consentId": "urn-anybank-intent-99880",
"status": "Revoked",
"statusUpdateDateTime": "2024-08-02T00:00:00+00:00",
"creationDateTime": "2024-05-02T00:00:00+00:00",
"permissions": [
"ReadAccountsDetail",
"ReadBalances",
"ReadProducts",
"ReadTransactionsCredits",
"ReadTransactionsDebits",
"ReadTransactionsDetail",
"ReadPaymentCards"
],
"accountCategory": ["MetalAccount"],
"expirationDateTime": "2024-08-02T00:00:00+00:00",
"transactionFromDateTime": "2024-05-03T00:00:00+00:00",
"transactionToDateTime": "2024-12-03T00:00:00+00:00"
},
"Links": {
"self": "https://api.anybank.ru/open-banking/v2.0/acis-pe/account-consents/urn-anybank-intent-99880"
},
"Meta": {
"totalPages": 1
}
}
DELETE /account-consents позволяет СПУ удалять ранее созданный ресурс Согласия account-consent не завизимо от того, был он авторизован или нет. Данный метод позволяет Пользователю отзывать согласие на стороне СПУ и извещать ПУ о том, что согласие отозвано.
DELETE /account-consents/urn-anybank-intent-99880 HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-fapi-auth-date: Sun, 10 Sep 2024 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
HTTP/1.1 204 No Content
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
POST /account-consents HTTP/1.1
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
x-fapi-auth-date: Sun, 10 Sep 2024 19:43:31 GMT
x-fapi-customer-ip-address: 104.25.212.99
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
Accept: application/json
{
"Data": {
"permissions": [
"ReadAccountsBasic",
"ReadBalances"
],
"expirationDateTime": "2024-05-02T00:00:00+00:00",
"transactionFromDateTime": "2024-05-03T00:00:00+00:00",
"transactionToDateTime": "2024-12-03T00:00:00+00:00"
}
}
HTTP/1.1 201 Created
x-fapi-interaction-id: 93bac548-d2de-4546-b106-880a5018460d
Content-Type: application/json
{
"Data": {
"consentId": "urn-anybank-intent-99880",
"status": "AwaitingAuthorisation",
"statusUpdateDateTime": "2024-05-02T00:00:00+00:00",
"creationDateTime": "2024-05-02T00:00:00+00:00",
"status": "AwaitingAuthorisation",
"permissions": [
"ReadAccountsBasic",
"ReadBalances"
],
"expirationDateTime": "2024-08-02T00:00:00+00:00",
"transactionFromDateTime": "2024-05-03T00:00:00+00:00",
"transactionToDateTime": "2024-12-03T00:00:00+00:00"
},
"Links": {
"self": "https://api.anybank.ru/open-banking/v2.0/acis-pe/account-consents/urn-anybank-intent-99880"
},
"Meta": {
"totalPages": 1
}
}