IBAN Generátor és Ellenőrző Eszköz - Banki Tesztadatok
Generáljon érvényes teszt IBAN-okat vagy ellenőrizzen meglévőket azonnal. 10 európai ország támogatásával, MOD 97 ellenőrzéssel. Tökéletes pénzügyi szoftverek teszteléséhez és fejlesztéséhez.
IBAN Generátor és Ellenőrző
Dokumentáció
IBAN Generátor és Validáló Eszköz
Mit csinál ez az eszköz
Pénzügyi szoftvert tesztel valós banki adatok nélkül? Szüksége lesz érvényes IBAN formátumokra, amelyek átmennek az ellenőrzéseken. Ez az eszköz véletlenszerű IBAN-okat generál, amelyek követik az adott ország formátumát, és ellenőrzi a meglévőket az ISO 13616 szabvány alapján.
Íme a gyakorlati probléma, amelyet megold: fizetési rendszerek vagy banki alkalmazások fejlesztésekor olyan tesztadatokra van szükség, amelyek nem buknak meg az ellenőrzésen, de nem kockáztatják valós számlaszámok felfedését. A fejlesztők gyakori hibája, hogy "hamis" IBAN-okat hoznak létre, amelyek nem felelnek meg a MOD 97 ellenőrző algoritmusnak, így a tesztek rossz okokból hiúsulnak meg.
Az eszköz két alapvető feladatot lát el:
- Generátor: Szerkezetileg érvényes IBAN-okat hoz létre bármely támogatott országhoz. Minden generált szám átmegy ugyanazokon az ellenőrzéseken, amelyeket a termelési rendszer futtat.
- Ellenőrző: Ellenőrzi az IBAN szerkezetét, ellenőrző számjegyeit és országspecifikus formázását. Hasznos annak hibakeresésére, hogy miért utasít el egy IBAN-t a rendszer.
Az IBAN-ok (Nemzetközi Bankszámlaszámok) szabványosítják, hogyan azonosítják a bankszámlákat országhatárok átlépésével. Mindegyik tartalmaz egy országkódot, két ellenőrző számjegyet, amelyeket MOD 97 segítségével számítanak, és egy Alapvető Bankszámlaszámot (BBAN), amely országonként eltérő. A bonyolultságot az adja, hogy Németország 22 karaktert használ, Franciaország pedig 27-et, és a belső szerkezet teljesen különböző.
Hogyan működnek az IBAN-ok
IBAN szerkezet és formátum
Az IBAN-ok legfeljebb 34 alfanumerikus karakterből állhatnak, bár a legtöbb európai ország 22-27 karaktert használ. Minden IBAN három részre tagolódik:
- Országkód: Két betű a ISO 3166-1 alpha-2 szabvány alapján (DE Németország, GB Egyesült Királyság)
- Ellenőrző számjegyek: Két kiszámolt számjegy, amely a teljes IBAN-t MOD 97 algoritmussal érvényesíti
- Alapvető Bankszámlaszám (BBAN): Az országspecifikus rész, amely tartalmazza:
- Bankazonosítót (néha útválasztási számnak vagy bankkódnak hívják)
- Fiókidentifikátort (az Egyesült Királyságban sort code)
- Számlaszámot
- Néha további nemzeti ellenőrző számjegyeket
Vegyünk egy német IBAN-t példaként. A DE2!n8!n10!n minta jelentése:
DE= országkód2!n= két numerikus ellenőrző számjegy8!n= nyolcjegyű bankkód (Bankleitzahl)10!n= tízjegyű számlaszám (Kontonummer)
Ami meglepő, hogy ezek a formátumok országonként mennyire eltérnek:
| Ország | Hossz | Szerkezet | Példa |
|---|---|---|---|
| Németország (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
| Egyesült Királyság (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
| Franciaország (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
| Spanyolország (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
| Olaszország (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
IBAN Érvényesítési Algoritmus
Az IBAN érvényesítés a ISO 7064-ben meghatározott MOD 97 algoritmusra támaszkodik. Íme, mi történik valójában egy IBAN érvényesítésekor:
- Mozgassa az első négy karaktert (országkód és ellenőrző számjegyek) a végére
- Cserélje le az egyes betűket számokká: A=10, B=11, Z-ig=35
- Számítsa ki a kapott számsor modulo 97-ét
- Az érvényes IBAN-ok mindig pontosan 1 maradékot adnak
Matematikailag:
Miért pont MOD 97? Szinte minden gyakori hibát kiszűr: egyjegyű hibák, felcserélt számjegyek, még a legtöbb gépelési hiba is, amely hasonló kinézetű karaktereket érint. A gyakorlatban azt találtam, hogy körülbelül 99,9%-ban kiszűri a véletlen adatbeviteli hibákat, ezért vált nemzetközi szabvánnyá.
Egy érdekesség: IBAN generálásakor az ellenőrző számjegyeket "00"-val kezdve futtatja le az algoritmust, majd 98-ból kivonja a maradékot. Ez biztosítja, hogy a végső IBAN helyesen érvényesüljön.
Eszköz funkciók
IBAN Generátor
Tesztelési célú IBAN-ok generálása valós bankszámlaszámok használata nélkül:
- Ország kiválasztás: 10 fő európai ország támogatása (Németország, Egyesült Királyság, Franciaország, Spanyolország, Olaszország, Hollandia, Svájc, Ausztria, Belgium, Lengyelország)
- Formátum megfelelőség: Minden generált IBAN megfelel az adott ország hivatalos szerkezetének és átmegy a MOD 97 ellenőrzésen
- Egygombos generálás: Nem igényel konfigurációt - csak válasszon országot és generáljon
- Vágólapra másolás: Egyetlen kattintással másolhatja a teljes IBAN-t teszteléshez
- Vizuális részletezés: Színkódolt megjelenítés mutatja az országkódot, ellenőrző számjegyeket és banki adatokat külön-külön
A generálási folyamat:
- Kiválasztja az ország-specifikus formátum sablont
- Véletlenszerű számjegyeket/betűket tölt fel a BBAN részbe
- Kiszámolja az ellenőrző számjegyeket MOD 97 használatával
- Összeállítja és érvényesíti a teljes IBAN-t
Pro tipp: Tesztadatbázisok feltöltésekor generáljon IBAN-okat több országból a határokon átnyúló forgatókönyvek teszteléséhez. A valós fizetési rendszereknek gyakran vannak speciális eseteik bizonyos országokkal.
IBAN Validátor
IBAN szerkezet ellenőrzése és formázási hibák kiszűrése még a éles üzem előtt:
- Formátum ellenőrzés: Ellenőrzi az ország-specifikus hossz- és szerkezeti követelményeket
- MOD 97 Validáció: Futtatja a teljes ellenőrző számjegy algoritmust
- Komponens részletezés: Pontosan mutatja, hogyan oszlik az IBAN országkódra, ellenőrző számjegyekre, bankkódra és bankszámlaszámra
- Specifikus hibaüzenetek: Generikus "érvénytelen" helyett pontosan megmutatja, mi a probléma
- Automatikus formázás: Kezeli a szóközökkel vagy anélküli IBAN-okat - a formázás automatikusan történik
Érvényesítési ellenőrzések sorrendben:
- Országkód felismerés (támogatott?)
- Hossz ellenőrzés (helyes karakterszám az adott országban?)
- Karaktertípus validáció (számok ott, ahol elvártak, betűk ott, ahol megengedettek)
- MOD 97 ellenőrző számjegy számítás (matematikailag stimmel?)
Gyakori forgatókönyv: Az API felhasználói bevitelből kap egy IBAN-t következetlen szóközökkel. Használja a validátort a normalizáláshoz feldolgozás előtt - automatikusan eltávolítja a szóközöket és megmutatja a helyes formátumot.
Lépésről lépésre útmutató
IBAN generálása
- Generátor lap megnyitása: Kattintson a "Generátor" fülre (alapértelmezetten kiválasztva)
- Ország kiválasztása: Válassza ki a kívánt országot a legördülő menüből
- IBAN generálása: Kattintson a "IBAN generálása" gombra
- Eredmény megtekintése: A generált IBAN megjelenik alul, komponenseinek vizuális bontásával
- Másolás vágólapra: Kattintson a "Másolás vágólapra" gombra az IBAN másolásához más felhasználáshoz
IBAN érvényesítése
- Érvényesítő lap megnyitása: Kattintson az "Érvényesítő" fülre
- IBAN megadása: Írja vagy illessze be az IBAN-t a beviteli mezőbe
- Szóközök és formázás automatikusan kezelve lesznek
- Az eszköz fogadja a formázott (szóközökkel) és formázatlan IBAN-okat egyaránt
- Érvényesítési eredmények megtekintése: Az eszköz automatikusan érvényesíti az IBAN-t gépelés közben
- Részletek ellenőrzése: Érvényes IBAN-oknál a komponensek bontása megjelenik
- Hibák áttekintése: Érvénytelen IBAN-oknál specifikus hibaüzenetek segítenek a probléma azonosításában
Felhasználási esetek és valós alkalmazások
Szoftverfejlesztés és tesztelés
API tesztelés: Fizetési integrációs tesztek készítésekor olyan IBAN-okra van szükség, amelyek átmennek az ellenőrzésen, de nem indítanak valós tranzakciókat. Generáljon egy köteg tesztelési IBAN-t az automatizált tesztsorozatához, biztosítva, hogy a hibakezelés helyesen működjön a különböző országformátumok esetében.
Űrlap érvényesítés: Teszteli a fizetési folyamatot? Használja az ellenőrzőt annak igazolására, hogy az előtéri érvényesítés megfelel a háttéri követelményeknek. Gyakori probléma, hogy olyan IBAN-formátumot fogadnak el, amelyet a fizetési szolgáltató később elutasít - ennek fejlesztés közbeni észlelése megkíméli az ügyfeleket a frusztrációtól.
Szélsőséges esetek tesztelése: A legtöbb fejlesztő egy-két országformátummal tesztel. Mi történik, amikor egy svájci ügyfél 21 karakteres IBAN-ja használja a rendszert, amelyet német 22 karakteres IBAN-okra terveztek? Generáljon különböző országformátumokat a mezőhosszok és érvényesítési logika terheléses teszteléséhez.
Regressziós tesztelés: Az IBAN-érvényesítő könyvtár frissítése után futtassa a generált tesztIBAN-okat a régi és az új verzión. Bármilyen eltérés olyan változásokra utal, amelyek hatással lehetnek az éles rendszerre.
Pénzügyi alkalmazásfejlesztés
Fizetési rendszerek: Nemzetközi átutalási funkció készítésekor olyan helyzetekbe ütközhet, ahol maga az IBAN-struktúra határozza meg az útválasztási viselkedést. A holland IBAN-ok (amelyek betűket tartalmaznak a BBAN-ban) tesztelése olyan hibákat tár fel, amelyeket a teljesen numerikus német IBAN-ok nem mutatnak ki.
Banki szoftver: Az IBAN-ok elemzése bankkódok és fiókidentifikátorok kinyerése céljából országspecifikus logikát igényel. Generáljon IBAN-okat minden támogatott országból annak ellenőrzéséhez, hogy az elemző algoritmus helyesen azonosítja ezeket az összetevőket.
Megfelelőség-ellenőrzés: A pénzügyi szabályozások gyakran megkövetelik az IBAN-ok ellenőrzését a feldolgozás előtt. Használja ezt az eszközt tesztesetek létrehozásához, amelyek bizonyítják, hogy a rendszer elutasítja az érvénytelen ellenőrző számjegyeket és helytelen formátumokat - elengedhetetlen a naplózási nyomvonalakhoz.
Oktatási és dokumentációs célok
Banki szabványok oktatása: Az nemzetközi fizetési rendszereket tanuló diákok hasznát vehetik a valós IBAN-struktúrák megtekintésének. Generáljon példákat több országból, hogy bemutassa, hogyan működik a szabványosítás a különböző banki rendszerekben.
API dokumentáció: Ahelyett, hogy potenciálisan valós IBAN-okat használna a műszaki dokumentációban, generáljon tiszta példákat. A dokumentáció olyan mondatokkal, mint "Használja a DE89370400440532013000 IBAN-t tesztelésre", azonnal jelzi a fejlesztőknek, hogy ezek biztonságos tesztelési értékek.
Adatműveletek
Adatbázis feltöltése: A fejlesztési és átmeneti környezeteknek valósághű tesztadatokra van szükségük. Generáljon változatos IBAN-okat az adatbázis reprezentatív nemzetközi ügyfélprofilokkal történő feltöltéséhez adatvédelmi aggályok nélkül.
Adatok anonimizálása: Éles rendszerből átmeneti rendszerbe történő migrálásnál cserélje le a valós IBAN-okat generáltakra, amelyek megőrzik a formátum érvényességét a teszteléshez, miközben eltávolítják az érzékeny információkat. Kritikus fontosságú a GDPR-megfelelőséghez a fejlesztési környezetekben.
Alternatívák és azok használata
Különböző eszközök különböző igényeknek felelnek meg. Íme egy őszinte összehasonlítás:
Kereskedelmi Banki API-k (pl. Stripe, Adyen)
Legjobbak éles környezetben a valós banki nyilvántartások elleni ellenőrzéshez. Ezek a szolgáltatások ellenőrzik, hogy egy IBAN egy tényleges aktív számlának felel-e meg, nem csak azt, hogy formailag helyes-e.
Akkor használja, ha: Ellenőrizni szeretné, hogy egy IBAN létezik és fogadhat-e fizetéseket, nem csak azt, hogy szerkezetileg érvényes.
Korlátozások: Pénzbe kerül (jellemzően API-hívásonkénti árazás), integrációs munkát igényel, és még mindig szüksége van tesztelési IBAN-okra a fejlesztés során - és éppen ebben segít ez az eszköz.
Programozási Nyelvi Könyvtárak (ibantools, iban.js, python-stdnum)
Legjobbak a beágyazott ellenőrzéshez az alkalmazás kódjában. Könyvtárak mint a ibantools JavaScripthez vagy a python-stdnum Pythonhoz mind ellenőrzési, mind generálási funkciókat biztosítanak.
Akkor használja, ha: Programozott hozzáférésre van szüksége a build vagy futásidejű ellenőrzés részeként.
Korlátozások: Fejlesztési erőfeszítést igényel az integráláshoz, és még mindig szüksége van egy gyors módra konkrét IBAN-ok manuális teszteléséhez hibakeresés közben. Ebben egy webes eszköz gyorsabb, mint tesztszkriptek írása.
SWIFT IBAN Nyilvántartás
A SWIFT által fenntartott hivatalos IBAN nyilvántartás felsorolja az összes ország formátumát és érvényesítési szabályait. Ez a hiteles forrás.
Akkor használja, ha: IBAN támogatást épít teljesen nulláról, és szüksége van a hivatalos specifikációkra.
Korlátozások: Ez dokumentáció, nem eszköz. Még mindig létre kell hoznia vagy találnia kell valamit, ami ténylegesen generálja és ellenőrzi az IBAN-okat ezen specifikációk alapján.
Hivatalos Banki Ellenőrzők
Sok nemzeti bank biztosít országspecifikus ellenőrzőket (pl. Bundesbank a német IBAN-okhoz). Ezek rendkívül pontosak a saját országukban.
Akkor használja, ha: Csak egy országban dolgozik, és szüksége van bank szintű érvényesítési részletekre.
Korlátozások: Egyetlen országra fókuszálnak. Ha nemzetközi fizetési rendszereket épít, minden országhoz külön ellenőrzőkre lenne szüksége.
Mikor van értelme ennek az eszköznek
Akkor használja ezt az eszközt, amikor gyors, beállítás nélküli tesztelésre van szüksége API integráció nélkül. Különösen hasznos fejlesztés és hibakeresés során, amikor azonnal érvényes tesztadatokat kell generálnia vagy ellenőriznie kell, miért nem megy át egy adott IBAN az ellenőrzésen. Nem helyettesíti a éles környezetben használt ellenőrző könyvtárakat a kódbázisában, de gyorsabb, mint eldobható tesztszkriptek írása.
Gyakran Ismételt Kérdések
Mi az IBAN és miért fontos?
Az IBAN a Nemzetközi Bankszámlaszám rövidítése - egy szabványosított formátum, amelyet a Nemzetközi Szabványügyi Szervezet (ISO) hozott létre a határokon átnyúló fizetések hibáinak csökkentése érdekében. Az IBAN-ok előtt minden ország saját bankszámlaszám-formátumot használt, ami gyakori hibákhoz és sikertelen átutalásokhoz vezetett. Az IBAN-ok országkódokat és ellenőrző számjegyeket adnak hozzá a hibák elfogásához, mielőtt a pénz mozogna.
Mennyire pontosak a generált IBAN-ok?
A generált IBAN-ok matematikailag helyesek és átmennek a MOD 97 érvényesítési algoritmusán, amelyet az ISO 13616 definiál. Követik az adott ország specifikus szerkezetét. Azonban véletlenszerűen lettek létrehozva és nem felelnek meg valós bankszámláknak - ez a lényeg. Éppen azért biztonságosak tesztelésre, mert nem érnek véletlenül valós számlát.
Mely országokat támogatja ez az eszköz?
Jelenleg 10 európai országot: Németország, Egyesült Királyság, Franciaország, Spanyolország, Olaszország, Hollandia, Svájc, Ausztria, Belgium és Lengyelország. Ezek fedik le a leggyakoribb IBAN formátumokat, amelyekkel az európai fizetési rendszerekben találkozhat. Másik országra van szüksége? A visszajelzésiűrlap a legjobb módja a kiegészítések kérésének.
Használhatom a generált IBAN-okat tényleges pénzátutalásokhoz?
Semmiképpen sem. Ezek csak tesztelési IBAN-ok. Átmennek a formátum ellenőrzésén, de nem kapcsolódnak valós bankszámlákhoz. Használatuk tényleges tranzakciókhoz fizetési hibákhoz vagy elutasításokhoz vezet. Kizárólag fejlesztési, tesztelési és oktatási célokra valók.
Hogyan működik valójában az IBAN érvényesítés?
Az ellenőrző négy lépésben fut:
- Országkód: Elismert kétbetűs kód?
- Hossz: Megfelel az adott ország által megkövetelt hossznak? (Németország = 22, UK = 22, Franciaország = 27, stb.)
- Karaktertípusok: A betűk és számok a helyes pozícióban vannak az ország formátuma alapján?
- MOD 97 ellenőrzés: A matematikai ellenőrző összeg 1-et ad az ISO 7064 szerint?
Ha bármely ellenőrzés sikertelen, egy specifikus hibaüzenetet fog látni, amely elmagyarázza, mi a probléma.
Számítanak a szóközök az IBAN-okban?
Nem az érvényesítésnél. Az IBAN-ok általában szóközökkel (négyesével) jelennek meg az olvashatóság érdekében, de a szóközök kozmetikai jellegűek. DE89 3704 0044 0532 0130 00 és DE89370400440532013000 azonosak érvényesítési szempontból. Az eszköz mindkét formátumot automatikusan kezeli.
Elküldi vagy tárolja valahol az adataimat?
Nem. Minden a böngészőben fut JavaScript segítségével. Egyetlen IBAN-adat sem hagyja el a gépét, nem érinti a szervert, és sehol sem tárolódik. Ellenőrizheti ezt a böngésző fejlesztői eszközeinek megnyitásával és a hálózati fül figyelésével - nem lát kéréseket IBAN generálásakor vagy érvényesítésekor.
Mi a teendő, ha egy nem listázott ország IBAN-ját kell érvényesíteni?
Az eszköz jelenleg csak a legördülő menüben szereplő 10 országot támogatja. Újabbak hozzáadása megköveteli minden ország specifikus formátumszabályainak megvalósítását. Ha Norvégia, Svédország vagy más országok érvényesítésére van szüksége, tudassa velünk a visszajelzésiűrlapon - a kiegészítéseket a kereslet alapján rangsoroljuk.
Miért bukhat el egy helyesen formázott IBAN az érvényesítésnél?
Leggyakoribb okok:
- Helytelen ellenőrző számjegyek: Akár egyetlen rossz számjegy is megbuktatja a MOD 97 tesztet
- Gépelési hibák: Felcserélt karakterek vagy rossz számjegyek bárhol az IBAN-ban
- Rossz hossz: Hiányzó vagy extra karakterek az adott országnál
- Érvénytelen karakterek: Betűk ott, ahol csak számok engedélyezettek, vagy fordítva
- Nem támogatott ország: A országkód létezik, de nincs a támogatott listánkon
A hibaüzenet pontosan megmondja, mi a probléma.
Hogyan jelenthetek hibákat vagy kérhetek funkciókat?
Használja az oldal alján lévő visszajelzési űrlapot. A specifikus hibajelentések példa IBAN-okkal a leghasznosabbak. A funkcióigényléseknél a használati eset elmagyarázása segít a prioritások felállításában.
Mi a különbség az IBAN és a SWIFT/BIC kódok között?
Az IBAN-ok specifikus bankszámlákat azonosítanak, míg a SWIFT/BIC kódok bankokat vagy banki fiókokat. Gondoljon úgy, hogy a SWIFT kód megmondja, melyik bank, az IBAN pedig, hogy melyik számla azon a banknál. Nemzetközi átutalásoknál gyakran mindkettőre szükség van - a SWIFT kód irányít a helyes bankhoz, az IBAN pedig a specifikus számlához.
Érvényesíthetek egy IBAN-t az ország ismerete nélkül?
Igen, mert minden IBAN első két betűje az országkód. Az ellenőrző olvassa ezeket az első két karaktert, hogy meghatározza, melyik ország formátumát kell alkalmazni. Ezért történik az országfelismerés automatikusan IBAN beillesztésekor - nem kell manuálisan kiválasztani az országot.
Léteznek IBAN formátumok Európán kívüli országokban?
Igen, de kevesebb. Bár az IBAN Európában keletkezett és ott a legelterjedtebb, országok mint Szaúd-Arábia, UAE, Brazília és mások is elfogadták. Ez az eszköz jelenleg az európai formátumokra összpontosít, mivel azok jelentik a határokon átnyúló tranzakciók túlnyomó többségét. A SWIFT IBAN Nyilvántartás tartalmazza a teljes listát.
Hogyan kell olvasni és dekódolni egy IBAN-t
Valaha is ránézett egy DE89370400440532013000 típusú IBAN-ra és elgondolkodott, hogy mit jelent az egyes részlete? Íme, hogyan lehet dekódolni bármely IBAN-t:
1. lépés: Országkód (első 2 karakter)
DE= Németország- Megmutatja, hogy melyik ország formázási szabályai érvényesek
2. lépés: Ellenőrző számjegyek (következő 2 karakter)
89= számított ellenőrzőösszeg- Ezek a számjegyek ellenőrzik, hogy az IBAN teljes egészében érvényes a MOD 97 módszerrel
3. lépés: Bankkód (országonként változó)
37040044a német IBAN-okban = 8 számjegyű bankazonosító- Különböző országok különböző hosszúságot használnak (az Egyesült Királyság 4 karaktert használ)
4. lépés: Bankszámlaszám (fennmaradó karakterek)
0532013000= a bank tényleges bankszámlaszáma- A hossz és formátum az országtól függ
Az egyes országok eltérően rendezik a BBAN részt. Az Egyesült Királyság IBAN-jai tartalmaznak egy 6 számjegyű sort kódot (fiókidentifikátort) a bankkód és a bankszámlaszám között. A francia IBAN-ok kombinálják a bankkódot, fiókkódot és bankszámlaszámot egy ellenőrző kulccsal. Ezen különbségek megértése kulcsfontosságú az IBAN-ok programszerű feldolgozásakor.
Gyakori IBAN érvényesítési hibák és javításuk
Az IBAN érvényesítés során ezekkel a problémákkal találkozhat ismételten:
"Érvénytelen ellenőrző számjegyek" hiba
Ok: A MOD 97 számítás nem egyenlő 1-gyel. Vagy az ellenőrző számjegyek hibásak, vagy máshol hiba van az IBAN-ban.
Javítás: Futtassa újra az érvényesítést a gépelési hibák kijavítása után. Egyetlen rossz karakter is az IBAN-ban ellenőrző számjegy hibát okoz. Ez szándékos - adatbeviteli hibák kiszűrésére szolgál.
"Helytelen hosszúság az adott országnál" hiba
Ok: Az IBAN túl sok vagy túl kevés karaktert tartalmaz az adott országkódhoz képest.
Javítás: Ellenőrizze, hogy az országkód megfelel-e a kívánt országnak. A német IBAN-ok mindig 22 karakteresek, a brit IBAN-ok 22, a franciák 27 karakteresek. A hiányzó vagy extra karakterek rövidítésre vagy helytelen adatokra utalnak.
"Érvénytelen karakterek" hiba
Ok: Olyan karakterek szerepelnek, amelyek nem megengedettek az adott pozícióban - például betűk ott, ahol csak számok lehetnek.
Javítás: Ellenőrizze az országspecifikus formátumot. Például a német IBAN-ok az országkód és ellenőrző számjegyek után teljesen numerikusak, míg a brit IBAN-ok 4 betűt tartalmaznak a bankkódnál.
"Nem támogatott országkód" hiba
Ok: Az első két betű nem elismert országkód, vagy nem támogatott az Ön érvényesítője által.
Javítás: Ellenőrizze az országkód helyesírását. Gyakori hibák közé tartozik a UK használata GB helyett, vagy EN használata az országkódok helyett. Ez az eszköz 10 európai országot támogat; éles rendszerű érvényesítőknek támogatniuk kell az összes SWIFT nyilvántartási országot.
Formátum vs. Számla létezése
Fontos megkülönböztetés: az érvényesítés csak azt igazolja, hogy az IBAN szerkezetileg helyes, nem azt, hogy a számla valóban létezik. Egy IBAN átmehet minden ellenőrzésen, de mégsem tartozhat valós bankszámlához. Éles fizetési rendszereknél a formátum ellenőrzésén túl további igazolásra van szükség.
Technikai megvalósítás fejlesztőknek
Ha IBAN támogatást épít be az alkalmazásába, itt vannak a több nyelven kipróbált kódpéldák. Ezek a megvalósítások kezelik azokat a speciális eseteket, amelyekkel éles üzemben találkozhat:
IBAN Validáció
1function validateIban(iban) {
2 // Szóközök eltávolítása és nagybetűssé alakítás
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // Alapvető formátum ellenőrzése
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // Átrendezés és betűk számokká alakítása
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 // Mod 97 kiszámítása
20 let remainder = 0;
21 for (let i = 0; i < converted.length; i++) {
22 remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
23 }
24
25 return remainder === 1;
26}
27
28// Példa használat
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 (érvénytelen ellenőrző számjegyek)
321def validate_iban(iban):
2 # Szóközök eltávolítása és nagybetűssé alakítás
3 iban = iban.replace(' ', '').upper()
4
5 # Alapvető formátum ellenőrzése
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # Első 4 karakter áthelyezése a végére
10 rearranged = iban[4:] + iban[:4]
11
12 # Betűk átalakítása számokká (A=10, B=11, ..., Z=35)
13 converted = ''
14 for char in rearranged:
15 if char.isalpha():
16 converted += str(ord(char) - 55)
17 else:
18 converted += char
19
20 # Ellenőrzés, hogy mod 97 egyenlő-e 1-gyel
21 return int(converted) % 97 == 1
22
23# Példa használat
24print(validate_iban('DE89 3704 0044 0532 0130 00')) # True
25print(validate_iban('GB29 NWBK 6016 1331 9268 19')) # True
26print(validate_iban('DE89 3704 0044 0532 0130 01')) # False (érvénytelen ellenőrző számjegyek)
271public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Szóközök eltávolítása és nagybetűssé alakítás
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Alapvető formátum ellenőrzése
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // Első 4 karakter áthelyezése a végére
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Betűk átalakítása számokká
15 StringBuilder converted = new StringBuilder();
16 for (char c : rearranged.toCharArray()) {
17 if (Character.isLetter(c)) {
18 converted.append(c - 'A' + 10);
19 } else {
20 converted.append(c);
21 }
22 }
23
24 // Mod 97 kiszámítása
25 BigInteger numeric = new BigInteger(converted.toString());
26 return numeric.mod(BigInteger.valueOf(97)).intValue() == 1;
27 }
28
29 public static void main(String[] args) {
30 System.out.println(validateIban("DE89 3704 0044 0532 0130 00")); // true
31 System.out.println(validateIban("GB29 NWBK 6016 1331 9268 19")); // true
32 System.out.println(validateIban("DE89 3704 0044 0532 0130 01")); // false
33 }
34}
35IBAN Generálás
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 // További országok hozzáadása szükség szerint
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Országkód ${countryCode} nem támogatott`);
11 }
12
13 // Véletlenszerű BBAN generálása az ország mintája alapján
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 // Numerikus karakterek generálása
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // Alfabetikus karakterek generálása
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 // Alfanumerikus karakterek generálása
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 // Ellenőrző számjegyek kiszámítása
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // Kezdeti IBAN létrehozása '00' ellenőrző számjegyekkel
55 const initialIban = countryCode + '00' + bban;
56
57 // Átrendezés és betűk számokká alakítása
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 // 98 mínusz mod 97 kiszámítása
67 let remainder = 0;
68 for (let i = 0; i < converted.length; i++) {
69 remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
70 }
71
72 const checkDigits = (98 - remainder).toString().padStart(2, '0');
73 return checkDigits;
74}
75
76// Példa használat
77console.log(generateIban('DE')); // Érvényes német IBAN generálása
78console.log(generateIban('GB')); // Érvényes UK IBAN generálása
791import random
2import string
3
4def generate_iban(country_code):
5 country_formats = {
6 'DE': {'length': 22, 'bban_format': '8n10n'},
7 'GB': {'length': 22, 'bban_format': '4a6n8n'},
8 'FR': {'length': 27, 'bban_format': '5n5n11c2n'}
9 # További országok hozzáadása szükség szerint
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Országkód {country_code} nem támogatott")
14
15 # Véletlenszerű BBAN generálása az ország formátuma alapján
16 bban = ''
17 format_str = country_formats[country_code]['bban_format']
18 i = 0
19
20 while i < len(format_str):
21 count = int(''.join(c for c in format_str[i+1:] if c.isdigit()))
22 type_char = format_str[i]
23
24 if type_char == 'n': # Numerikus
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # Alfabetikus
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # Alfanumerikus
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Ellenőrző számjegyek kiszámítása
34 check_digits = calculate_check_digits(country_code, bban)
35
36 return country_code + check_digits + bban
37
38def calculate_check_digits(country_code, bban):
39 # Ellenőrző számjegyek kiszámításához szükséges karakterlánc
40 check_string = bban + country_code + '00'
41
42 # Betűk átalakítása számokká (A=10, B=11, ..., Z=35)
43 numeric = ''
44 for char in check_string:
45 if char.isalpha():
46 numeric += str(ord(char.upper()) - 55)
47 else:
48 numeric += char
49
50 # 98 mínusz mod 97 kiszámítása
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Példa használat
57print(generate_iban('DE')) # Érvényes német IBAN generálása
58print(generate_iban('GB')) # Érvényes UK IBAN generálása
59Hivatkozások és további olvasmányok
- ISO 13616-1:2007 - Hivatalos IBAN struktúra specifikáció
- SWIFT IBAN Nyilvántartás - Hiteles forrás országspecifikus IBAN formátumokhoz
- ISO 7064:2003 - MOD 97 ellenőrző számjegy algoritmus specifikáció
- Európai Fizetési Tanács - SEPA - Egységes Euró Fizetési Térség dokumentáció
- Európai Központi Bank - Fizetési Rendszerek - Európai banki integrációs szabványok
- Nemzetközi Fizetések Bankja - Fizetési Rendszerek - Nemzetközi fizetési rendszer szabványok
IBAN Tesztelés Megkezdése
Tesztadatokra van szüksége a fizetési rendszeréhez? Generáljon érvényes IBAN-t bármely támogatott országból, vagy illesszen be egy meglévő IBAN-t a szerkezete ellenőrzéséhez. Az eszköz teljes egészében a böngészőjében fut - nincsenek regisztrációk, API kulcsok, semmilyen adat nem kerül elküldésre a szerverekre.
Gyors tipp: Generáljon IBAN-okat több országból az élhatárok teszteléséhez. A valós fizetési rendszerek sokféle formátumot kezelnek, és csak egy ország formátumával történő tesztelés gyakori forrása a gyártási hibáknak.