Kizalishaji na Kithibitishi cha IBAN - Data ya Majaribio ya Benki
Zalia IBANs halali za majaribio au thibitisha zile zilizopo mara moja. Inasaidia nchi 10 za Ulaya kwa uthibitishaji wa MOD 97. Kamili kwa majaribio ya programu ya fedha na maendeleo.
Kijenzi na Kithibitishi cha IBAN
Nyaraka
Chombo cha Kuzalisha na Kuthibitisha IBAN
Kazi ya Zana Hii
Ukijaribisha programu ya fedha bila data ya akaunti ya benki halisi? Utahitaji umbizo la IBAN halali ambalo litapitisha vipimo vya uhakiki. Zana hii inazalisha IBANs za nasibu ambazo zifuata umbizo la kitaifa na kuahakiki zile zilizopo kwa kutumia kiwango cha ISO 13616.
Hapa ndipo inapatikana tatizo la kimahiri: wakati wa kujenga mifumo ya malipo au programu za benki, unahitaji data ya jaribio ambayo haitashindwa uhakiki lakini isiojumlisha nambari za akaunti halisi. Kosa la kawaida ambalo wasanidi wanakifanya ni kuunda IBANs "bandia" ambazo hazipitishi kipimo cha algorith ya MOD 97, jambo ambalo husababisha majaribio kushindwa kwa sababu zisizo sahihi.
Zana hii inashughulikia kazi mbili kuu:
- Jenereta: Inazalisha IBANs zenye muundo sahihi kwa nchi yoyote inayotumika. Kila nambari iliyozalishwa inapitisha vipimo vya uhakiki sawa vya mfumo wako wa uzalishaji.
- Kiverifikesheni: Huunganisha muundo wa IBAN, tarakimu za uhakiki, na umbizo la kitaifa. Muhimu sana kwa kuchunguza sababu ya kukataa IBAN.
IBANs (Nambari za Akaunti ya Benki ya Kimataifa) zinaweka kiwango cha jinsi banki zinavyotambulisha akaunti zao vizani. Kila moja ina msimbo wa nchi, tarakimu mbili za uhakiki zitakazokanushwa kwa algorith ya MOD 97, na Nambari ya Msingi ya Akaunti ya Benki (BBAN) ambayo inabadilika kulingana na nchi. Jambo la kugusa ni kwamba Ujerumani inatumia vibambo 22 wakati Ufaransa unahitaji 27, na muundo wa ndani tofauti kabisa.
Jinsi IBAN Zinavyofanya
Muundo na Umbizo la IBAN
IBAN zinaweza kuwa na vibambo 34 vya alphanumerical, ingawa nchi za Ulaya zina 22-27 kwa kawaida. Kila IBAN inatagwa katika sehemu tatu:
- Msimbo wa Nchi: Herufi mbili kutoka kwa ISO 3166-1 alpha-2 viwango (DE kwa Ujerumani, GB kwa Ufalme wa Muungano)
- Tarakimu za Ukaguzi: Tarakimu mbili zilizohesabiwa ambazo huunganisha IBAN kwa kutumia MOD 97
- Nambari ya Msingi ya Akaunti ya Benki (BBAN): Sehemu inayohusiana na nchi ambayo ina:
- Kitambulishi cha benki (wakati mwingine kinaitwa nambari ya msaada au msimbo wa benki)
- Kitambulishi cha tawi (Ufalme wa Muungano huita hii msimbo wa aina)
- Nambari ya akaunti
- Wakati mwingine tarakimu za ziada za kitaifa za ukaguzi
Chukua IBAN ya Ujerumani kama mfano. Muundo DE2!n8!n10!n maana yake ni:
DE= msimbo wa nchi2!n= tarakimu mbili za nambari za ukaguzi8!n= msimbo wa benki wa tarakimu 8 (Bankleitzahl)10!n= nambari ya akaunti ya tarakimu 10 (Kontonummer)
Jambo ambalo linashangaza watu ni jinsi muundo unavyotofautiana kati ya nchi:
| Nchi | Urefu | Muundo | Mfano |
|---|---|---|---|
| Ujerumani (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
| Ufalme wa Muungano (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
| Ufaransa (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
| Hispania (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
| Italia (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
Algoritmu ya Ukaguzi wa IBAN
Ukaguzi wa IBAN unategemea algoritmu ya MOD 97 iliyofafanuliwa katika ISO 7064. Hivi ndivyo hufanyika wakati wa ukaguzi wa IBAN:
- Sogeza herufi nne za kwanza (msimbo wa nchi na tarakimu za ukaguzi) mwishoni
- Badilisha kila herufi na nambari: A=10, B=11, hadi Z=35
- Hesabu modulo 97 ya mfululizo wa nambari uliobakia
- IBAN halali mara zote hutoa sehemu ya kubaki ya 1 kabisa
Kwa kimasibu:
Kwa nini MOD 97 maalum? Inashika karibu makosa yote ya kawaida: makosa ya tarakimu moja, tarakimu zilizobadilishwa, hata makosa mengi ya kuandika ambayo yanahusiana na vibambo sawa. Kwa vitendo, nimegundua kuwa inashika karibu 99.9% ya makosa ya kuingiza data kwa makusudi, ambayo ndiyo sababu ilikuwa viwango cha kimataifa.
Jambo la kushangaza la kujua: wakati wa kutengeneza IBAN, unahahadisha tarakimu za ukaguzi kwa kuanza na "00", kufanya algoritmu, kisha kutumia 98 chini ya sehemu ya kubaki. Hii inahakikisha kuwa IBAN ya mwisho itakaguliwa vizuri.
Vipengele vya Chombo
Kuzalisha IBAN
Zalia IBAN za jaribio ambazo zinapitisha uhakiki bila kutumia nambari za akaunti halisi:
- Kuchagua Nchi: Inasaidia nchi 10 kuu za Ulaya (Ujerumani, Uingereza, Ufaransa, Hispania, Italia, Uholanzi, Uswisi, Austria, Ubelgiji, Polandi)
- Kulingana na Muundo: Kila IBAN iliyozalishwa inakubaliana na muundo rasmi wa nchi na kupitisha uhakiki wa MOD 97
- Kuzalisha kwa Kubofya Mara Moja: Hakuna usanidi unahitajika—tu chagua nchi na kuzalisha
- Kunakili kwenye Ubao wa Kunakili: Kubofya mara moja kunakili IBAN kamili kwa kulenga katika majaribio yako
- Uchoraji wa Kimaelezo: Onyesho lenye rangi zinaonyesha msimbo wa nchi, tarakimu za uhakiki, na maelezo ya benki kwa kubainisha
Mchakato wa kuzalisha:
- Kuchagua kielezo cha muundo maalum wa nchi
- Kujaza tarakimu na herufi za bahati kwenye sehemu ya BBAN
- Kuhesabu tarakimu za uhakiki kwa kutumia MOD 97
- Kuunganisha na kuhakiki IBAN kamili
Kidokezo cha kitaalam: Unapotunza hifadhidata za jaribio, zalia IBAN kutoka nchi mbalimbali ili kujaribu hali za mpaka wa kati. Mifumo ya malipo halisi mara nyingi ina hali maalum za nchi maalum.
Uhakiki wa IBAN
Hakiki muundo wa IBAN na gundua matatizo ya umbizo kabla ya kuifikia uzalishaji:
- Uhakiki wa Umbizo: Hubadilisha mahitaji ya urefu na muundo maalum wa nchi
- Uhakiki wa MOD 97: Hutendea algoritmu ya kuhakiki ya tarakimu kamili
- Uchoraji wa Sehemu: Unaonyesha kwa undani jinsi IBAN inavyogawanywa kwenye msimbo wa nchi, tarakimu za uhakiki, msimbo wa benki, na nambari ya akaunti
- Ujumbe wa Kosa Maalum: Badala ya ujumbe wa jumla ya "batili", utaona kile ambacho hakipo sawa kabisa
- Umbizo Otomatiki: Husaidia IBAN zenye au zisizo na nafasi—umbizo hutokea kiotomatiki
Uhakiki wa vipimo hutendeka kwa mpangilio:
- Utambuzi wa msimbo wa nchi (uko unakubaliwa?)
- Uhakiki wa urefu (idadi ya sahihi ya herufi kwa hiyo nchi?)
- Uhakiki wa aina ya herufi (nambari ambapo zinahitajika, herufi ambapo zinaruhusiwa)
- Mahesabu ya tarakimu za uhakiki ya MOD 97 (je, hesabu zinafanya kazi?)
Hali ya kawaida: API yako inakubali IBAN kutoka pembejeo ya mtumiaji yenye nafasi zisizo na mwendelezo. Tumia kivatilizi ili kuunganisha kabla ya kuchakata—hutoa nafasi kiotomatiki na kuonyesha umbizo sahihi.
Mwongozo Hatua kwa Hatua
Kutengeneza IBAN
- Fungua Kichupo cha Jenereta: Bonyeza kichupo cha "Jenereta" (kilichochaguliwa kwa mchakato chaguo-msingi)
- Chagua Nchi: Chagua nchi unayoitaka kutoka kwenye menyu ya kuteua
- Tengeneza IBAN: Bonyeza kitufe cha "Tengeneza IBAN"
- Angalia Matokeo: IBAN iliyotungwa itaonekana chini pamoja na uchoraji wa vipengele vyake
- Nakili kwenye Ubao wa Kunakili: Bonyeza kitufe cha "Nakili kwenye ubao wa kunakili" ili kunakili IBAN kwa matumizi mengine
Kuhalalisha IBAN
- Fungua Kichupo cha Muhakiki: Bonyeza kichupo cha "Muhakiki"
- Weka IBAN: Andika au unamirie IBAN kwenye sehemu ya kuingiza
- Nafasi na umbizo zitashughulikiwa kiotomatiki
- Zana inakubali IBAN zilizofungwa (zenye nafasi) na zisizo fungwa
- Angalia Matokeo ya Uhalalishaji: Zana itahalalisha IBAN kiotomatiki wakati wa kuandika
- Kagua Maelezo: Kwa IBAN halali, uchoraji wa vipengele utaonyeshwa
- Kagua Makosa Yoyote: Kwa IBAN zisizo halali, ujumbe wa makosa utasaidia kubainisha tatizo
Matumizi na Applications Dunia Halisi
Maendeleo ya Programu na Jaribio
Jaribio la API: Unapobuild jaribio la malipo ya uunganishaji, unahitaji IBANs ambazo zinapitisha uhakiki lakini hazitachochea miamala halisi. Zieneze kundi la IBANs za jaribio kwa mfumo wako wa jaribio wa kiotomatiki, kuhakikisha uhakiki wako wa makosa unafanya kazi vizuri kwa mifumo tofauti ya nchi.
Uhakiki wa Fomu: Unajaribu mtiririko wa malipo? Tumia kidhihirisha ili kuhakikisha uhakiki wa mbele unakidhi mahitaji ya nyuma. Tatizo la kawaida ni kukubali umbizo la IBAN ambalo mchakuzi wa malipo atakachirudi baadaye—kumkamata hili wakati wa maendeleo kunakuokoa maudhui ya mteja.
Jaribio la Hali ya Pekee: Waendelezaji wengi hujaribu na umbizo moja au mbili za nchi. Kitatendeka nini pale mteja wa Uswisi mwenye IBAN ya vibambo 21 anatumia mfumo wako uloundwa kwa IBANs za Ujerumani za vibambo 22? Zieneze mifumo tofauti ya nchi ili kuchunguza vipimo vya sehemu na mantiki ya uhakiki.
Jaribio la Kurudi Nyuma: Baada ya kusasisha kitabu chako cha uhakiki wa IBAN, eneza IBANs za jaribio kupitia toleo la zamani na la sasa. Tofauti zozote zinaonyesha mabadiliko ya kuvunja ambayo yanaweza kuathiri uzalishaji.
Maendeleo ya Programu ya Fedha
Mifumo ya Malipo: Unapobuild utendaji wa uhamisho wa kimataifa, utakutana na hali ambapo muundo wa IBAN mwenyewe unabainisha tabia ya usafirishaji. IBANs za Uholanzi (ambazo zinahusisha herufi katika BBAN) zinachunguza matatizo ambayo IBANs za Ujerumani zenye namba zote hazitaweza kubaini.
Programu ya Benki: Kuchambua IBANs ili kuchukua misimbo ya benki na vitambulisho vya tawi inahitaji mantiki ya nchi maalum. Zieneze IBANs kwa kila nchi unayounga ili kuhakikisha algoritmu yako ya kuchambua inabainisha vizuri sehemu hizi.
Uthibitishaji wa Kufuata Sheria: Kanuni za fedha mara nyingi zinahitaji kuhakiki IBANs kabla ya kuchakata. Tumia zana hii kuunda kesi za jaribio zinazoonyesha mfumo wako unakana vibambo vya uhakiki batili na mifumo isiyofaa—muhimu kwa rekodi za ukaguzi.
Elimu na Dokumenteisheni
Elimu ya Viwango vya Benki: Wanafunzi wanaoijifunza kuhusu mifumo ya malipo ya kimataifa wanafaidika kwa kuona muundo halisi wa IBANs. Zieneze mifano kutoka nchi mbalimbali kuonyesha jinsi viwango vinavyofanya kazi katika mifumo tofauti ya benki.
Dokumenteisheni ya API: Badala ya kutumia IBANs ambazo zinaweza kuwa halisi katika nyaraka zako za kiufundi, zieneze mifano safi. Nyaraka zenye maneno kama "Tumia IBAN DE89370400440532013000 kwa jaribio" zinawaelezea waendelezaji haraka kuwa hizi ni thamani salama za jaribio.
Operesheni za Data
Mbegu ya Hifadhidata: Mazingira ya maendeleo na hatua ya kubainisha yanahitaji data ya jaribio ya kweli. Zieneze IBANs tofauti ili kujaza hifadhidata yako na maelezo ya mteja ya kimataifa bila wasiwasi wa faragha.
Faragha ya Data: Unabadilisha kutoka uzalishaji hadi hatua ya kubainisha? Badilisha IBANs halisi kwa zile zilizozalishwa ambazo zinakidhi umbizo la uhakiki kwa ajili ya jaribio wakati wa kuondoa taarifa siri. Muhimu kwa kufuata kanuni za GDPR katika mazingira ya maendeleo.
Mbadala na Wakati wa Kutumia
Zana tofauti zinaofaa mahitaji tofauti. Hapa ni ulinganishi wa kweli:
API za Benki za Kibiashara (k.m., Stripe, Adyen)
Bora kwa uthibitishaji wa uzalishaji dhidi ya daftari za benki halisi. Huduma hizi huthibitisha ikiwa IBAN iko kwenye akaunti amilifu, si tu ikiwa muundo wake ni sahihi.
Tumia wakati: Unahitaji kuthibitisha kuwa IBAN ipo na inaweza kupokea malipo, si tu kuwa muundo wake ni sahihi.
Vizuizi: Inahitaji malipo (kawaida bei kwa kila API-simu), inahitaji kazi ya uunganishaji, na bado unahitaji IBANs za jaribio kwa maendeleo—ambako zana hii inaingia.
Maktaba za Lugha ya Programu (ibantools, iban.js, python-stdnum)
Bora kwa uthibitishaji uliobebwa ndani ya msimbo wa programu yako. Maktaba kama ibantools kwa JavaScript au python-stdnum kwa Python hutoa vitendaji vya uthibitishaji na uundaji.
Tumia wakati: Unahitaji ufikiaji wa programu kama sehemu ya uthibitishaji wa ujenzi au wakati wa kutekeleza.
Vizuizi: Inahitaji juhudi za maendeleo za kuunganisha, na bado unahitaji njia ya haraka ya kujaribu IBANs maalum wakati wa kurekebisha kasoro. Hapo zana ya wavuti ni haraka kuliko kuandika hati za jaribio.
Daftari ya SWIFT ya IBAN
Daftari rasmi ya IBAN iliyoshikamana na SWIFT inaonyesha maudhui ya nchi zote na sheria za uthibitishaji. Ni chanzo cha mamlaka.
Tumia wakati: Unatekeleza usaidizi wa IBAN kutoka mwanzo na unahitaji vielelezo rasmi.
Vizuizi: Ni hati ya maelezo, si zana. Bado utahitaji kujenga au kupata kitu cha kweli kuunda na kuthibitisha IBANs kulingana na vielelezo hivyo.
Wathibitishi Rasmi wa Benki
Benki nyingi za kitaifa hutoa wathibitishi wa nchi maalum (k.m., Bundesbank kwa IBANs za Ujerumani). Hizi ni za usahihi sana kwa nchi yao.
Tumia wakati: Unafanya kazi tu na nchi moja na unahitaji maelezo ya uthibitishaji ya benki.
Vizuizi: Kuzingatia nchi moja. Ikiwa unajengwa mifumo ya malipo ya kimataifa, utahitaji wathibitishi kwa kila nchi.
Wakati Zana Hii Inafaa
Tumia zana hii wakati unahitaji jaribio haraka, bila kuunganisha API. Ni muhimu sana wakati wa maendeleo na kurekebisha kasoro unapohitaji kuunda data ya jaribio halali mara moja au kuthibitisha kwa nini IBAN fulani imeshindwa uthibitishaji. Haitabadilisha maktaba za uthibitishaji wa kiwango cha uzalishaji katika msimbo wako, lakini ni haraka kuliko kuandika hati za jaribio za kuondolewa.
Maswali Yanayoulizwa Sana
Ni IBAN nini na kwa nini ina umuhimu?
IBAN inamaanisha Nambari ya Akaunti ya Benki ya Kimataifa—umbizo la kimataifa lililoundwa na Shirika la Kimataifa la Viwango (ISO) ili kupunguza makosa katika malipo ya kimataifa. Kabla ya IBAN, kila nchi ilikuwa na umbizo lake la mwenyewe wa nambari ya akaunti, jambo ambalo lilisababisha makosa ya mara kwa mara na malipo yasiyofaulu. IBAN huongeza misimbo ya nchi na tarakimu za ukaguzi ili kugundua makosa kabla ya kuhamisha pesa.
Je, IBAN zilizoundwa ni za ukweli kiasi gani?
IBAN zilizoundwa ni za kisayansi na zinavutia algoriti ya uhakiki wa MOD 97 iliyoainishwa katika ISO 13616. Zinafuata miundo ya nchi husika. Hata hivyo, zimeundwa kwa bahati na hazihusiani na akaunti za benki halisi—hilo ndilo lengo. Ni salama kwa ajili ya majaribio kwa sababu hazitawahi kuathiri akaunti halisi.
Zana hii inasaidia nchi zipi?
Kwa sasa nchi 10 za Ulaya: Ujerumani, Uingereza, Ufaransa, Hispania, Italia, Uholanzi, Uswisi, Austria, Ubelgiji, na Polandi. Hizi zinavunia umbizo la IBAN la kawaida unalokutana nalo katika mifumo ya malipo ya Ulaya. Unahitaji nchi nyingine? Fomu ya maoni ndiyo njia bora ya kuomba ziongezwe.
Je, naweza kutumia IBAN zilizoundwa kwa malipo ya kweli?
La sivyo kabisa. Hizi ni IBAN za majaribio tu. Zinakidhi viwango vya umbizo lakini hazihusiani na akaunti za benki halisi. Kutumia zao kwa miamala ya kweli kutasababisha kushindwa kwa malipo. Zimeundwa kwa ajili ya maendeleo, majaribio, na madhumuni ya elimu tu.
IBAN uhakiki unafanyika vipi?
Kiakaguzi kinafanya vipimo vinne kwa mfululizo:
- Misimbo ya nchi: Je, ni misimbo iliyoidhinishwa ya herufi mbili?
- Urefu: Je, unakidhi urefu unaohitajika kwa nchi husika? (Ujerumani = 22, Uingereza = 22, Ufaransa = 27, n.k.)
- Aina ya herufi: Je, herufi na nambari zipo katika nafasi sahihi kulingana na umbizo la nchi?
- Ukaguzi wa MOD 97: Je, jumla ya hesabu ya kimathematiki sawa na 1 kulingana na ISO 7064?
Ikiwa kipimo chochote kinashindwa, utaona ujumbe wa makosa unaoelezea kile kibaya.
Je, nafasi zina umuhimu katika IBAN?
Hapana kwa ajili ya uhakiki. IBAN huonyeshwa kwa nafasi (vikundi vya nne) kwa urahisi, lakini nafasi ni za kuonekana tu. DE89 3704 0044 0532 0130 00 na DE89370400440532013000 ni sawa kabisa kwa ajili ya uhakiki. Zana hii inashughulikia umbizo zote moja kwa moja.
Je, data yangu inatumwa au kuhifadhiwa popote?
Hapana. Kila kitu kinafanyika ndani ya kivinjari kwa kutumia JavaScript. Hakuna data ya IBAN inayotoka kwenye mashine yako, kufikia seva, au kuhifadhiwa popote. Unaweza kuhakikisha hili kwa kufungua zana za wasanidi wa kivinjari na kuangalia sehemu ya mtandao—hutaona ombi lolote unapogenera au kuhakiki IBAN.
Nini ikiwa nahitaji kuhakiki IBAN ya nchi isiyoainishwa?
Zana hii kwa sasa inasaidia nchi 10 zilizopo kwenye menyu ya kuteua. Kuongeza zaidi kunahitaji kutekeleza sheria za umbizo maalum kwa kila nchi. Ikiwa unahitaji uhakiki wa nchi kama Norway, Sweden, au zingine, tujulishe kupitia fomu ya maoni—tunaainisha viongozi kulingana na mahitaji.
Kwa nini IBAN yenye umbizo sahihi inashindwa uhakiki?
Sababu za kawaida zaidi:
- Tarakimu za ukaguzi zisizo sahihi: Hata tarakimu moja kibaya inashindua jaribio la MOD 97
- Makosa ya kubonyeza: Herufi zilizobadilishwa au nambari zisizo sahihi
- Urefu usiofaa: Herufi zilizopungua au ziongezwe kwa nchi husika
- Herufi zisizo sahihi: Herufi ambapo nambari zinahitajika, au kinyume cha hapo
- Nchi isiyotumika: Misimbo ya nchi ipo lakini haijajumuishwa kwenye orodha yetu
Ujumbe wa makosa utakueleza kwa undani kile kibaya.
Namna gani naweza kuripoti matatizo au kuomba vipengele?
Tumia fomu ya maoni iliyopo chini ya ukurasa. Ripoti za matatizo zenye mifano ya IBAN ni muhimu sana. Kwa ombi la vipengele, kuelezea matumizi yako husaidia kubainisha kipi kinafaa kuundwa mbele.
Tofauti gani kati ya IBAN na misimbo ya SWIFT/BIC?
IBAN zinatambulisha akaunti maalum za benki, wakati misimbo ya SWIFT/BIC inatambulisha benki au sehemu za benki. Fikiria kama hivi: misimbo ya SWIFT inakueleza benki gani, IBAN inakueleza akaunti gani katika benki hiyo. Kwa malipo ya kimataifa, mara nyingi unahitaji zote mbili—misimbo ya SWIFT inabainisha benki, na IBAN inabainisha akaunti maalum.
Je, naweza kuhakiki IBAN bila kujua nchi?
Ndiyo, kwa sababu herufi mbili za kwanza za kila IBAN ni misimbo ya nchi. Kiakaguzi kinasoma herufi mbili za kwanza ili kubainisha umbizo la nchi ya kutekeleza. Hii ndiyo sababu ya kubainisha nchi inayofanyika kiotomatiki unapobandika IBAN—hakuna haja ya kuchagua nchi kwa mkono.
Je, kuna IBAN kwa nchi nje ya Ulaya?
Ndiyo, lakini chache. Ingawa IBAN ilikuanza Ulaya na ina ukubwa mkubwa pale, nchi kama Saudi Arabia, UAE, Brazil, na zingine zimeizungushia. Zana hii kwa sasa inalenga umbizo la Ulaya kwa sababu zinawakilisha asilimia kubwa ya miamala ya kimataifa. Daftari la SWIFT IBAN huendesha orodha kamili.
Jinsi ya Kusoma na Kufunua IBAN
Je, umewahi kuangalia IBAN kama DE89370400440532013000 na kujitania maana ya kila sehemu? Hapa utaona jinsi ya kufunua IBAN yoyote:
Hatua 1: Msimbo wa Nchi (Herufi 2 za kwanza)
DE= Ujerumani- Inakujulisha sheria za umbizo zinazotumiwa na nchi hiyo
Hatua 2: Tarakimu za Ukaguzi (Tarakimu 2 zijazo)
89= checksum iliyohesabiwa- Tarakimu hizi huunganisha kuwa IBAN nzima ni halali kwa kutumia MOD 97
Hatua 3: Msimbo wa Benki (Unabadilika kulingana na nchi)
37040044katika IBAN za Ujerumani = kitambulishi cha benki cha tarakimu 8- Nchi tofauti hutumia urefu tofauti (Uingereza hutumia tarakimu 4)
Hatua 4: Nambari ya Akaunti (Tarakimu zilizosalia)
0532013000= nambari ya akaunti halisi ya benki hiyo- Urefu na umbizo hutegemea nchi
Nchi tofauti huandanisha sehemu ya BBAN kwa namna tofauti. IBAN za Uingereza zinajumuisha msimbo wa aina ya 6 (kitambulishi cha tawi) kati ya msimbo wa benki na nambari ya akaunti. IBAN za Ufaransa huunganisha msimbo wa benki, msimbo wa tawi, na nambari ya akaunti pamoja na ufunguo wa ukaguzi. Kuelewa tofauti hizi ni muhimu sana wakati wa kuchambua IBAN kwa njia ya programu.
Makosa ya Kawaida ya Uhalalishaji wa IBAN na Jinsi ya Kurekebisha
Unapotekeleza uhalalishaji wa IBAN, utakutana mara kwa mara na mambo haya:
Kosa la "Tarakimu za Uhakiki Batili"
Sababu: Mahesabu ya MOD 97 hayajalingana na 1. Tarakimu za uhakiki ziko batili, au kuna kosa mahali pengine katika IBAN.
Rekebisha: Endesha uhalalishaji tena baada ya kusahihisha makosa ya kubonyeza. Hata herufi moja batili mahali popote katika IBAN inasababisha kushindwa kwa tarakimu za uhakiki. Hii ni kwa sababu—inashika makosa ya kuingiza data.
Kosa la "Urefu Usio Sahihi kwa Nchi"
Sababu: IBAN ina vibambo vingi sana au vichache sana kwa msimbo wa nchi.
Rekebisha: Hakikisha msimbo wa nchi unafanana na nchi iliyokusudiwa. IBAN za Ujerumani zina vibambo 22 mara zote, IBAN za Uingereza ni 22, za Ufaransa ni 27. Vibambo vinavyokosa au ziada vinaonyesha kupunguza au data batili.
Kosa la "Vibambo Batili"
Sababu: Vibambo visivyopaswa kuwepo mahali husika—kama vile herufi ambapo nambari pekee zinaruhusiwa.
Rekebisha: Kagua umbizo maalum wa nchi. Kwa mfano, IBAN za Ujerumani ni nambari zote baada ya msimbo wa nchi na tarakimu za uhakiki, wakati IBAN za Uingereza zinahusisha herufi 4 kwa msimbo wa benki.
Kosa la "Msimbo wa Nchi Usio Unakubaliwa"
Sababu: Herufi za kwanza mbili si msimbo wa nchi unaojulikana, au haunahalalishwa na uhalalishaji wako.
Rekebisha: Hakikisha tahaja ya msimbo wa nchi. Makosa ya kawaida ni kutumia UK badala ya GB, au EN badala ya misimbo ya nchi. Zana hii inasaidia nchi 10 za Ulaya; wahalalishaji wa uzalishaji wanapaswa kusaidia nchi zote za daftari la SWIFT.
Umbizo dhidi ya Uwepo wa Akaunti
Tofauti muhimu: uhalalishaji unathibitisha kuwa IBAN ina umbizo sahihi, si kuwa akaunti ipo. IBAN inaweza kupitia vipimo vyote vya uhalalishaji lakini bado isihusiani na akaunti ya benki halisi. Kwa mifumo ya malipo ya uzalishaji, unahitaji uthibitishaji wa ziada zaidi ya uhalalishaji wa umbizo.
Utekelezaji wa Kiufundi kwa Wasanidi
Ikiwa unajengwa usaidizi wa IBAN kwenye programu yako, hapa kuna mifano ya msimbo iliyojaribikiwa katika lugha mbalimbali. Hizi utekelezaji zinashughulikia hali zinazopatikana katika uzalishaji:
Uthibitishaji wa IBAN
1function validateIban(iban) {
2 // Ondoa nafasi na ubadilishe herufi kubwa
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // Kagua umbizo la msingi
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // Panga upya na ubadilishe herufi kuwa nambari
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 // Tumia 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// Mfano wa matumizi
29console.log(validateIban('DE89 3704 0044 0532 0130 00')); // kweli
30console.log(validateIban('GB29 NWBK 6016 1331 9268 19')); // kweli
31console.log(validateIban('DE89 3704 0044 0532 0130 01')); // sikweli (tarakimu za uhakiki batili)
321def validate_iban(iban):
2 # Ondoa nafasi na ubadilishe herufi kubwa
3 iban = iban.replace(' ', '').upper()
4
5 # Kagua umbizo la msingi
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # Sogeza herufi 4 za kwanza mwishoni
10 rearranged = iban[4:] + iban[:4]
11
12 # Ubadilishe herufi kuwa nambari (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 # Kagua ikiwa mod 97 sawa na 1
21 return int(converted) % 97 == 1
22
23# Mfano wa matumizi
24print(validate_iban('DE89 3704 0044 0532 0130 00')) # Kweli
25print(validate_iban('GB29 NWBK 6016 1331 9268 19')) # Kweli
26print(validate_iban('DE89 3704 0044 0532 0130 01')) # Sikweli (tarakimu za uhakiki batili)
271public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // Ondoa nafasi na ubadilishe herufi kubwa
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // Kagua umbizo la msingi
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // Sogeza herufi 4 za kwanza mwishoni
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // Ubadilishe herufi kuwa nambari
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 // Tumia mod 97
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")); // kweli
31 System.out.println(validateIban("GB29 NWBK 6016 1331 9268 19")); // kweli
32 System.out.println(validateIban("DE89 3704 0044 0532 0130 01")); // sikweli
33 }
34}
35Uzalishaji wa 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 // Ongeza nchi zaidi kama inahitajika
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`Msimbo wa nchi ${countryCode} haushughulikiwa`);
11 }
12
13 // Zalia BBAN kwa mujibu wa muundo wa nchi
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 // Zalia tarakimu
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // Zalia herufi
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 // Zalia herufi na nambari
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 // Tumia tarakimu za uhakiki
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // Unda IBAN ya mwanzo na '00' kama tarakimu za uhakiki
55 const initialIban = countryCode + '00' + bban;
56
57 // Panga upya na ubadilishe herufi kuwa nambari
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 // Tumia 98 chini ya 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// Mfano wa matumizi
77console.log(generateIban('DE')); // Zalia IBAN ya Ujerumani
78console.log(generateIban('GB')); // Zalia IBAN ya Uingereza
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 # Ongeza nchi zaidi kama inahitajika
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"Msimbo wa nchi {country_code} haushughulikiwa")
14
15 # Zalia BBAN kwa mujibu wa muundo wa nchi
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': # Nambari
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # Herufi
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # Herufi na nambari
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # Tumia tarakimu za uhakiki
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 # Unda string ya hesabu ya tarakimu za uhakiki
40 check_string = bban + country_code + '00'
41
42 # Ubadilishe herufi kuwa nambari (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 # Tumia 98 chini ya mod 97
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# Mfano wa matumizi
57print(generate_iban('DE')) # Zalia IBAN ya Ujerumani
58print(generate_iban('GB')) # Zalia IBAN ya Uingereza
59Marejeleo na Kusoma Zaidi
- ISO 13616-1:2007 - Muungo rasmi wa muundo wa IBAN
- Daftari la SWIFT IBAN - Chanzo cha mamlaka cha umbizo la IBAN kwa kila nchi
- ISO 7064:2003 - Muungo wa algoritmu ya tarakimu ya uhakiki MOD 97
- Baraza la Malipo ya Ulaya - SEPA - Nyaraka za Eneo la Malipo ya Euro Moja
- Benki Kuu ya Ulaya - Mifumo ya Malipo - Viwango vya uunganishaji wa benki ya Ulaya
- Benki ya Mauzo ya Kimataifa - Mifumo ya Malipo - Viwango vya mifumo ya malipo ya kimataifa
Anza Kupima IBANs
Unahitaji data ya jaribio kwa mfumo wako wa malipo? Tengeneza IBAN halali kwa nchi yoyote iliyotumika hapo juu, au bandika IBAN iliyopo ili uhakiki muundo wake. Zana hii inakimbia kabisa katika kivinjari chako—hakuna usajili, hakuna funguo za API, hakuna data iliyotumwa kwenye seva.
Kidokezo cha haraka: Tengeneza IBANs kutoka nchi mbalimbali ili kupima hali za ziada. Mifumo ya malipo halisi inahifadhi umbizo mbalimbali, na kupima kwa umbizo la nchi moja pekee ni chanzo cha matatizo ya mara kwa mara katika uzalishaji.