Preskočiť na obsah

Generátor a validátor IBAN - Testovanie bankových údajov

Generujte platné testovacie IBANy alebo okamžite overujte existujúce. Podporuje 10 európskych krajín s validáciou MOD 97. Ideálne pre testovanie a vývoj finančného softvéru.

Generátor a validátor IBAN

Kalkulačka načítavania...
📚

Dokumentácia

Generátor a validátor IBAN čísiel

Čo tento nástroj robí

Testujete finančný softvér bez reálnych bankových údajov? Budete potrebovať platné formáty IBAN, ktoré prejdú validačnými kontrolami. Tento nástroj generuje náhodné IBAN-y, ktoré dodržiavajú formáty špecifické pre jednotlivé krajiny, a overuje existujúce pomocou štandardu ISO 13616.

Tu je praktický problém, ktorý rieši: pri budovaní platobných systémov alebo bankových aplikácií potrebujete testovacie údaje, ktoré neprejdú validáciou, ale zároveň neriskujú odhalenie skutočných čísiel účtov. Bežnou chybou vývojárov je vytváranie "falošných" IBAN-ov, ktoré neprejdú algoritmom kontroly MOD 97, čo spôsobuje zlyhávanie testov z nesprávnych dôvodov.

Nástroj zvláda dva základné úlohy:

  • Generátor: Vytvára štrukturálne platné IBAN-y pre ktorúkoľvek podporovanú krajinu. Každé vygenerované číslo prejde rovnakými validačnými kontrolami ako váš produkčný systém.
  • Validátor: Overuje štruktúru IBAN, kontrolné číslice a formátovanie špecifické pre krajinu. Užitočný pri ladení dôvodov zamietnutia IBAN-u.

IBAN-y (medzinárodné čísla bankových účtov) štandardizujú spôsob identifikácie účtov cez hranice. Každý obsahuje kód krajiny, dva kontrolné číslice vypočítané pomocou MOD 97 a základné číslo bankového účtu (BBAN), ktoré sa líši podľa krajiny. To, čo to robí zložitým, je skutočnosť, že Nemecko používa 22 znakov, zatiaľ čo Francúzsko potrebuje 27, a vnútorná štruktúra sa úplne líši.

Ako fungujú IBAN čísla

Štruktúra a formát IBAN

IBAN môže mať až 34 alfanumerických znakov, hoci väčšina európskych krajín používa 22-27. Každý IBAN sa rozdeľuje na tri časti:

  1. Kód krajiny: Dva písmená podľa ISO 3166-1 alpha-2 štandardu (DE pre Nemecko, GB pre Spojené kráľovstvo)
  2. Kontrolné číslice: Dva vypočítané číslice, ktoré overujú celý IBAN pomocou MOD 97
  3. Základné číslo bankového účtu (BBAN): Špecifická časť krajiny obsahujúca:
    • Identifikátor banky (niekedy nazývaný smerový kód alebo bankový kód)
    • Identifikátor pobočky (UK nazýva tento údaj sort code)
    • Číslo účtu
    • Niekedy dodatočné národné kontrolné číslice

Vezmime nemecký IBAN ako príklad. Vzor DE2!n8!n10!n znamená:

  • DE = kód krajiny
  • 2!n = dve numerické kontrolné číslice
  • 8!n = osemmiestny bankový kód (Bankleitzahl)
  • 10!n = desaťmiestne číslo účtu (Kontonummer)

Čo ľudí prekvapuje, je ako veľmi sa tieto formáty medzi krajinami líšia:

KrajinaDĺžkaŠtruktúraPríklad
Nemecko (DE)22DE2!n8!n10!nDE89370400440532013000
UK (GB)22GB2!n4!a6!n8!nGB29NWBK60161331926819
Francúzsko (FR)27FR2!n5!n5!n11!c2!nFR1420041010050500013M02606
Španielsko (ES)24ES2!n4!n4!n1!n1!n10!nES9121000418450200051332
Taliansko (IT)27IT2!n1!a5!n5!n12!cIT60X0542811101000000123456

Algoritmus overovania IBAN

Overovanie IBAN sa spolieha na algoritmus MOD 97 definovaný v ISO 7064. Tu je presne to, čo sa deje pri overovaní IBAN:

  1. Presuňte prvé štyri znaky (kód krajiny a kontrolné číslice) na koniec
  2. Nahraďte každé písmeno číslami: A=10, B=11, až Z=35
  3. Vypočítajte modulo 97 z výsledného reťazca čísel
  4. Platné IBAN vždy produkujú zvyšok presne 1

Matematicky: IBAN cˇıˊslomod97=1\text{IBAN číslo} \bmod 97 = 1

Prečo práve MOD 97? Zachytáva takmer všetky bežné chyby: chyby v jednotlivých čísliciach, zamenené číslice, dokonca aj väčšinu chýb pri zadávaní spôsobených podobne vyzerajúcimi znakmi. V praxi som zistil, že zachytáva približne 99,9 % náhodných chýb pri zadávaní údajov, preto sa stal medzinárodným štandardom.

Jedna zaujímavosť za zmienku: pri generovaní IBAN začínate kontrolné číslice "00", spustíte algoritmus a potom použijete 98 mínus zvyšok. To zaručuje, že konečný IBAN bude overený správne.

Funkcie nástroja

Generátor IBAN

Generujte testovacie IBANy, ktoré prejdú validáciou bez použitia skutočných čísiel účtov:

  • Výber krajiny: Podporuje 10 hlavných európskych krajín (Nemecko, Veľká Británia, Francúzsko, Španielsko, Taliansko, Holandsko, Švajčiarsko, Rakúsko, Belgicko, Poľsko)
  • Zhoda s formátom: Každý generovaný IBAN zodpovedá oficiálnej štruktúre krajiny a prechádza MOD 97 validáciou
  • Generovanie jedným kliknutím: Žiadna konfigurácia nie je potrebná - stačí vybrať krajinu a generovať
  • Kopírovanie do schránky: Jediné kliknutie skopíruje celý IBAN pre vloženie do testov
  • Vizuálny rozklad: Farebne odlíšený displej zobrazuje kód krajiny, kontrolné číslice a bankové detaily samostatne

Proces generovania:

  1. Vyberie šablónu formátu špecifickú pre krajinu
  2. Vyplní náhodné číslice/písmená do časti BBAN
  3. Vypočíta kontrolné číslice pomocou MOD 97
  4. Zostaví a overí kompletný IBAN

Pro tip: Pri napĺňaní testovacích databáz generujte IBANy z viacerých krajín, aby ste otestovali cezhraničné scenáre. Reálne platobné systémy často majú špecifické prípady pre konkrétne krajiny.

Validátor IBAN

Overte štruktúru IBAN a zachyťte formátovacie problémy pred nasadením do produkcie:

  • Overenie formátu: Kontroluje požiadavky na dĺžku a štruktúru špecifickú pre krajinu
  • MOD 97 Validácia: Spúšťa úplný algoritmus kontrolných číslic
  • Rozklad komponentov: Ukazuje presne, ako sa IBAN rozdeľuje na kód krajiny, kontrolné číslice, bankový kód a číslo účtu
  • Špecifické chybové správy: Namiesto generických správ "neplatný" uvidíte, čo je presne zlé
  • Automatické formátovanie: Spracováva IBANy s medzerami alebo bez nich - formátovanie prebieha automaticky

Validačné kontroly prebiehajú v poradí:

  1. Rozpoznanie kódu krajiny (je podporovaný?)
  2. Overenie dĺžky (správny počet znakov pre danú krajinu?)
  3. Validácia typu znakov (čísla tam, kde sa očakávajú, písmená tam, kde sú povolené)
  4. Výpočet kontrolných číslic MOD 97 (funguje matematika?)

Bežný scenár: Váše API prijíma IBAN z používateľského vstupu s nekonzistentným formátovaním. Použite validátor na jeho normalizáciu pred spracovaním - automaticky odstráni medzery a ukáže vám správny formát.

Sprievodca krok za krokom

Generovanie IBAN

  1. Prístup ku generátoru: Kliknite na kartu "Generátor" (predvolene vybraná)
  2. Výber krajiny: Zvoľte požadovanú krajinu z rozbaľovacieho menu
  3. Generovanie IBAN: Kliknite na tlačidlo "Generovať IBAN"
  4. Zobrazenie výsledku: Vygenerovaný IBAN sa zobrazí nižšie s vizuálnym rozpisom jeho komponentov
  5. Kopírovanie do schránky: Kliknite na tlačidlo "Kopírovať do schránky" pre skopírovanie IBAN na ďalšie použitie

Overovanie IBAN

  1. Prístup k validátoru: Kliknite na kartu "Validátor"
  2. Zadanie IBAN: Napíšte alebo vložte IBAN do vstupného poľa
    • Medzery a formátovanie budú automaticky spracované
    • Nástroj akceptuje formátované (s medzerami) aj neformátované IBAN
  3. Zobrazenie výsledkov overenia: Nástroj automaticky overí IBAN počas písania
  4. Kontrola detailov: Pri platných IBAN sa zobrazí rozpad komponentov
  5. Kontrola chýb: Pri neplatných IBAN sa zobrazia špecifické chybové hlásenia

Prípady použitia a reálne aplikácie

Vývoj softvéru a testovanie

Testovanie API: Pri budovaní testov integrácie platieb potrebujete IBAN-y, ktoré prejdú validáciou, ale nespustia skutočné transakcie. Vygenerujte dávku testovacích IBAN-ov pre váš automatizovaný testovací súbor a zaistite, aby vaše spracovanie chýb fungovalo správne pre rôzne formáty krajín.

Validácia formulára: Testujete tok pokladne? Použite validátor na overenie, či vaša frontend validácia zodpovedá požiadavkám backendu. Častým problémom je akceptovanie formátu IBAN, ktorý váš platobný procesor neskôr zamietne - zachytenie tohto problému počas vývoja ušetrí frustráciu zákazníkov.

Testovanie hraničných prípadov: Väčšina vývojárov testuje jeden alebo dva formáty krajín. Čo sa stane, keď švajčiarsky zákazník s 21-miestnym IBAN-om použije váš systém navrhnutý pre nemecké 22-miestne IBAN-y? Vygenerujte rôzne formáty krajín, aby ste otestovali vaše dĺžky polí a validačnú logiku.

Regresné testovanie: Po aktualizácii vašej knižnice validácie IBAN-ov spustite vygenerované testovacie IBAN-y cez starú aj novú verziu. Akékoľvek rozdiely naznačujú zmeny, ktoré by mohli ovplyvniť produkciu.

Vývoj finančných aplikácií

Platobné systémy: Pri budovaní funkcionality medzinárodných bankových prevodov sa stretnete so scenármi, kde samotná štruktúra IBAN-u určuje smerovanie. Testovacie IBAN-y z Holandska (ktoré obsahuje písmená v BBAN) odhalia chyby, ktoré by všetko-numerické nemecké IBAN-y nezachytili.

Bankový softvér: Analýza IBAN-ov na extrakciu bankových kódov a identifikátorov pobočiek vyžaduje špecifickú logiku krajiny. Vygenerujte IBAN-y pre každú podporovanú krajinu a overte, že váš analyzačný algoritmus správne identifikuje tieto komponenty.

Overenie súladu: Finančné predpisy často vyžadujú validáciu IBAN-ov pred spracovaním. Použite tento nástroj na vytvorenie testovacích prípadov, ktoré preukážu, že váš systém zamieta neplatné kontrolné číslice a nesprávne formáty - nevyhnutné pre audit.

Vzdelávanie a dokumentácia

Vzdelávanie bankových štandardov: Študenti učiaci sa o medzinárodných platobných systémoch profitujú z videnia skutočných štruktúr IBAN-ov. Vygenerujte príklady z viacerých krajín, aby ste ilustrovali, ako štandardizácia funguje v rôznych bankových systémoch.

Dokumentácia API: Namiesto použitia potenciálne skutočných IBAN-ov v technickej dokumentácii vygenerujte čisté príklady. Dokumentácia s frázami ako "Pre testovanie použite IBAN DE89370400440532013000" okamžite hovorí vývojárom, že sú to bezpečné testovacie hodnoty.

Dátové operácie

Osadenie databázy: Vývojové a stagingové prostredia potrebujú realistické testovacie dáta. Vygenerujte rôznorodé IBAN-y na naplnenie vašej databázy reprezentatívnymi medzinárodnými profilmi zákazníkov bez obáv o súkromie.

Anonymizácia dát: Migrujete z produkcie do stagingu? Nahraďte skutočné IBAN-y vygenerovanými, ktoré zachovávajú validitu formátu pre testovanie a zároveň odstraňujú citlivé informácie. Kritické pre súlad s GDPR vo vývojových prostrediach.

Alternatívy a kedy ich použiť

Rôzne nástroje vyhovujú rôznym potrebám. Tu je úprimné porovnanie:

Komerčné bankové API (napr. Stripe, Adyen)

Najlepšie pre produkčnú validáciu oproti reálnym bankovým registrom. Tieto služby overujú, či IBAN zodpovedá skutočnému aktívnemu účtu, nielen či má správny formát.

Použiť, keď: Potrebujete overiť, že IBAN existuje a môže prijímať platby, nielen že je štrukturálne platný.

Obmedzenia: Stojí peniaze (typicky cenník podľa volania API), vyžaduje integračnú prácu a stále potrebujete testovacie IBAN pre vývoj - a práve na to slúži tento nástroj.

Knižnice programovacích jazykov (ibantools, iban.js, python-stdnum)

Najlepšie pre vnorenú validáciu priamo v kóde aplikácie. Knižnice ako ibantools pre JavaScript alebo python-stdnum pre Python poskytujú funkcie validácie aj generovania.

Použiť, keď: Potrebujete programový prístup ako súčasť validácie počas zostavovania alebo behu.

Obmedzenia: Vyžaduje vývojové úsilie pre integráciu a stále potrebujete rýchly spôsob manuálneho testovania špecifických IBAN počas ladenia. Preto je webový nástroj rýchlejší ako písanie testovacích skriptov.

SWIFT IBAN Register

Oficiálny register IBAN spravovaný SWIFT obsahuje formáty všetkých krajín a validačné pravidlá. Je to autoritatívny zdroj.

Použiť, keď: Implementujete podporu IBAN od základu a potrebujete oficiálne špecifikácie.

Obmedzenia: Je to dokumentácia, nie nástroj. Stále by ste museli vytvoriť alebo nájsť niečo, čo skutočne vygeneruje a overí IBAN podľa týchto špecifikácií.

Oficiálne bankové validátory

Mnohé národné banky poskytujú validátory špecifické pre krajinu (napr. Bundesbank pre nemecké IBAN). Sú vysoko presné pre svoju konkrétnu krajinu.

Použiť, keď: Pracujete len s jednou krajinou a potrebujete detailné overenie na úrovni banky.

Obmedzenia: Zameranie len na jednu krajinu. Ak budujete medzinárodné platobné systémy, potrebovali by ste validátory pre každú krajinu.

Kedy má tento nástroj zmysel

Použite tento nástroj, keď potrebujete rýchle testovanie bez nutnosti integrácie API. Je obzvlášť užitočný počas vývoja a ladenia, keď potrebujete okamžite vygenerovať platné testovacie dáta alebo overiť, prečo konkrétny IBAN zlyháva pri validácii. Nenahradí produkčné validačné knižnice vo vašom kóde, ale je rýchlejší ako písanie jednorazových testovacích skriptov.

Často kladené otázky

Čo je IBAN a prečo je dôležitý?

IBAN znamená International Bank Account Number - štandardizovaný formát vytvorený Medzinárodnou organizáciou pre normalizáciu (ISO) na zníženie chýb v cezhraničných platbách. Pred IBANmi každá krajina používala vlastný formát čísla účtu, čo viedlo k častým chybám a zlyhávajúcim prevodom. IBANy pridávajú kódy krajín a kontrolné číslice na zachytenie chýb pred pohybom peňazí.

Ako presné sú generované IBANy?

Generované IBANy sú matematicky správne a prechádzajú validačným algoritmom MOD 97 definovaným v ISO 13616. Dodržiavajú správne štruktúry špecifické pre jednotlivé krajiny. Sú však náhodne vytvorené a nezodpovedajú skutočným bankovým účtom - to je práve podstata. Sú bezpečné na testovanie práve preto, lebo náhodou nezasiahnu skutočný účet.

Ktoré krajiny tento nástroj podporuje?

Momentálne 10 európskych krajín: Nemecko, Spojené kráľovstvo, Francúzsko, Španielsko, Taliansko, Holandsko, Švajčiarsko, Rakúsko, Belgicko a Poľsko. Tieto pokrývajú najčastejšie formáty IBAN, s ktorými sa stretnete v európskych platobných systémoch. Potrebujete inú krajinu? Formulár spätnej väzby je najlepší spôsob, ako požiadať o doplnenie.

Môžem použiť generované IBANy na skutočné peňažné prevody?

Absolútne nie. Sú to len testovacie IBANy. Prechádzajú formátovou validáciou, ale nie sú prepojené so skutočnými bankovými účtami. Ich použitie na skutočné transakcie by viedlo k zlyhaniu alebo zamietnutiu platieb. Sú určené len na vývoj, testovanie a vzdelávacie účely.

Ako vlastne funguje validácia IBAN?

Validátor vykonáva štyri kontroly v poradí:

  1. Kód krajiny: Je to rozpoznaný dvojpísmenový kód?
  2. Dĺžka: Zodpovedá požadovanej dĺžke pre danú krajinu? (Nemecko = 22, UK = 22, Francúzsko = 27 atď.)
  3. Typy znakov: Sú písmená a čísla na správnych miestach podľa formátu krajiny?
  4. Kontrola MOD 97: Rovná sa matematická kontrolná suma 1 podľa ISO 7064?

Ak ktorákoľvek kontrola zlyhá, zobrazí sa špecifická chybová správa vysvetľujúca, čo je zlé.

Záleží na medzerách v IBANoch?

Nie pre validáciu. IBANy sa zvyčajne zobrazujú s medzerami (po štyroch) pre lepšiu čitateľnosť, ale medzery sú kozmetické. DE89 3704 0044 0532 0130 00 a DE89370400440532013000 sú identické pre účely validácie. Nástroj automaticky spracúva oba formáty.

Sú moje údaje odosielané na server alebo niekde uložené?

Nie. Všetko beží vo vašom prehliadači pomocou JavaScriptu. Žiadne údaje IBAN neopúšťajú váš počítač, nedotýkajú sa servera ani nie sú nikde uložené. Môžete si to overiť otvorením vývojárskych nástrojov prehliadača a sledovaním sieťovej karty - neuvidíte žiadne požiadavky pri generovaní alebo validácii IBANov.

Čo ak potrebujem validovať IBAN z krajiny, ktorá nie je v zozname?

Nástroj momentálne podporuje len 10 krajín v rozbaľovacom zozname. Pridanie ďalších vyžaduje implementáciu špecifických pravidiel formátu pre každú krajinu. Ak potrebujete validáciu pre krajiny ako Nórsko, Švédsko alebo iné, dajte nám vedieť prostredníctvom formulára spätnej väzby - priority pridávania stanovujeme podľa dopytu.

Prečo môže správne naformátovaný IBAN zlyhať pri validácii?

Najčastejšie dôvody:

  • Nesprávne kontrolné číslice: Aj jedna chybná číslica zlyhá v teste MOD 97
  • Preklepy: Zamenené znaky alebo nesprávne číslice kdekoľvek v IBANe
  • Nesprávna dĺžka: Chýbajúce alebo nadbytočné znaky pre danú krajinu
  • Neplatné znaky: Písmená tam, kde sú povolené len čísla, alebo naopak
  • Nepodporovaná krajina: Kód krajiny existuje, ale nie je v našom podporovanom zozname

Chybová správa vám presne povie, čo je zlé.

Ako môžem nahlásiť chyby alebo požiadať o funkcie?

Použite formulár spätnej väzby v spodnej časti stránky. Konkrétne hlásenia chýb s príkladmi IBANov sú najužitočnejšie. Pri požiadavkách na funkcie pomôže vysvetlenie vášho prípadu použitia pri stanovovaní priorít ďalšieho vývoja.

Aký je rozdiel medzi IBAN a SWIFT/BIC kódmi?

IBANy identifikujú konkrétne bankové účty, zatiaľ čo SWIFT/BIC kódy identifikujú banky alebo bankové pobočky. Môžete si to predstaviť takto: SWIFT kód vám povie, ktorá banka, IBAN povie, ktorý účet v tej banke. Pri medzinárodných prevodoch potrebujete často oboje - SWIFT kód smeruje do správnej banky, IBAN potom smeruje na konkrétny účet.

Môžem validovať IBAN bez znalosti krajiny?

Áno, pretože prvé dva znaky každého IBANu sú kódom krajiny. Validátor číta prvé dva znaky, aby určil, ktorý formát krajiny má použiť. Preto detekcia krajiny prebieha automaticky pri vložení IBANu - nie je potrebné manuálne vyberať krajinu.

Existujú formáty IBAN pre krajiny mimo Európy?

Áno, ale menej. Hoci IBAN pochádza z Európy a má tam najvyššie rozšírenie, krajiny ako Saudská Arábia, SAE, Brazília a ďalšie ho prijali. Tento nástroj sa momentálne zameriava na európske formáty, pretože predstavujú drvivú väčšinu cezhraničných transakcií. Registrácia SWIFT IBAN udržuje úplný zoznam.

Ako čítať a dekódovať IBAN

Niekedy sa pozriete na IBAN ako DE89370400440532013000 a pýtate sa, čo znamenajú jednotlivé časti? Tu je postup, ako dekódovať akýkoľvek IBAN:

Krok 1: Kód krajiny (prvé 2 znaky)

  • DE = Nemecko
  • Určuje, ktoré pravidlá formátu krajiny sa použijú

Krok 2: Kontrolné číslice (ďalšie 2 znaky)

  • 89 = vypočítaný kontrolný súčet
  • Tieto číslice overujú platnosť celého IBANu pomocou MOD 97

Krok 3: Kód banky (líši sa podľa krajiny)

  • 37040044 v nemeckých IBAN = 8-miestny identifikátor banky
  • Rôzne krajiny používajú rôzne dĺžky (UK používa 4 znaky)

Krok 4: Číslo účtu (zostávajúce znaky)

  • 0532013000 = samotné číslo účtu v danej banke
  • Dĺžka a formát závisia od krajiny

Rôzne krajiny organizujú BBAN časť odlišne. Britské IBAN obsahujú 6-miestny sort code (identifikátor pobočky) medzi kódom banky a číslom účtu. Francúzske IBAN kombinujú kód banky, kód pobočky a číslo účtu s kontrolným kľúčom. Pochopenie týchto rozdielov je kľúčové pri programovom spracovaní IBAN.

Bežné chyby validácie IBAN a ako ich opraviť

Pri implementácii validácie IBAN sa stretnete s týmito problémami opakovane:

Chyba "Neplatné kontrolné číslice"

Príčina: Výpočet MOD 97 sa nerovná 1. Buď sú kontrolné číslice nesprávne, alebo je niekde inde v IBAN chyba.

Oprava: Spustite validáciu znova po opravení prípadných preklepov. Aj jedna nesprávna postava kdekoľvek v IBAN spôsobí zlyhanie kontrolných číslic. Je to zámerom—zachytáva chyby pri zadávaní údajov.

Chyba "Nesprávna dĺžka pre krajinu"

Príčina: IBAN má príliš veľa alebo príliš málo znakov pre svoj kód krajiny.

Oprava: Overte, či kód krajiny zodpovedá zamýšľanej krajine. Nemecké IBAN majú vždy 22 znakov, britské IBAN sú 22, francúzske 27. Chýbajúce alebo navyše znaky naznačujú skrátenie alebo nesprávne údaje.

Chyba "Neplatné znaky"

Príčina: Znaky, ktoré sa nemajú v danej pozícii vyskytovať—napríklad písmená tam, kde sú povolené len čísla.

Oprava: Skontrolujte formát špecifický pre krajinu. Napríklad nemecké IBAN sú po kóde krajiny a kontrolných čísliciach úplne numerické, zatiaľ čo britské IBAN obsahujú 4 písmená pre kód banky.

Chyba "Nepodporovaný kód krajiny"

Príčina: Prvé dve písmená nie sú rozpoznaný kód krajiny, alebo nie sú podporované vaším validátorom.

Oprava: Overte pravopis kódu krajiny. Bežné chyby zahŕňajú použitie UK namiesto GB, alebo EN namiesto kódov krajín. Tento nástroj podporuje 10 európskych krajín; produkčné validátory by mali podporovať všetky krajiny registra SWIFT.

Formát vs. Existencia účtu

Dôležitý rozdiel: validácia potvrdzuje, že IBAN je štrukturálne správny, nie že účet existuje. IBAN môže prejsť všetkými validačnými kontrolami, ale stále nemusí zodpovedať skutočnému bankovému účtu. Pre produkčné platobné systémy potrebujete dodatočné overenie nad rámec validácie formátu.

Technická implementácia pre vývojárov

Ak vytvárate podporu pre IBAN vo vašej aplikácii, tu sú overené príklady kódu v rôznych jazykoch. Tieto implementácie riešia hraniční prípady, s ktorými sa stretnete v produkcii:

Validácia IBAN

1function validateIban(iban) {
2  // Odstrániť medzery a previesť na veľké písmená
3  const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4  
5  // Skontrolovať 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  // Preskupiť a previesť písmená 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čítať 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// Príklad použitia
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

Generovanie 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    // Pridať ďalšie krajiny podľa potreby
7  };
8  
9  if (!countryFormats[countryCode]) {
10    throw new Error(`Kód krajiny ${countryCode} nie je podporovaný`);
11  }
12  
13  // Vygenerovať náhodný BBAN podľa vzoru krajiny
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      // Vygenerovať numerické znaky
24      for (let j = 0; j < count; j++) {
25        bban += Math.floor(Math.random() * 10);
26      }
27    } else if (type === 'a') {
28      // Vygenerovať 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      // Vygenerovať 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čítať kontrolné číslice
48  const checkDigits = calculateCheckDigits(countryCode, bban);
49  
50  return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54  // Vytvoriť počiatočný IBAN s kontrolnými číslicami '00'
55  const initialIban = countryCode + '00' + bban;
56  
57  // Preskupiť a previesť písmená 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čítať 98 mínus 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// Príklad použitia
77console.log(generateIban('DE')); // Vygeneruje platný nemecký IBAN
78console.log(generateIban('GB')); // Vygeneruje platný britský IBAN
79

Referencie a ďalšie zdroje

  1. ISO 13616-1:2007 - Oficiálna špecifikácia štruktúry IBAN
  2. SWIFT IBAN Register - Autoritatívny zdroj pre formáty IBAN špecifické pre jednotlivé krajiny
  3. ISO 7064:2003 - Špecifikácia algoritmu kontrolných číslic MOD 97
  4. Európska rada pre platby - SEPA - Dokumentácia k Jednotnej oblasti platieb v eurách
  5. Európska centrálna banka - Platobné systémy - Štandardy integrácie európskeho bankovníctva
  6. Banka pre medzinárodné zúčtovanie - Platobné systémy - Medzinárodné štandardy platobných systémov

Začnite testovať IBAN čísla

Potrebujete testovacie dáta pre váš platobný systém? Vygenerujte platný IBAN pre ktorúkoľvek podporovanú krajinu vyššie, alebo vložte existujúci IBAN na overenie jeho štruktúry. Nástroj beží úplne vo vašom prehliadači - bez registrácie, bez API kľúčov, bez odosielania dát na servery.

Rýchla rada: Generujte IBAN čísla z viacerých krajín pre testovanie hraničných prípadov. Reálne platobné systémy spracúvajú rôzne formáty, a testovanie len s formátom jednej krajiny je bežným zdrojom produkčných chýb.