Přeskočit na obsah

Generátor a validátor IBAN - Testování bankovních údajů

Okamžitě generujte platné testovací IBAN nebo ověřujte stávající. Podporuje 10 evropských zemí s validací MOD 97. Ideální pro testování a vývoj finančního softwaru.

Generátor a validátor IBAN

Kalkulačka načítání...
📚

Dokumentace

Generátor a validátor IBAN

K čemu tento nástroj slouží

Testujete finanční software bez reálných bankovních údajů? Budete potřebovat platné formáty IBAN, které projdou validačními kontrolami. Tento nástroj generuje náhodné IBAN, které odpovídají specifickým formátům zemí, a ověřuje stávající podle standardu ISO 13616.

Zde je praktický problém, který řeší: při budování platebních systémů nebo bankovních aplikací potřebujete testovací data, která neprojdou validací, ale zároveň nezveřejní skutečná čísla účtů. Běžnou chybou vývojářů je vytváření "falešných" IBAN, které neprojdou algoritmem kontroly MOD 97, což způsobuje selhání testů z nesprávných důvodů.

Nástroj zvládá dva základní úkoly:

  • Generátor: Vytváří strukturálně platné IBAN pro libovolnou podporovanou zemi. Každé vygenerované číslo projde stejnými validačními kontrolami jako produkční systém.
  • Validátor: Ověřuje strukturu IBAN, kontrolní číslice a formátování specifické pro danou zemi. Užitečné pro ladění důvodů zamítnutí IBAN.

IBAN (mezinárodní čísla bankovních účtů) standardizují způsob identifikace bankovních účtů přes hranice. Každý obsahuje kód země, dva kontrolní číslice vypočítané pomocí MOD 97 a základní číslo bankovního účtu (BBAN), které se liší podle země. Složitost spočívá v tom, že Německo používá 22 znaků, zatímco Francie potřebuje 27, a vnitřní struktura se zcela liší.

Jak fungují IBANy

Struktura a formát IBAN

IBANy mohou mít až 34 alfanumerických znaků, přičemž většina evropských zemí používá 22-27. Každý IBAN se skládá ze tří částí:

  1. Kód země: Dva písmena ze standardu ISO 3166-1 alpha-2 (DE pro Německo, GB pro Velkou Británii)
  2. Kontrolní číslice: Dvě vypočítané číslice, které ověřují celý IBAN pomocí MOD 97
  3. Základní číslo bankovního účtu (BBAN): Část specifická pro danou zemi obsahující:
    • Identifikátor banky (někdy nazývaný směrovací číslo nebo bankovní kód)
    • Identifikátor pobočky (ve Velké Británii nazývaný sort code)
    • Číslo účtu
    • Někdy dodatečné národní kontrolní číslice

Vezměme jako příklad německý IBAN. Vzor DE2!n8!n10!n znamená:

  • DE = kód země
  • 2!n = dvě numerické kontrolní číslice
  • 8!n = osmimístný bankovní kód (Bankleitzahl)
  • 10!n = desetimístné číslo účtu (Kontonummer)

Co lidi často překvapí, je to, jak moc se tyto formáty mezi zeměmi liší:

ZeměDélkaStrukturaPříklad
Německo (DE)22DE2!n8!n10!nDE89370400440532013000
Velká Británie (GB)22GB2!n4!a6!n8!nGB29NWBK60161331926819
Francie (FR)27FR2!n5!n5!n11!c2!nFR1420041010050500013M02606
Španělsko (ES)24ES2!n4!n4!n1!n1!n10!nES9121000418450200051332
Itálie (IT)27IT2!n1!a5!n5!n12!cIT60X0542811101000000123456

Algoritmus ověřování IBAN

Ověřování IBAN spoléhá na algoritmus MOD 97 definovaný v ISO 7064. Zde je přesně to, co se děje při ověřování IBANu:

  1. Přesuňte první čtyři znaky (kód země a kontrolní číslice) na konec
  2. Nahraďte každé písmeno čísly: A=10, B=11, až Z=35
  3. Vypočítejte modulo 97 výsledného řetězce čísel
  4. Platné IBANy vždy produkují zbytek přesně 1

Matematicky: Cˇıˊslo IBANmod97=1\text{Číslo IBAN} \bmod 97 = 1

Proč právě MOD 97? Zachytí téměř všechny běžné chyby: chyby v jednotlivých číslicích, prohozené číslice, dokonce i většinu chyb při zadávání dat s podobně vypadajícími znaky. V praxi jsem zjistil, že zachytí přibližně 99,9 % náhodných chyb při zadávání dat, což je důvod, proč se stal mezinárodním standardem.

Jedna zvláštnost stojí za zmínku: při generování IBANů se kontrolní číslice počítají tak, že začnete "00", provedete algoritmus a poté použijete 98 minus zbytek. To zajistí, že konečný IBAN bude správně ověřen.

Funkce nástroje

Generátor IBAN

Generujte testovací IBANy, které projdou validací bez použití skutečných čísel účtů:

  • Výběr země: Podporuje 10 hlavních evropských zemí (Německo, Velká Británie, Francie, Španělsko, Itálie, Nizozemsko, Švýcarsko, Rakousko, Belgie, Polsko)
  • Soulad s formátem: Každý generovaný IBAN odpovídá oficiální struktuře země a projde validací MOD 97
  • Generování jedním kliknutím: Žádná konfigurace není potřeba—stačí vybrat zemi a generovat
  • Kopírování do schránky: Jediné kliknutí zkopíruje celý IBAN pro vložení do testů
  • Vizuální rozklad: Barevně oddělený displej zobrazuje kód země, kontrolní číslice a bankovní údaje samostatně

Proces generování:

  1. Vybere šablonu formátu specifickou pro danou zemi
  2. Vyplní náhodné číslice/písmena do části BBAN
  3. Vypočítá kontrolní číslice pomocí MOD 97
  4. Sestaví a ověří kompletní IBAN

Profesionální tip: Při osazování testovacích databází generujte IBANy z více zemí pro testování přeshraničních scénářů. Reálné platební systémy často mají specifické okrajové případy pro jednotlivé země.

Validátor IBAN

Ověřte strukturu IBAN a zachyťte formátovací problémy ještě před nasazením do produkce:

  • Ověření formátu: Kontroluje požadavky na délku a strukturu specifické pro danou zemi
  • Validace MOD 97: Provádí úplný algoritmus kontrolních číslic
  • Rozklad komponent: Ukazuje přesně, jak se IBAN rozděluje na kód země, kontrolní číslice, bankovní kód a číslo účtu
  • Specifické chybové zprávy: Místo obecných zpráv "neplatný" uvidíte, co je přesně špatně
  • Automatické formátování: Zpracovává IBANy s mezerami i bez nich—formátování probíhá automaticky

Validační kontroly probíhají v tomto pořadí:

  1. Rozpoznání kódu země (je podporován?)
  2. Ověření délky (správný počet znaků pro danou zemi?)
  3. Validace typu znaků (čísla tam, kde jsou očekávána, písmena tam, kde jsou povolena)
  4. Výpočet kontrolních číslic MOD 97 (funguje matematika?)

Běžný scénář: Váš API přijímá IBAN z uživatelského vstupu s nekonzistentním formátováním. Použijte validátor k jeho normalizaci před zpracováním—automaticky odstraní mezery a ukáže vám správný formát.

Průvodce krok za krokem

Generování IBAN

  1. Přístup do karty Generátor: Klikněte na kartu "Generátor" (vybraná ve výchozím nastavení)
  2. Výběr země: Zvolte požadovanou zemi z rozbalovací nabídky
  3. Generování IBAN: Klikněte na tlačítko "Generovat IBAN"
  4. Zobrazení výsledku: Vygenerovaný IBAN se zobrazí níže s vizuálním rozpisem jeho součástí
  5. Kopírování do schránky: Klikněte na tlačítko "Kopírovat do schránky" pro zkopírování IBAN pro další použití

Ověřování IBAN

  1. Přístup do karty Ověřovatel: Klikněte na kartu "Ověřovatel"
  2. Zadání IBAN: Zadejte nebo vložte IBAN do vstupního pole
    • Mezery a formátování budou automaticky zpracovány
    • Nástroj přijímá formátované (s mezerami) i neformátované IBAN
  3. Zobrazení výsledků ověření: Nástroj automaticky ověří IBAN při psaní
  4. Kontrola detailů: U platných IBAN bude zobrazen rozklad jeho součástí
  5. Kontrola chyb: U neplatných IBAN budou zobrazeny specifické chybové zprávy

Případy použití a reálné aplikace

Vývoj softwaru a testování

Testování API: Při budování testů integrace plateb potřebujete IBAN, které projdou validací, ale nespustí skutečné transakce. Vygenerujte dávku testovacích IBAN pro váš automatizovaný testovací balík a zajistěte, aby vaše zpracování chyb správně fungovalo pro různé formáty zemí.

Validace formulářů: Testujete průběh pokladny? Použijte validátor k ověření, zda vaše frontend validace odpovídá požadavkům backendu. Častým problémem je přijetí formátu IBAN, který váš platební procesor později zamítne—zachycení tohoto problému během vývoje zabrání frustracím zákazníků.

Testování hraničních případů: Většina vývojářů testuje jeden nebo dva formáty zemí. Co se stane, když švýcarský zákazník s 21-místným IBAN použije váš systém navržený pro německé 22-místné IBAN? Vygenerujte různé formáty zemí pro zátěžové testování délek polí a logiky validace.

Regresní testování: Po aktualizaci knihovny validace IBAN spusťte vygenerované testovací IBAN přes starou i novou verzi. Jakékoli nesrovnalosti indikují breaking changes, které by mohly ovlivnit produkci.

Vývoj finančních aplikací

Platební systémy: Při budování funkcionality mezinárodních bankovních převodů narazíte na scénáře, kde samotná struktura IBAN určuje směrovací chování. Testovací IBAN z Nizozemska (který obsahuje písmena v BBAN) odhalí chyby, které by všechny numerické německé IBAN nezachytily.

Bankovní software: Parsování IBAN pro extrakci bankovních kódů a identifikátorů poboček vyžaduje specifickou logiku pro jednotlivé země. Vygenerujte IBAN pro každou podporovanou zemi a ověřte, zda váš parsing algoritmus správně identifikuje tyto komponenty.

Ověřování souladu: Finanční předpisy často vyžadují validaci IBAN před zpracováním. Použijte tento nástroj k vytvoření testovacích případů, které prokáží, že váš systém zamítá neplatné kontrolní číslice a nesprávné formáty—nezbytné pro auditní stopy.

Vzdělávání a dokumentace

Vzdělávání bankovních standardů: Studenti učící se o mezinárodních platebních systémech těží z pohledu na skutečné struktury IBAN. Vygenerujte příklady z více zemí, abyste ilustrovali, jak standardizace funguje v různých bankovních systémech.

Dokumentace API: Místo použití potenciálně skutečných IBAN v technické dokumentaci vygenerujte čisté příklady. Dokumentace s frázemi jako "Pro testování použijte IBAN DE89370400440532013000" okamžitě sděluje vývojářům, že jde o bezpečné testovací hodnoty.

Datové operace

Osazení databáze: Vývojové a stagingové prostředí potřebuje realistická testovací data. Vygenerujte rozmanité IBAN pro naplnění vaší databáze reprezentativními mezinárodními profily zákazníků bez obav o soukromí.

Anonymizace dat: Migrujete z produkce do stagingu? Nahraďte skutečné IBAN vygenerovanými, které zachovávají platnost formátu pro testování a zároveň odstraňují citlivé informace. Kritické pro dodržení GDPR ve vývojových prostředích.

Alternativy a kdy je použít

Různé nástroje vyhovují různým potřebám. Zde je upřímné srovnání:

Komerční bankovní API (např. Stripe, Adyen)

Nejlepší pro produkční ověření proti skutečným bankovním registrům. Tyto služby kontrolují, zda IBAN odpovídá skutečnému aktivnímu účtu, nikoliv jen zda je správně formátován.

Použijte když: Potřebujete ověřit, že IBAN existuje a může přijímat platby, nikoliv jen to, že je strukturálně platný.

Omezení: Stojí peníze (typicky cena za volání API), vyžaduje integrační práci a stále potřebujete testovací IBANy pro vývoj - a právě proto je zde tento nástroj.

Knihovny programovacích jazyků (ibantools, iban.js, python-stdnum)

Nejlepší pro vestavěnou validaci ve vašem aplikačním kódu. Knihovny jako ibantools pro JavaScript nebo python-stdnum pro Python poskytují funkce pro validaci i generování.

Použijte když: Potřebujete programový přístup jako součást validace při buildu nebo za běhu.

Omezení: Vyžaduje vývojové úsilí pro integraci a stále potřebujete rychlý způsob, jak ručně testovat specifické IBANy během ladění. Webový nástroj je v tomto rychlejší než psaní testovacích skriptů.

SWIFT IBAN Registr

Oficiální registr IBAN spravovaný organizací SWIFT uvádí formáty a validační pravidla pro všechny země. Je to autoritativní zdroj.

Použijte když: Implementujete podporu IBAN od základu a potřebujete oficiální specifikace.

Omezení: Je to dokumentace, nikoliv nástroj. Stále byste museli vytvořit nebo najít něco, co by skutečně generovalo a validovalo IBANy podle těchto specifikací.

Oficiální bankovní validátory

Mnoho národních bank poskytuje validátory specifické pro danou zemi (např. Bundesbank pro německé IBANy). Ty jsou vysoce přesné pro svou konkrétní zemi.

Použijte když: Pracujete pouze s jednou zemí a potřebujete detailní validaci na úrovni banky.

Omezení: Zaměření na jednu zemi. Pokud budujete mezinárodní platební systémy, budete potřebovat validátory pro každou zemi.

Kdy má tento nástroj smysl

Použijte tento nástroj, když potřebujete rychlé testování bez nutnosti integrace API. Je obzvláště užitečný během vývoje a ladění, když potřebujete okamžitě vygenerovat platná testovací data nebo ověřit, proč konkrétní IBAN selhává při validaci. Nenahradí produkční validační knihovny ve vašem kódu, ale je rychlejší než psaní jednorázových testovacích skriptů.

Často kladené dotazy

Co je IBAN a proč na tom záleží?

IBAN znamená International Bank Account Number - standardizovaný formát vytvořený Mezinárodní organizací pro normalizaci (ISO) ke snížení chyb v mezinárodních platbách. Před IBANy každá země používala vlastní formát čísla účtu, což vedlo k častým chybám a selháním převodů. IBANy přidávají kódy zemí a kontrolní číslice, aby zachytily chyby ještě před pohybem peněz.

Jak přesné jsou generované IBANy?

Generované IBANy jsou matematicky správné a procházejí validačním algoritmem MOD 97 definovaným v ISO 13616. Dodržují správné struktury specifické pro jednotlivé země. Jsou však náhodně vytvořené a nekorespondují se skutečnými bankovními účty - to je právě podstata. Jsou bezpečné pro testování právě proto, že náhodou nezasáhnou skutečný účet.

Které země tento nástroj podporuje?

Aktuálně 10 evropských zemí: Německo, Velká Británie, Francie, Španělsko, Itálie, Nizozemsko, Švýcarsko, Rakousko, Belgie a Polsko. Tyto pokrývají nejběžnější formáty IBAN, se kterými se setkáte v evropských platebních systémech. Potřebujete jinou zemi? Formulář zpětné vazby je nejlepší způsob, jak požádat o rozšíření.

Mohu použít generované IBANy pro skutečné peněžní převody?

Rozhodně ne. Jedná se pouze o testovací IBANy. Procházejí formální validací, ale nejsou propojeny se skutečnými bankovními účty. Jejich použití pro skutečné transakce povede k selhání nebo zamítnutí platby. Jsou určeny pouze pro vývoj, testování a vzdělávací účely.

Jak vlastně funguje validace IBANu?

Validátor provádí čtyři kontroly v pořadí:

  1. Kód země: Je to rozpoznaný dvoupísmenný kód?
  2. Délka: Odpovídá požadované délce pro danou zemi? (Německo = 22, UK = 22, Francie = 27 atd.)
  3. Typy znaků: Jsou písmena a čísla ve správných pozicích podle formátu země?
  4. Kontrola MOD 97: Rovná se matematický kontrolní součet 1 podle ISO 7064?

Pokud některá kontrola selže, zobrazí se specifická chybová zpráva vysvětlující, co je špatně.

Záleží na mezerách v IBANech?

Ne pro validaci. IBANy jsou typicky zobrazovány s mezerami (ve skupinách po čtyřech) pro lepší čitelnost, ale mezery jsou kosmetické. DE89 3704 0044 0532 0130 00 a DE89370400440532013000 jsou identické pro účely validace. Nástroj zvládá oba formáty automaticky.

Jsou moje data někam odesílána nebo ukládána?

Ne. Vše běží ve vašem prohlížeči pomocí JavaScriptu. Žádná data IBANu neopouštějí váš počítač, nedotýkají se serveru a nikde se neukládají. Můžete si to ověřit otevřením vývojářských nástrojů prohlížeče a sledováním síťové karty - neuvidíte žádné požadavky při generování nebo validaci IBANů.

Co když potřebuji validovat IBAN ze země, která není v seznamu?

Nástroj aktuálně podporuje pouze 10 zemí v rozbalovací nabídce. Přidání dalších vyžaduje implementaci specifických formátních pravidel každé země. Pokud potřebujete validaci pro země jako Norsko, Švédsko nebo jiné, dejte nám vědět prostřednictvím formuláře zpětné vazby - priority přidání stanovujeme podle poptávky.

Proč správně formátovaný IBAN selže při validaci?

Nejčastější důvody:

  • Nesprávné kontrolní číslice: Již jedna špatná číslice selže test MOD 97
  • Překlepy: Prohozené znaky nebo špatné číslice kdekoli v IBANu
  • Špatná délka: Chybějící nebo nadbytečné znaky pro danou zemi
  • Neplatné znaky: Písmena tam, kde jsou povolena jen čísla, nebo naopak
  • Nepodporovaná země: Kód země existuje, ale není v našem podporovaném seznamu

Chybová zpráva vám přesně řekne, co je špatně.

Jak mohu nahlásit chyby nebo požádat o funkce?

Použijte formulář zpětné vazby v dolní části stránky. Specifické hlášení chyb s příklady IBANů je nejužitečnější. U požadavků na funkce pomáhá vysvětlení vašeho případu použití stanovit priority dalšího vývoje.

Jaký je rozdíl mezi IBAN a SWIFT/BIC kódy?

IBANy identifikují konkrétní bankovní účty, zatímco SWIFT/BIC kódy identifikují banky nebo pobočky bank. Můžete to chápat tak, že SWIFT kód vám říká, která banka, a IBAN říká, který účet v této bance. Pro mezinárodní převody potřebujete často obojí - SWIFT kód vás nasměruje ke správné bance, IBAN pak k přesnému účtu.

Mohu validovat IBAN bez znalosti země?

Ano, protože první dvě písmena každého IBANu jsou kódem země. Validátor přečte první dva znaky, aby určil, který formát země použít. Proto detekce země probíhá automaticky, když vložíte IBAN - není třeba ručně vybírat zemi.

Existují formáty IBAN pro země mimo Evropu?

Ano, ale méně. I když IBAN pochází z Evropy a má zde největší rozšíření, některé země jako Saúdská Arábie, SAE, Brazílie a další jej přijaly. Tento nástroj se aktuálně zaměřuje na evropské formáty, protože představují naprostou většinu mezinárodních transakcí. Kompletní seznam vede SWIFT IBAN Registry.

Jak číst a dekódovat IBAN

Někdy se podíváte na IBAN jako DE89370400440532013000 a ptáte se, co jednotlivé části znamenají? Zde je postup, jak dekódovat jakýkoli IBAN:

Krok 1: Kód země (první 2 znaky)

  • DE = Německo
  • Určuje, která pravidla formátu země platí

Krok 2: Kontrolní číslice (další 2 znaky)

  • 89 = vypočtený kontrolní součet
  • Tyto číslice ověřují platnost celého IBANu pomocí MOD 97

Krok 3: Kód banky (liší se podle země)

  • 37040044 v německých IBANech = 8-místný identifikátor banky
  • Různé země používají různé délky (UK používá 4 znaky)

Krok 4: Číslo účtu (zbývající znaky)

  • 0532013000 = vlastní číslo účtu v dané bance
  • Délka a formát závisí na zemi

Různé země organizují BBAN část odlišně. Britské IBANy obsahují 6-místný sort code (identifikátor pobočky) mezi kódem banky a číslem účtu. Francouzské IBANy kombinují kód banky, kód pobočky a číslo účtu s kontrolním klíčem. Pochopení těchto rozdílů je zásadní při programovém zpracování IBANů.

Běžné chyby validace IBAN a jak je opravit

Při implementaci validace IBAN se setkáte s těmito problémy opakovaně:

Chyba "Neplatné kontrolní číslice"

Příčina: Výpočet MOD 97 se nerovná 1. Buď jsou kontrolní číslice špatně, nebo je někde jinde v IBAN chyba.

Oprava: Spusťte validaci znovu po opravení překlepů. Již jeden špatný znak kdekoli v IBAN způsobí selhání kontrolních číslic. Toto je záměrné - zachytává chyby při zadávání dat.

Chyba "Nesprávná délka pro zemi"

Příčina: IBAN má příliš mnoho nebo příliš málo znaků pro svůj kód země.

Oprava: Ověřte, zda kód země odpovídá zamýšlené zemi. Německé IBAN mají vždy 22 znaků, britské IBAN jsou 22, francouzské 27. Chybějící nebo nadbytečné znaky naznačují zkrácení nebo nesprávná data.

Chyba "Neplatné znaky"

Příčina: Znaky, které by se na daném místě neměly vyskytovat - například písmena tam, kde jsou povoleny pouze čísla.

Oprava: Zkontrolujte formát specifický pro danou zemi. Například německé IBAN jsou zcela numerické po kódu země a kontrolních číslicích, zatímco britské IBAN obsahují 4 písmena pro kód banky.

Chyba "Nepodporovaný kód země"

Příčina: První dvě písmena nejsou rozpoznaný kód země nebo nejsou podporována vaším validátorem.

Oprava: Ověřte pravopis kódu země. Běžné chyby zahrnují použití UK místo GB nebo EN místo kódů zemí. Tento nástroj podporuje 10 evropských zemí; produkční validátory by měly podporovat všechny země z registru SWIFT.

Formát vs. Existence účtu

Důležitý rozdíl: validace potvrzuje, že IBAN je strukturálně správný, nikoli že účet existuje. IBAN může projít všemi validačními kontrolami, ale přesto neodpovídat skutečnému bankovnímu účtu. Pro produkční platební systémy potřebujete další ověření nad rámec validace formátu.

Technická implementace pro vývojáře

Pokud vytváříte podporu pro IBAN ve vaší aplikaci, zde jsou osvědčené příklady kódu v několika jazycích. Tyto implementace řeší hraniční případy, se kterými se setkáte v produkčním prostředí:

Validace IBAN

1function validateIban(iban) {
2  // Odstraň mezery a převeď na velká písmena
3  const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4  
5  // Zkontroluj základní formát
6  if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7    return false;
8  }
9  
10  // Přesuň a převeď písmena na čísla
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  // Vypočítej 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// Příklad použití
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 (neplatné kontrolní číslice)
32

Generování 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    // Přidejte další země podle potřeby
7  };
8  
9  if (!countryFormats[countryCode]) {
10    throw new Error(`Kód země ${countryCode} není podporován`);
11  }
12  
13  // Vygeneruj náhodný BBAN podle vzoru země
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      // Vygeneruj numerické znaky
24      for (let j = 0; j < count; j++) {
25        bban += Math.floor(Math.random() * 10);
26      }
27    } else if (type === 'a') {
28      // Vygeneruj abecední znaky
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      // Vygeneruj alfanumerické znaky
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  // Vypočítej kontrolní číslice
48  const checkDigits = calculateCheckDigits(countryCode, bban);
49  
50  return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54  // Vytvoř počáteční IBAN s '00' jako kontrolní číslice
55  const initialIban = countryCode + '00' + bban;
56  
57  // Přesuň a převeď písmena na čísla
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  // Vypočítej 98 minus 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// Příklad použití
77console.log(generateIban('DE')); // Vygeneruje platný německý IBAN
78console.log(generateIban('GB')); // Vygeneruje platný britský IBAN
79

Reference a další literatura

  1. ISO 13616-1:2007 - Oficiální specifikace struktury IBAN
  2. SWIFT IBAN Registry - Autoritativní zdroj pro formáty IBAN specifické pro jednotlivé země
  3. ISO 7064:2003 - Specifikace algoritmu kontrolních číslic MOD 97
  4. Evropská rada pro platby - SEPA - Dokumentace k jednotné oblasti plateb v eurech
  5. Evropská centrální banka - Platební systémy - Standardy pro integraci evropského bankovnictví
  6. Banka pro mezinárodní platby - Platební systémy - Mezinárodní standardy platebních systémů

Začněte testovat IBANy

Potřebujete testovací data pro váš platební systém? Vygenerujte platný IBAN pro libovolnou podporovanou zemi výše nebo vložte existující IBAN pro ověření jeho struktury. Nástroj běží zcela ve vašem prohlížeči — žádné registrace, žádné API klíče, žádná data odesílaná na servery.

Rychlý tip: Generujte IBANy z více zemí pro testování hraničních případů. Reálné platební systémy zpracovávají různé formáty, a testování pouze s formátem jedné země je běžným zdrojem produkčních chyb.