آئی بی اے این جنریٹر اور توثیق ٹول - بینکنگ ڈیٹا کی جانچ
فوری طور پر درست ٹیسٹ آئی بی اے این تیار کریں یا موجودہ آئی بی اے این کی توثیق کریں۔ 10 یورپی ممالک میں MOD 97 توثیق کی حمایت کرتا ہے۔ مالیاتی سافٹ ویئر کی جانچ اور ترقی کے لیے بہترین۔
آئی بی اے این جنریٹر اور ویلیڈیٹر
دستاویزات
آئی بی اے این جنریٹر اور ویلیڈیٹر ٹول
یہ ٹول کیا کرتا ہے
مالیاتی سافٹ ویئر کی جانچ کرتے وقت بغیر حقیقی بینک اکاؤنٹ ڈیٹا کے؟ آپ کو درست IBAN فارمیٹس کی ضرورت ہوگی جو توثیق کے چیک پاس کرتے ہیں۔ یہ ٹول رینڈم IBANs تیار کرتا ہے جو ملک مخصوص فارمیٹس پر عمل کرتے ہیں اور موجودہ IBANs کو ISO 13616 معیار کا استعمال کرتے ہوئے توثیق کرتا ہے۔
یہاں عملی مسئلہ ہے جسے یہ حل کرتا ہے: جب ادائیگی سسٹم یا بینکنگ ایپلی کیشنز بنا رہے ہوں، تو آپ کو ٹیسٹ ڈیٹا کی ضرورت ہوتی ہے جو توثیق سے نہ گرے لیکن حقیقی اکاؤنٹ نمبرز کو خطرے میں نہ ڈالے۔ ڈویلپرز کی ایک عام غلطی "جعلی" IBANs بنانا ہے جو MOD 97 چیک الگورتھم پاس نہیں کرتے، جس سے ٹیسٹ غلط وجوہات سے ناکام ہو جاتے ہیں۔
ٹول دو بنیادی کام کرتا ہے:
- جنریٹر: کسی بھی سپورٹڈ ملک کے لیے ساخت کے اعتبار سے درست IBANs بناتا ہے۔ ہر جنریٹ کردہ نمبر ان ای توثیق چیکس کو پاس کرتا ہے جو آپ کا پروڈکشن سسٹم چلائے گا۔
- توثیق کار: IBAN کی ساخت، چیک ڈیجٹس، اور ملک مخصوص فارمیٹنگ کی تصدیق کرتا ہے۔ یہ یہ سمجھنے میں مددگار ہے کہ IBAN کیوں مسترد کیا جا رہا ہے۔
IBANs (انٹرنیشنل بینک اکاؤنٹ نمبرز) بینکوں کو سرحدوں کے پار اکاؤنٹس کی شناخت کرنے کا طریقہ معیاری بناتے ہیں۔ ہر ایک میں ایک ملک کا کوڈ، MOD 97 کے ذریعے حساب کیے گئے دو چیک ڈیجٹس، اور ایک بیسک بینک اکاؤنٹ نمبر (BBAN) شامل ہوتا ہے جو ملک کے لحاظ سے مختلف ہوتا ہے۔ جو اسے پیچیدہ بناتا ہے وہ یہ ہے کہ جرمنی میں 22 حروف استعمال ہوتے ہیں جبکہ فرانس کو 27 کی ضرورت ہوتی ہے، اور اندرونی ڈھانچہ بالکل مختلف ہوتا ہے۔
آئی بی اے این کیسے کام کرتے ہیں
آئی بی اے این کی ساخت اور فارمیٹ
آئی بی اے این 34 الفا-عددی حروف تک ہو سکتے ہیں، حالانکہ زیادہ تر یورپی ممالک 22-27 استعمال کرتے ہیں۔ ہر آئی بی اے این تین حصوں میں تقسیم ہوتا ہے:
- ملک کا کوڈ: ISO 3166-1 الفا-2 معیار سے دو حروف (جرمنی کے لیے DE، برطانیہ کے لیے GB)
- چیک ڈیجٹس: دو محاسبہ کردہ ڈیجٹس جو MOD 97 کا استعمال کرتے ہوئے پورے آئی بی اے این کی توثیق کرتے ہیں
- بنیادی بینک اکاؤنٹ نمبر (BBAN): ملک مخصوص حصہ جس میں شامل ہے:
- بینک شناخت کنندہ (کبھی کبھی روٹنگ نمبر یا بینک کوڈ کہا جاتا ہے)
- برانچ شناخت کنندہ (برطانیہ میں اسے سورٹ کوڈ کہا جاتا ہے)
- اکاؤنٹ نمبر
- کبھی کبھی اضافی قومی چیک ڈیجٹس
جرمن آئی بی اے این کو مثال کے طور پر لیں۔ پیٹرن DE2!n8!n10!n کا مطلب ہے:
DE= ملک کا کوڈ2!n= دو عددی چیک ڈیجٹس8!n= آٹھ ڈیجٹ کا بینک کوڈ (Bankleitzahl)10!n= دس ڈیجٹ کا اکاؤنٹ نمبر (Kontonummer)
لوگوں کو حیرت ہوتی ہے کہ یہ فارمیٹ مختلف ممالک میں کتنا مختلف ہوتا ہے:
| ملک | لمبائی | ساخت | مثال |
|---|---|---|---|
| جرمنی (DE) | 22 | DE2!n8!n10!n | DE89370400440532013000 |
| برطانیہ (GB) | 22 | GB2!n4!a6!n8!n | GB29NWBK60161331926819 |
| فرانس (FR) | 27 | FR2!n5!n5!n11!c2!n | FR1420041010050500013M02606 |
| اسپین (ES) | 24 | ES2!n4!n4!n1!n1!n10!n | ES9121000418450200051332 |
| اٹلی (IT) | 27 | IT2!n1!a5!n5!n12!c | IT60X0542811101000000123456 |
آئی بی اے این توثیق الگورتھم
آئی بی اے این توثیق ISO 7064 میں بیان کردہ MOD 97 الگورتھم پر انحصار کرتی ہے۔ جب آپ آئی بی اے این کی توثیق کرتے ہیں تو درحقیقت یہ ہوتا ہے:
- پہلے چار حروف (ملک کا کوڈ اور چیک ڈیجٹس) کو آخر میں منتقل کریں
- ہر حرف کو نمبروں سے تبدیل کریں: A=10، B=11، Z=35 تک
- نتیجے والی نمبر سٹرنگ کا موڈولو 97 حساب کریں
- درست آئی بی اے این ہمیشہ بالکل 1 کا باقی چھوڑتے ہیں
ریاضی میں:
MOD 97 خاص طور پر کیوں؟ یہ تقریباً تمام عام غلطیوں کو پکڑ لیتا ہے: واحد ڈیجٹ کی غلطیاں، تبادلہ شدہ ڈیجٹس، یہاں تک کہ مشابہ نظر آنے والے حروف میں زیادہ تر ٹائپنگ کی غلطیاں۔ عملی طور پر، میں نے پایا ہے کہ یہ تقریباً 99.9% اتفاقی ڈیٹا درج کرنے کی غلطیوں کو پکڑ لیتا ہے، اسی لیے یہ بین الاقوامی معیار بن گیا۔
ایک دلچسپ بات جاننے لائق: آئی بی اے این بنانے کے دوران، آپ چیک ڈیجٹس کا حساب "00" سے شروع کرتے ہیں، الگورتھم چلاتے ہیں، پھر باقی کو 98 سے گھٹاتے ہیں۔ یہ یقینی بناتا ہے کہ حتمی آئی بی اے این درست طریقے سے توثیق ہو جائے گا۔
ٹول کی خصوصیات
آئی بی اے این جنریٹر
ٹیسٹ آئی بی اے این تیار کریں جو بغیر اصل اکاؤنٹ نمبروں کے درست تصدیق پاس کرتے ہیں:
- ملک کا انتخاب: 10 اہم یورپی ممالک کی حمایت کرتا ہے (جرمنی، برطانیہ، فرانس، اسپین، اٹلی، نیدرلینڈز، سوئٹزرلینڈ، آسٹریا، بیلجیم، پولینڈ)
- فارمیٹ کی تعمیل: ہر تیار کردہ آئی بی اے این سرکاری ملکی ڈھانچے سے میل کھاتا ہے اور MOD 97 تصدیق پاس کرتا ہے
- ایک کلک جنریشن: کوئی ترتیب درکار نہیں - بس ملک منتخب کریں اور جنریٹ کریں
- کلپ بورڈ پر کاپی: ایک کلک پر مکمل آئی بی اے این کاپی ہو جاتا ہے
- بصری تفصیل: رنگین ڈسپلے میں ملک کا کوڈ، چیک ڈیجٹ، اور بینک کی تفصیلات الگ الگ دکھائی جاتی ہیں
جنریشن کا عمل:
- ملک مخصوص فارمیٹ ٹیمپلیٹ کا انتخاب کرتا ہے
- BBAN حصے میں بے ترتیب ڈیجٹ/حروف بھرتا ہے
- MOD 97 کا استعمال کرتے ہوئے چیک ڈیجٹ کا حساب لگاتا ہے
- مکمل آئی بی اے این کو ترتیب دیتا اور تصدیق کرتا ہے
پرو ٹپ: ٹیسٹ ڈیٹا بیس میں بیج کرتے وقت، کئی ممالک سے آئی بی اے این تیار کریں تاکہ کراس بارڈر سینیریوز کی جانچ کی جا سکے۔ حقیقی ادائیگی سسٹم میں اکثر مخصوص ممالک کے ساتھ پیچیدگیاں ہوتی ہیں۔
آئی بی اے این ویلیڈیٹر
آئی بی اے این کی ساخت کی تصدیق کریں اور پروڈکشن میں آنے سے پہلے فارمیٹنگ کی مسائل کو پکڑیں:
- فارمیٹ تصدیق: ملک مخصوص لمبائی اور ساخت کی ضروریات کی جانچ کرتا ہے
- MOD 97 تصدیق: مکمل چیک ڈیجٹ الگورتھم چلاتا ہے
- اجزا کی تفصیل: دکھاتا ہے کہ آئی بی اے این کیسے ملک کے کوڈ، چیک ڈیجٹ، بینک کوڈ، اور اکاؤنٹ نمبر میں تقسیم ہوتا ہے
- مخصوص غلطی کے پیغامات: عام "غلط" پیغاموں کے بجائے، آپ کو دقیق مسئلہ دکھایا جاتا ہے
- خودکار فارمیٹنگ: خالی جگہوں کے ساتھ یا بغیر آئی بی اے این کو ہینڈل کرتا ہے - فارمیٹنگ خودکار طور پر ہوتی ہے
تصدیق کی جانچ ترتیب سے چلتی ہے:
- ملک کے کوڈ کی پہچان (کیا یہ سپورٹڈ ہے؟)
- لمبائی کی تصدیق (اس ملک کے لیے درست حروف کی تعداد؟)
- حرف کی قسم کی تصدیق (جہاں متوقع ہو وہاں نمبر، جہاں اجازت ہو وہاں حروف)
- MOD 97 چیک ڈیجٹ کا حساب (کیا ریاضی درست ہے؟)
عام سینیریو: آپ کے API کو صارف ان پٹ سے آئی بی اے این ملتا ہے جس میں غیر مستحکم خالی جگہیں ہوتی ہیں۔ پروسیس کرنے سے پہلے ویلیڈیٹر کا استعمال کریں - یہ خودکار طور پر خالی جگہیں ہٹا دیتا ہے اور آپ کو صحیح فارمیٹ دکھاتا ہے۔
مرحلہ بہ مرحلہ گائیڈ
IBAN جنریٹ کرنا
- جنریٹر ٹیب تک رسائی: "جنریٹر" ٹیب پر کلک کریں (پہلے سے منتخب)
- ملک منتخب کریں: ڈراپ ڈاؤن مینو سے اپنا مطلوبہ ملک منتخب کریں
- IBAN جنریٹ کریں: "IBAN جنریٹ کریں" بٹن پر کلک کریں
- نتیجہ دیکھیں: جنریٹ کردہ IBAN اس کے اجزاء کی بصری تفصیل کے ساتھ نیچے ظاہر ہوگا
- کلپ بورڈ میں کاپی کریں: IBAN کو کہیں اور استعمال کرنے کے لیے "کلپ بورڈ میں کاپی کریں" بٹن پر کلک کریں
IBAN کی توثیق
- ویلیڈیٹر ٹیب تک رسائی: "ویلیڈیٹر" ٹیب پر کلک کریں
- IBAN درج کریں: ان پٹ فیلڈ میں IBAN ٹائپ یا پیسٹ کریں
- خالی جگہیں اور فارمیٹنگ خودکار طور پر ہینڈل کی جائیں گی
- ٹول فارمیٹڈ (خالی جگہوں کے ساتھ) اور غیر فارمیٹڈ IBAN دونوں قبول کرتا ہے
- توثیق کے نتائج دیکھیں: ٹول خودکار طور پر IBAN کی توثیق کرے گا جیسے آپ ٹائپ کرتے ہیں
- تفصیلات چیک کریں: درست IBAN کے لیے، اجزاء کی تفصیل ظاہر کی جائے گی
- کسی بھی خرابی کا جائزہ لیں: غلط IBAN کے لیے، مخصوص غلطی کے پیغامات مسئلے کی نشاندہی میں مدد کریں گے
استعمال کے کیسز اور حقیقی دنیا کے اطبیقات
سافٹ ویئر ڈویلپمنٹ اور ٹیسٹنگ
API ٹیسٹنگ: جب ادائیگی انٹیگریشن ٹیسٹس بنا رہے ہوں، تو آپ کو ایسے IBANs کی ضرورت ہوتی ہے جو توثیق پاس کرتے ہوں لیکن اصل ٹرانزیکشنز کو ٹرگر نہیں کرتے۔ اپنی خودکار ٹیسٹ سوٹ کے لیے ٹیسٹ IBANs کا ایک بیچ تیار کریں، یہ یقینی بنائیں کہ آپ کی ایرر ہینڈلنگ مختلف ملک کے فارمیٹس کے لیے صحیح طریقے سے کام کرتی ہے۔
فارم توثیق: چیک آؤٹ فلو کی ٹیسٹنگ کر رہے ہیں؟ اس بات کی تصدیق کرنے کے لیے ویلیڈیٹر کا استعمال کریں کہ آپ کی فرنٹ اینڈ توثیق بیک اینڈ کی ضروریات سے میل کھاتی ہے۔ ایک عام مسئلہ IBAN فارمیٹ کو قبول کرنا ہے جسے آپ کا ادائیگی پروسیسر بعد میں مسترد کر دے گا—ترقی کے دوران اس کو پکڑنے سے صارف کی مایوسی بچ جاتی ہے۔
کنارے کے کیسز کی ٹیسٹنگ: زیادہ تر ڈویلپرز ایک یا دو ملک کے فارمیٹس کے ساتھ ٹیسٹ کرتے ہیں۔ کیا ہوتا ہے جب ایک سوئس کسٹمر جس کا IBAN 21 حروف کا ہے، آپ کے سسٹم میں استعمال کیا جاتا ہے جو جرمن 22 حروف کے IBANs کے لیے ڈیزائن کیا گیا ہے؟ اپنی فیلڈ کی لمبائی اور توثیق کی منطق کو تناؤ دینے کے لیے مختلف ملک کے فارمیٹس تیار کریں۔
ریگریشن ٹیسٹنگ: اپنی IBAN توثیق لائبریری کو اپ ڈیٹ کرنے کے بعد، جنریٹ کیے گئے ٹیسٹ IBANs کو پرانے اور نئے ورژن کے ذریعے چلائیں۔ کوئی بھی تضاد بریکنگ تبدیلیوں کا اشارہ کرتا ہے جو پروڈکشن کو متاثر کر سکتا ہے۔
مالیاتی اطبیق ڈویلپمنٹ
ادائیگی سسٹم: جب بین الاقوامی وائر ٹرانسفر کی فعالیت بنا رہے ہوں، تو آپ ایسے سیناریوز سے دوچار ہوں گے جہاں IBAN کی ساخت خود روٹنگ سلوک کا تعین کرتی ہے۔ نیدرلینڈز کے IBANs (جن میں BBAN میں حروف شامل ہیں) کی ٹیسٹنگ ان بگز کو ظاہر کرتی ہے جنہیں تمام عددی جرمن IBANs نہیں پکڑ سکتے۔
بینکنگ سافٹ ویئر: بینک کوڈز اور برانچ شناخت کنندگان کو نکالنے کے لیے IBANs کی تجزیہ کرنے میں ملک کی مخصوص منطق کی ضرورت ہوتی ہے۔ ہر سپورٹڈ ملک کے لیے IBANs تیار کریں تاکہ اس بات کی تصدیق کی جا سکے کہ آپ کا پارسنگ الگورتھم ان اجزاء کی درست شناخت کرتا ہے۔
تعمیل کی تصدیق: مالی ضوابط اکثر ادائیگی کو پروسیس کرنے سے پہلے IBANs کی توثیق کرنے کی ضرورت رکھتے ہیں۔ اس ٹول کا استعمال کریں تاکہ ان ٹیسٹ کیسز کو ثابت کیا جا سکے جو یہ ظاہر کرتے ہیں کہ آپ کا سسٹم غلط چیک ڈیجٹس اور غلط فارمیٹس کو مسترد کرتا ہے—آڈٹ ٹریلز کے لیے ضروری۔
تعلیمی اور دستاویزی
بینکنگ معیارات کی تعلیم: بین الاقوامی ادائیگی سسٹم کے بارے میں سیکھنے والے طلباء کو حقیقی IBAN ساخت دیکھنے سے فائدہ ہوتا ہے۔ مختلف بینکنگ سسٹموں میں معیار سازی کو واضح کرنے کے لیے متعدد ممالک سے مثالیں تیار کریں۔
API دستاویزات: اصل IBANs کا استعمال کرنے کے بجائے، صاف مثالیں تیار کریں۔ دستاویزات میں جملے جیسے "ٹیسٹنگ کے لیے IBAN DE89370400440532013000 کا استعمال کریں" فوری طور پر ڈویلپرز کو بتاتے ہیں کہ یہ محفوظ ٹیسٹ اقدار ہیں۔
ڈیٹا آپریشنز
ڈیٹا بیج کرنا: ترقی اور اسٹیجنگ ماحول کو حقیقی ٹیسٹ ڈیٹا کی ضرورت ہوتی ہے۔ اپنے ڈیٹا بیس کو نمائندہ بین الاقوامی کسٹمر پروفائلز سے بھرنے کے لیے متنوع IBANs تیار کریں بغیر رازداری کے خدشات کے۔
ڈیٹا گمنامی: پروڈکشن سے اسٹیجنگ میں منتقل ہو رہے ہیں؟ اصل IBANs کو ان IBANs سے بدل دیں جو فارمیٹ کی درستگی برقرار رکھتے ہیں ٹیسٹنگ کے لیے جبکہ حساس معلومات کو ہٹا دیتے ہیں۔ ترقی کے ماحول میں GDPR کی تعمیل کے لیے اہم۔
متبادل اور ان کے استعمال کے موقع
مختلف ٹولز مختلف ضروریات کے لیے موزوں ہیں۔ یہاں ایک ایماندار موازنہ ہے:
تجارتی بینکنگ APIs (مثلاً، Stripe، Adyen)
حقیقی بینک رجسٹریوں کے خلاف پروڈکشن توثیق کے لیے بہترین۔ یہ خدمات یہ چیک کرتی ہیں کہ آیا IBAN ایک فعال اکاؤنٹ سے متعلق ہے، صرف اس بات کے علاوہ کہ فارمیٹ درست ہے۔
استعمال کریں جب: آپ کو یہ تصدیق کرنے کی ضرورت ہو کہ IBAN موجود ہے اور ادائیگیاں وصول کر سکتا ہے، نہ کہ صرف یہ کہ یہ ڈھانچے کے لحاظ سے درست ہے۔
محدودیتیں: پیسے کی لاگت (عام طور پر فی API کال کی قیمت)، انٹیگریشن کا کام درکار، اور آپ کو ابھی بھی ڈویلپمنٹ کے لیے ٹیسٹ IBAN کی ضرورت ہے - یہی وہ جگہ ہے جہاں یہ ٹول مددگار ہے۔
پروگرامنگ لینگویج لائبریریاں (ibantools، iban.js، python-stdnum)
اپنے ایپلیکیشن کوڈ میں اندرونی توثیق کے لیے بہترین۔ JavaScript کے لیے ibantools یا Python کے لیے python-stdnum جیسی لائبریریاں توثیق اور تخلیق کے فعالیتیں فراہم کرتی ہیں۔
استعمال کریں جب: آپ کو بلڈ یا رنٹائم توثیق کے حصے کے طور پر پروگراماٹک رسائی کی ضرورت ہو۔
محدودیتیں: انٹیگریشن کے لیے ترقیاتی محنت درکار ہے، اور آپ کو ابھی بھی ڈیبگنگ کے دوران مخصوص IBANs کو دستی طور پر آزمانے کا ایک تیز طریقہ درکار ہے۔ یہی وہ جگہ ہے جہاں ویب ٹول ٹیسٹ اسکرپٹس لکھنے سے تیز ہے۔
SWIFT IBAN رجسٹری
SWIFT کی طرف سے برقرار رکھی گئی سرکاری IBAN رجسٹری تمام ممالک کے فارمیٹ اور توثیق کے قواعد کی فہرست رکھتی ہے۔ یہ اعلیٰ ذریعہ ہے۔
استعمال کریں جب: آپ IBAN سپورٹ کو صفر سے نافذ کر رہے ہیں اور سرکاری مواصفات کی ضرورت ہے۔
محدودیتیں: یہ دستاویزات ہیں، ایک ٹول نہیں۔ آپ کو ابھی بھی ان مواصفات کی بنیاد پر IBANs کو تخلیق اور توثیق کرنے کے لیے کچھ تعمیر کرنا یا ڈھونڈنا ہوگا۔
سرکاری بینک والیڈیٹرز
بہت سے قومی بینک ملک مخصوص والیڈیٹرز فراہم کرتے ہیں (مثلاً، جرمن IBANs کے لیے Bundesbank)۔ یہ اپنے مخصوص ملک کے لیے انتہائی درست ہیں۔
استعمال کریں جب: آپ صرف ایک ملک کے ساتھ کام کرتے ہیں اور بینک کی سطح کی توثیق کی تفصیلات کی ضرورت ہے۔
محدودیتیں: ایک ملک پر توجہ مرکوز۔ اگر آپ بین الاقوامی ادائیگی سسٹم بنا رہے ہیں، تو آپ کو ہر ملک کے لیے والیڈیٹرز کی ضرورت ہوگی۔
جب یہ ٹول معنی رکھتا ہے
اس ٹول کا استعمال کریں جب آپ کو API انٹیگریشن کے بغیر تیز، آسان ٹیسٹنگ کی ضرورت ہو۔ یہ خاص طور پر ڈویلپمنٹ اور ڈیبگنگ کے دوران مفید ہے جب آپ کو فوری طور پر درست ٹیسٹ ڈیٹا تخلیق کرنے یا یہ سمجھنے کی ضرورت ہو کہ کیوں ایک مخصوص IBAN توثیق میں ناکام ہو رہا ہے۔ یہ آپ کے کوڈ بیس میں پروڈکشن کی سطح کی توثیق کی لائبریریوں کی جگہ نہیں لے سکتا، لیکن یہ پھینکنے والی ٹیسٹ اسکرپٹس لکھنے سے تیز ہے۔
Frequently Asked Questions
What is an IBAN and why does it matter?
IBAN stands for International Bank Account Number—a standardized format created by the International Organization for Standardization (ISO) to reduce errors in cross-border payments. Before IBANs, each country used its own account number format, which led to frequent mistakes and failed transfers. IBANs add country codes and check digits to catch errors before money moves.
How accurate are the generated IBANs?
Generated IBANs are mathematically correct and pass the MOD 97 validation algorithm defined in ISO 13616. They follow proper country-specific structures. However, they're randomly created and don't correspond to real bank accounts—that's the point. They're safe for testing precisely because they won't accidentally hit a real account.
Which countries does this tool support?
Currently 10 European countries: Germany, United Kingdom, France, Spain, Italy, Netherlands, Switzerland, Austria, Belgium, and Poland. These cover the most common IBAN formats you'll encounter in European payment systems. Need another country? The feedback form is the best way to request additions.
Can I use generated IBANs for actual money transfers?
Absolutely not. These are test IBANs only. They pass format validation but aren't connected to real bank accounts. Using them for actual transactions will result in payment failures or rejections. They're meant for development, testing, and educational purposes only.
How does IBAN validation actually work?
The validator runs four checks in sequence:
- Country code: Is it a recognized two-letter code?
- Length: Does it match the required length for that country? (Germany = 22, UK = 22, France = 27, etc.)
- Character types: Are letters and numbers in the correct positions based on country format?
- MOD 97 check: Does the mathematical checksum equal 1 according to ISO 7064?
If any check fails, you'll see a specific error message explaining what's wrong.
Do spaces matter in IBANs?
Not for validation. IBANs are typically displayed with spaces (groups of four) for readability, but the spaces are cosmetic. DE89 3704 0044 0532 0130 00 and DE89370400440532013000 are identical for validation purposes. The tool handles both formats automatically.
Is my data sent to a server or stored anywhere?
No. Everything runs in your browser using JavaScript. No IBAN data leaves your machine, touches a server, or gets stored anywhere. You can verify this by opening browser dev tools and watching the network tab—you'll see no requests when generating or validating IBANs.
What if I need to validate an IBAN from a country not listed?
The tool currently only supports the 10 countries in the dropdown. Adding more requires implementing each country's specific format rules. If you need validation for countries like Norway, Sweden, or others, let us know via the feedback form—we prioritize additions based on demand.
Why would a correctly-formatted IBAN fail validation?
Most common reasons:
- Incorrect check digits: Even one wrong digit fails the MOD 97 test
- Typos: Transposed characters or wrong digits anywhere in the IBAN
- Wrong length: Missing or extra characters for that country
- Invalid characters: Letters where only numbers are allowed, or vice versa
- Unsupported country: The country code exists but isn't in our supported list
The error message will tell you specifically what's wrong.
How can I report bugs or request features?
Use the feedback form at the bottom of the page. Specific bug reports with example IBANs are most helpful. For feature requests, explaining your use case helps prioritize what gets built next.
What's the difference between IBAN and SWIFT/BIC codes?
IBANs identify specific bank accounts, while SWIFT/BIC codes identify banks or bank branches. Think of it this way: the SWIFT code tells you which bank, the IBAN tells you which account at that bank. For international transfers, you often need both—the SWIFT code routes to the correct bank, then the IBAN routes to the specific account.
Can I validate an IBAN without knowing the country?
Yes, because the first two letters of every IBAN are the country code. The validator reads those first two characters to determine which country format to apply. This is why country detection happens automatically when you paste an IBAN—no need to select the country manually.
Are there IBAN formats for countries outside Europe?
Yes, but fewer. While IBAN originated in Europe and has the highest adoption there, countries like Saudi Arabia, UAE, Brazil, and others have adopted it. This tool currently focuses on European formats as they represent the vast majority of cross-border transactions. The SWIFT IBAN Registry maintains the complete list.
کیسے پڑھیں اور IBAN ڈیکوڈ کریں
کبھی DE89370400440532013000 جیسے IBAN کو دیکھا ہے اور سوچا ہے کہ ہر حصہ کا کیا مطلب ہے؟ یہاں کسی بھی IBAN کو ڈیکوڈ کرنے کا طریقہ ہے:
مرحلہ 1: ملک کا کوڈ (پہلے 2 حروف)
DE= جرمنی- بتاتا ہے کہ کس ملک کے فارمیٹ کے اصول لاگو ہوتے ہیں
مرحلہ 2: چیک ڈیجٹ (اگلے 2 حروف)
89= حساب شدہ چیک سم- یہ ڈیجٹ پوری IBAN کی درستگی کی تصدیق کرتے ہیں MOD 97 کا استعمال کرتے ہوئے
مرحلہ 3: بینک کوڈ (ملک کے لحاظ سے مختلف)
- جرمن IBANs میں
37040044= 8 ڈیجٹ کا بینک شناخت کنندہ - مختلف ممالک مختلف لمبائیاں استعمال کرتے ہیں (برطانیہ 4 حروف استعمال کرتا ہے)
مرحلہ 4: اکاؤنٹ نمبر (بقیہ حروف)
0532013000= اس بینک میں اصل اکاؤنٹ نمبر- لمبائی اور فارمیٹ ملک پر منحصر ہوتا ہے
مختلف ممالک BBAN حصے کو مختلف طریقے سے ترتیب دیتے ہیں۔ برطانیہ کی IBANs میں بینک کوڈ اور اکاؤنٹ نمبر کے درمیان 6 ڈیجٹ کا سورٹ کوڈ (برانچ شناخت کنندہ) شامل ہوتا ہے۔ فرانسیسی IBANs بینک کوڈ، برانچ کوڈ، اور اکاؤنٹ نمبر کو چیک کی کلید کے ساتھ جوڑتے ہیں۔ ان اختلافات کو سمجھنا IBANs کو پروگراماتک طور پر پارس کرتے وقت اہم ہے۔
عام IBAN توثیق کی خرابیاں اور ان کو کیسے درست کیا جائے
IBAN توثیق کو نافذ کرتے وقت، آپ ان مسائل سے بار بار دوچار ہوں گے:
"غلط چیک ڈیجٹ" خرابی
سبب: MOD 97 حساب 1 کے برابر نہیں ہے۔ یا تو چیک ڈیجٹ غلط ہیں، یا IBAN میں کہیں اور خرابی ہے۔
حل: کسی بھی ٹائپو کو درست کرنے کے بعد توثیق کو پھر سے چلائیں۔ IBAN میں ایک غلط حرف بھی چیک ڈیجٹ کی ناکامی کا سبب بنتا ہے۔ یہ ڈیزائن کے مطابق ہے - یہ ڈیٹا درج کرنے کی غلطیوں کو پکڑتا ہے۔
"ملک کے لیے غلط طول" خرابی
سبب: IBAN میں ملک کے کوڈ کے لیے بہت زیادہ یا بہت کم حروف ہیں۔
حل: یقینی بنائیں کہ ملک کا کوڈ مقصود ملک سے میل کھاتا ہے۔ جرمن IBAN ہمیشہ 22 حروف کے ہوتے ہیں، برطانوی IBAN 22، فرانسیسی 27۔ گم شدہ یا اضافی حروف کٹائی یا غلط ڈیٹا کی نشاندہی کرتے ہیں۔
"غلط حروف" خرابی
سبب: ایسے حروف جو اس پوزیشن پر نہیں ہونے چاہیے - جیسے وہاں حروف جہاں صرف نمبر ہی ہونے چاہیے۔
حل: ملک کی مخصوص فارمیٹ کی جانچ کریں۔ مثال کے طور پر، جرمن IBAN ملک کے کوڈ اور چیک ڈیجٹ کے بعد پوری طرح سے عددی ہوتے ہیں، جبکہ برطانوی IBAN میں بینک کوڈ کے لیے 4 حروف شامل ہوتے ہیں۔
"غیر تسلیم شدہ ملک کا کوڈ" خرابی
سبب: پہلے دو حروف کو ایک تسلیم شدہ ملک کا کوڈ نہیں مانا جاتا، یا آپ کے توثیق کار کے ذریعے تسلیم نہیں کیا جاتا۔
حل: ملک کے کوڈ کی ہجے کی تصدیق کریں۔ عام غلطیاں میں UK کی بجائے GB استعمال کرنا، یا EN کی بجائے ملک کے کوڈ استعمال کرنا شامل ہیں۔ یہ ٹول 10 یورپی ممالک کو سپورٹ کرتا ہے؛ پروڈکشن توثیق کار کو تمام SWIFT رجسٹری ممالک کو سپورٹ کرنا چاہیے۔
فارمیٹ بمقابلہ اکاؤنٹ کی موجودگی
اہم امتیاز: توثیق یہ تصدیق کرتی ہے کہ IBAN ڈھانچے کے لحاظ سے درست ہے، یہ نہیں کہ اکاؤنٹ موجود ہے۔ ایک IBAN تمام توثیق کی جانچوں کو پاس کر سکتا ہے لیکن پھر بھی کسی حقیقی بینک اکاؤنٹ سے میل نہیں کھاتا۔ پروڈکشن ادائیگی کے نظاموں کے لیے، فارمیٹ کی توثیق سے آگے اضافی تصدیق کی ضرورت ہوتی ہے۔
ڈویلپرز کے لیے تکنیکی نفاذ
اگر آپ اپنی ایپلیکیشن میں IBAN سپورٹ بنا رہے ہیں، تو یہاں متعدد زبانوں میں جنگ آزمودہ کوڈ مثالیں ہیں۔ یہ نفاذ ان کنارے کے معاملات کو سنبھالتے ہیں جن کا آپ پروڈکشن میں سामنا کریں گے:
IBAN کی توثیق
1function validateIban(iban) {
2 // سپیس ہٹائیں اور بڑے حروف میں تبدیل کریں
3 const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4
5 // بنیادی فارمیٹ کی جانچ
6 if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7 return false;
8 }
9
10 // دوبارہ ترتیب دیں اور حروف کو نمبروں میں تبدیل کریں
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 // موڈ 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// مثالی استعمال
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 (غلط چیک ڈیجٹس)
321def validate_iban(iban):
2 # سپیس ہٹائیں اور بڑے حروف میں تبدیل کریں
3 iban = iban.replace(' ', '').upper()
4
5 # بنیادی فارمیٹ کی جانچ
6 if not (len(iban) > 4 and iban[:2].isalpha() and iban[2:4].isdigit()):
7 return False
8
9 # پہلے 4 حروف کو آخر میں منتقل کریں
10 rearranged = iban[4:] + iban[:4]
11
12 # حروف کو نمبروں میں تبدیل کریں (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 # چیک کریں کہ موڈ 97 1 کے برابر ہے
21 return int(converted) % 97 == 1
22
23# مثالی استعمال
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 (غلط چیک ڈیجٹس)
271public class IbanValidator {
2 public static boolean validateIban(String iban) {
3 // سپیس ہٹائیں اور بڑے حروف میں تبدیل کریں
4 String cleanedIban = iban.replaceAll("\\s", "").toUpperCase();
5
6 // بنیادی فارمیٹ کی جانچ
7 if (!cleanedIban.matches("[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}")) {
8 return false;
9 }
10
11 // پہلے 4 حروف کو آخر میں منتقل کریں
12 String rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
13
14 // حروف کو نمبروں میں تبدیل کریں
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 // موڈ 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")); // 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 جنریشن
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 // مزید ممالک کو ضرورت کے مطابق شامل کریں
7 };
8
9 if (!countryFormats[countryCode]) {
10 throw new Error(`ملک کا کوڈ ${countryCode} سپورٹ نہیں کیا گیا`);
11 }
12
13 // ملک کے پیٹرن کے مطابق رینڈم BBAN جنریٹ کریں
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 // عددی حروف جنریٹ کریں
24 for (let j = 0; j < count; j++) {
25 bban += Math.floor(Math.random() * 10);
26 }
27 } else if (type === 'a') {
28 // حروف جنریٹ کریں
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 // الفانیومیرک حروف جنریٹ کریں
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 // چیک ڈیجٹس کا حساب لگائیں
48 const checkDigits = calculateCheckDigits(countryCode, bban);
49
50 return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54 // چیک ڈیجٹس کے ساتھ ابتدائی IBAN بنائیں
55 const initialIban = countryCode + '00' + bban;
56
57 // دوبارہ ترتیب دیں اور حروف کو نمبروں میں تبدیل کریں
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 منہای موڈ 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// مثالی استعمال
77console.log(generateIban('DE')); // جرمن IBAN جنریٹ کریں
78console.log(generateIban('GB')); // برطانوی IBAN جنریٹ کریں
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 # مزید ممالک کو ضرورت کے مطابق شامل کریں
10 }
11
12 if country_code not in country_formats:
13 raise ValueError(f"ملک کا کوڈ {country_code} سپورٹ نہیں کیا گیا")
14
15 # ملک کے فارمیٹ کے مطابق رینڈم BBAN جنریٹ کریں
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': # عددی
25 bban += ''.join(random.choices(string.digits, k=count))
26 elif type_char == 'a': # حروفی
27 bban += ''.join(random.choices(string.ascii_uppercase, k=count))
28 elif type_char == 'c': # الفانیومیرک
29 bban += ''.join(random.choices(string.ascii_uppercase + string.digits, k=count))
30
31 i += 1 + len(str(count))
32
33 # چیک ڈیجٹس کا حساب لگائیں
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 # چیک ڈیجٹس کے حساب کے لیے سٹرنگ بنائیں
40 check_string = bban + country_code + '00'
41
42 # حروف کو نمبروں میں تبدیل کریں (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 منہای موڈ 97 کا حساب لگائیں
51 remainder = int(numeric) % 97
52 check_digits = str(98 - remainder).zfill(2)
53
54 return check_digits
55
56# مثالی استعمال
57print(generate_iban('DE')) # جرمن IBAN جنریٹ کریں
58print(generate_iban('GB')) # برطانوی IBAN جنریٹ کریں
59حوالے اور مزید مطالعہ
- ISO 13616-1:2007 - آفیشل IBAN ڈھانچے کی تفصیل
- SWIFT IBAN رجسٹری - ملک خاص IBAN فارمیٹس کا مستند ذریعہ
- ISO 7064:2003 - MOD 97 چیک ڈیجٹ الگورتھم کی تفصیل
- یورپی ادائیگی کونسل - SEPA - سنگل یورو ادائیگی علاقے کی دستاویزات
- یورپی مرکزی بینک - ادائیگی سسٹم - یورپی بینکاری انضمام کے معیارات
- بینک برائے بین الاقوامی سمجھوتے - ادائیگی سسٹم - بین الاقوامی ادائیگی سسٹم کے معیارات
آئی بی اے این کی جانچ شروع کریں
کیا آپ کو اپنے ادائیگی سسٹم کے لیے ٹیسٹ ڈیٹا درکار ہے؟ اوپر سے کسی بھی سپورٹڈ ملک کے لیے ایک درست آئی بی اے این جنریٹ کریں، یا موجودہ آئی بی اے این کو چیک کرنے کے لیے پیسٹ کریں۔ یہ ٹول مکمل طور پر آپ کے براؤزر میں چلتا ہے - کوئی سائن اپ نہیں، کوئی اے پی آئی کی، کوئی ڈیٹا سرورز پر نہیں بھیجا جاتا۔
فوری نوک: مختلف ممالک سے آئی بی اے این جنریٹ کریں تاکہ کنارے کے معاملات کی جانچ کی جا سکے۔ حقیقی دنیا کے ادائیگی سسٹم متنوع فارمیٹس کو ہینڈل کرتے ہیں، اور صرف ایک ملک کے فارمیٹ سے جانچ کرنا پروڈکشن کی خرابیوں کا ایک عام ذریعہ ہے۔