Русский · English
Готовые примеры работы с API справочника SWIFT/BIC на шести языках: Python, TypeScript (Node.js), Go, Java, C#, PHP. Поиск банка по SWIFT-коду или по названию организации: LEI, страна, адрес, статус. Плюс валидация BIC — проверка формата по стандарту ISO-9362 с разбором кода на части.
Каждый пример запускается сразу — без регистрации, без ключа, без карты. В коде зашит публичный демо-ключ.
git clone https://github.com/atlorium-api/swift-bic-api-client
cd swift-bic-api-client/python && pip install -r requirements.txt && python main.pyРазбор BIC DEUTDEFFXXX по ISO-9362: формат корректен.
Код банка: DEUT
Страна: DE
Локация: FF
Филиал: XXX
БЕЛОЗЕРОВ - ЗАЙЦЕВА AG
BIC DEUTDEFF · LEI 2413TPIKANOBHKMO77
Страна: DZ · Волгоград
Адрес: ул. Больничная, 833
Статус: ACTIVE · регистрация LEI: ISSUED
ВЕРДИКТ: реквизиты сомнительные, перевод отправлять рискованно.
[!] Страна организации в справочнике (DZ) не совпадает со страной в BIC (DE) — перепроверьте реквизиты
[i] Головной офис (код филиала: XXX)
Запись справочника обновлена 2026-07-11.
Демо-ключ отвечает правдоподобными моками, а не реальными данными справочника — поэтому у немецкого BIC в примере выше «страна DZ» и адрес в Волгограде. Так и задумано: интеграцию можно написать и протестировать до оплаты (и заодно увидеть, как срабатывает проверка на несовпадение страны). Подставьте боевой ключ — тот же код начнёт возвращать настоящие данные.
Проверка реквизитов банка-получателя перед международным переводом, комплаенс и KYC (сверка организации и её LEI), автозаполнение платёжных форм по введённому BIC, валидация ввода прямо в форме.
Примеры не просто печатают JSON, а применяют данные: в каждом есть функция checkBeforeTransfer(), которая перед отправкой SWIFT-перевода разбирает BIC получателя по ISO-9362, затем поднимает карточку организации и выносит вердикт — существует ли такой BIC вообще, активна ли организация, совпадает ли страна в коде с ожидаемой страной получателя (классическая ошибка при копировании реквизитов), головной это офис или филиал.
Проверить API вообще без клонирования:
curl -H "Authorization: Bearer ak_sandbox_demo_mockdata_v1" \
"https://atlorium.com/api/swift/DEUTDEFF"| Язык | Запуск | Требуется |
|---|---|---|
| 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+ |
Передать свой BIC аргументом: python main.py BNPAFRPP
Вторым аргументом — ожидаемую страну получателя: python main.py BNPAFRPP DE (несовпадение будет отмечено как риск).
Ключ передаётся в заголовке Authorization:
Authorization: Bearer ВАШ_КЛЮЧ
| Ключ | Что делает |
|---|---|
ak_sandbox_demo_mockdata_v1 |
Демо-ключ. Публичный, один на всех. Возвращает моки, денег не списывает, регистрации не требует. Ответы детерминированы — на них можно писать стабильные тесты. |
| Боевой ключ | Реальные данные справочника. Получить в личном кабинете: atlorium.com |
Переход на боевой ключ не требует правок в коде — все примеры читают переменную окружения:
export ATLORIUM_API_KEY="ak_ваш_боевой_ключ"Каждый ответ песочницы помечен заголовком X-Atlorium-Sandbox: true — перепутать мок с реальными данными невозможно.
Базовый адрес: https://atlorium.com
| Метод | Путь | Назначение |
|---|---|---|
GET |
/api/swift/{bic} |
Карточка организации по точному SWIFT/BIC |
GET |
/api/swift/search |
Поиск организаций по наименованию |
GET |
/api/swift/validate/{bic} |
Проверка формата BIC по ISO-9362 и разбор на части |
GET |
/api/swift/stats |
Служебная информация сервиса |
| Параметр | Где | Тип | Описание |
|---|---|---|---|
bic |
путь | string | SWIFT/BIC-код, 8 или 11 символов. 8-значный (головной офис) внутри справочника дополняется до 11 суффиксом XXX. Например, DEUTDEFF |
| Параметр | Где | Тип | Описание |
|---|---|---|---|
query |
query | string | Часть наименования организации. Например, Deutsche Bank |
limit |
query | int | Максимум результатов: по умолчанию 20, максимум 100 |
| Параметр | Где | Тип | Описание |
|---|---|---|---|
bic |
путь | string | Проверяемый BIC, 8 или 11 символов |
Проверяется только формат, а не существование кода: XXXXDEFF формально валиден, но такой организации нет. Чтобы узнать, существует ли BIC на самом деле, нужен запрос карточки.
| Поле | Тип | Что содержит |
|---|---|---|
bic |
string | SWIFT/BIC-код организации |
lei |
string | Legal Entity Identifier (ISO 17442) — глобальный идентификатор юрлица |
name |
string | Наименование организации |
otherNames |
array | Прочие наименования (торговые, транслитерации) |
country |
string | Код страны организации (ISO-3166 alpha-2) |
jurisdiction |
string | Юрисдикция регистрации |
entityCategory / entitySubCategory |
string | Категория юрлица |
legalForm |
string | Организационно-правовая форма |
city / region / postalCode / address |
string | Адрес организации |
headquarters |
object | Адрес головного офиса, если он отличается от юридического |
otherAddresses |
array | Прочие адреса |
entityStatus |
string | Ключевое поле для проверки. ACTIVE — организация действует |
registrationStatus |
string | Статус записи LEI: ISSUED, LAPSED и т.п. |
entityCreationDate |
date | Дата создания юрлица |
entityExpirationDate / entityExpirationReason |
date / string | Признак риска. Дата и причина прекращения существования |
successorLei / successorName |
string | Правопреемник, если организация прекратила существование |
associatedEntityLei / associatedEntityName |
string | Связанная организация |
initialRegistrationDate / lastUpdate / nextRenewalDate |
date | Даты жизненного цикла записи LEI |
managingLou |
string | Организация, ведущая запись LEI |
corroborationLevel |
string | Уровень подтверждения данных (например, FULLY_CORROBORATED) |
registrationAuthorityId / registrationId |
string | Реестр и номер регистрации в стране |
validationAuthorityId / validationId |
string | Источник подтверждения данных |
conformityFlag / qualityCode |
string | Служебные признаки качества записи |
legalEvents |
array | Юридические события: { type, status, effectiveDate, recordedDate } |
mic |
string | Market Identifier Code, если организация — торговая площадка |
openCorporatesId / spGlobalIds |
string / array | Идентификаторы во внешних базах |
allBics |
array | Все SWIFT/BIC-коды этой организации (головной офис и филиалы) |
| Поле | Тип | Что содержит |
|---|---|---|
normalizedBic |
string | BIC, приведённый к 11 символам (8-значный дополняется XXX) |
isValidFormat |
bool | Соответствует ли код стандарту ISO-9362 |
message |
string | Человекочитаемое пояснение |
bankCode |
string | 4 буквы — код банка |
countryCode |
string | 2 буквы — код страны (ISO-3166 alpha-2) |
locationCode |
string | 2 символа — код локации |
branchCode |
string | 3 символа — код филиала. XXX или отсутствие = головной офис |
isPrimaryOffice |
bool | Головной офис (true) или филиал (false) |
| Поле | Тип | Что содержит |
|---|---|---|
query |
string | Исходная строка поиска |
results |
array | Найденные организации — карточки того же вида, что выше |
count |
int | Сколько записей вернулось |
totalMatches |
int | Сколько всего совпало |
elapsedMs |
int | Время поиска, мс |
| Поле | Тип | Что содержит |
|---|---|---|
isReady |
bool | Готов ли справочник обслуживать запросы |
cachedBicLookups |
int | Размер кэша запросов по BIC |
cachedSearches |
int | Размер кэша поисковых запросов |
| Код | Причина | Что делать |
|---|---|---|
400 |
BIC не соответствует ISO-9362 | Ожидается 8 или 11 символов: 4 буквы код банка, 2 буквы код страны, 2 символа код локации, опционально 3 символа код филиала |
401 |
Ключ отсутствует, просрочен или недействителен | Проверьте заголовок Authorization |
402 |
Недостаточно кредитов на балансе | Пополнить на atlorium.com |
404 |
BIC не найден в справочнике | Формат корректен, но такой организации нет — реквизиты, скорее всего, ошибочны |
429 |
Превышен rate-limit | Повторить с задержкой |
503 |
Справочник временно недоступен | Повторить позже. За сбой на нашей стороне деньги не списываются |
Во всех шести примерах коды разложены в человекочитаемые причины — смотрите класс AtloriumError.
Оплата pay-as-you-go, без подписки: платите только за выполненные запросы. Актуальные тарифы и лимиты — на atlorium.com/pricing.
Актуальные цены и лимиты: atlorium.com/pricing
Откуда данные? Из открытых данных глобального реестра юридических лиц (LEI, ISO 17442), включая официальную привязку SWIFT/BIC-кодов к юрлицам.
Чем 8 символов отличаются от 11? 8-значный BIC (DEUTDEFF) обозначает головной офис. 11-значный (DEUTDEFF500) добавляет 3 символа кода филиала; XXX в этой позиции — снова головной офис. Справочник нормализует 8-значный код до 11, дополняя его суффиксом XXX.
Валидация проверяет, что такой банк существует? Нет. /validate работает локально и проверяет только формат по ISO-9362: XXXXDEFF пройдёт валидацию, хотя такого банка нет. Существование кода подтверждает только запрос карточки /api/swift/{bic} — если её нет, вернётся 404. Именно поэтому функция checkBeforeTransfer() в примерах делает оба шага, а не один.
Можно найти организацию, не зная BIC? Да — /api/swift/search ищет по части наименования и возвращает карточки вместе с их BIC-кодами.
Есть ли здесь российские БИК ЦБ? Нет, это разные вещи. SWIFT/BIC — международный код по ISO-9362 (8 или 11 символов, буквы и цифры). Российский БИК банка — 9 цифр, живёт в справочнике ЦБ РФ: для него есть отдельный сервис.
Обязательна ли регистрация, чтобы попробовать? Нет. Демо-ключ публичный и работает без аккаунта — но возвращает моки, а не реальные данные.
Есть ли SDK-пакет в PyPI/npm? Пока нет — это самодостаточные примеры без зависимостей, чтобы их можно было скопировать в свой проект целиком.
Реквизиты редко проверяют по одному источнику. Из того же аккаунта и тем же ключом доступны:
- Проверка BIN карты — банк-эмитент, страна и тип карты для антифрода на чекауте
- Справочник БИК ЦБ РФ — реквизиты банка и контрольный ключ расчётного счёта
- AML-скоринг криптокошелька — риск-балл, санкции, PEP
- ЕГРЮЛ/ЕГРИП — проверка контрагента по ИНН/ОГРН: статус, адрес, капитал
- Профиль IP — гео, ASN, детект VPN, прокси и Tor
- Распознавание текста с картинки — OCR по изображению или Base64
Полный каталог — atlorium.com
- Документация API (Swagger): atlorium.com/swiftAPI
- Описание сервиса: atlorium.com/swiftDescription
- Веб-интерфейс: atlorium.com/swiftGUI
- OpenAPI-спецификация: swift_ru.json
- Поддержка: support@atlorium.com
MIT — берите код и используйте как хотите, в том числе в коммерческих проектах.