Ruka hadi maudhui

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

Kupakia kasha hesabu...
📚

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:

  1. Msimbo wa Nchi: Herufi mbili kutoka kwa ISO 3166-1 alpha-2 viwango (DE kwa Ujerumani, GB kwa Ufalme wa Muungano)
  2. Tarakimu za Ukaguzi: Tarakimu mbili zilizohesabiwa ambazo huunganisha IBAN kwa kutumia MOD 97
  3. 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 nchi
  • 2!n = tarakimu mbili za nambari za ukaguzi
  • 8!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:

NchiUrefuMuundoMfano
Ujerumani (DE)22DE2!n8!n10!nDE89370400440532013000
Ufalme wa Muungano (GB)22GB2!n4!a6!n8!nGB29NWBK60161331926819
Ufaransa (FR)27FR2!n5!n5!n11!c2!nFR1420041010050500013M02606
Hispania (ES)24ES2!n4!n4!n1!n1!n10!nES9121000418450200051332
Italia (IT)27IT2!n1!a5!n5!n12!cIT60X0542811101000000123456

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:

  1. Sogeza herufi nne za kwanza (msimbo wa nchi na tarakimu za ukaguzi) mwishoni
  2. Badilisha kila herufi na nambari: A=10, B=11, hadi Z=35
  3. Hesabu modulo 97 ya mfululizo wa nambari uliobakia
  4. IBAN halali mara zote hutoa sehemu ya kubaki ya 1 kabisa

Kwa kimasibu: Nambari ya IBAN mod 97=1\text{Nambari ya IBAN} \bmod 97 = 1

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:

  1. Kuchagua kielezo cha muundo maalum wa nchi
  2. Kujaza tarakimu na herufi za bahati kwenye sehemu ya BBAN
  3. Kuhesabu tarakimu za uhakiki kwa kutumia MOD 97
  4. 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:

  1. Utambuzi wa msimbo wa nchi (uko unakubaliwa?)
  2. Uhakiki wa urefu (idadi ya sahihi ya herufi kwa hiyo nchi?)
  3. Uhakiki wa aina ya herufi (nambari ambapo zinahitajika, herufi ambapo zinaruhusiwa)
  4. 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

  1. Fungua Kichupo cha Jenereta: Bonyeza kichupo cha "Jenereta" (kilichochaguliwa kwa mchakato chaguo-msingi)
  2. Chagua Nchi: Chagua nchi unayoitaka kutoka kwenye menyu ya kuteua
  3. Tengeneza IBAN: Bonyeza kitufe cha "Tengeneza IBAN"
  4. Angalia Matokeo: IBAN iliyotungwa itaonekana chini pamoja na uchoraji wa vipengele vyake
  5. Nakili kwenye Ubao wa Kunakili: Bonyeza kitufe cha "Nakili kwenye ubao wa kunakili" ili kunakili IBAN kwa matumizi mengine

Kuhalalisha IBAN

  1. Fungua Kichupo cha Muhakiki: Bonyeza kichupo cha "Muhakiki"
  2. Weka IBAN: Andika au unamirie IBAN kwenye sehemu ya kuingiza
    • Nafasi na umbizo zitashughulikiwa kiotomatiki
    • Zana inakubali IBAN zilizofungwa (zenye nafasi) na zisizo fungwa
  3. Angalia Matokeo ya Uhalalishaji: Zana itahalalisha IBAN kiotomatiki wakati wa kuandika
  4. Kagua Maelezo: Kwa IBAN halali, uchoraji wa vipengele utaonyeshwa
  5. 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:

  1. Misimbo ya nchi: Je, ni misimbo iliyoidhinishwa ya herufi mbili?
  2. Urefu: Je, unakidhi urefu unaohitajika kwa nchi husika? (Ujerumani = 22, Uingereza = 22, Ufaransa = 27, n.k.)
  3. Aina ya herufi: Je, herufi na nambari zipo katika nafasi sahihi kulingana na umbizo la nchi?
  4. 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)

  • 37040044 katika 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)
32

Uzalishaji 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
79

Marejeleo na Kusoma Zaidi

  1. ISO 13616-1:2007 - Muungo rasmi wa muundo wa IBAN
  2. Daftari la SWIFT IBAN - Chanzo cha mamlaka cha umbizo la IBAN kwa kila nchi
  3. ISO 7064:2003 - Muungo wa algoritmu ya tarakimu ya uhakiki MOD 97
  4. Baraza la Malipo ya Ulaya - SEPA - Nyaraka za Eneo la Malipo ya Euro Moja
  5. Benki Kuu ya Ulaya - Mifumo ya Malipo - Viwango vya uunganishaji wa benki ya Ulaya
  6. 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.