Pāriet uz saturu

IBAN ģenerators un validātors - Banku datu tests

Momentāli ģenerējiet derīgus testa IBAN vai pārbaudiet esošos. Atbalsta 10 Eiropas valstis ar MOD 97 validāciju. Ideāli piemērots finanšu programmatūras testēšanai un izstrādei.

IBAN Ģenerators un Pārbaudītājs

Ielādes kalkulators...
📚

Dokumentācija

IBAN ģenerators un validātors

Ko šis rīks dara

Testējot finanšu programmatūru bez reāliem bankas konta datiem? Jums būs nepieciešami derīgi IBAN formāti, kas iztur pārbaudes. Šis rīks ģenerē nejaušus IBAN, kas atbilst valsts specifiskiem formātiem, un pārbauda esošos, izmantojot ISO 13616 standartu.

Šeit ir praktiskā problēma, ko tas risina: veidojot maksājumu sistēmas vai banku lietojumprogrammas, jums ir nepieciešami testēšanas dati, kas neizraisīs kļūdas validācijā, bet neapdraudēs īstu kontu numurus. Izplatīta kļūda, ko izdara izstrādātāji, ir veidot "viltotus" IBAN, kas neatbilst MOD 97 pārbaudes algoritma prasībām, izraisot testu kļūdas nepareizu iemeslu dēļ.

Rīks veic divus pamatuzdevumus:

  • Ģenerators: Izveido strukturāli derīgus IBAN jebkurai atbalstītajai valstij. Katrs ģenerētais numurs iztur tādas pašas validācijas pārbaudes, kādas izmantos ražošanas sistēma.
  • Validētājs: Pārbauda IBAN struktūru, kontrolciparus un valsts specifisko formatējumu. Noderīgs, lai atkļūdotu, kāpēc IBAN tiek noraidīts.

IBAN (Starptautiskie Bankas Konta Numuri) standartizē, kā bankas identificē kontus pāri robežām. Katrs satur valsts kodu, divus kontrolciparus, kas aprēķināti, izmantojot MOD 97, un Pamatbankas Konta Numuru (BBAN), kas atšķiras atkarībā no valsts. Sarežģītais ir tas, ka Vācijā izmanto 22 rakstzīmes, kamēr Francijā nepieciešamas 27, un iekšējā struktūra ir pilnīgi atšķirīga.

Kā darbojas IBAN

IBAN struktūra un formāts

IBAN var būt līdz 34 alfanumēriskiem rakstzīmēm, lai gan lielākā daļa Eiropas valstu izmanto 22-27. Katrs IBAN sadalās trijās daļās:

  1. Valsts kods: Divas burtu zīmes no ISO 3166-1 alfa-2 standarta (DE Vācijai, GB Apvienotajai Karalistei)
  2. Pārbaudes cipari: Divi aprēķinātie cipari, kas validē visu IBAN, izmantojot MOD 97
  3. Pamatbankas konta numurs (BBAN): Valstij specifiskā daļa, kas satur:
    • Bankas identifikatoru (dažreiz saukts par maršrutēšanas numuru vai bankas kodu)
    • Filiāles identifikatoru (Apvienotajā Karalistē to sauc par šķirošanas kodu)
    • Konta numuru
    • Reizēm papildu valsts pārbaudes ciparus

Ņemsim Vācijas IBAN kā piemēru. Šablons DE2!n8!n10!n nozīmē:

  • DE = valsts kods
  • 2!n = divi skaitliski pārbaudes cipari
  • 8!n = astoņciparu bankas kods (Bankleitzahl)
  • 10!n = desmitciparu konta numurs (Kontonummer)

Kas cilvēkus pārsteidz, ir tas, cik ļoti šie formāti atšķiras starp valstīm:

ValstsGarumsStruktūraPiemērs
Vācija (DE)22DE2!n8!n10!nDE89370400440532013000
Apvienotā Karaliste (GB)22GB2!n4!a6!n8!nGB29NWBK60161331926819
Francija (FR)27FR2!n5!n5!n11!c2!nFR1420041010050500013M02606
Spānija (ES)24ES2!n4!n4!n1!n1!n10!nES9121000418450200051332
Itālija (IT)27IT2!n1!a5!n5!n12!cIT60X0542811101000000123456

IBAN validācijas algoritms

IBAN validācija balstās uz MOD 97 algoritmu, kas definēts ISO 7064. Lūk, kas notiek, kad validē IBAN:

  1. Pārvieto pirmos četrus rakstzīmes (valsts kodu un pārbaudes ciparus) uz beigām
  2. Aizstāj katru burtu ar skaitļiem: A=10, B=11, līdz Z=35
  3. Aprēķina modulis 97 no iegūtās skaitļu virknes
  4. Derīgi IBAN vienmēr rada atlikumu, kas ir tieši 1

Matemātiski: IBAN numursmod97=1\text{IBAN numurs} \bmod 97 = 1

Kāpēc tieši MOD 97? Tas uztver gandrīz visas parastās kļūdas: atsevišķu ciparu kļūdas, samainītus ciparus, pat lielāko daļu drukas kļūdu ar līdzīgiem rakstzīmēm. Praksē esmu atradis, ka tas uztver aptuveni 99,9% nejaušu datu ievades kļūdu, tāpēc tas kļuva par starptautisko standartu.

Viena īpatnība, ko vērts zināt: ģenerējot IBAN, pārbaudes ciparus aprēķina, sākot ar "00", palaižot algoritmu, tad izmantojot 98 mīnus atlikums. Tas nodrošina, ka galīgais IBAN validēsies pareizi.

Rīka funkcijas

IBAN ģenerators

Ģenerēt pārbaudes IBAN, kas iztur validāciju bez īstu kontu numuru izmantošanas:

  • Valsts izvēle: Atbalsta 10 lielākās Eiropas valstis (Vācija, Apvienotā Karaliste, Francija, Spānija, Itālija, Nīderlande, Šveice, Austrija, Beļģija, Polija)
  • Formāta atbilstība: Katrs ģenerētais IBAN atbilst oficiajai valsts struktūrai un iztur MOD 97 validāciju
  • Vienas pogas ģenerēšana: Nav nepieciešama konfigurācija — vienkārši izvēlieties valsti un ģenerējiet
  • Kopēšana starpliktuvē: Viens klikšķis kopē pilnu IBAN pārbaudēm
  • Vizuāls sadalījums: Krāsaini kodēts displejs rāda valsts kodu, pārbaudes ciparus un bankas detaļas atsevišķi

Ģenerēšanas process:

  1. Izvēlas valsts specifisko formāta veidni
  2. Aizpilda nejaušus ciparus/burtus BBAN daļā
  3. Aprēķina pārbaudes ciparus, izmantojot MOD 97
  4. Saliek kopā un validē pilnu IBAN

Profesionāls padoms: Aizpildot testa datubāzes, ģenerējiet IBAN no vairākām valstīm, lai pārbaudītu pārrobežu scenārijus. Reālās maksājumu sistēmās bieži ir īpaši gadījumi ar specifiskām valstīm.

IBAN validātors

Pārbaudiet IBAN struktūru un atklājiet formatēšanas problēmas pirms ieviešanas ražošanā:

  • Formāta pārbaude: Pārbauda valsts specifisko garumu un struktūras prasības
  • MOD 97 validācija: Veic pilnu pārbaudes ciparu algoritmu
  • Komponenšu sadalījums: Rāda, kā IBAN sadalās valsts kodā, pārbaudes ciparus, bankas kodā un konta numurā
  • Specifiski kļūdu ziņojumi: Nevis vispārīgi "nederīgi" ziņojumi, bet precīzi, kas ir nepareizi
  • Automātiska formatēšana: Apstrādā IBAN ar vai bez atstarpēm — formatēšana notiek automātiski

Validācijas pārbaudes notiek šādā secībā:

  1. Valsts koda atpazīšana (vai tas ir atbalstīts?)
  2. Garuma pārbaude (pareizs rakstzīmju skaits attiecīgajai valstij?)
  3. Rakstzīmju tipa validācija (cipari tur, kur paredzēts, burti tur, kur atļauts)
  4. MOD 97 pārbaudes ciparu aprēķins (vai matemātika sakrīt?)

Tipisks scenārijs: Jūsu API saņem IBAN no lietotāja ievades ar nekonsekventi izvietotām atstarpēm. Izmantojiet validātoru, lai to normalizētu pirms apstrādes — tas automātiski noņem atstarpes un parāda pareizo formātu.

Pakāpenisks ceļvedis

IBAN ģenerēšana

  1. Piekļuve ģenerēšanas cilnei: Noklikšķiniet uz "Ģenerētājs" cilnes (atlasīta pēc noklusējuma)
  2. Valsts izvēle: Izvēlieties vajadzīgo valsti no nolaižamās izvēlnes
  3. IBAN ģenerēšana: Noklikšķiniet uz pogas "Ģenerēt IBAN"
  4. Rezultāta skatīšana: Ģenerētais IBAN parādīsies zemāk ar tā komponentu vizuālu sadalījumu
  5. Kopēšana starpliktuvē: Noklikšķiniet uz pogas "Kopēt starpliktuvē", lai kopētu IBAN lietošanai citur

IBAN validēšana

  1. Piekļuve validēšanas cilnei: Noklikšķiniet uz "Validētājs" cilnes
  2. IBAN ievadīšana: Ierakstiet vai ielīmējiet IBAN ievades laukā
    • Atstarpes un formatējums tiks automātiski apstrādāti
    • Rīks pieņem gan formatētus (ar atstarpēm), gan neformatētus IBAN
  3. Validēšanas rezultātu skatīšana: Rīks automātiski validēs IBAN, kamēr jūs rakstāt
  4. Detaļu pārbaude: Derīgiem IBAN tiks parādīts komponentu sadalījums
  5. Kļūdu pārskatīšana: Nederīgiem IBAN tiks parādīti specifiski kļūdu ziņojumi, lai palīdzētu identificēt problēmu

Lietojuma gadījumi un reālās pasaules pielietojumi

Programmatūras izstrāde un testēšana

API testēšana: Veidojot maksājumu integrācijas testus, jums ir nepieciešami IBAN, kas iztur validāciju, bet neizraisa faktiskus darījumus. Ģenerējiet testu IBAN partiju savam automatizētajam testu komplektam, nodrošinot, ka jūsu kļūdu apstrāde darbojas pareizi dažādiem valstu formātiem.

Formas validācija: Testējot maksājuma plūsmu? Izmantojiet validatoru, lai pārbaudītu, vai jūsu priekšējās daļas validācija atbilst aizmugures prasībām. Bieža problēma ir IBAN formāta pieņemšana, kuru vēlāk noraidīs maksājumu apstrādātājs—šīs problēmas konstatēšana izstrādes laikā novērš klientu neapmierinātību.

Robežgadījumu testēšana: Lielākā daļa izstrādātāju testē ar vienu vai diviem valstu formātiem. Kas notiek, kad šveiciešu klients ar 21 rakstzīmju IBAN izmanto jūsu sistēmu, kas veidota ap vācu 22 rakstzīmju IBAN? Ģenerējiet dažādus valstu formātus, lai pārbaudītu jūsu lauku garumu un validācijas loģiku.

Regresijas testēšana: Pēc IBAN validācijas bibliotēkas atjaunināšanas, izejiet cauri ģenerētajiem testu IBAN gan vecajai, gan jaunajai versijai. Jebkādas atšķirības norāda uz izmaiņām, kas varētu ietekmēt ražošanu.

Finanšu lietojumprogrammu izstrāde

Maksājumu sistēmas: Veidojot starptautisko naudas pārvedumu funkcionalitāti, jūs saskarsieties ar scenārijiem, kur pats IBAN struktūra nosaka maršrutēšanas uzvedību. Nīderlandes IBAN (kas ietver burtus BBAN) atklāj kļūdas, kuras neatklās pilnīgi skaitliskie vācu IBAN.

Banku programmatūra: IBAN parsēšana, lai izvilktu banku kodus un filiāļu identifikatorus, prasa valstu specifisko loģiku. Ģenerējiet IBAN katrai atbalstītajai valstij, lai pārbaudītu, vai jūsu parsēšanas algoritms pareizi identificē šos komponentus.

Atbilstības pārbaude: Finanšu noteikumi bieži prasa IBAN validāciju pirms apstrādes. Izmantojiet šo rīku, lai izveidotu testēšanas gadījumus, kas pierāda, ka jūsu sistēma noraida nederīgus kontrolskaitļus un nepareizus formātus—būtiski revīzijas pierakstiem.

Izglītība un dokumentācija

Banku standartu izglītība: Studenti, kas mācās par starptautiskajām maksājumu sistēmām, gūst labumu, redzot īstas IBAN struktūras. Ģenerējiet piemērus no vairākām valstīm, lai ilustrētu, kā standartizācija darbojas dažādās banku sistēmās.

API dokumentācija: Tā vietā, lai izmantotu potenciāli īstus IBAN savos tehniskajos dokumentos, ģenerējiet tīrus piemērus. Dokumentācija ar frāzēm kā "Izmantojiet IBAN DE89370400440532013000 testēšanai" uzreiz pasaka izstrādātājiem, ka tie ir droši testu vērtējumi.

Datu operācijas

Datu bāzes aizpildīšana: Izstrādes un sagatavošanas vidēm ir nepieciešami reālistiski testu dati. Ģenerējiet dažādus IBAN, lai aizpildītu jūsu datu bāzi ar reprezentatīviem starptautiskiem klientu profiliem bez privātuma bažām.

Datu anonimizācija: Migrējot no ražošanas uz sagatavošanas vidi? Aizstājiet īstos IBAN ar ģenerētajiem, kas saglabā formāta derīgumu testēšanai, vienlaikus noņemot sensitīvu informāciju. Kritisks GDPR atbilstībai izstrādes vidēs.

Alternatīvas un kad tās izmantot

Dažādi rīki der dažādām vajadzībām. Šeit ir godīgs salīdzinājums:

Komerciālās banku API (piemēram, Stripe, Adyen)

Vislabāk derēs ražošanas validācijai pret reālām banku reģistriem. Šie pakalpojumi pārbauda, vai IBAN atbilst faktiskai aktīvai bankas kontam, nevis tikai pārbauda formātu.

Izmantot, kad: Jums ir nepieciešams pārliecināties, ka IBAN eksistē un var saņemt maksājumus, ne tikai pārbaudīt tā strukturālo derīgumu.

Ierobežojumi: Maksā naudu (parasti par katru API izsaukumu), prasa integrācijas darbu, un joprojām nepieciešami testa IBAN izstrādes laikā - tieši šeit noderēs šis rīks.

Programmēšanas valodu bibliotēkas (ibantools, iban.js, python-stdnum)

Vislabāk derēs validācijai jūsu lietojumprogrammas kodā. Bibliotēkas kā ibantools JavaScript valodai vai python-stdnum Python valodai nodrošina gan validācijas, gan ģenerēšanas funkcijas.

Izmantot, kad: Jums nepieciešama programmatiska piekļuve kā daļa no būvēšanas vai darbības laika validācijas.

Ierobežojumi: Prasa izstrādes darbu integrācijai, un joprojām nepieciešams ātrs veids, kā manuāli pārbaudīt specifiskus IBAN kodus atkļūdošanas laikā. Šeit tīmekļa rīks ir ātrāks nekā testu skriptu rakstīšana.

SWIFT IBAN reģistrs

Oficiālais IBAN reģistrs, ko uztur SWIFT, uzskaitīta visu valstu formātus un validācijas noteikumus. Tas ir autoritatīvais avots.

Izmantot, kad: Jūs ieviešat IBAN atbalstu no nulles un nepieciešamas oficiālās specifikācijas.

Ierobežojumi: Tā ir dokumentācija, nevis rīks. Joprojām būtu nepieciešams izveidot vai atrast kaut ko, lai faktiski ģenerētu un validētu IBAN saskaņā ar šīm specifikācijām.

Oficiālie banku validatori

Daudzas nacionālās bankas nodrošina valstu specifiskus validatorus (piemēram, Bundesbank Vācijas IBAN). Tie ir ļoti precīzi savai konkrētajai valstij.

Izmantot, kad: Jūs strādājat tikai ar vienu valsti un nepieciešama bankas līmeņa validācijas detaļas.

Ierobežojumi: Fokuss uz vienu valsti. Ja veidojat starptautiskās maksājumu sistēmas, jums būs nepieciešami validatori katrai valstij.

Kad šis rīks ir noderīgs

Izmantojiet šo rīku, kad nepieciešama ātra testēšana bez API integrācijas. Tas ir īpaši noderīgs izstrādes un atkļūdošanas laikā, kad jums nekavējoties vajadzīgi derīgi testa dati vai jāpārbauda, kāpēc konkrētais IBAN neiztur validāciju. Tas neaizstās ražošanas līmeņa validācijas bibliotēkas jūsu kodā, bet ir ātrāks par īslaicīgu testu skriptu rakstīšanu.

Bieži uzdotie jautājumi

Kas ir IBAN un kāpēc tas ir svarīgi?

IBAN nozīmē Starptautisko Bankas Konta Numuru — standartizētu formātu, ko izveidoja Starptautiskā Standartizācijas Organizācija (ISO), lai samazinātu kļūdas pārrobežu maksājumos. Pirms IBAN, katra valsts izmantoja savu konta numura formātu, kas bieži izraisīja kļūdas un neizdevušos pārskaitījumus. IBAN pieveno valsts kodus un kontrolciparus, lai noķertu kļūdas pirms naudas pārvietošanas.

Cik precīzi ir ģenerētie IBAN?

Ģenerētie IBAN ir matemātiski pareizi un iztur MOD 97 validācijas algoritmu, kas definēts ISO 13616 standartā. Tie ievēro pareizas valsts specifiskās struktūras. Tomēr tie ir nejauši izveidoti un neatbilst reāliem bankas kontiem — tas ir tieši mērķis. Tie ir droši testēšanai tieši tāpēc, ka nejaušā kārtā nesasniedz īstu kontu.

Kuras valstis šis rīks atbalsta?

Pašlaik 10 Eiropas valstis: Vācija, Apvienotā Karaliste, Francija, Spānija, Itālija, Nīderlande, Šveice, Austrija, Beļģija un Polija. Tās sedz visbiežāk sastopamos IBAN formātus Eiropas maksājumu sistēmās. Vajadzīga cita valsts? Atsauksmes forma ir labākais veids, lai pieprasītu papildinājumus.

Vai es varu izmantot ģenerētos IBAN faktiskiem naudas pārvedumiem?

Absolūti nē. Tie ir tikai testa IBAN. Tie iztur formāta validāciju, bet nav pievienoti reāliem bankas kontiem. To izmantošana faktiskām transakcijām izraisīs maksājumu kļūmes vai noraidījumus. Tie ir paredzēti tikai izstrādei, testēšanai un izglītošanas nolūkiem.

Kā īsti darbojas IBAN validācija?

Validators pārbauda četras secīgas pārbaudes:

  1. Valsts kods: Vai tas ir atpazīts divu burtu kods?
  2. Garums: Vai tas atbilst nepieciešamajam garumam attiecīgajai valstij? (Vācija = 22, Apvienotā Karaliste = 22, Francija = 27 utt.)
  3. Rakstzīmju tipi: Vai burti un cipari ir pareizās pozīcijās atbilstoši valsts formatam?
  4. MOD 97 pārbaude: Vai matemātiskā kontrolsumma ir vienāda ar 1 saskaņā ar ISO 7064?

Ja kāda pārbaude neizdodas, jūs redzēsit specifisku kļūdas ziņojumu, kas izskaidro, kas ir nepareizi.

Vai atstarpes IBAN ir svarīgas?

Nē, validācijai. IBAN parasti tiek attēloti ar atstarpēm (četru grupu) lasāmībai, bet atstarpes ir kosmētiskas. DE89 3704 0044 0532 0130 00 un DE89370400440532013000 ir identiskas validācijas nolūkiem. Rīks automātiski apstrādā abus formātus.

Vai mani dati tiek nosūtīti uz serveri vai kaut kur saglabāti?

Nē. Viss darbojas jūsu pārlūkprogrammā, izmantojot JavaScript. Neviens IBAN dati neatstāj jūsu ierīci, nepieskaras serverim un netiek nekur saglabāti. Jūs varat pārbaudīt, atverot pārlūkprogrammas izstrādātāja rīkus un novērojot tīkla cilni — jūs neredzēsit nevienu pieprasījumu, ģenerējot vai validējot IBAN.

Ko darīt, ja man jāvalidē IBAN no valsts, kas nav sarakstā?

Rīks pašlaik atbalsta tikai 10 valstis nolaižamajā sarakstā. Jaunu pievienošana prasa īstenot katras valsts specifiskās formāta prasības. Ja jums ir nepieciešama validācija valstīm kā Norvēģija, Zviedrija vai citām, lūdzu, informējiet mūs caur atsauksmes formu — mēs prioritizējam papildinājumus atkarībā no pieprasījuma.

Kāpēc pareizi formatēts IBAN var neizdot validāciju?

Visbiežākās problēmas:

  • Nepareizi kontrolcipari: Pat viens nepareizs cipars neizdod MOD 97 testu
  • Drukas kļūdas: Samainīti rakstzīmju vai ciparu secība
  • Nepareizs garums: Trūkstoši vai papildu rakstzīmju
  • Nederīgas rakstzīmes: Burti tur, kur drīkst būt tikai cipari, vai otrādi
  • Neatbalstīta valsts: Valsts kods eksistē, bet nav mūsu atbalstīto sarakstā

Kļūdas ziņojums precīzi pastāstīs, kas ir nepareizi.

Kā ziņot par kļūdām vai pieprasīt funkcijas?

Izmantojiet atsauksmes formu lapas apakšā. Specifiski kļūdu ziņojumi ar IBAN piemēriem ir vislietderīgākie. Funkciju pieprasījumiem palīdz lietošanas gadījuma izskaidrošana, lai noteiktu prioritātes nākamajām izstrādēm.

Kāda ir atšķirība starp IBAN un SWIFT/BIC kodiem?

IBAN identificē specifiskus bankas kontus, savukārt SWIFT/BIC kodi identificē bankas vai banku filiāles. Domājiet par to šādi: SWIFT kods pasaka, kura banka, IBAN pasaka, kurš konts tajā bankā. Starptautiskiem pārvedumiem bieži vajag abus — SWIFT kods virza uz pareizo banku, tad IBAN virza uz konkrēto kontu.

Vai var validēt IBAN bez valsts zināšanas?

Jā, jo katra IBAN pirmās divas rakstzīmes ir valsts kods. Validators lasa šīs pirmās divas rakstzīmes, lai noteiktu, kādu valsts formātu piemērot. Tāpēc valsts noteikšana notiek automātiski, ielīmējot IBAN — nav nepieciešams manuāli izvēlēties valsti.

Vai pastāv IBAN formāti valstīm ārpus Eiropas?

Jā, bet mazāk. Lai gan IBAN sākās Eiropā un ir visplašāk izmantots tur, valstis kā Saūda Arābija, AAE, Brazīlija un citas to ir pieņēmušas. Šis rīks pašlaik fokusējas uz Eiropas formatiem, jo tie pārstāv lielāko daļu pārrobežu darījumu. SWIFT IBAN Reģistrs uztur pilno sarakstu.

Kā lasīt un dekodēt IBAN

Vai kādreiz esat paskatījies uz IBAN, piemēram, DE89370400440532013000, un domājis, ko nozīmē katra daļa? Šeit ir, kā dekodēt jebkuru IBAN:

1. solis: Valsts kods (pirmās 2 rakstzīmes)

  • DE = Vācija
  • Norāda, kādus valsts formāta noteikumus piemērot

2. solis: Pārbaudes cipari (nākamās 2 rakstzīmes)

  • 89 = aprēķinātā kontrolsumma
  • Šie cipari pārbauda, vai viss IBAN ir derīgs, izmantojot MOD 97

3. solis: Bankas kods (atkarīgs no valsts)

  • 37040044 Vācijas IBAN = 8 ciparu bankas identifikators
  • Dažādās valstīs izmanto dažādu garumu (Apvienotajā Karalistē izmanto 4 rakstzīmes)

4. solis: Konta numurs (atlikušās rakstzīmes)

  • 0532013000 = faktiskais konta numurs šajā bankā
  • Garums un formāts ir atkarīgs no valsts

Dažādās valstīs BBAN daļu organizē atšķirīgi. Apvienotās Karalistes IBAN ietver 6 ciparu šķirošanas kodu (filiāles identifikatoru) starp bankas kodu un konta numuru. Francijas IBAN apvieno bankas kodu, filiāles kodu un konta numuru ar pārbaudes atslēgu. Šo atšķirību izpratne ir būtiska, veicot IBAN programmatisku analīzi.

Bieži sastopamās IBAN validācijas kļūdas un to labošana

Ieviešot IBAN validāciju, jūs bieži saskarsieties ar šādām problēmām:

"Nederīgas kontrolciparu" kļūda

Cēlonis: MOD 97 aprēķins nav vienāds ar 1. Vai nu kontrolcipari ir nepareizi, vai kļūda ir citur IBAN.

Labojums: Veiciet validāciju vēlreiz pēc jebkādu drukas kļūdu labošanas. Pat viena nepareiza rakstzīme IBAN jebkurā vietā izraisa kontrolciparu kļūmi. Tas ir paredzēts tīši — lai konstatētu datu ievades kļūdas.

"Nepareizs garums valstij" kļūda

Cēlonis: IBAN ir pārāk daudz vai pārāk maz rakstzīmju attiecībā pret tās valsts kodu.

Labojums: Pārbaudiet, vai valsts kods atbilst paredzētajai valstij. Vācu IBAN vienmēr ir 22 rakstzīmes, Lielbritānijas IBAN ir 22, Francijas — 27. Trūkstošas vai papildu rakstzīmes norāda uz saīsināšanu vai nepareiziem datiem.

"Nederīgas rakstzīmes" kļūda

Cēlonis: Rakstzīmes, kas nedrīkstētu parādīties šajā pozīcijā — piemēram, burti tur, kur drīkst būt tikai cipari.

Labojums: Pārbaudiet valsts specifisko formātu. Piemēram, Vācu IBAN pēc valsts koda un kontrolciparu ir pilnībā cipariski, savukārt Lielbritānijas IBAN ietver 4 burtus bankas kodam.

"Neatbalstīts valsts kods" kļūda

Cēlonis: Pirmās divas rakstzīmes nav atpazīstams valsts kods, vai arī tās netiek atbalstītas jūsu validatorā.

Labojums: Pārbaudiet valsts koda pareizrakstību. Bieži sastopamas kļūdas ir UK izmantošana vietā GB, vai EN vietā pareiza valsts koda. Šis rīks atbalsta 10 Eiropas valstis; ražošanas validatoriem jāatbalsta visas SWIFT reģistra valstis.

Formāts pret konta esamību

Svarīga atšķirība: validācija apstiprina, ka IBAN ir strukturāli pareizs, nevis to, ka konts eksistē. IBAN var izturēt visas validācijas pārbaudes, bet tomēr neatbilst reālam bankas kontam. Ražošanas maksājumu sistēmām ir nepieciešama papildu pārbaude, kas pārsniedz formāta validāciju.

Tehniskā ieviešana izstrādātājiem

Ja jūs veidojat IBAN atbalstu savā lietojumprogrammā, šeit ir ražošanā pārbaudīti koda piemēri vairākās valodās. Šīs ieviešanas risina malas gadījumus, ar kuriem saskarsieties ražošanā:

IBAN validācija

1function validateIban(iban) {
2  // Noņemt atstarpes un pārvērst lielajos burtos
3  const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4  
5  // Pārbaudīt pamata formātu
6  if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7    return false;
8  }
9  
10  // Pārkārtot un pārvērst burtus skaitļos
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  // Aprēķināt 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// Lietošanas piemērs
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 (nederīgi kontrolcipari)
32

IBAN ģenerēšana

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    // Pievienot vairāk valstu pēc nepieciešamības
7  };
8  
9  if (!countryFormats[countryCode]) {
10    throw new Error(`Valsts kods ${countryCode} nav atbalstīts`);
11  }
12  
13  // Ģenerēt nejaušu BBAN atbilstoši valsts šablonam
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      // Ģenerēt skaitliskus simbolus
24      for (let j = 0; j < count; j++) {
25        bban += Math.floor(Math.random() * 10);
26      }
27    } else if (type === 'a') {
28      // Ģenerēt alfabētiskus simbolus
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      // Ģenerēt alfanumeriskus simbolus
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  // Aprēķināt kontrolciparus
48  const checkDigits = calculateCheckDigits(countryCode, bban);
49  
50  return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54  // Izveidot sākotnējo IBAN ar '00' kā kontrolciparus
55  const initialIban = countryCode + '00' + bban;
56  
57  // Pārkārtot un pārvērst burtus skaitļos
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  // Aprēķināt 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// Lietošanas piemērs
77console.log(generateIban('DE')); // Ģenerē derīgu Vācijas IBAN
78console.log(generateIban('GB')); // Ģenerē derīgu Lielbritānijas IBAN
79

Atsauces un papildu literatūra

  1. ISO 13616-1:2007 - Oficiālā IBAN struktūras specifikācija
  2. SWIFT IBAN reģistrs - Autoritatīvs avots valstu specifiskām IBAN formātiem
  3. ISO 7064:2003 - MOD 97 kontrolciparu algoritma specifikācija
  4. Eiropas Maksājumu Padome - SEPA - Vienotās Eiropas Maksājumu Telpas dokumentācija
  5. Eiropas Centrālā Banka - Maksājumu Sistēmas - Eiropas banku integrācijas standarti
  6. Starptautisko Norēķinu Banka - Maksājumu Sistēmas - Starptautisko maksājumu sistēmu standarti

Sākt IBAN Testēšanu

Vai jums ir nepieciešami testa dati maksājumu sistēmai? Ģenerējiet derīgu IBAN jebkurai atbalstītajai valstij augstāk vai ielīmējiet esošu IBAN, lai pārbaudītu tā struktūru. Rīks darbojas pilnībā jūsu pārlūkprogrammā — nav nepieciešama reģistrācija, nav API atslēgu, nekādi dati netiek sūtīti uz serveriem.

Īss padoms: Ģenerējiet IBAN no vairākām valstīm, lai pārbaudītu robežgadījumus. Reālās maksājumu sistēmās tiek apstrādāti dažādi formāti, un testēšana tikai ar vienas valsts formātu bieži ir izplatīts ražošanas kļūdu avots.