Версия | Дата | Автор | Комментарий |
Наименование | Описание |
API (Application Programming Interface) | Набор процедур, протоколов и инструментов для создания программных приложений. API определяет, как программные компоненты должны взаимодействовать |
Открытые банковские интерфейсы | Бесплатные и общедоступные интерфейсы прикладного программирования (API), которые предоставляют разработчикам программный доступ к лицензионному программному приложению |
Публичные данные, публичная информация | Данные, к которым каждый может получить доступ, использовать их или делиться ими |
Пользователь | Физическое или юридическое лицо, являющееся потребителем публичных данных |
Хозяйствующий субъект | Коммерческая организация, некоммерческая организация, осуществляющая деятельность, приносящую ей доход, индивидуальный предприниматель, иное физическое лицо, не зарегистрированное в качестве индивидуального предпринимателя, но осуществляющее профессиональную деятельность, приносящую доход, в соответствии с федеральными законами на основании государственной регистрации и (или) лицензии, а также в силу членства в саморегулируемой организации |
Сторонний поставщик | Хозяйствующий субъект, использующий Открытые банковские интерфейсы для доступа к публичным данным (при осуществлении роли СППД). Сторонний поставщик отправляет сообщения запроса через Открытые банковские интерфейсы ППД и получает соответствующие ответные сообщения от этого ППД |
Поставщик публичных данных (ППД) | Кредитная организация, публикующая Открытые банковские интерфейсы для целей предоставления своих публичных данных |
Сторонний поставщик публичных данных (СППД) | Сторонний поставщик, предоставляющий Пользователю услугу по получению публичных данных ППД в режиме реального времени |
Среда Открытых банковских интерфейсов | Комплекс стандартов Открытых банковских интерфейсов, управление, системы, процессы, безопасность и процедуры, используемые для поддержки участников |
Участники среды Открытых банковских интерфейсов | Пользователи, кредитные организации и иные субъекты финансового рынка, разработчики программного обеспечения, которые участвуют в создании и развитии среды Открытых банковских интерфейсов |
Ресурс | Представление любой сущности (например, перевод денежных средств, счет, транзакция) в определенном формате (например, JSON). Каждый ресурс идентифицируется посредством постоянного идентификатора, который не меняется при изменении состояния ресурса |
Полезная нагрузка | Часть пакета данных (сообщения) без служебной информации (без заголовка, битов синхронизации и т.п.). Детальное описание структуры полезной нагрузки представлено в разделе 5.2 "Общая структура полезной нагрузки" |
2019-07-08T11:23:03+00:00 2019-05-03T18:13:23Z |
2019-07-01T09:23:01+03:00 |
Mon, 26 Aug 2019 14:23:51 GMT +03:00 |
Параметр header | Комментарий | GET-запрос |
x-fapi-customer-ip-address | IP-адрес Пользователя, если Пользователь в данный момент подключен к СППД (залогинен в приложении СППД) | Необязательно |
x-fapi-interaction-id | RFC 4122 UID, используемый в качестве идентификатора корреляции. Если необходимо, ППД должен передавать обратно значение идентификатора корреляции в заголовке ответа x-fapi-interaction-id | Необязательно |
Content-Type | Стандартный заголовок HTTP. Представляет формат полезной нагрузки в запросе. Должно быть установлено значение application/json. СППД может предоставлять дополнительную информацию. Если установлено другое значение, ППД должен прислать ответ: 415 Unsupported Media Type | Не используется |
Accept | Стандартный HTTP-заголовок, определяющий тип контента, который требуется от сервера. Если СППД ожидает незашифрованный ответ, он должен указывать явно, что только ответ в формате JSON принимается (передавая значение application/json) в качестве заголовка контента для всех конечных точек, которые отвечают в формате JSON. Для конечных точек, которые не отвечают в формате JSON, ППД должен указать доступные параметры на своем портале для разработчиков. СППД может предоставлять дополнительную информацию. Если установлено недопустимое значение, ППД должен ответить: 406 (Not Acceptable). Если значение не указано, по умолчанию используется application/json | Необязательно |
x-customer-user-agent | В заголовке указывается тип устройства (user-agent), который использует Пользователь. СППД может заполнить это поле значением типа устройства (user-agent), указанным Пользователем. Если Пользователь использует мобильное приложение Стороннего поставщика, СППД должен убедиться, что строка типа устройства (user-agent) отличается от строки типа устройства (user-agent) на основе браузера | Необязательно |
Параметр header | Комментарий | Обязательность |
Content-Type | Стандартный параметр заголовка HTTP. Представляет формат полезной нагрузки, возвращаемой в ответе. ППД должен возвращать значение Content-Type, равное application/json | Обязательно |
Retry-After | Параметр заголовка, указывающий время (в секундах), в течение которого СППД должен ждать перед повторением операции. ППД следует включать этот заголовок вместе с ответами с кодом состояния HTTP 429 (Too Many Requests) | Необязательно |
x-fapi-interaction-id | RFC 4122 UID, используемый в качестве идентификатора корреляции. ППД должен заполнять параметр заголовка ответа x-fapi-interaction-id значением, полученным в соответствующем параметре заголовка запроса, или значением UID RFC 4122, если значение не было предоставлено в запросе для отслеживания взаимодействия | Обязательно |
Ситуация | Статус HTTP | Комментарий | POST | GET | DELETE | PUT |
Запрос успешно выполнен | 200 OK | Метод PUT должен быть определен на возврат обновленного ресурса. Следовательно, код 200 должен приходить | Нет | Да | Нет | Да |
Операция создания выполнена успешно | 201 Created | Результатом операции является создание нового ресурса | Да | Нет | Нет | Нет |
Операция удаления успешно завершена | 204 No Content | Нет | Нет | Да | Нет | |
Запрос имеет неверный формат, отсутствующие или несовместимые тело JSON, параметры URL или поля заголовка | 400 Bad Request | Запрошенная операция не будет выполнена | Да | Да | Да | Да |
СППД пытается получить ресурс, который указан в спецификации, но не реализован на стороне ППД (например, ППД решил не реализовывать конечную точку API-статуса для внутренних запланированных платежей). СППД пытается получить ресурс, который не определен | 404 (Not Found) | Да | Да | Да | Да | |
СППД попытался получить доступ к ресурсу с помощью метода, который не поддерживается | 405 Method Not Allowed | Да | Да | Да | Да | |
Запрос содержал параметр заголовка Accept, отличный от разрешенных media types, и набор символов, отличный от UTF-8 | 406 Not Acceptable | Да | Да | Да | Да | |
Операция была отклонена, поскольку полезная нагрузка находится в формате, не поддерживаемом этим методом на целевом ресурсе | 415 Unsupported Media Type | Да | Нет | Нет | Да | |
Время ожидания истекло | 419 Request Timeout | Да | Да | Да | Да | |
Операция была отклонена, так как слишком много запросов было сделано в течение определенного периода времени | 429 Too Many Requests | ППД могут ограничивать запросы, если они сделаны сверх их политики добросовестного использования. ППД должны документировать свои политики добросовестного использования на своих порталах для разработчиков. ППД должны отвечать этим статусам, если количество запросов в единицу времени было превышено. ППД следует включать заголовок Retry-After в ответ, указывающий, как долго СППД должен ждать перед повторением операции | Да | Да | Да | Да |
Что-то пошло не так на стороне ППД | 500 Internal Server Error | Операция не удалась | Да | Да | Да | Да |
Устаревшая версия сервиса | 503 Service Unavailable | Если API устарел и больше не поддерживается ППД, его путь URI все еще может быть активным и принимать запросы. В этом контексте рекомендуется вернуть 503 Service Unavailable, чтобы СППД знал, что версия API находится в офлайн-режиме | Да | Да | Да | Да |
Ситуация | Запрос | Ответ |
СППД пытается получить информацию об устройствах с неопределенным идентификатором deviceld | GET/devices/22289 | 400 (Bad Request) |
СППД пытается получить ресурс, который указан в спецификации, но не реализован на стороне ППД. Например, ППД решил не реализовывать конечную точку API Кредитные организации | GET/banks | 404 (Not Found) |
СППД пытается получить ресурс, который не определен | GET/bulk | 404 (Not Found) |
{ "Data": { ... } } |
{ "Data": { ... }, "Links" { ... }, "Meta": { ... } } |
{ "Code": "...", "Id": "...", "Message": "...", "Errors": "...", [ { "ErrorCode": "...", "Message": "...", "Path": "...", "Url" : "..." } ] } |
Наименование | Кратность | XPath | Подробное описание | Тип данных | Значение | Шаблон |
OBErrorResponse | OBRUErrorResponse | Массив подробных кодов ошибок, сообщений и URL-адресов к документации для помощи в исправлении | OBRUErrorResponse | |||
Code | 1..1 | OBRUErrorResponse/Code | Высокоуровневый текстовый код ошибки, необходимый для классификации | Max40Text | ||
Id | 0..1 | OBRUErrorResponse/Id | Уникальный идентификатор ошибки для целей аудита в случае неизвестных/неклассифицированных ошибок | Max40Text | ||
Message | 1..1 | OBRUErrorResponse/Message | Краткое сообщение об ошибке. Например, "Что-то не так с предоставленными параметрами запроса" | Max500Text | ||
Errors | 1..n | OBRUErrorResponse/Errors | OBRUError | |||
ErrorCode | 1..1 | OBRUErrorResponse/Errors/ErrorCode | Низкоуровневое текстовое описание ошибки. Например, RU.SBRF.Field. Missing | OBRUErrorResponseErrorCode | ||
Message | 1..1 | OBRUErrorResponse/Errors/Message | Описание ошибки. Например, "Обязательное поле не указано" | MaxSOOText | ||
Path | 0..1 | OBRUErrorResponse/Errors/Path | Путь к элементу с ошибкой в объекте JSON. Рекомендуемое, но не обязательное поле | Max500Text | ||
Url | 0..1 | OBRUErrorResponse/Errors/Url | URL для помощи в устранении проблемы. Также через URL можно предоставлять дополнительную информацию | xs:anyURI |
{
"Name": "", // Неправильно. Поле "Name"
нужно исключить из полезной нагрузки.
"Age": 0, // Неправильно. Значение
"0" не должно использоваться для указания неопределенного
возраста.
"CreditorAccount": {}, // Неправильно. Поле
"CreditorAccount" нужно исключить.
"Balances": [] // Правильно. Таким образом
должен передаваться пустой массив.
}
|
"Links": { "self": "https://api.bank.ru/open-banking/v3.1/payments/58923" } |
"Links": | { | |
"self": | "http://rocks.ru/articles?page[number]=3&page[size]=25", | |
"first": | "http://rocks.ru/articles?page[number]=1&page[size]=25", | |
"prev": | "http://rocks.ru/articles?page[number]=2&page[size]=25", | |
"next": | "http://rocks.ru/articles?page[number]=4&page[size]=25", | |
"last": | "http://rocks.ru/articles?page[number]=6&page[size]=25" | |
} | ||
"Meta": { "TotalPages": 6 } |
GET /accounts/34566/transactions НТТР/1.1 Authorization: Bearer Az567AOJtyue x-fapi-auth-date: Mon, 2 Sep 2019 12:33:12 GMT +03:00 x-fapi-customer-ip-address: 10.5.412.45 x-fapi-interaction-id: 11bac543-d5de-3446-b687-880a5018434d Accept: application/json |
HTTP/1.1 200 OK | ||
x-fapi-interaction-id: 11bac543-d5de-3446-b687-880a5018434d Content-Type: application/json | ||
{ "Data": { ... }, | ||
"Links": | { | |
"self": | "https://bank.ru/open-banking/v1.0/devices", | |
"last": | "https://bank.ru/open-banking/v1.0/devices?pg=6", | |
"first": | "https://bank.ru/open-banking/v1.0/devices", | |
"next": | "https://bank.ru/open-banking/v1.0/devices?pg=2" | |
}, | ||
"Meta": { | ||
"TotalPages": 6, } } | ||
Ресурс | Метод HTTP | Конечная точка | Параметры | Объект запроса | Объект ответа |
banks | GET | GET/banks | BankResponse |
Наименование | Кратность | Путь | Описание | Тип | Значение | Шаблон |
BankResponse | BankResponse | BankResponseComplexType | ||||
Data | 1..1 | BankResponse/Data | DataBankResponseComplexType | |||
Bank | 0..N | BankResponse/Data/Bank | BankComplexType | |||
bankld | 1..1 | BankResponse/Data/Bank/bankld | Идентификатор ресурса кредитной организации | Max35Text | ||
bicfi | 0..1 | BankResponse/Data/Bank/bicfi | SWIFT bic | BICFIIdentifier | [A-Z0-9](4][A-Z]{2][A-Z0-9]{2}([A-Z0-9]{3}){0,1} | |
bic | 0..1 | BankResponse/Data/Bank/bic | БИК | BIKStaticType | ||
clearingSystemMemberld | 0..1 | BankResponse/Data/Bank/clearingSystemMemberld | Идентификатор участника в платежной системе | Max35Text | ||
baseUrl | 1..1 | BankResponse/Data/Bank/baseUrl | Базовый URL кредитной организации | Max35Text | ||
bankName | 1..1 | BankResponse/Data/Bank/bankName | Наименование кредитной организации | Max140Text | ||
bankNameEng | 0..1 | BankResponse/Data/Bank/bankNameEng | Наименование кредитной организации на английском языке | Max140Text | ||
shortBankName | 0..1 | BankResponse/Data/Bank/shortBankName | Сокращенное наименование кредитной организации | Max35Text | ||
bankDescription | 0..1 | BankResponse/Data/Bank/bankDescription | Детальное описание кредитной организации | Max255Text | ||
legalEntityld | 0..1 | BankResponse/Data/Bank/legalEntityld | Код идентификации юридических лиц LEI | Max20Text | ||
PostalAddress | 1..1 | BankResponse/Data/Bank/PostalAddress | PostalAddressComplexType | |||
streetName | 0..1 | BankResponse/Data/Bank/PostalAddress/streetName | Название улицы | Max70Text | ||
buildingNumber | 0..1 | BankResponse/Data/Bank/PostalAddress/buildingNumber | Номер здания | Max16Text | ||
department | 0..1 | BankResponse/Data/Bank/PostalAddress/department | Номер корпуса здания | Max70Text | ||
postCode | 0..1 | BankResponse/Data/Bank/PostalAddress/postCode | Почтовый индекс | Max16Text | ||
townName | 1..1 | BankResponse/Data/Bank/PostalAddress/townName | Название населенного пункта | Max35Text | ||
countrySubDivision | 0..1 | BankResponse/Data/Bank/PostalAddress/countrySubDivision | Название региона страны (например, область, край, республика) | Max35Text | ||
countryчасовые | 1..1 | BankResponse/Data/Bank/PostalAddress/country | Название страны в кодированной форме | CountryCode | [A-Z]{2} | |
addressLine | 0..7 | BankResponse/Data/Bank/PostalAddress/addressLine | Информация, описывающая местонахождение и конкретный адрес в соответствии с правилами почтовой службы в свободной текстовой форме | Max70Text |
Ресурс | Метод HTTP | Конечная точка | Параметры | Объект запроса | Объект ответа |
devices | GET | GET/devices | DevicesResponse |
Наименование | Кратность | Путь | Описание | Тип | Значение | Шаблон |
DeviceResponse | DeviceResponse | DeviceResponseComplexType | ||||
Data | 1..1 | DeviceResponse/Data | DeviceDataResponseComplexType | |||
Device | 0..N | DeviceResponse/Data/Device | DeviceComplexType | |||
deviceld | 1..1 | DeviceResponse/Data/Device/deviceld | ||||
operationType | 1..N | DeviceResponse/Data/Device/operationType | Буквенные коды видов операций. Справочное значение | OperationTypeStaticType (Max2Text) | ||
deviceType | 1..1 | DeviceResponse/Data/Device/deviceType | Тип устройства. Справочное значение | DeviceTypeStaticType (Max2Text) | ||
nfc | 1..1 | DeviceResponse/Data/Device/nfc | Использование бесконтактной технологии: - true - бесконтактные технологии используются; - false - бесконтактные технологии не используются | xs:boolean | ||
qr | 1..1 | DeviceResponse/Data/Device/qr | Возможность считывания QR-кодов (штрих-кодов) при совершении операций: - true - QR-коды (штрих-коды) используются; - false - QR-коды (штрих-коды) не используются | xs:boolean | ||
recirculation | 0..1 | DeviceResponse/Data/Device/recirculation | Наличие функции рециркуляции банкнот: - true - функция рециркуляции банкнот используется; - false - функция рециркуляции банкнот не используется | xs:boolean | ||
baseCurrency | 1..1 | DeviceResponse/Data/Device/baseCurrency | Основная валюта устройства. Справочное значение | ActiveOrHistoricCurrencyCode | ||
currencyln | 0..N | DeviceResponse/Data/Device/currencyln | Все доступные валюты устройства при приеме. Справочное значение | ActiveOrHistoricCurrencyCode | ||
banknoteTypeln | 0..N | DeviceResponse/Data/Device/banknoteTypeln | Номинал купюр при приеме. Если массив пустой, то ограничений нет | xs:decimal | ||
currencyOut | 0..N | DeviceResponse/Data/Device/currencyOut | Все доступные валюты устройства при выдаче. Справочное значение | ActiveOrHistoricCurrencyCode | ||
banknoteTypeOut | 0..N | DeviceResponse/Data/Device/banknoteTypeOut | Номинал купюр при выдаче. Если массив пустой, то валюты нет в наличии | xs:decimal | ||
cards | 0..N | DeviceResponse/Data/Device/cards | Банковские карты, доступные для использования на данном устройстве. Справочное значение | CardSchemeNameStaticType (Max10Text) | ||
currentStatus | 1..1 | DeviceResponse/Data/Device/currentStatus | Статус работоспособности устройства. Справочное значение | DeviceCurrentStatusStaticType (Max10Text) | ||
description | 0..1 | DeviceResponse/Data/Device/description | Дополнительная информация в свободной форме (например, наименование магазина, в котором установлено устройство, указание номера этажа, подъезда) | Max255Text | ||
Address | 1..1 | DeviceResponse/Data/Device/Address | AddressComplexType | |||
streetName | 0..1 | DeviceResponse/Data/Device/Address/streetName | Название улицы | Max70Text | ||
buildingNumber | 0..1 | DeviceResponse/Data/Device/Address/buildingNumber | Номер здания | Max16Text | ||
department | 0..1 | DeviceResponse/Data/Device/Address/department | Номер корпуса здания | Max70Text | ||
postCode | 0..1 | DeviceResponse/Data/Device/Address/postCode | Почтовый индекс | Max16Text | ||
townName | 1..1 | DeviceResponse/Data/Device/Address/townName | Название населенного пункта | Max35Text | ||
countrySubDivision | 0..1 | DeviceResponse/Data/Device/Address/countrySubDivision | Название региона страны (например, область, край, республика) | Max35Text | ||
country | 1..1 | DeviceResponse/Data/Device/Address/country | Название страны в кодированной форме | CountryCode | [A-Z]{2} | |
addressLine | 0..7 | DeviceResponse/Data/Device/Address/addressLine | Информация, описывающая местонахождение и конкретный адрес в соответствии с правилами почтовой службы в свободной текстовой форме | Max70Text | ||
description | 0..1 | DeviceResponse/Data/Device/Address/description | Дополнительная информация в свободной форме. Например, место установки банкомата кредитной организации, позволяющее его идентифицировать (наименование магазина, в котором установлено устройство, указание номера этажа, подъезда) | Max255Text | ||
oktmo | 1..1 | DeviceResponse/Data/Device/Address/oktmo | Цифровой код места нахождения банкомата (11 знаков) в соответствии с Общероссийским классификатором территорий муниципальных образований (ОКТМО). Для стран - участников ЕАЭС поле заполняется значением константы EAEU | Max11Text | ||
fias | 1..1 | DeviceResponse/Data/Device/Address/fias | Уникальный номер адреса объекта адресации (объектов недвижимости: земельного участка, здания (сооружения или объекта незавершенного строительства), помещения (расположенного в здании или сооружении) в Государственном адресном реестре федеральной информационной адресной системы (ФИАС). В случае отсутствия в ФИАС уникального номера адреса объекта адресации (при поиске такого номера для всех адресных элементов) в поле указывается уникальный номер адресообразующего элемента для последнего элемента улично-дорожной сети. Для стран - участников ЕАЭС поле заполняется значением константы EAEU | Max255Text | ||
Geolocation | 0..1 | DeviceResponse/Data/Device/Address/Geolocation | ||||
GeographicCoordinates | 1..1 | DeviceResponse/Data/Device/Address/Geolocation/GeographicCoordinates | ||||
latitude | 1..1 | DeviceResponse/Data/Device/Address/Geolocation/GeographicCoordinates/latitude | Широта | xs:decimal | ||
longitude | 1..1 | DeviceResponse/Data/Device/Address/Geolocation/GeographicCoordinates/longitude | Долгота | xs:decimal | ||
Services | 1..1 | DeviceResponse/Data/Device/Services | ServicesComplexType | |||
Service | 1..N | DeviceResponse/Data/Device/Services/Service | ServiceComplexType | |||
serviceType | 1..1 | DeviceResponse/Data/Device/Services/Service/serviceType | Услуги, доступные на устройстве. Справочное значение | DeviceServiceTypeStaticType (Max255Text) | ||
description | 0..1 | DeviceResponse/Data/Device/Services/Service/description | Дополнительная информация в свободной форме | Max255Text | ||
Availability | 0..1 | DeviceResponse/Data/Device/Availability | ||||
availabilitylndicator | 1..1 | DeviceResponse/Data/Device/Availability/isRestricted | Доступ к объекту ограничен системой пропуска и прочее | availabilitylndicatorStaticType (Max1Text) | ||
description | 0..1 | DeviceResponse/Data/Device/Availability/description | Дополнительная информация в свободной форме | Max255Text | ||
StandardAvailability | 1..1 | DeviceResponse/Data/Device/Availability/StandardAvailability | ||||
Day | 1..7 | DeviceResponse/Data/Device/Availability/StandardAvailability/Day | ||||
dayCode | 1..1 | DeviceResponse/Data/Device/Availability/StandardAvailability/Day/dayCode | День недели. Справочное значение | WeekDayStaticType | ||
openingTime | 0..1 | DeviceResponse/Data/Device/Availability/StandardAvailability/Day/openingTime | Время начала работы. Значение должно передаваться в формате "hh:mm:ss |