Перейти к содержимому

Генератор и валидатор IBAN - Инструмент для тестирования банковских данных

Мгновенная генерация действительных тестовых IBAN или проверка существующих. Поддерживает 10 европейских стран с проверкой по MOD 97. Идеально подходит для тестирования финансового программного обеспечения и разработки.

Генератор и Валидатор IBAN

Калькулятор загрузки...
📚

Документация

Генератор и валидатор IBAN

Что делает этот инструмент

Тестируете финансовое программное обеспечение без реальных банковских данных? Вам понадобятся корректные форматы IBAN, которые проходят проверку. Этот инструмент генерирует случайные IBAN, соответствующие форматам конкретных стран, и проверяет существующие с использованием стандарта ISO 13616.

Вот практическая проблема, которую он решает: при создании платежных систем или банковских приложений вам нужны тестовые данные, которые пройдут проверку, но не раскроют реальные номера счетов. Распространенная ошибка разработчиков — создание "фальшивых" IBAN, которые не проходят алгоритм проверки MOD 97, что приводит к неправильным причинам сбоя тестов.

Инструмент выполняет две основные задачи:

  • Генератор: Создает структурно корректные IBAN для любой поддерживаемой страны. Каждый сгенерированный номер проходит те же проверки, которые будет выполнять производственная система.
  • Валидатор: Проверяет структуру IBAN, контрольные цифры и форматирование, специфичное для страны. Полезен для отладки причин отклонения IBAN.

IBAN (международные номера банковских счетов) стандартизируют идентификацию банковских счетов across borders. Каждый содержит код страны, две контрольные цифры, рассчитанные по MOD 97, и базовый номер банковского счета (BBAN), который различается в зависимости от страны. Сложность заключается в том, что в Германии используется 22 символа, во Франции — 27, а внутренняя структура полностью отличается.

Как работают IBAN

Структура и формат IBAN

IBAN может содержать до 34 буквенно-цифровых символов, хотя большинство европейских стран использует 22-27. Каждый IBAN разбивается на три части:

  1. Код страны: Две буквы из стандарта ISO 3166-1 alpha-2 (DE для Германии, GB для Великобритании)
  2. Контрольные цифры: Две вычисленные цифры, которые проверяют весь IBAN с помощью MOD 97
  3. Базовый номер банковского счета (BBAN): Специфичная для страны часть, содержащая:
    • Идентификатор банка (иногда называемый маршрутным номером или банковским кодом)
    • Идентификатор отделения (в Великобритании называется sort code)
    • Номер счета
    • Иногда дополнительные национальные контрольные цифры

Возьмем немецкий IBAN в качестве примера. Шаблон DE2!n8!n10!n означает:

  • DE = код страны
  • 2!n = две числовые контрольные цифры
  • 8!n = восьмизначный банковский код (Bankleitzahl)
  • 10!n = десятизначный номер счета (Kontonummer)

Что удивляет людей, так это насколько сильно эти форматы различаются между странами:

СтранаДлинаСтруктураПример
Германия (DE)22DE2!n8!n10!nDE89370400440532013000
Великобритания (GB)22GB2!n4!a6!n8!nGB29NWBK60161331926819
Франция (FR)27FR2!n5!n5!n11!c2!nFR1420041010050500013M02606
Испания (ES)24ES2!n4!n4!n1!n1!n10!nES9121000418450200051332
Италия (IT)27IT2!n1!a5!n5!n12!cIT60X0542811101000000123456

Алгоритм проверки IBAN

Проверка IBAN основывается на алгоритме MOD 97, определенном в ISO 7064. Вот что происходит при проверке IBAN:

  1. Переместите первые четыре символа (код страны и контрольные цифры) в конец
  2. Замените каждую букву числами: A=10, B=11, до Z=35
  3. Вычислите остаток от деления полученной числовой строки на 97
  4. Корректные IBAN всегда дают остаток, равный ровно 1

Математически: Номер IBANmod97=1\text{Номер IBAN} \bmod 97 = 1

Почему именно MOD 97? Он обнаруживает почти все распространенные ошибки: ошибки с отдельными цифрами, перестановку цифр, даже большинство ошибок при вводе, связанных с похожими символами. На практике я обнаружил, что он перехватывает около 99,9% случайных ошибок при вводе данных, что и сделало его международным стандартом.

Один интересный момент: при генерации IBAN вы рассчитываете контрольные цифры, начиная с "00", применяя алгоритм, а затем используете 98 минус остаток. Это гарантирует, что итоговый IBAN будет проходить проверку корректно.

Функции инструмента

Генератор IBAN

Генерируйте тестовые IBAN, которые проходят проверку без использования реальных номеров счетов:

  • Выбор страны: Поддерживает 10 основных европейских стран (Германия, Великобритания, Франция, Испания, Италия, Нидерланды, Швейцария, Австрия, Бельгия, Польша)
  • Соответствие формату: Каждый сгенерированный IBAN соответствует официальной структуре страны и проходит проверку MOD 97
  • Генерация одним щелчком: Не требуется настройка — просто выберите страну и сгенерируйте
  • Копирование в буфер обмена: Один щелчок копирует полный IBAN для вставки в ваши тесты
  • Визуальная разбивка: Цветовая индикация показывает код страны, контрольные цифры и банковские реквизиты отдельно

Процесс генерации:

  1. Выбирает шаблон формата, специфичный для страны
  2. Заполняет случайными цифрами/буквами часть BBAN
  3. Вычисляет контрольные цифры с помощью MOD 97
  4. Собирает и проверяет полный IBAN

Профессиональный совет: При заполнении тестовых баз данных генерируйте IBAN из нескольких стран для тестирования межграничных сценариев. Реальные платежные системы часто имеют особенности с конкретными странами.

Валидатор IBAN

Проверяйте структуру IBAN и выявляйте проблемы форматирования до выхода в производство:

  • Проверка формата: Проверяет требования к длине и структуре, специфичные для страны
  • Проверка MOD 97: Выполняет полный алгоритм проверки контрольных цифр
  • Разбивка компонентов: Показывает, как IBAN разделяется на код страны, контрольные цифры, банковский код и номер счета
  • Конкретные сообщения об ошибках: Вместо общих сообщений "недопустимый" вы увидите, что именно не так
  • Автоматическое форматирование: Работает с IBAN с пробелами и без — форматирование происходит автоматически

Проверки валидации выполняются в следующем порядке:

  1. Распознавание кода страны (поддерживается ли?)
  2. Проверка длины (правильное количество символов для этой страны?)
  3. Проверка типа символов (цифры там, где ожидаются, буквы там, где разрешены)
  4. Вычисление контрольных цифр MOD 97 (математика сходится?)

Типичный сценарий: Ваш API получает IBAN из пользовательского ввода с непоследовательными пробелами. Используйте валидатор для нормализации перед обработкой — он автоматически удаляет пробелы и показывает правильный формат.

Пошаговое руководство

Генерация IBAN

  1. Перейти на вкладку Генератора: Нажмите на вкладку "Генератор" (выбрана по умолчанию)
  2. Выбрать страну: Выберите нужную страну из выпадающего меню
  3. Сгенерировать IBAN: Нажмите кнопку "Сгенерировать IBAN"
  4. Просмотр результата: Сгенерированный IBAN появится ниже с визуальной разбивкой его компонентов
  5. Копирование в буфер обмена: Нажмите кнопку "Копировать в буфер обмена", чтобы скопировать IBAN для дальнейшего использования

Проверка IBAN

  1. Перейти на вкладку Проверки: Нажмите на вкладку "Проверка"
  2. Ввести IBAN: Введите или вставьте IBAN в поле ввода
    • Пробелы и форматирование будут обработаны автоматически
    • Инструмент принимает как форматированные (с пробелами), так и неформатированные IBAN
  3. Просмотр результатов проверки: Инструмент автоматически проверит IBAN при вводе
  4. Проверка деталей: Для действительных IBAN будет отображена разбивка компонентов
  5. Просмотр ошибок: Для недействительных IBAN будут показаны конкретные сообщения об ошибках

Варианты использования и реальные приложения

Разработка программного обеспечения и тестирование

Тестирование API: При создании тестов интеграции платежей вам нужны IBANs, которые проходят проверку, но не инициируют реальные транзакции. Сгенерируйте пакет тестовых IBANs для вашего автоматизированного тестового набора, обеспечивая правильную обработку ошибок для различных форматов стран.

Проверка форм: Тестируете процесс оформления заказа? Используйте валидатор для проверки соответствия frontend-валидации требованиям backend. Частая проблема — принятие формата IBAN, который позже отклонит платежный процессор. Обнаружение этого на этапе разработки предотвращает разочарование клиентов.

Тестирование краевых случаев: Большинство разработчиков тестируют один-два формата стран. Что произойдет, когда швейцарский клиент с 21-значным IBAN использует вашу систему, разработанную под немецкие 22-значные IBANs? Сгенерируйте различные форматы стран для стресс-тестирования логики длины полей и валидации.

Регрессионное тестирование: После обновления библиотеки валидации IBAN, прогоните сгенерированные тестовые IBANs через старую и новую версии. Любые расхождения указывают на критические изменения, которые могут повлиять на производственную среду.

Разработка финансовых приложений

Платежные системы: При создании функционала международных банковских переводов вы столкнетесь со сценариями, где сама структура IBAN определяет маршрутизацию. Тестовые IBANs из Нидерландов (включающие буквы в BBAN) раскрывают ошибки, которые не выявят полностью цифровые немецкие IBANs.

Банковское программное обеспечение: Парсинг IBANs для извлечения банковских кодов и идентификаторов отделений требует специфической для страны логики. Сгенерируйте IBANs для каждой поддерживаемой страны, чтобы проверить, что ваш алгоритм парсинга корректно идентифицирует эти компоненты.

Проверка соответствия: Финансовые нормативы часто требуют проверки IBANs перед обработкой. Используйте этот инструмент для создания тестовых сценариев, доказывающих, что ваша система отклоняет неверные контрольные цифры и некорректные форматы — это критично для аудиторских следов.

Образование и документация

Обучение банковским стандартам: Студенты, изучающие международные платежные системы, получают пользу от демонстрации реальных структур IBAN. Сгенерируйте примеры из разных стран, чтобы проиллюстрировать, как стандартизация работает в различных банковских системах.

Документация API: Вместо использования потенциально реальных IBANs в технической документации, генерируйте чистые примеры. Документация с фразами вроде "Используйте IBAN DE89370400440532013000 для тестирования" сразу сообщает разработчикам, что это безопасные тестовые значения.

Операции с данными

Заполнение базы данных: Среды разработки и промежуточные среды нуждаются в реалистичных тестовых данных. Сгенерируйте разнообразные IBANs для заполнения базы данных репрезентативными международными профилями клиентов без проблем с конфиденциальностью.

Анонимизация данных: Мигрируете из производственной среды в промежуточную? Замените реальные IBANs сгенерированными, сохраняющими формальную достоверность для тестирования и удаляющими конфиденциальную информацию. Критично для соответствия GDPR в средах разработки.

Альтернативы и когда их использовать

Разные инструменты подходят для разных потребностей. Вот честное сравнение:

Коммерческие банковские API (например, Stripe, Adyen)

Лучше всего для производственной проверки по реальным банковским реестрам. Эти сервисы проверяют, соответствует ли IBAN фактически активному счету, а не только правильному формату.

Использовать, когда: Вам нужно убедиться, что IBAN существует и может принимать платежи, а не просто имеет правильную структуру.

Ограничения: Стоит денег (обычно с оплатой за каждый вызов API), требует работы по интеграции, и вам все равно нужны тестовые IBAN для разработки — для этого и существует этот инструмент.

Библиотеки программирования (ibantools, iban.js, python-stdnum)

Лучше всего для встроенной проверки в коде приложения. Библиотеки, такие как ibantools для JavaScript или python-stdnum для Python, предоставляют функции как для проверки, так и для генерации.

Использовать, когда: Вам нужен программный доступ как часть проверки во время сборки или выполнения.

Ограничения: Требует усилий для интеграции, и вам все равно нужен быстрый способ вручную проверить конкретные IBAN во время отладки. Веб-инструмент для этого быстрее, чем написание тестовых скриптов.

Реестр SWIFT IBAN

Официальный реестр IBAN, поддерживаемый SWIFT, содержит форматы всех стран и правила проверки. Это авторитетный источник.

Использовать, когда: Вы реализуете поддержку IBAN с нуля и вам нужны официальные спецификации.

Ограничения: Это документация, а не инструмент. Вам все равно нужно будет создать или найти что-то для фактической генерации и проверки IBAN на основе этих спецификаций.

Официальные банковские валидаторы

Многие национальные банки предоставляют валидаторы для конкретных стран (например, Бундесбанк для немецких IBAN). Они очень точны для своей конкретной страны.

Использовать, когда: Вы работаете только с одной страной и нуждаетесь в подробностях проверки на уровне банка.

Ограничения: Фокус на одной стране. При создании международных платежных систем вам понадобятся валидаторы для каждой страны.

Когда этот инструмент имеет смысл

Используйте этот инструмент, когда вам нужна быстрая проверка без интеграции API. Он особенно полезен во время разработки и отладки, когда вам нужно немедленно сгенерировать достоверные тестовые данные или понять, почему конкретный IBAN не проходит проверку. Он не заменит производственные библиотеки проверки в вашем коде, но работает быстрее, чем написание одноразовых тестовых скриптов.

Часто задаваемые вопросы

Что такое IBAN и почему это важно?

IBAN расшифровывается как International Bank Account Number — стандартизированный формат, созданный Международной организацией по стандартизации (ISO) для уменьшения ошибок при международных платежах. Раньше каждая страна использовала собственный формат номеров счетов, что приводило к частым ошибкам и неудачным переводам. IBAN добавляет коды стран и контрольные цифры для выявления ошибок до перевода денег.

Насколько точны сгенерированные IBAN?

Сгенерированные IBAN математически корректны и проходят алгоритм проверки MOD 97, определенный в ISO 13616. Они соответствуют правильным структурам стран. Однако они создаются случайно и не соответствуют реальным банковским счетам — в этом и заключается их цель. Они безопасны для тестирования именно потому, что не попадут случайно на реальный счет.

Какие страны поддерживает этот инструмент?

В настоящее время 10 европейских стран: Германия, Великобритания, Франция, Испания, Италия, Нидерланды, Швейцария, Австрия, Бельгия и Польша. Они охватывают наиболее распространенные форматы IBAN, с которыми вы можете столкнуться в европейских платежных системах. Нужна другая страна? Форма обратной связи — лучший способ запросить дополнения.

Можно ли использовать сгенерированные IBAN для реальных денежных переводов?

Категорически нет. Это только тестовые IBAN. Они проходят проверку формата, но не связаны с реальными банковскими счетами. Использование их для фактических транзакций приведет к сбоям или отклонению платежей. Они предназначены только для разработки, тестирования и образовательных целей.

Как работает проверка IBAN?

Валидатор выполняет четыре последовательные проверки:

  1. Код страны: Является ли он признанным двухбуквенным кодом?
  2. Длина: Соответствует ли требуемой длине для этой страны? (Германия = 22, Великобритания = 22, Франция = 27 и т.д.)
  3. Типы символов: Находятся ли буквы и цифры в правильных позициях согласно формату страны?
  4. Проверка MOD 97: Равна ли математическая контрольная сумма 1 согласно ISO 7064?

Если какая-либо проверка не проходит, вы увидите конкретное сообщение об ошибке, объясняющее, что именно не так.

Имеют ли значение пробелы в IBAN?

Для проверки — нет. IBAN обычно отображаются с пробелами (группами по четыре) для удобочитаемости, но пробелы косметические. DE89 3704 0044 0532 0130 00 и DE89370400440532013000 идентичны для целей проверки. Инструмент автоматически обрабатывает оба формата.

Передаются ли мои данные на сервер или хранятся где-либо?

Нет. Все выполняется в вашем браузере с использованием JavaScript. Никакие данные IBAN не покидают ваш компьютер, не попадают на сервер и нигде не хранятся. Вы можете убедиться в этом, открыв инструменты разработчика браузера и наблюдая за сетевой вкладкой — вы не увидите никаких запросов при генерации или проверке IBAN.

Что делать, если мне нужно проверить IBAN из страны, не указанной в списке?

Инструмент в настоящее время поддерживает только 10 стран в выпадающем списке. Добавление новых требует реализации специфических правил формата каждой страны. Если вам нужна проверка для стран вроде Норвегии, Швеции или других, дайте нам знать через форму обратной связи — мы расставляем приоритеты дополнений в зависимости от спроса.

Почему правильно отформатированный IBAN не проходит проверку?

Наиболее распространенные причины:

  • Неверные контрольные цифры: Даже одна неправильная цифра не проходит тест MOD 97
  • Опечатки: Перепутанные символы или неправильные цифры в любом месте IBAN
  • Неверная длина: Отсутствующие или лишние символы для этой страны
  • Недопустимые символы: Буквы там, где разрешены только цифры, или наоборот
  • Неподдерживаемая страна: Код страны существует, но отсутствует в нашем списке поддержки

Сообщение об ошибке подскажет вам конкретно, что именно не так.

Как сообщить об ошибках или запросить функции?

Используйте форму обратной связи внизу страницы. Наиболее полезны конкретные отчеты об ошибках с примерами IBAN. При запросе функций объяснение варианта использования помогает расставить приоритеты для следующих разработок.

В чем разница между IBAN и кодами SWIFT/BIC?

IBAN идентифицируют конкретные банковские счета, а коды SWIFT/BIC идентифицируют банки или отделения банков. Можно думать об этом так: код SWIFT говорит, какой банк, а IBAN — какой именно счет в этом банке. Для международных переводов часто требуются оба — код SWIFT направляет к правильному банку, а IBAN — к конкретному счету.

Можно ли проверить IBAN без знания страны?

Да, потому что первые две буквы каждого IBAN — это код страны. Валидатор читает эти первые два символа, чтобы определить, какой формат страны применять. Поэтому определение страны происходит автоматически при вставке IBAN — нет необходимости выбирать страну вручную.

Существуют ли форматы IBAN для стран за пределами Европы?

Да, но их меньше. Хотя IBAN возник в Европе и имеет там наибольшее распространение, такие страны, как Саудовская Аравия, ОАЭ, Бразилия и другие, также его приняли. Этот инструмент в настоящее время фокусируется на европейских форматах, так как они представляют подавляющее большинство международных транзакций. Полный список поддерживает Реестр SWIFT IBAN.

Как читать и декодировать IBAN

Когда-нибудь смотрели на IBAN, например DE89370400440532013000, и думали, что означает каждая часть? Вот как декодировать любой IBAN:

Шаг 1: Код страны (первые 2 символа)

  • DE = Германия
  • Показывает, какие правила форматирования страны применяются

Шаг 2: Контрольные цифры (следующие 2 символа)

  • 89 = рассчитанная контрольная сумма
  • Эти цифры проверяют, что весь IBAN является действительным, используя MOD 97

Шаг 3: Банковский код (варьируется по странам)

  • 37040044 в немецких IBAN = 8-значный идентификатор банка
  • Разные страны используют разную длину (в Великобритании - 4 символа)

Шаг 4: Номер счета (оставшиеся символы)

  • 0532013000 = фактический номер счета в этом банке
  • Длина и формат зависят от страны

Разные страны организуют BBAN-часть по-разному. В IBAN Великобритании включен 6-значный код сортировки (идентификатор отделения) между банковским кодом и номером счета. Во французских IBAN банковский код, код отделения и номер счета объединены с контрольным ключом. Понимание этих различий крайне важно при программной обработке IBAN.

Распространенные ошибки при проверке IBAN и способы их исправления

При реализации проверки IBAN вы будете постоянно сталкиваться с этими проблемами:

Ошибка "Неверные контрольные цифры"

Причина: Расчет по MOD 97 не равен 1. Либо контрольные цифры неверны, либо есть ошибка в другом месте IBAN.

Исправление: Выполните проверку заново после исправления опечаток. Даже один неправильный символ в любом месте IBAN приводит к сбою контрольных цифр. Это сделано намеренно — для обнаружения ошибок ввода данных.

Ошибка "Неверная длина для страны"

Причина: IBAN имеет слишком много или слишком мало символов для кода страны.

Исправление: Проверьте, соответствует ли код страны предполагаемой стране. Немецкие IBAN всегда состоят из 22 символов, британские IBAN — 22, французские — 27. Отсутствующие или лишние символы указывают на усечение или неверные данные.

Ошибка "Недопустимые символы"

Причина: Символы, которые не должны появляться в этой позиции — например, буквы там, где разрешены только цифры.

Исправление: Проверьте формат, специфичный для страны. Например, немецкие IBAN полностью цифровые после кода страны и контрольных цифр, а британские IBAN включают 4 буквы для кода банка.

Ошибка "Неподдерживаемый код страны"

Причина: Первые две буквы не являются распознаваемым кодом страны или не поддерживаются вашим валидатором.

Исправление: Проверьте написание кода страны. Распространенные ошибки включают использование UK вместо GB или EN вместо кодов стран. Этот инструмент поддерживает 10 европейских стран; производственные валидаторы должны поддерживать все страны из реестра SWIFT.

Формат против существования счета

Важное различие: проверка подтверждает только корректность структуры IBAN, а не существование счета. IBAN может пройти все проверки, но не соответствовать реальному банковскому счету. Для производственных платежных систем требуется дополнительная проверка помимо проверки формата.

Техническая реализация для разработчиков

Если вы встраиваете поддержку IBAN в свое приложение, вот проверенные примеры кода на нескольких языках. Эти реализации обрабатывают краевые случаи, с которыми вы столкнетесь в производственной среде:

Проверка IBAN

1function validateIban(iban) {
2  // Удаление пробелов и преобразование в верхний регистр
3  const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4  
5  // Проверка базового формата
6  if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7    return false;
8  }
9  
10  // Перестановка и преобразование букв в цифры
11  const rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
12  const converted = rearranged.split('').map(char => {
13    if (/[A-Z]/.test(char)) {
14      return (char.charCodeAt(0) - 55).toString();
15    }
16    return char;
17  }).join('');
18  
19  // Вычисление остатка от деления на 97
20  let remainder = 0;
21  for (let i = 0; i < converted.length; i++) {
22    remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
23  }
24  
25  return remainder === 1;
26}
27
28// Пример использования
29console.log(validateIban('DE89 3704 0044 0532 0130 00')); // true
30console.log(validateIban('GB29 NWBK 6016 1331 9268 19')); // true
31console.log(validateIban('DE89 3704 0044 0532 0130 01')); // false (неверные контрольные цифры)
32

Генерация IBAN

1function generateIban(countryCode) {
2  const countryFormats = {
3    'DE': { length: 22, bbanPattern: '8n10n' },
4    'GB': { length: 22, bbanPattern: '4a6n8n' },
5    'FR': { length: 27, bbanPattern: '5n5n11c2n' }
6    // Добавьте другие страны по необходимости
7  };
8  
9  if (!countryFormats[countryCode]) {
10    throw new Error(`Код страны ${countryCode} не поддерживается`);
11  }
12  
13  // Генерация случайного BBAN на основе шаблона страны
14  let bban = '';
15  const pattern = countryFormats[countryCode].bbanPattern;
16  let i = 0;
17  
18  while (i < pattern.length) {
19    const count = parseInt(pattern.substring(i + 1), 10);
20    const type = pattern[i];
21    
22    if (type === 'n') {
23      // Генерация цифровых символов
24      for (let j = 0; j < count; j++) {
25        bban += Math.floor(Math.random() * 10);
26      }
27    } else if (type === 'a') {
28      // Генерация алфавитных символов
29      for (let j = 0; j < count; j++) {
30        bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
31      }
32    } else if (type === 'c') {
33      // Генерация буквенно-цифровых символов
34      for (let j = 0; j < count; j++) {
35        const isLetter = Math.random() > 0.5;
36        if (isLetter) {
37          bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
38        } else {
39          bban += Math.floor(Math.random() * 10);
40        }
41      }
42    }
43    
44    i += 2;
45  }
46  
47  // Вычисление контрольных цифр
48  const checkDigits = calculateCheckDigits(countryCode, bban);
49  
50  return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54  // Создание начального IBAN с '00' в качестве контрольных цифр
55  const initialIban = countryCode + '00' + bban;
56  
57  // Перестановка и преобразование букв в цифры
58  const rearranged = bban + countryCode + '00';
59  const converted = rearranged.split('').map(char => {
60    if (/[A-Z]/.test(char)) {
61      return (char.charCodeAt(0) - 55).toString();
62    }
63    return char;
64  }).join('');
65  
66  // Вычисление 98 минус остаток от деления на 97
67  let remainder = 0;
68  for (let i = 0; i < converted.length; i++) {
69    remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
70  }
71  
72  const checkDigits = (98 - remainder).toString().padStart(2, '0');
73  return checkDigits;
74}
75
76// Пример использования
77console.log(generateIban('DE')); // Генерирует корректный немецкий IBAN
78console.log(generateIban('GB')); // Генерирует корректный британский IBAN
79

Ссылки и дополнительные материалы

  1. ISO 13616-1:2007 - Официальная спецификация структуры IBAN
  2. Реестр SWIFT IBAN - Авторитетный источник форматов IBAN для разных стран
  3. ISO 7064:2003 - Спецификация алгоритма проверочных цифр MOD 97
  4. Европейский совет по платежам - SEPA - Документация по Единой зоне платежей в евро
  5. Европейский центральный банк - Платежные системы - Стандарты интеграции банковского дела в Европе
  6. Банк международных расчетов - Платежные системы - Международные стандарты платежных систем

Начало тестирования IBAN

Нужны тестовые данные для вашей платежной системы? Сгенерируйте действительный IBAN для любой поддерживаемой страны выше или вставьте существующий IBAN для проверки его структуры. Инструмент работает полностью в вашем браузере — без регистрации, без API-ключей, без передачи данных на серверы.

Быстрый совет: Генерируйте IBAN из нескольких стран для тестирования пограничных случаев. Реальные платежные системы работают с различными форматами, и тестирование только с форматом одной страны часто является источником ошибок в производственной среде.