Русский · English
Готовые примеры работы с API справочника БИК ЦБ РФ на шести языках: Python, TypeScript (Node.js), Go, Java, C#, PHP. Проверка БИК и поиск кредитной организации по названию, городу или SWIFT. В ответе — корсчёт по БИК, SWIFT-код, реквизиты банка, регион, адрес, статус участника и ограничения. Источник — ежедневный справочник Банка России (ED807 / УФЭБС).
Каждый пример запускается сразу — без регистрации, без ключа, без карты. В коде зашит публичный демо-ключ.
git clone https://github.com/atlorium-api/cbr-bik-api-client
cd cbr-bik-api-client/python && pip install -r requirements.txt && python main.pyПАО «Филатов, Ситникова and Мишина БАНК»
БИК 044525225 · рег. № 4862
Корсчёт: 30143017336663637516
SWIFT: BQAENCY1QEU
Адрес: 707151 г Екатеринбург, ул. Ломоносова, 737
Регион: 94 · Статус: PSAC
В справочнике с 2025-08-04
Платёж на счёт 40702810638000000000 (БИК 044525225):
Стоп-факторов не обнаружено — реквизиты можно использовать.
[i] Контрольный ключ счёта 40702810638000000000 верен
[i] SWIFT: BQAENCY1QEU
Справочник ЦБ РФ актуален на 2026-07-12, участников: 3187.
Демо-ключ отвечает правдоподобными моками, а не реальными данными справочника — поэтому название банка в примере выше выглядит сгенерированным. Так и задумано: интеграцию можно написать и протестировать до оплаты. Подставьте боевой ключ — тот же код начнёт возвращать настоящие данные ЦБ РФ.
Проверка платёжных реквизитов перед отправкой платежа, автозаполнение полей «Банк получателя» и «Корсчёт» по БИК, валидация форм, сверка реестров контрагентов, бухгалтерские и банковские интеграции. Вместо ручного поиска в справочнике ЦБ — один HTTP-запрос.
Примеры не просто печатают JSON, а применяют данные: в каждом есть функция validatePaymentDetails(), которая по БИК и номеру счёта выносит вердикт — действует ли участник, не отозвана ли лицензия, нет ли ограничений и ареста по счетам, и сходится ли контрольный ключ расчётного счёта с БИК банка. Контрольный ключ считается по официальному алгоритму ЦБ РФ (весовые коэффициенты 7-1-3, сумма по модулю 10) — это ловит опечатку в 20-значном номере счёта до того, как платёж уйдёт.
Проверить API вообще без клонирования:
curl -H "Authorization: Bearer ak_sandbox_demo_mockdata_v1" \
"https://atlorium.com/api/cbr/044525225"| Язык | Запуск | Требуется |
|---|---|---|
| Python | pip install -r requirements.txt && python main.py |
Python 3.10+ |
| TypeScript / Node.js | npm install && npm start |
Node.js 20+ |
| Go | go run . |
Go 1.22+ |
| Java | java Main.java |
JDK 17+ (без зависимостей) |
| C# | dotnet run |
.NET 8+ |
| PHP | php main.php |
PHP 8.1+ |
Передать свой БИК и номер счёта аргументами: python main.py 044525225 40702810638000000000
Ключ передаётся в заголовке Authorization:
Authorization: Bearer ВАШ_КЛЮЧ
| Ключ | Что делает |
|---|---|
ak_sandbox_demo_mockdata_v1 |
Демо-ключ. Публичный, один на всех. Возвращает моки, денег не списывает, регистрации не требует. Ответы детерминированы — на них можно писать стабильные тесты. |
| Боевой ключ | Реальные данные справочника ЦБ РФ. Получить в личном кабинете: atlorium.com |
Переход на боевой ключ не требует правок в коде — все примеры читают переменную окружения:
export ATLORIUM_API_KEY="ak_ваш_боевой_ключ"Каждый ответ песочницы помечен заголовком X-Atlorium-Sandbox: true — перепутать мок с реальными данными невозможно.
Базовый адрес: https://atlorium.com
| Метод | Путь | Назначение |
|---|---|---|
GET |
/api/cbr/{bik} |
Реквизиты участника по точному БИК |
GET |
/api/cbr/search |
Поиск по названию, городу, SWIFT или началу БИК |
GET |
/api/cbr/stats |
Статистика справочника: размер, дата актуальности, готовность |
| Параметр | Где | Тип | Описание |
|---|---|---|---|
bik |
путь | string | БИК — банковский идентификационный код, ровно 9 цифр. Например, 044525225 |
Если участника с таким БИК в справочнике нет — 404.
| Параметр | Где | Тип | Описание |
|---|---|---|---|
query |
query | string | Строка поиска. Если состоит только из цифр — трактуется как БИК и ищется по началу кода; иначе ищется как подстрока в наименовании, населённом пункте и SWIFT |
limit |
query | int | Максимум результатов: по умолчанию 20, максимум 100 |
Без параметров.
Карточка участника (GET /api/cbr/{bik}, а также элементы results в поиске):
| Поле | Тип | Что содержит |
|---|---|---|
bik |
string | БИК участника, 9 цифр |
name |
string | Наименование кредитной организации |
englishName |
string | Наименование латиницей |
corrAccount |
string | Корреспондентский счёт участника в Банке России |
countryCode |
string | Код страны |
parentBic |
string | БИК головной организации (для филиалов) |
regionCode |
string | Код региона |
postalIndex |
string | Почтовый индекс |
localityType / locality |
string | Тип и название населённого пункта |
address |
string | Адрес |
registrationNumber |
string | Регистрационный номер по книге государственной регистрации |
uid |
string | Уникальный идентификатор участника в справочнике |
dateIn |
date | Дата включения в справочник |
swift |
string | Основной SWIFT/BIC-код |
swiftCodes |
array | Все SWIFT-коды участника |
status |
string | Ключевое поле для проверки. Статус участника: PSAC — действующий |
participantType |
string | Тип участника (код УФЭБС) |
serviceCode |
string | Код обслуживания |
exchangeType |
string | Тип обмена |
accounts |
array | Счета участника (см. ниже) |
restrictions |
array | Признак риска. Ограничения участника: { code, date } |
Элемент accounts[]:
| Поле | Тип | Что содержит |
|---|---|---|
account |
string | Номер счёта, 20 цифр |
accountType |
string | Тип счёта |
controlKey |
string | Контрольный ключ счёта |
cbrBic |
string | БИК подразделения Банка России, где открыт счёт |
status |
string | Статус счёта: ACAC — действующий |
dateIn |
date | Дата открытия |
restrictions |
array | Ограничения по счёту: { code, date, successorBic } |
Ответ GET /api/cbr/stats:
| Поле | Тип | Что содержит |
|---|---|---|
isReady |
bool | Загружен ли справочник |
totalEntries |
int | Число участников в справочнике |
withCorrAccount |
int | Из них с корсчётом |
withSwift |
int | Из них со SWIFT-кодом |
directoryDate |
date | На какую дату актуален справочник ЦБ РФ |
loadedAtUtc |
datetime | Когда справочник был загружен |
Ответ GET /api/cbr/search — объект { query, results, count, elapsedMs }, где results — массив карточек участников.
| Код | Причина | Что делать |
|---|---|---|
400 |
Неверный формат БИК | БИК — ровно 9 цифр |
401 |
Ключ отсутствует, просрочен или недействителен | Проверьте заголовок Authorization |
402 |
Недостаточно кредитов на балансе | Пополнить на atlorium.com |
404 |
Участник с таким БИК не найден | Формат корректен, но такого БИК в справочнике нет |
429 |
Превышен rate-limit | Повторить с задержкой |
503 |
Справочник временно недоступен | Повторить позже. За сбой на нашей стороне деньги не списываются |
Во всех шести примерах коды разложены в человекочитаемые причины — смотрите класс AtloriumError.
Оплата pay-as-you-go, без подписки: платите только за выполненные запросы. Актуальные тарифы и лимиты — на atlorium.com/pricing.
Актуальные цены и лимиты: atlorium.com/pricing
Откуда данные? Из официального справочника банковских идентификационных кодов Банка России (формат ED807 / УФЭБС). ЦБ публикует его ежедневно; поле directoryDate в /stats показывает, на какую дату актуальна загруженная версия.
Как работает проверка контрольного ключа счёта? По официальному алгоритму ЦБ РФ. К 20-значному номеру счёта слева приписывается условный номер: для корсчёта банка в Банке России (номер начинается на 301) — «0» и 5-я с 6-й цифры БИК, для обычного счёта в самом банке — последние 3 цифры БИК. Получившиеся 23 цифры умножаются на весовые коэффициенты 7-1-3-7-1-3-…, сумма произведений берётся по модулю 10; счёт корректен, если остаток равен нулю. Реализация — в каждом из шести примеров, функция checkAccountControlKey().
Значит ли «ключ сошёлся», что счёт существует? Нет — и это важно. Контрольный ключ ловит опечатку в номере: переставленные или искажённые цифры почти наверняка не пройдут проверку. Но у любого правильно составленного номера ключ сойдётся, даже если такого счёта нет ни у кого. Существование счёта и его принадлежность получателю справочник БИК не подтверждает — этих данных в нём просто нет.
Чем это отличается от бесплатного XML с сайта ЦБ? Тем же данным придана машиночитаемая форма и добавлен поиск: ЦБ отдаёт большой суточный XML-архив, который нужно самому скачивать, разбирать, обновлять и индексировать. Здесь — один HTTP-запрос, готовый JSON, поиск по названию, городу и SWIFT, и всегда свежая версия справочника.
Обязательна ли регистрация, чтобы попробовать? Нет. Демо-ключ публичный и работает без аккаунта — но возвращает моки, а не реальные данные. Учтите: у мок-банков номера счетов сгенерированы случайно, поэтому их корсчета контрольную проверку не проходят — прогоняйте checkAccountControlKey() на реальных номерах.
Есть ли SDK-пакет в PyPI/npm? Пока нет — это самодостаточные примеры без зависимостей, чтобы их можно было скопировать в свой проект целиком.
Проверка реквизитов редко бывает единственной задачей. Из того же аккаунта и тем же ключом доступны:
- SWIFT/BIC — разбор кода по ISO-9362 и сверка перед международным переводом
- ЕГРЮЛ/ЕГРИП — проверка контрагента по ИНН/ОГРН: статус, адрес, капитал
- Проверка BIN карты — банк-эмитент, страна и тип карты для антифрода на чекауте
- Распознавание текста с картинки — OCR по изображению или Base64
- AML-скоринг криптокошелька — риск-балл, санкции, PEP
- ИИ-чат — модели, сессии, суммаризация текста
Полный каталог — atlorium.com
- Документация API (Swagger): atlorium.com/cbrAPI
- Описание сервиса: atlorium.com/cbrDescription
- Веб-интерфейс: atlorium.com/cbrGUI
- OpenAPI-спецификация: cbr_ru.json
- Поддержка: support@atlorium.com
MIT — берите код и используйте как хотите, в том числе в коммерческих проектах.