Preskoči na vsebino

Generator in validator IBAN-ja - Testni bančni podatki

Ustvarjanje veljavnih testnih IBAN-jev ali takojšnja potrditev obstoječih. Podpira 10 evropskih držav z validacijo MOD 97. Idealno za testiranje in razvoj finančne programske opreme.

Generator in validator IBAN

Kalkulator nalaganja...
📚

Dokumentacija

Generator in validator IBAN številk

Kaj to orodje počne

Testiranje finančne programske opreme brez resničnih bančnih podatkov? Potrebovali boste veljavne IBAN formate, ki prestanejo preverjanje. To orodje ustvarja naključne IBAN-e, ki sledijo formatom posameznih držav, in preverja obstoječe z uporabo standarda ISO 13616.

Tu je praktičen problem, ki ga rešuje: pri gradnji plačilnih sistemov ali bančnih aplikacij potrebujete testne podatke, ki ne bodo spodleteli pri preverjanju, a hkrati ne bodo razkrivali pravih številk računov. Pogosta napaka razvijalcev je ustvarjanje "lažnih" IBAN-ov, ki ne prestanejo MOD 97 preverjanja algoritma, kar povzroča napake testiranja iz napačnih razlogov.

Orodje opravlja dve temeljni nalogi:

  • Generator: Ustvarja strukturno veljavne IBAN-e za katero koli podprto državo. Vsako generirano število prestane enaka preverjanja kot vaš produkcijski sistem.
  • Validator: Preverja strukturo IBAN-a, kontrolne številke in formatiranje posameznih držav. Koristen za odpravljanje napak, zakaj je bil IBAN zavrnjen.

IBAN-i (mednarodne bančne številke računov) standardizirajo način, kako banke identificirajo račune čez meje. Vsak vsebuje državno kodo, dve kontrolni številki, izračunani prek MOD 97, in osnovno bančno številko računa (BBAN), ki se razlikuje glede na državo. Zapleteno je, ker Nemčija uporablja 22 znakov, Francija pa potrebuje 27, notranja struktura pa se povsem razlikuje.

Kako delujejo IBAN-i

Struktura in format IBAN-a

IBAN-i lahko vsebujejo do 34 alfanumeričnih znakov, čeprav večina evropskih držav uporablja 22-27. Vsak IBAN se razčleni na tri dele:

  1. Koda države: Dve črki iz ISO 3166-1 alfa-2 standarda (DE za Nemčijo, GB za Združeno kraljestvo)
  2. Kontrolne številke: Dve izračunani številki, ki overjata celoten IBAN z uporabo MOD 97
  3. Osnovna bančna številka računa (BBAN): Državno specifičen del, ki vsebuje:
    • Identifikator banke (včasih imenovan usmerjevalna številka ali bančna koda)
    • Identifikator podružnice (v Združenem kraljestvu imenovano sort code)
    • Številka računa
    • Včasih dodatne nacionalne kontrolne številke

Vzemimo nemški IBAN kot primer. Vzorec DE2!n8!n10!n pomeni:

  • DE = koda države
  • 2!n = dve numerični kontrolni številki
  • 8!n = osemmestna bančna koda (Bankleitzahl)
  • 10!n = desetnmestna številka računa (Kontonummer)

Kaj ljudi preseneti, je raznolikost formatov med državami:

DržavaDolžinaStrukturaPrimer
Nemčija (DE)22DE2!n8!n10!nDE89370400440532013000
Združeno kraljestvo (GB)22GB2!n4!a6!n8!nGB29NWBK60161331926819
Francija (FR)27FR2!n5!n5!n11!c2!nFR1420041010050500013M02606
Španija (ES)24ES2!n4!n4!n1!n1!n10!nES9121000418450200051332
Italija (IT)27IT2!n1!a5!n5!n12!cIT60X0542811101000000123456

Algoritem preverjanja IBAN-a

Preverjanje IBAN-a temelji na algoritmu MOD 97, opredeljenem v ISO 7064. Kaj se dejansko zgodi pri preverjanju IBAN-a:

  1. Prvih štiri znake (kodo države in kontrolne številke) premaknite na konec
  2. Vsako črko nadomestite s številkami: A=10, B=11, do Z=35
  3. Izračunajte modulo 97 nastale številske nize
  4. Veljavni IBAN-i vedno ustvarijo ostanek natanko 1

Matematično: IBAN sˇtevilkamod97=1\text{IBAN številka} \bmod 97 = 1

Zakaj prav MOD 97? Zazna skoraj vse pogoste napake: napake posameznih številk, zamenjane številke, celo večino tipkarskih napak z podobnimi znaki. V praksi sem ugotovil, da zazna približno 99,9 % naključnih napak pri vnosu podatkov, zato je postal mednarodni standard.

Zanimivost, vredna omembe: pri ustvarjanju IBAN-ov izračunate kontrolne številke tako, da začnete z "00", zaženete algoritem, nato pa uporabite 98 minus ostanek. To zagotavlja, da bo končni IBAN pravilno overjen.

Funkcije orodja

Generator IBAN

Ustvarjanje testnih IBAN-jev, ki prestanejo preverjanje brez uporabe pravih številk računov:

  • Izbira države: Podpira 10 glavnih evropskih držav (Nemčija, Združeno kraljestvo, Francija, Španija, Italija, Nizozemska, Švica, Avstrija, Belgija, Poljska)
  • Skladnost s formatom: Vsak ustvarjen IBAN ustreza uradni strukturi države in prestane preverjanje MOD 97
  • Generiranje z enim klikom: Brez konfiguracije - samo izberite državo in ustvarite
  • Kopiranje v odložišče: En klik kopira celoten IBAN za lepljenje v vaše teste
  • Vizualna razčlenitev: Barvno kodiran prikaz ločeno prikazuje državno kodo, kontrolne številke in bančne podatke

Postopek generiranja:

  1. Izbere predlogo formata specifičnega za državo
  2. Napolni naključne številke/črke v del BBAN
  3. Izračuna kontrolne številke z MOD 97
  4. Sestavi in preveri popoln IBAN

Namig: Pri polnjenju testnih baz podatkov ustvarjajte IBAN-je iz več držav za testiranje čezmejnih scenarijev. Pravi plačilni sistemi pogosto vsebujejo mejne primere specifičnih držav.

Validator IBAN

Preverite strukturo IBAN in zajezite formatne napake pred produkcijo:

  • Preverjanje formata: Preveri zahteve glede dolžine in strukture specifične za državo
  • Preverjanje MOD 97: Izvede popoln algoritem preverjanja kontrolnih številk
  • Razčlenitev komponent: Prikaže natančno, kako se IBAN razdeli na državno kodo, kontrolne številke, bančno kodo in številko računa
  • Specifična sporočila o napakah: Namesto generičnih sporočil "neveljaven" boste videli, kaj je dejansko narobe
  • Samodejno formatiranje: Deluje z IBAN-ji z ali brez presledkov - formatiranje poteka samodejno

Preverjanja potekajo v naslednjem vrstnem redu:

  1. Prepoznavanje državne kode (ali je podprta?)
  2. Preverjanje dolžine (pravilno število znakov za to državo?)
  3. Preverjanje vrste znakov (številke, kjer so pričakovane, črke, kjer so dovoljene)
  4. Izračun kontrolnih številk MOD 97 (ali matematika drži?)

Pogost scenarij: Vaš API prejme IBAN iz uporabnikovega vnosa z nedoslednimi presledki. Uporabite validator za normalizacijo pred obdelavo - samodejno odstrani presledke in prikaže pravi format.

Vodnik po korakih

Ustvarjanje IBAN-a

  1. Dostop do zavihka Generator: Kliknite na zavihek "Generator" (privzeto izbran)
  2. Izbira države: Iz spustnega menija izberite želeno državo
  3. Ustvarjanje IBAN-a: Kliknite gumb "Ustvari IBAN"
  4. Ogled rezultata: Ustvarjen IBAN se bo prikazal spodaj z vizualnim prikazom njegovih komponent
  5. Kopiranje v odložišče: Kliknite gumb "Kopiraj v odložišče" za kopiranje IBAN-a za nadaljnjo uporabo

Preverjanje IBAN-a

  1. Dostop do zavihka Validator: Kliknite na zavihek "Validator"
  2. Vnos IBAN-a: Vnesite ali prilepite IBAN v vnosno polje
    • Presledki in oblikovanje bodo samodejno obdelani
    • Orodje sprejema tako oblikovane (s presledki) kot neoblikovane IBAN-e
  3. Ogled rezultatov preverjanja: Orodje bo samodejno preverjalo IBAN med vpisovanjem
  4. Preverjanje podrobnosti: Za veljavne IBAN-e bo prikazan razčlenjen prikaz komponent
  5. Pregled napak: Za neveljavne IBAN-e bodo prikazana specifična sporočila o napakah

Primeri uporabe in praktične aplikacije

Razvoj programske opreme in testiranje

Testiranje API-ja: Pri gradnji testov plačilne integracije potrebujete IBAN-e, ki prestanejo preverjanje, a ne sprožijo dejanskih transakcij. Ustvarite serijo testnih IBAN-ov za vaš avtomatizirani testni paket in zagotovite, da vaše upravljanje napak pravilno deluje za različne državne formate.

Preverjanje obrazcev: Testirate potek blagajne? Uporabite validator za preverjanje, ali vaše preverjanje na sprednji strani ustreza zahtevam zadnje strani. Pogosta težava je sprejem IBAN formata, ki ga bo vaš plačilni procesor kasneje zavrnil - odkritje tega med razvojem preprečuje frustracijo strank.

Testiranje mejnih primerov: Večina razvijalcev testira z enim ali dvema državnima formatoma. Kaj se zgodi, ko švicarski kupec z 21-mestnim IBAN-om uporabi vaš sistem, zasnovan okoli nemških 22-mestnih IBAN-ov? Ustvarite različne državne formate za preizkušanje omejitev polj in logike preverjanja.

Regresijsko testiranje: Po posodobitvi knjižnice za preverjanje IBAN-ov, poženite generirane testne IBAN-e skozi staro in novo različico. Kakršne koli neskladnosti kažejo na spremembe, ki bi lahko vplivale na produkcijo.

Razvoj finančnih aplikacij

Plačilni sistemi: Pri gradnji funkcionalnosti mednarodnih bančnih nakazil boste naleteli na scenarije, kjer struktura IBAN-a določa usmerjevalno obnašanje. Testni IBAN-i iz Nizozemske (ki vključuje črke v BBAN) razkrijejo napake, ki jih vsi-številčni nemški IBAN-i ne bodo odkrili.

Bančna programska oprema: Razčlenjevanje IBAN-ov za ekstrakcijo bančnih kod in identifikatorjev podružnic zahteva državno specifično logiko. Ustvarite IBAN-e za vsako podprto državo, da preverite, ali vaš razčlenjevalni algoritem pravilno identificira te komponente.

Preverjanje skladnosti: Finančni predpisi pogosto zahtevajo preverjanje IBAN-ov pred obdelavo. Uporabite to orodje za ustvarjanje testnih primerov, ki dokazujejo, da vaš sistem zavrača neveljavne kontrolne številke in nepravilne formate - bistveno za revizijske sledi.

Izobraževanje in dokumentacija

Izobraževanje o bančnih standardih: Študentje, ki se učijo o mednarodnih plačilnih sistemih, imajo koristi od prikaza resničnih struktur IBAN-ov. Ustvarite primere iz več držav, da ilustrirate, kako standardizacija deluje v različnih bančnih sistemih.

Dokumentacija API-ja: Namesto uporabe potencialno resničnih IBAN-ov v vaši tehnični dokumentaciji, ustvarite čiste primere. Dokumentacija s frazami kot "Za testiranje uporabite IBAN DE89370400440532013000" takoj pove razvijalcem, da gre za varne testne vrednosti.

Podatkovne operacije

Sejanje podatkovne baze: Razvojni in pripravljalni okolji potrebujeta realistične testne podatke. Ustvarite raznolike IBAN-e za polnjenje vaše podatkovne baze z reprezentativnimi mednarodnimi profili strank brez skrbi glede zasebnosti.

Anonimizacija podatkov: Selitev iz produkcije v pripravljalno okolje? Zamenjajte prave IBAN-e z generiranimi, ki ohranjajo veljavnost formata za testiranje in hkrati odstranjujejo občutljive informacije. Kritično za skladnost z GDPR v razvojnih okoljih.

Alternative in kdaj jih uporabiti

Različna orodja ustrezajo različnim potrebam. Tukaj je pošten primerjalni pregled:

Komercijalni bančni API-ji (npr. Stripe, Adyen)

Najboljši za preverjanje v produkciji glede na prave bančne registre. Te storitve preverjajo, ali IBAN ustreza dejanskemu aktivnemu računu, ne le ali je format pravilen.

Uporabite, ko: Potrebujete potrditev, da IBAN obstaja in lahko prejema plačila, ne le da je strukturno veljaven.

Omejitve: Stane (običajno zaračunavanje na klic API-ja), zahteva integracijo, in še vedno potrebujete testne IBAN-e za razvoj - prav zato pride to orodje prav.

Knjižnice programskih jezikov (ibantools, iban.js, python-stdnum)

Najboljše za vgrajeno preverjanje v vaši aplikacijski kodi. Knjižnice kot ibantools za JavaScript ali python-stdnum za Python ponujajo funkcije tako za preverjanje kot generiranje.

Uporabite, ko: Potrebujete programski dostop kot del preverjanja med gradnjo ali izvajanjem.

Omejitve: Zahteva razvojni napor za integracijo in še vedno potrebujete hiter način za ročno testiranje specifičnih IBAN-ov med razhroščevanjem. Spletno orodje je zato hitrejše kot pisanje testnih skript.

SWIFT IBAN Register

Uraden IBAN register, ki ga vzdržuje SWIFT, navaja vse državne formate in pravila preverjanja. Je avtoritativni vir.

Uporabite, ko: Implementirate podporo IBAN-u od začetka in potrebujete uradne specifikacije.

Omejitve: Gre za dokumentacijo, ne orodje. Še vedno bi morali zgraditi ali najti nekaj za dejansko generiranje in preverjanje IBAN-ov na podlagi teh specifikacij.

Uradni bančni validatorji

Številne nacionalne banke zagotavljajo validatorje specifične za državo (npr. Bundesbank za nemške IBAN-e). Ti so zelo natančni za svojo specifično državo.

Uporabite, ko: Delate samo z eno državo in potrebujete podrobnosti preverjanja na ravni banke.

Omejitve: Osredotočenost na eno državo. Če gradite mednarodne plačilne sisteme, bi potrebovali validatorje za vsako državo.

Kdaj ima to orodje smisel

Uporabite to orodje, ko potrebujete hitro testiranje brez integracije API-ja. Še posebej je koristno med razvojem in razhroščevanjem, ko potrebujete takojšnje generiranje veljavnih testnih podatkov ali preverjanje, zakaj določen IBAN ne prestane preverjanja. Ne bo nadomestilo produkcijskih knjižnic za preverjanje v vaši kodni bazi, je pa hitrejše od pisanja zavržnih testnih skript.

Pogosto zastavljena vprašanja

Kaj je IBAN in zakaj je pomemben?

IBAN pomeni International Bank Account Number - standardiziran format, ki ga je ustvarila Mednarodna organizacija za standardizacijo (ISO), da bi zmanjšala napake pri čezmejnih plačilih. Pred IBAN-i je vsaka država uporabljala svoj format številk računov, kar je vodilo do pogostih napak in neuspelih prenosov. IBAN-i dodajajo državne kode in kontrolne številke, da prestrežejo napake pred premikom denarja.

Kako natančni so generirani IBAN-i?

Generirani IBAN-i so matematično pravilni in prestanejo algoritem za preverjanje MOD 97, opredeljen v ISO 13616. Sledijo pravilnim strukturam posameznih držav. Vendar so naključno ustvarjeni in ne ustrezajo resničnim bančnim računom - in prav to je namen. So varni za testiranje prav zato, ker naključno ne bodo zadeli resničnega računa.

Katere države podpira to orodje?

Trenutno 10 evropskih držav: Nemčija, Združeno kraljestvo, Francija, Španija, Italija, Nizozemska, Švica, Avstrija, Belgija in Poljska. To pokriva najpogostejše IBAN formate, s katerimi se boste srečali v evropskih plačilnih sistemih. Potrebujete drugo državo? Obrazec za povratne informacije je najboljši način za zahtevo po dodatkih.

Ali lahko generirane IBAN-e uporabim za dejanska denarna nakazila?

Nikakor ne. To so samo testni IBAN-i. Prestanejo preverjanje formata, vendar niso povezani z resničnimi bančnimi računi. Njihova uporaba za dejanske transakcije bo povzročila napake pri plačilih ali zavrnitve. Namenjeni so razvoju, testiranju in izobraževalnim namenom.

Kako dejansko deluje preverjanje IBAN-a?

Validator izvede štiri zaporedne preverjanja:

  1. Državna koda: Ali je to prepoznana dvočrkovna koda?
  2. Dolžina: Ali ustreza zahtevani dolžini za to državo? (Nemčija = 22, VB = 22, Francija = 27 itd.)
  3. Vrste znakov: Ali so črke in številke na pravilnih mestih glede na format države?
  4. Preverjanje MOD 97: Ali matematična kontrolna vsota ustreza 1 v skladu z ISO 7064?

Če katerokoli preverjanje ne uspe, boste videli specifično sporočilo o napaki, ki razlaga, kaj je narobe.

Ali presledki štejejo pri IBAN-ih?

Ne za preverjanje. IBAN-i se običajno prikazujejo s presledki (v skupinah po štiri) za berljivost, vendar so presledki zgolj kozmetični. DE89 3704 0044 0532 0130 00 in DE89370400440532013000 sta identična za namene preverjanja. Orodje samodejno obravnava oba formata.

Ali so moji podatki poslani na strežnik ali shranjeni?

Ne. Vse poteka v vašem brskalniku z uporabo JavaScript-a. Nobeni podatki IBAN ne zapustijo vašega računalnika, ne dotaknejo strežnika in nikjer niso shranjeni. To lahko preverite z odprtjem razvojnih orodij brskalnika in opazovanjem omrežne kartice - ne boste videli nobenih zahtev pri generiranju ali preverjanju IBAN-ov.

Kaj če potrebujem preverjanje IBAN-a iz države, ki ni navedena?

Orodje trenutno podpira samo 10 držav v spustnem meniju. Dodajanje več zahteva implementacijo specifičnih pravil formata vsake države. Če potrebujete preverjanje za države, kot sta Norveška, Švedska ali druge, nam sporočite prek obrazca za povratne informacije - dodatke prioritiziramo glede na povpraševanje.

Zakaj bi IBAN, ki je pravilno oblikovan, lahko padel pri preverjanju?

Najpogostejši razlogi:

  • Napačne kontrolne številke: Že ena napačna številka povzroči neuspeh testa MOD 97
  • Tipkarske napake: Zamenjane črke ali napačne številke kjerkoli v IBAN-u
  • Napačna dolžina: Manjkajoči ali dodatni znaki za to državo
  • Neveljavni znaki: Črke tam, kjer so dovoljene samo številke, ali obratno
  • Nepodprta država: Državna koda obstaja, ampak ni v našem seznamu podprtih

Sporočilo o napaki vam bo natančno povedalo, kaj je narobe.

Kako lahko prijavim napake ali zahtevam funkcije?

Uporabite obrazec za povratne informacije na dnu strani. Specifične prijave napak z examples IBAN-i so najpomembnejše. Pri zahtevah po funkcijah nam pojasnitev primera uporabe pomaga določiti prioriteto nadaljnjega razvoja.

Kakšna je razlika med IBAN-om in SWIFT/BIC kodami?

IBAN-i identificirajo specifične bančne račune, medtem ko SWIFT/BIC kode identificirajo banke ali bančne podružnice. Razmislite takole: SWIFT koda vam pove, katera banka, IBAN pa, kateri račun v tej banki. Za mednarodna nakazila pogosto potrebujete oboje - SWIFT koda usmerja do prave banke, IBAN pa do specifičnega računa.

Ali lahko preverim IBAN brez poznavanja države?

Da, ker so prve две črki vsakega IBAN-a državni kodi. Validator prebere prva dva znaka, da določi, kateri format države naj uporabi. Zato zaznavanje države poteka samodejno, ko prilepite IBAN - ni treba ročno izbrati države.

Ali obstajajo IBAN formati za države zunaj Evrope?

Da, ampak manj. Čeprav je IBAN nastal v Evropi in ima tam največjo uporabo, so ga sprejele tudi države, kot so Savdska Arabija, ZAE, Brazilija in druge. To orodje se trenutno osredotoča na evropske formate, saj predstavljajo večino čezmejnih transakcij. SWIFT IBAN Register vzdržuje popoln seznam.

Kako brati in dekodirati IBAN

Se kdaj sprašujete, kaj pomenijo posamezni deli IBAN-a, kot je DE89370400440532013000? Tako lahko dekodiramo katerikoli IBAN:

Korak 1: Koda države (prvih 2 znaka)

  • DE = Nemčija
  • Pove, katera pravila formata države se uporabljajo

Korak 2: Kontrolne številke (naslednji 2 znaka)

  • 89 = izračunana kontrolna vsota
  • Ti znaki preverjajo veljavnost celotnega IBAN-a z metodo MOD 97

Korak 3: Bančna koda (različno glede na državo)

  • 37040044 v nemških IBAN-ih = 8-mestna identifikacijska številka banke
  • Različne države uporabljajo različne dolžine (Združeno kraljestvo uporablja 4 znake)

Korak 4: Številka računa (preostali znaki)

  • 0532013000 = dejanska številka računa pri tej banki
  • Dolžina in format sta odvisna od države

Različne države organizirajo BBAN del drugače. IBAN-i Združenega kraljestva vključujejo 6-mestno kodo podružnice med bančno kodo in številko računa. Francoski IBAN-i kombinirajo bančno kodo, kodo podružnice in številko računa s kontrolno številko. Razumevanje teh razlik je ključno pri programskem razčlenjevanju IBAN-ov.

Pogoste napake pri preverjanju IBAN in kako jih odpraviti

Pri implementaciji preverjanja IBAN boste večkrat naleteli na te težave:

Napaka "Neveljavne kontrolne številke"

Vzrok: Izračun MOD 97 ni enak 1. Bodisi so kontrolne številke napačne ali pa je napaka drugje v IBAN.

Popravek: Znova zaženite preverjanje po odpravi morebitnih tipkarskih napak. Že ena napačna črka kjerkoli v IBAN povzroči napako kontrolnih številk. To je namerno - prestreže napake pri vnosu podatkov.

Napaka "Nepravilna dolžina za državo"

Vzrok: IBAN ima preveč ali premalo znakov glede na kodo države.

Popravek: Preverite, ali koda države ustreza namenjeni državi. Nemški IBAN-ji so vedno 22 znakov, britanski IBAN-ji so 22, francoski pa 27. Manjkajoči ali dodatni znaki kažejo na krajšanje ali napačne podatke.

Napaka "Neveljavni znaki"

Vzrok: Znaki, ki se ne smejo pojaviti na določenem mestu - na primer črke tam, kjer so dovoljene samo številke.

Popravek: Preverite format, specifičen za državo. Na primer, nemški IBAN-ji so po kodi države in kontrolnih številkah povsem numerični, medtem ko britanski IBAN-ji vključujejo 4 črke za bančno kodo.

Napaka "Nepodprta koda države"

Vzrok: Prvi dve črki nista prepoznana koda države ali pa ju validator ne podpira.

Popravek: Preverite črkovanje kode države. Pogoste napake vključujejo uporabo UK namesto GB ali EN namesto kod držav. To orodje podpira 10 evropskih držav; produkcijski validatorji bi morali podpirati vse države iz registra SWIFT.

Format proti obstoju računa

Pomembna razlika: preverjanje potrdi le strukturno pravilnost IBAN, ne pa obstoja računa. IBAN lahko prestane vse preverjalne teste, a še vedno ne ustreza resničnemu bančnemu računu. Za produkcijske plačilne sisteme potrebujete dodatno preverjanje poleg preverjanja formata.

Tehnična implementacija za razvijalce

Če gradite podporo za IBAN v svoji aplikaciji, so tukaj preizkušeni primeri kode v več jezikih. Te implementacije obravnavajo robne primere, s katerimi se boste srečali v produkciji:

Validacija IBAN

1function validateIban(iban) {
2  // Odstrani presledke in pretvori v velike črke
3  const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4  
5  // Preveri osnovno obliko
6  if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7    return false;
8  }
9  
10  // Prerazporedi in pretvori črke v številke
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  // Izračunaj 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// Primer uporabe
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 (neveljavne kontrolne številke)
32

Generiranje 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    // Dodaj več držav po potrebi
7  };
8  
9  if (!countryFormats[countryCode]) {
10    throw new Error(`Koda države ${countryCode} ni podprta`);
11  }
12  
13  // Generiraj naključni BBAN glede na vzorec države
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      // Generiraj numerične znake
24      for (let j = 0; j < count; j++) {
25        bban += Math.floor(Math.random() * 10);
26      }
27    } else if (type === 'a') {
28      // Generiraj abecedne znake
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      // Generiraj alfanumerične znake
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  // Izračunaj kontrolne številke
48  const checkDigits = calculateCheckDigits(countryCode, bban);
49  
50  return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54  // Ustvari začetni IBAN z '00' kot kontrolnimi številkami
55  const initialIban = countryCode + '00' + bban;
56  
57  // Prerazporedi in pretvori črke v številke
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  // Izračunaj 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// Primer uporabe
77console.log(generateIban('DE')); // Generira veljaven nemški IBAN
78console.log(generateIban('GB')); // Generira veljaven britanski IBAN
79

Reference in nadaljnje branje

  1. ISO 13616-1:2007 - Uradna specifikacija strukture IBAN
  2. SWIFT IBAN Register - Verodostojen vir za IBAN formate po državah
  3. ISO 7064:2003 - Specifikacija algoritma za preverjanje številk MOD 97
  4. Evropski svet za plačila - SEPA - Dokumentacija o Enotnem območju plačil v eurih
  5. Evropska centralna banka - Plačilni sistemi - Standardi za integracijo evropskega bančništva
  6. Banka za mednarodne poravnave - Plačilni sistemi - Mednarodni standardi plačilnih sistemov

Začnite Testirati IBAN-e

Potrebujete testne podatke za vaš plačilni sistem? Ustvarite veljaven IBAN za katero koli podprto državo zgoraj ali prilepite obstoječi IBAN za preverjanje njegove strukture. Orodje deluje v celoti v vašem brskalniku - brez prijav, brez API ključev, brez posredovanja podatkov na strežnike.

Hiter namig: Ustvarjajte IBAN-e iz več držav za testiranje mejnih primerov. Pravi plačilni sistemi obvladujejo različne formate, testiranje samo z enim formatom države pa je pogost vir napak v produkciji.