Перейти до вмісту

Генератор і Валідатор IBAN - Тестування Банківських Даних

Генеруйте дійсні тестові IBAN або миттєво перевіряйте наявні. Підтримує 10 європейських країн з перевіркою MOD 97. Ідеально підходить для тестування та розробки фінансового програмного забезпечення.

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

Калькулятор завантаження...
📚

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

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

Для чого призначений цей інструмент

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

Ось практична проблема, яку він вирішує: при створенні платіжних систем або банківських додатків вам потрібні тестові дані, які не провалять перевірку, але не ризикують розкрити реальні номери рахунків. Поширена помилка розробників - створення "фейкових" IBAN, які не проходять алгоритм перевірки MOD 97, що призводить до невірного провалу тестів.

Інструмент виконує два основні завдання:

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

IBAN (Міжнародні номери банківських рахунків) стандартизують ідентифікацію банківських рахунків між країнами. Кожен містить код країни, дві контрольні цифри, розраховані за 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: При побудові тестів інтеграції платежів, вам потрібні IBAN, які проходять перевірку, але не викликають реальних транзакцій. Згенеруйте пакет тестових IBAN для вашого автоматизованого тестового набору, забезпечуючи правильну обробку помилок для різних форматів країн.

Перевірка форм: Тестуєте потік оформлення замовлення? Використовуйте валідатор для перевірки відповідності перевірки на фронтенді вимогам бекенду. Часта проблема — прийняття формату IBAN, який пізніше відхилить платіжний процесор — виявлення цього під час розробки запобігає незручностям для клієнтів.

Тестування крайніх випадків: Більшість розробників тестують один-два формати країн. Що станеться, коли швейцарський клієнт з 21-значним IBAN використовує вашу систему, розроблену під німецькі 22-значні IBAN? Згенеруйте різні формати країн для стрес-тестування довжини полів та логіки перевірки.

Регресійне тестування: Після оновлення бібліотеки перевірки IBAN, запустіть згенеровані тестові IBAN через старі та нові версії. Будь-які розбіжності вказують на зміни, що можуть вплинути на роботу в продакшені.

Розробка фінансових додатків

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

Банківське програмне забезпечення: Аналіз IBAN для вилучення банківських кодів та ідентифікаторів філій вимагає специфічної для країни логіки. Згенеруйте IBAN для кожної підтримуваної країни, щоб перевірити, чи правильно ваш алгоритм аналізу ідентифікує ці компоненти.

Перевірка відповідності: Фінансові правила часто вимагають перевірки IBAN перед обробкою. Використовуйте цей інструмент для створення тестових випадків, що доводять, що ваша система відхиляє неправильні контрольні цифри та некоректні формати — важливо для аудиторських слідів.

Освіта та документація

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

Документація API: Замість використання потенційно реальних IBAN у технічній документації, генеруйте чисті приклади. Документація з фразами на кшталт "Використовуйте IBAN DE89370400440532013000 для тестування" одразу повідомляє розробникам, що це безпечні тестові значення.

Операції з даними

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

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

Альтернативи та коли їх використовувати

Різні інструменти підходять для різних потреб. Ось чесне порівняння:

Комерційні банківські API (наприклад, Stripe, Adyen)

Найкращі для перевірки в умовах виробництва проти реальних банківських реєстрів. Ці служби перевіряють, чи відповідає IBAN фактичному активному рахунку, а не лише правильності формату.

Використовуйте, коли: Вам потрібно перевірити, що IBAN існує і може отримувати платежі, а не лише те, що він структурно правильний.

Обмеження: Коштує грошей (зазвичай ціноутворення за викликом API), вимагає інтеграційної роботи, і вам все одно потрібні тестові IBAN для розробки — і саме тут стане в пригоді цей інструмент.

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

Найкращі для вбудованої перевірки у вашому коді додатку. Бібліотеки як ibantools для JavaScript або python-stdnum для Python надають функції як перевірки, так і генерації.

Використовуйте, коли: Вам потрібен програмний доступ як частина вашої збірки або перевірки під час виконання.

Обмеження: Вимагає зусиль для розробки інтеграції, і вам все одно потрібен швидкий спосіб manually тестувати конкретні IBAN під час налагодження. Саме тому веб-інструмент швидший, ніж написання тестових скриптів.

Реєстр SWIFT IBAN

Офіційний реєстр IBAN, що підтримується SWIFT, містить формати всіх країн і правила перевірки. Це авторитетне джерело.

Використовуйте, коли: Ви впроваджуєте підтримку IBAN з нуля і потребуєте офіційних специфікацій.

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

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

Багато національних банків надають validators специфічні для країни (наприклад, Bundesbank для німецьких IBAN). Вони є надзвичайно точними для своєї конкретної країни.

Використовуйте, коли: Ви працюєте лише з однією країною і потребуєте деталей перевірки на рівні банку.

Обмеження: Фокус на одній країні. Якщо ви створюєте міжнародні платіжні системи, вам знадобляться валідатори для кожної країни.

Коли цей інструмент має сенс

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

Часті запитання

Що таке IBAN і чому це важливо?

IBAN розшифровується як Міжнародний Банківський Номер Рахунку — стандартизований формат, створений Міжнародною Організацією Стандартизації (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 об'єднують банківський код, код філії та номер рахунку з контрольним ключем. Розуміння цих відмінностей є crucial при програмній обробці IBAN.

Поширені помилки перевірки IBAN та як їх виправити

При впровадженні перевірки IBAN ви будете постійно стикатися з цими проблемами:

Помилка "Невірні контрольні цифри"

Причина: Розрахунок MOD 97 не дорівнює 1. Або контрольні цифри невірні, або є помилка в іншому місці IBAN.

Виправлення: Виконайте перевірку знову після виправлення будь-яких друкарських помилок. Навіть один неправильний символ будь-де в IBAN викликає збій контрольних цифр. Це зроблено навмисно — для виявлення помилок введення даних.

Помилка "Невірна довжина для країни"

Причина: IBAN має забагато або занадто мало символів для свого кodu країни.

Виправлення: Перевірте, чи відповідає код країни передбачуваній країні. Німецькі 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  // Обчислити mod 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 мінус mod 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 з різних країн для тестування крайніх випадків. Реальні платіжні системи обробляють різноманітні формати, і тестування лише форматом однієї країни є поширеною причиною помилок у виробництві.