IBAN-i generaator ja validaator - Testimise pangaandmed

Genereeri kehtivad testkonto IBAN-id või valideerige olemasolevaid koheselt. Toetab 10 Euroopa riiki MOD 97 valideerimisega. Ideaalne finantstarkvara testimiseks ja arendamiseks.

IBAN-i generaator ja kontrollija

📚

Dokumentatsioon

IBAN generaator ja validaator

Selle tööriista funktsioon

Testimaks finantstarkvara ilma tegelike pangakonto andmeteta? Teil on vaja kehtivaid IBAN-formaate, mis läbivad valideerimiskontrollid. See tööriist genereerib juhuslikke IBAN-sid, mis järgivad riigipõhiseid formaate, ning valideerib olemasolevaid, kasutades ISO 13616 standardit.

Siin on praktiline probleem, mida see lahendab: mobiilimaksesüsteemide või pangarakenduste loomisel vajate testiandmeid, mis ei läbi valideerimist, kuid ei riski ka tegelike kontonumbrite paljastamisega. Arendajate levinud viga on luua "võltsitud" IBAN-e, mis ei läbi MOD 97 kontrollalgoritmi, põhjustades testide ebaõnnestumist valel põhjusel.

Tööriist täidab kahte põhiülesannet:

  • Generaator: Loob struktuuriliselt kehtivaid IBAN-e igale toetatud riigile. Iga genereeritud number läbib samad valideerimiskontrollid, mida teie tootmissüsteem käivitab.
  • Validaator: Kontrollib IBAN-i struktuuri, kontrollnumbreid ja riigipõhist vormingut. Kasulik vea väljaselgitamiseks, miks IBAN-i tagasi lükatakse.

IBAN-id (International Bank Account Numbers) standardiseerivad seda, kuidas pangad tuvastavad kontosid üle piiri. Iga IBAN sisaldab riigikoodid, kahte kontrollnumbrit, mis arvutatakse MOD 97 abil, ning põhipangakonto numbrit (BBAN), mis erineb riigiti. Keeruliseks teeb selle asjaolu, et Saksamaa kasutab 22 märki, Prantsusmaa vajab 27 märki ning sisestruktuur erineb täielikult.

Kuidas IBAN-id töötavad

IBAN-i struktuur ja vorming

IBAN-id võivad olla kuni 34 tähtnumbrilist märki, kuigi enamik Euroopa riike kasutab 22-27 märki. Iga IBAN koosneb kolmest osast:

  1. Riigikood: Kaks tähte ISO 3166-1 alpha-2 standardist (DE Saksamaale, GB Ühendkuningriigile)
  2. Kontrollnumbrid: Kaks arvutatud numbrit, mis valideerivad kogu IBAN-i MOD 97 abil
  3. Põhipanga kontonumber (BBAN): Riigipõhine osa, mis sisaldab:
    • Panga identifikaatorit (mõnikord nimetatakse marsruutimise numbri või pangakoodiks)
    • Filiaali identifikaatorit (Ühendkuningriigis nimetatakse seda sort-koodiks)
    • Kontonumbrit
    • Mõnikord täiendavaid riiklikke kontrollnumbreid

Võtame näiteks Saksa IBAN-i. Muster DE2!n8!n10!n tähendab:

  • DE = riigikood
  • 2!n = kaks numbrilist kontrollnumbrit
  • 8!n = kaheksakohaline pangakood (Bankleitzahl)
  • 10!n = kümnekohane kontonumber (Kontonummer)

Mis inimesi üllatab, on see, kui palju need vormingud riigiti erinevad:

RiikPikkusStruktuurNäide
Saksamaa (DE)22DE2!n8!n10!nDE89370400440532013000
Ühendkuningriik (GB)22GB2!n4!a6!n8!nGB29NWBK60161331926819
Prantsusmaa (FR)27FR2!n5!n5!n11!c2!nFR1420041010050500013M02606
Hispaania (ES)24ES2!n4!n4!n1!n1!n10!nES9121000418450200051332
Itaalia (IT)27IT2!n1!a5!n5!n12!cIT60X0542811101000000123456

IBAN-i valideerimisalgoritm

IBAN-i valideerimine põhineb ISO 7064 standardis määratletud MOD 97 algoritmil. Siin on see, mis tegelikult toimub IBAN-i valideerimisel:

  1. Liigutage esimesed neli märki (riigikood ja kontrollnumbrid) lõppu
  2. Asendage iga täht numbritega: A=10, B=11, kuni Z=35
  3. Arvutage saadud numbriahela modulo 97
  4. Kehtivad IBAN-id annavad alati täpselt 1 ülejäägi

Matemaatiliselt: IBAN numbermod97=1\text{IBAN number} \bmod 97 = 1

Miks just MOD 97? See püüab kinni peaaegu kõik tavalised vead: üksiku numbri vead, vahetatud numbrid, isegi enamiku andmesisestuse vigadest. Praktikas olen leidnud, et see püüab kinni umbes 99,9% juhuslikest andmesisestuse vigadest, mistõttu see sai rahvusvaheliseks standardiks.

Üks omapära, mida tasub teada: IBAN-ide genereerimisel arvutatakse kontrollnumbrid, alustades "00"-ga, käivitades algoritmi ja seejärel kasutades 98 miinus ülejääk. See tagab, et lõplik IBAN valideerub õigesti.

Tööriista funktsioonid

IBAN-i generaator

Genereeri testkõlblikud IBAN-id, mis läbivad valideerimise ilma tegelike kontonumbriteta:

  • Riigi valik: Toetab 10 suurt Euroopa riiki (Saksamaa, Ühendkuningriik, Prantsusmaa, Hispaania, Itaalia, Holland, Šveits, Austria, Belgia, Poola)
  • Formaadi vastavus: Iga genereeritud IBAN vastab ametlikule riigi struktuurile ja läbib MOD 97 valideerimise
  • Ühe klõpsuga genereerimine: Pole vaja konfiguratsiooni - lihtsalt vali riik ja genereeri
  • Lõikelauale kopeerimine: Üks klõps kopeerib täieliku IBAN-i testidesse kleepimiseks
  • Visuaalne jaotus: Värviliselt koodatud kuvamine näitab eraldi riigi koodi, kontrollnumbreid ja pangaandmeid

Genereerimise protsess:

  1. Valib riigipõhise formaadi mallid
  2. Täidab juhuslike numbritega/tähtedega BBAN-i osa
  3. Arvutab kontrollnumbrid MOD 97 abil
  4. Koostab ja valideerib täieliku IBAN-i

Pro näpunäide: Tesandmebaaside täitmisel genereeri IBAN-e mitmest riigist, et testida piiriüleseid stsenaariumeid. Tegelikud maksesüsteemid sisaldavad sageli erijuhtumeid konkreetsetes riikides.

IBAN-i validaator

Kontrolli IBAN-i struktuuri ja püüa kinni vormindamisvead enne tootmisse jõudmist:

  • Formaadi kontroll: Kontrollib riigipõhist pikkust ja struktuuri nõudeid
  • MOD 97 valideerimine: Käivitab täieliku kontrollnumbri algoritmi
  • Komponendi jaotus: Näitab täpselt, kuidas IBAN jaguneb riigi koodi, kontrollnumbrite, panga koodi ja kontonumbri vahel
  • Täpsed veateated: Asemel et näidata üldist "kehtetu" teadet, näed täpselt, mis valesti on
  • Automaatne vormindamine: Töötleb IBAN-e koos või ilma tühikuteta - vormindamine toimub automaatselt

Valideerimise kontrollid toimuvad järjekorras:

  1. Riigi koodi tuvastamine (kas see on toetatud?)
  2. Pikkuse kontroll (õige märkide arv selle riigi jaoks?)
  3. Märgi tüübi valideerimine (numbrid kus oodatud, tähed kus lubatud)
  4. MOD 97 kontrollnumbri arvutamine (kas matemaatika töötab?)

Tavaline stsenaarium: Teie API saab kasutaja sisestatud IBAN-i ebaühtlase tühikutega. Kasutage validaatorit selle normaliseerimiseks enne töötlemist - see eemaldab automaatselt tühikud ja näitab õiget formaati.

Samm-sammulise juhendi

IBAN-i genereerimine

  1. Generaatori vahelehe avamine: Klõpsake "Generaator" vahelehel (vaikimisi valitud)
  2. Riigi valimine: Valige rippmenüüst soovitud riik
  3. IBAN-i genereerimine: Klõpsake "Genereeri IBAN" nuppu
  4. Tulemuse vaatamine: Genereeritud IBAN kuvatakse allpool koos selle komponentide visuaalse jaotusega
  5. Lõikelauale kopeerimine: Klõpsake "Kopeeri lõikelauale" nuppu, et IBAN-i mujal kasutada

IBAN-i valideerimine

  1. Validaatori vahelehe avamine: Klõpsake "Validaator" vahelehel
  2. IBAN-i sisestamine: Sisestage või kleepige IBAN sisendväljale
    • Tühikud ja vormindus käsitletakse automaatselt
    • Tööriist aktsepteerib nii vormindatud (tühikutega) kui ka vormindamata IBAN-e
  3. Valideerimistulemuste vaatamine: Tööriist valideerib IBAN-i automaatselt sisestamise ajal
  4. Üksikasjade kontrollimine: Kehtivate IBAN-ide puhul kuvatakse komponentide jaotus
  5. Vigade ülevaatamine: Kehtetute IBAN-ide puhul kuvatakse täpsed veateated probleemi tuvastamiseks

Kasutusjuhud ja reaalsed rakendused

Tarkvara arendus ja testimine

API testimine: Maksete integreerimise testide loomisel vajate IBANe, mis läbivad valideerimise, kuid ei käivita tegelikke tehinguid. Looge testimise automatiseeritud komplektile partii testIBANe, tagades, et teie veakäsitlus töötab õigesti erinevate riikide formaatide puhul.

Vormi valideerimine: Kontrollite väljamakse voogu? Kasutage validaatorit, et kontrollida, kas teie eesliidese valideerimine vastab tagaliidese nõuetele. Sage probleem on IBANi formaadi vastuvõtmine, mida teie maksete töötleja hiljem tagasi lükkab—selle avastamine arenduse käigus hoiab ära kliendi frustratsiooni.

Äärmiste juhtumite testimine: Enamik arendajaid testib ühe või kahe riigi formaadiga. Mis juhtub, kui šveitsi klient 21-märgilise IBANiga kasutab teie süsteemi, mis on loodud saksa 22-märgiliste IBANide jaoks? Looge erinevaid riikide formaate, et testida oma välja pikkusi ja valideerimisloogikat.

Regressioonitestimine: Pärast IBAN-i valideerimise teegi uuendamist käitage genereeritud testIBANid läbi nii vana kui uue versiooni. Mis tahes erinevused näitavad muudatusi, mis võivad mõjutada tootmiskeskkonda.

Finantstaotluste arendus

Maksesüsteemid: Rahvusvaheliste ülekannete funktsionaalsuse loomisel puutute kokku stsenaariumidega, kus IBAN-i struktuur ise määrab marsruutimise käitumise. Testida Hollandi IBANe (mis sisaldavad tähtegi BBAN-is), toob esile vead, mida ainult numbriline saksa IBAN ei näitaks.

Panganduse tarkvara: IBANide parsimine pangakoodide ja filiaali identifikaatorite eraldamiseks nõuab riigipõhist loogikat. Looge IBANid igast toetatud riigist, et kontrollida, kas teie parsimisalgoritm õigesti tuvastab need komponendid.

Vastavuse kontrollimine: Finantseeskirjad nõuavad sageli IBANide valideerimist enne töötlemist. Kasutage seda töövahendit testimiseks, et tõestada, et teie süsteem lükkab tagasi kehtetud kontrollnumbrid ja valed formaadid—hädavajalik auditijälgede jaoks.

Hariduslik ja dokumentatsioon

Panganduse standardite haridus: Tudengid, kes õpivad rahvusvahelistest maksesüsteemidest, saavad kasu, nähes päris IBAN-i struktuure. Looge näited mitmest riigist, et illustreerida, kuidas standardiseerimine toimib erinevates pangandussüsteemides.

API dokumentatsioon: Asemel et kasutada potentsiaalselt päris IBANe oma tehnilises dokumentatsioonis, looge puhtad näited. Dokumentatsioon fraasidega nagu "Kasutage testimiseks IBANi DE89370400440532013000" ütleb kohe arendajatele, et need on turvalised testiväärtused.

Andmetoimingud

Andmebaasi täitmine: Arendus- ja testimiskeskkond vajab realistlikke testAndmeid. Looge mitmekesised IBANid, et täita oma andmebaas esinduslike rahvusvaheliste kliendiprofiilidega ilma privaatsusprobleemideta.

Andmete anonüümistamine: Migreerite tootmiskeskkonnast testimiskeskkonda? Asendage päris IBANid genereeritud IBANidega, mis säilitavad formaadi kehtivuse testimiseks, kuid eemaldavad tundliku teabe. Kriitiline GDPR-i vastavuse tagamiseks arenduskeskkondades.

Alternatiivid ja millal neid kasutada

Erinevad tööriistad sobivad erinevateks vajadusteks. Siin on aus võrdlus:

Äripanga API-d (nt Stripe, Adyen)

Parim tootmises valideerimiseks vastu tegelikke pangaregistreid. Need teenused kontrollivad, kas IBAN vastab tegelikule aktiivsele kontole, mitte ainult selle formaadile.

Kasuta kui: Sul on vaja kontrollida, et IBAN eksisteerib ja saab makseid vastu võtta, mitte ainult selle struktuurselt õigsust.

Piirangud: Maksab raha (tavaliselt API-kõne hinnaga), nõuab integreerimistööd ja sa vajad endiselt testIBANe arendamiseks - siin tuleb appi see tööriist.

Programmeerimiskeele teegid (ibantools, iban.js, python-stdnum)

Parim sisseehitatud valideerimiseks rakenduse koodis. Teegid nagu ibantools JavaScriptile või python-stdnum Pythonile pakuvad nii valideerimis- kui ka genereerimisfunktsioone.

Kasuta kui: Sul on vaja programmeerimispõhist juurdepääsu build- või käitusaja valideerimiseks.

Piirangud: Nõuab arendustööd integreerimiseks ja sa vajad endiselt kiiret võimalust käsitsi testida konkreetseid IBANe silumisel. Selles osas on veebipõhine tööriist kiirem kui testskriptide kirjutamine.

SWIFT IBAN Register

SWIFT-i hallatav ametlik IBAN register loetleb kõik riikide formaadid ja valideerimisreeglid. See on autoriteetne allikas.

Kasuta kui: Sa rakendad IBAN-i toetust nullist ja vajad ametlikke spetsifikatsioone.

Piirangud: See on dokumentatsioon, mitte tööriist. Sa peaksid endiselt ehitama või leidma midagi, et tegelikult genereerida ja valideerida IBANe nende spetsifikatsioonide põhjal.

Ametlikud panga validaatorid

Paljud riiklikud pangad pakuvad riigipõhiseid validaatoreid (nt Bundesbank Saksa IBANidele). Need on väga täpsed oma konkreetse riigi jaoks.

Kasuta kui: Sa töötad ainult ühe riigiga ja vajad panga taseme valideerimise üksikasju.

Piirangud: Ainult ühe riigi fookus. Kui sa ehitad rahvusvahelisi maksesüsteeme, vajaksid sa validaatoreid igaks riigiks.

Millal see tööriist on mõttekas

Kasuta seda tööriista, kui vajad kiiret testimist ilma API integratsioonita. See on eriti kasulik arenduse ja silumise ajal, kui sul on vaja kohe genereerida kehtivaid testandmeid või kontrollida, miks konkreetne IBAN valideerimisest läbi ei lähe. See ei asenda tootmistasemel valideerimise teeke sinu koodibaasis, kuid on kiirem kui ajutiste testskriptide kirjutamine.

Korduma Kippuvad Küsimused

Mis on IBAN ja miks see oluline on?

IBAN tähendab Rahvusvahelist Pangakonto Numbrit - standardiseeritud vormingut, mille lõi Rahvusvaheline Standardiorganisatsioon (ISO), et vähendada vigasid piiriülestes maksetes. Enne IBANeid kasutas iga riik oma kontonumbri vormingut, mis viis sagedaste vigade ja ebaõnnestunud ülekanneteni. IBANid lisavad riigikoodid ja kontrollnumbrid, et püüda kinni vead enne raha liikumist.

Kui täpsed on genereeritud IBANid?

Genereeritud IBANid on matemaatiliselt õiged ja läbivad MOD 97 valideerimisalgoritmi, mis on määratletud ISO 13616 standardis. Need järgivad õiget riigipõhist struktuuri. Siiski on need juhuslikult loodud ja ei vasta tegelikele pangakontodele - see ongi mõte. Need on testimiseks ohutud just sellepärast, et need ei puuduta juhuslikult ühtegi tegelikku kontot.

Milliseid riike see tööriist toetab?

Praegu 10 Euroopa riiki: Saksamaa, Ühendkuningriik, Prantsusmaa, Hispaania, Itaalia, Holland, Šveits, Austria, Belgia ja Poola. Need katavad kõige levinumad IBAN vormingud, mida kohtad Euroopa maksesüsteemides. Vajad mõnda muud riiki? Tagasiside vorm on parim viis täienduste taotlemiseks.

Kas ma saan genereeritud IBANe tegelike rahaülekannete jaoks kasutada?

Kindlasti mitte. Need on ainult testIBANid. Need läbivad vormingu valideerimise, kuid pole seotud tegelike pangakontodega. Nende kasutamine tegelike tehingute jaoks toob kaasa maksete ebaõnnestumise või tagasilükkamise. Need on mõeldud arendamiseks, testimiseks ja hariduslikel eesmärkidel.

Kuidas IBAN valideerimine täpselt töötab?

Valideerija teeb järjest neli kontrolli:

  1. Riigikood: Kas see on tunnustatud kahetäheline kood?
  2. Pikkus: Kas see vastab selle riigi nõutud pikkusele? (Saksamaa = 22, UK = 22, Prantsusmaa = 27 jne)
  3. Märgitüübid: Kas tähed ja numbrid on õigetes positsioonides vastavalt riigi vormingule?
  4. MOD 97 kontroll: Kas matemaatiline kontrollsumma võrdub 1-ga vastavalt ISO 7064-le?

Kui ükskõik milline kontroll ebaõnnestub, näete konkreetset veateadet, mis selgitab, mis valesti on.

Kas tühikutel on IBANides tähtsust?

Valideerimiseks mitte. IBANid kuvatakse tavaliselt tühikutega (neljased grupid) loetavuse parandamiseks, kuid tühikud on kosmeetilised. DE89 3704 0044 0532 0130 00 ja DE89370400440532013000 on valideerimiseks identsed. Tööriist käsitleb mõlemaid vorminguid automaatselt.

Kas minu andmeid saadetakse serverisse või salvestatakse kusagil?

Ei. Kõik toimub teie brauseris JavaScripti abil. Ükski IBAN andmetest ei lahku teie arvutist, ei puuduta serverit ega salvestata kusagil. Saate seda kontrollida brauseri arendaja tööriistadest - näete, et IBANide genereerimisel või valideerimisel ei toimu ühtegi päringut.

Mida teha, kui ma vajan mõne loetlemata riigi IBAN valideerimist?

Tööriist toetab praegu ainult 10 riiki rippmenüüs. Täiendavate riikide lisamine nõuab iga riigi spetsiifiliste vormingureeglite rakendamist. Kui vajate valideerimist riikidele nagu Norra, Rootsi või teised, andke meile teada tagasiside vormi kaudu - me prioritiseerime täiendusi vastavalt nõudlusele.

Miks võib õigesti vormindatud IBAN valideerimise läbida?

Kõige sagedasemad põhjused:

  • Valed kontrollnumbrid: Isegi üks vale number nurjab MOD 97 testi
  • Trükivead: Ümberpaigutatud märgid või valed numbrid IBANis
  • Vale pikkus: Puuduvad või liigset märke selle riigi jaoks
  • Kehtetud märgid: Tähed seal, kus tohiks olla ainult numbrid, või vastupidi
  • Toetamata riik: Riigikood eksisteerib, kuid pole meie toetatud nimekirjas

Veateade ütleb teile täpselt, mis valesti on.

Kuidas saab teatada vigadest või taotleda funktsioone?

Kasutage lehe allosas olevat tagasiside vormi. Konkreetsed veateated näidetega IBANidest on kõige kasulikumad. Funktsiooni taotlemisel aitab kasutamise selgitamine prioriteetide seadmisel.

Mis on erinevus IBAN ja SWIFT/BIC koodide vahel?

IBANid identifitseerivad konkreetseid pangakontosid, samal ajal kui SWIFT/BIC koodid identifitseerivad panku või pangakontorid. Mõelge nii: SWIFT kood ütleb, milline pank, IBAN ütleb, milline konto selles pangas. Rahvusvaheliste ülekannete jaoks vajate tihti mõlemat - SWIFT kood suunab õigesse panka, IBAN suunab konkreetsele kontole.

Kas ma saan IBANi valideerida ilma riiki teadmata?

Jah, sest iga IBAN esimesed kaks tähte on riigikood. Valideerija loeb need esimesed kaks märki, et määrata, millist riigi vormingut rakendada. Sellepärast toimub riigi tuvastamine automaatselt IBAN-i kleepimisel - pole vaja riiki käsitsi valida.

Kas on IBAN vormingud väljaspool Euroopat?

Jah, kuid vähem. Kuigi IBAN sai alguse Euroopas ja on seal kõige levinum, on riigid nagu Saudi Araabia, ÜAE, Brasiilia ja teised selle vastu võtnud. See tööriist keskendub praegu Euroopa vormingutele, kuna need esindavad valdavat osa piiriülestest maksetest. SWIFT IBAN Register säilitab täieliku loetelu.

Kuidas lugeda ja dekodeerida IBAN-i

Kas oled kunagi vaadanud IBAN-i nagu DE89370400440532013000 ja mõelnud, mida iga osa tähendab? Siin on, kuidas dekodeerida ükskõik millist IBAN-i:

Samm 1: Riigikood (Esimesed 2 märki)

  • DE = Saksamaa
  • Näitab, millise riigi formaadireeglistik kehtib

Samm 2: Kontrollnumbrid (Järgmised 2 märki)

  • 89 = arvutatud kontrollsumma
  • Need numbrid kontrollivad, et kogu IBAN oleks kehtiv, kasutades MOD 97 meetodit

Samm 3: Pangakood (Erinev sõltuvalt riigist)

  • 37040044 Saksa IBAN-ides = 8-kohaline panga identifikaator
  • Erinevatel riikidel on erinev pikkus (UK kasutab 4 märki)

Samm 4: Kontonumber (Ülejäänud märgid)

  • 0532013000 = tegelik kontonumber selles pangas
  • Pikkus ja formaat sõltuvad riigist

Erinevad riigid korraldavad BBAN-i osa erinevalt. UK IBAN-id sisaldavad 6-kohalise sort-koodi (filiaali identifikaator) pangakoodi ja kontonumbri vahel. Prantsuse IBAN-id ühendavad pangakoodi, filiaali koodi ja kontonumbri kontrollvõtmega. Nende erinevuste mõistmine on oluline IBAN-ide programmilisel töötlemisel.

Levinud IBAN-i valideerimise vead ja nende parandamine

IBAN-i valideerimisel kohtate neid probleeme korduvalt:

"Vigased kontrollnumbrid" viga

Põhjus: MOD 97 arvutus ei võrdu 1-ga. Kas kontrollnumbrid on valed või esineb mujal IBAN-is viga.

Parandus: Käivitage valideerimine uuesti pärast võimalike trükivigade parandamist. Isegi üks vale märk IBAN-is põhjustab kontrollnumbri vea. See on kavandatud andmesisestuse vigade avastamiseks.

"Vale pikkus riigi jaoks" viga

Põhjus: IBAN-il on liiga palju või liiga vähe tähemärke riigi koodi kohta.

Parandus: Kontrollige, kas riigi kood vastab soovitud riigile. Saksamaa IBAN-id on alati 22 tähemärki, UK IBAN-id on 22, Prantsuse IBAN-id 27. Puuduvad või liigsed tähemärgid näitavad kärpimist või valet andmestikku.

"Valed märgid" viga

Põhjus: Märgid, mis ei peaks selles positsioonis esinema - näiteks tähed, kus peaksid olema ainult numbrid.

Parandus: Kontrollige riigipõhist vormingut. Näiteks Saksamaa IBAN-id on pärast riigi koodi ja kontrollnumbreid täielikult numbrilised, samas kui UK IBAN-id sisaldavad 4 tähte pangakoodi jaoks.

"Toetamata riigi kood" viga

Põhjus: Esimesed kaks tähte ei ole tunnustatud riigi kood või neid ei toeta teie validaator.

Parandus: Kontrollige riigi koodi õigekirja. Levinud vead on UK kasutamine GB asemel või EN kasutamine riigi koodide asemel. See tööriist toetab 10 Euroopa riiki; tootmise validaatorid peaksid toetama kõiki SWIFT-i registri riike.

Vorming vs. Konto olemasolu

Oluline eristus: valideerimine kinnitab, et IBAN on struktuuriliselt õige, mitte et konto eksisteerib. IBAN võib läbida kõik valideerimise kontrollid, kuid mitte vastata tegelikule pangakontole. Tootmise maksesüsteemides on vaja täiendavat kontrolli lisaks vormingu valideerimisele.

Tehniline rakendamine arendajatele

Kui te ehitate IBAN-i toetust oma rakendusse, siin on tootmises kasutatavad koodinäited mitmes keeles. Need rakendused käsitlevad äärmisi juhtumeid, millega te tootmises kokku puutute:

IBAN-i valideerimine

1function validateIban(iban) {
2  // Eemalda tühikud ja teisenda suurtähtedeks
3  const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4  
5  // Kontrolli põhilist vormingut
6  if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7    return false;
8  }
9  
10  // Paiguta ümber ja teisenda tähed numbriteks
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  // Arvuta 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// Näidis kasutamine
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 (kehtetud kontrollnumbrid)
32

IBAN-i genereerimine

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    // Lisa vajaduse korral veel riike
7  };
8  
9  if (!countryFormats[countryCode]) {
10    throw new Error(`Riigi kood ${countryCode} ei ole toetatud`);
11  }
12  
13  // Genereeri juhuslik BBAN vastavalt riigi mustrile
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      // Genereeri numbrilised märgid
24      for (let j = 0; j < count; j++) {
25        bban += Math.floor(Math.random() * 10);
26      }
27    } else if (type === 'a') {
28      // Genereeri alfabeetilised märgid
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      // Genereeri alfanumbrilised märgid
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  // Arvuta kontrollnumbrid
48  const checkDigits = calculateCheckDigits(countryCode, bban);
49  
50  return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54  // Loo algne IBAN '00' kontrollnumbritega
55  const initialIban = countryCode + '00' + bban;
56  
57  // Paiguta ümber ja teisenda tähed numbriteks
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  // Arvuta 98 miinus 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// Näidis kasutamine
77console.log(generateIban('DE')); // Genereerib kehtiva Saksa IBAN-i
78console.log(generateIban('GB')); // Genereerib kehtiva UK IBAN-i
79

Viited ja edasine lugemine

  1. ISO 13616-1:2007 - Ametlik IBAN-i struktuuri spetsifikatsioon
  2. SWIFT IBAN-i register - Autoriteetne allikas riigipõhiste IBAN-i vormingute kohta
  3. ISO 7064:2003 - MOD 97 kontrollnumbri algoritmi spetsifikatsioon
  4. Euroopa Maksete Nõukogu - SEPA - Ühtse euromaksete piirkonna dokumentatsioon
  5. Euroopa Keskpank - Maksesüsteemid - Euroopa panganduse integratsiooni standardid
  6. Rahvusvaheline Arvelduste Pank - Maksesüsteemid - Rahvusvahelised maksesüsteemi standardid

Alusta IBAN-koodide testimist

Vajad testimisandmeid oma maksesüsteemile? Genereeri kehtiv IBAN-kood mis tahes toetatud riigile ülal, või aseta olemasolev IBAN selle struktuuri kontrollimiseks. Tööriist töötab täielikult sinu brauseris - ilma registreerumiseta, API-võtmeteta, ilma andmeid serveritesse saatmata.

Kiire nõuanne: Genereeri IBAN-koode mitmest riigist, et testida äärmisi olukordi. Päris maksesüsteemid käsitlevad erinevaid formaate, ning testimine ainult ühe riigi formaadiga on levinud allikas tootmise vigadele.

🔗

Seotud tööriistad

Avasta rohkem tööriistu, mis võivad olla kasulikud teie töövoos