Что такое IBAN
International Bank Account Number (IBAN) — стандартизированный способ записи национального идентификатора счёта, чтобы трансграничные платёжные системы могли единообразно маршрутизировать и проверять его. В Европе и многих других регионах платёжные формы, счета и банковские приложения запрашивают IBAN вместо—или в дополнение к—старым национальным форматам.
Это руководство объясняет структуру и контрольные цифры для обучения и тестирования ПО. Оно не помогает злоупотреблять номерами счетов. Используйте только счета, с которыми вы уполномочены работать, и предпочитайте официальную банковскую документацию для реальных платежей.
Чтобы поэкспериментировать с проверкой формата на примерах или тестовых значениях, см. инструмент проверки IBAN.
Структура на высоком уровне
IBAN — одна строка (часто отображаемая группами по четыре символа для читаемости) со следующей концептуальной схемой:
- Код страны — две буквы (ISO 3166-1 alpha-2), например
DE,FR,IT,ES,NL. - Контрольные цифры — две цифры, вычисленные по остальной части номера.
- Basic Bank Account Number (BBAN) — национальная часть, зависящая от страны: коды банка, отделения, номера счетов и национальные контрольные символы.
Общая длина фиксирована для каждой страны, но не одинакова между странами. Немецкие IBAN имеют другую длину, чем французские или итальянские. Поэтому валидаторы сначала ищут ожидаемую длину по коду страны, а затем применяют более глубокие проверки.
Зачем нужны контрольные цифры
Ошибки набора или OCR в длинных строках счетов дорого обходятся. Контрольные цифры IBAN ловят многие одиночные опечатки и некоторые перестановки до отправки платежа. Это не механизм секретности и не доказывает, что счёт открыт, пополнен или принадлежит конкретному лицу—они доказывают, что строка корректно сформирована по алгоритму контрольной суммы.
Проверка MOD-97 (концептуально)
Международная проверка использует ISO 13616 / MOD-97:
- Перенести первые четыре символа (код страны + контрольные цифры) в конец строки.
- Заменить буквы числами (A = 10, B = 11, …, Z = 35).
- Интерпретировать результат как большое целое и вычислить это целое по модулю 97.
- Для действительного IBAN остаток равен 1.
Поскольку целое может быть очень длинным, реализации используют модульную арифметику по частям, а не хранят всё число как один нативный integer в языках с фиксированной разрядностью.
При написании тестов включайте известные действительные фикстуры из публичной документации и заведомо недействительные строки, которые не проходят проверки длины, набора символов или контрольной суммы.
Страновые шаблоны BBAN
После кода страны и контрольных цифр каждая страна определяет свой BBAN:
- В некоторых есть явный национальный идентификатор банка.
- В некоторых — аналог кода отделения или sort code.
- В некоторых встроена национальная контрольная сумма отдельно от цифр IBAN.
- Набор символов может быть только цифровым или буквенно-цифровым в зависимости от национальной схемы.
ПО, которое проверяет только международный MOD-97, примет структурно checksum-действительные номера даже если национальный банковский код не выдан. Полная маршрутизация требует национальных правил или справочных сервисов сверх самой строки IBAN.
Форматирование и хранение
Отображение. Группировка по четыре улучшает читаемость (стиль DE89 3704 0044 0532 0130 00). Пробелы не входят в электронное значение.
Хранение. Сохраняйте компактную форму: буквы верхнего регистра и цифры без пробелов. Нормализуйте ввод пользователя, убирая пробелы и переводя буквы в верхний регистр перед валидацией.
Бумажные формы. Люди часто оставляют пробелы; слой ввода должен их допускать.
Контекст SEPA (образовательный)
В рамках Single Euro Payments Area IBAN (и часто BIC) идентифицируют счета для евровых кредитовых переводов и смежных схем. Роль IBAN — стандартизированная идентификация; успех платежа по-прежнему зависит от банковских систем, мандатов, остатков и проверок соответствия вне самого формата.
Реализация валидации в приложениях
Практический чеклист:
- Отклонять пустой ввод.
- Нормализовать регистр и пробелы.
- Подтвердить допустимые символы (A–Z, 0–9).
- Прочитать код страны; найти ожидаемую общую длину.
- Выполнить MOD-97.
- При желании применить проверки национальной структуры BBAN, если вы поддерживаете эти шаблоны.
- Возвращать стабильные причины ошибок (
invalid-length,invalid-checksum,unsupported-country) для сопоставления в UI.
Не «исправляйте» молча почти верный номер счёта в платёжном ПО; попросите пользователя подтвердить данные в банке.
Тестирование без реальных счетов
Разработчикам нужны фикстуры. Уместные стратегии:
- Использовать официально опубликованные примеры органов стандартизации или банковских порталов для разработчиков, помеченные как образцы.
- Генерировать checksum-действительные тестовые векторы в изолированных тестовых средах, если это разрешено организацией.
- Для интеграционных тестов предпочитать выделенные тестовые учётные данные из песочниц платёжных провайдеров.
Никогда не извлекайте и не распространяйте реальные клиентские IBAN из производственных логов в публичные репозитории.
Типичные ошибки пользователей
- Путаница
0иOлибо1иIв рукописных формах. - Вставка IBAN с ведущим BIC или именем владельца счёта.
- Использование национального формата счёта там, где требуется IBAN (или наоборот).
- Предположение, что верная контрольная сумма означает успех платежа.
Ясные тексты UI должны разделять «формат выглядит действительным» и «платёж выполнен».
Конфиденциальность и безопасность
IBAN идентифицируют счета. Считайте их чувствительными финансовыми данными в логах, аналитике и тикетах поддержки. Маскируйте все символы, кроме последних, в UI, где полное раскрытие не нужно. Проверка в браузере может держать строку на устройстве для контроля формата; это всё равно не делает скриншоты или скопированные значения безопасными для передачи.
Связанные инструменты
Помощники проверки формата вроде IBAN verify — образовательные и операционные средства структурной проверки. Сочетайте их с банковскими API, когда нужно подтвердить существование счёта или совпадение имени в регулируемых платёжных потоках.
Кратко
Европейские IBAN ставят код страны и две контрольные цифры перед национальным BBAN. Длина зависит от страны; MOD-97 ловит многие ошибки переноса; национальная структура и живые банковские системы идут дальше. Изучите схему, чтобы строить аккуратные валидаторы и уверенно читать платёжные формы—всегда в рамках уполномоченного и законного использования идентификаторов счетов.