IBAN ভ্যালিডেটর এবং পার্সার

অফলাইনে একটি আন্তর্জাতিক ব্যাংক অ্যাকাউন্ট নম্বর যাচাই করুন: দেশের কোড, রেজিস্ট্রি দৈর্ঘ্য এবং ISO 7064 MOD 97-10 চেকসাম, পাশাপাশি পার্সড ব্রেকডাউন এবং প্রিন্ট ফরম্যাটিং।

এই অ্যাকাউন্ট নম্বরটি কি কাঠামোগতভাবে বৈধ? স্পেসসহ বা ছাড়া একটি IBAN পেস্ট করুন। যাচাইকরণ সম্পূর্ণ আপনার ব্রাউজারে চলে: SWIFT রেজিস্ট্রির বিরুদ্ধে দেশের কোড, মোট দৈর্ঘ্য, তারপর ISO 7064 MOD 97-10 চেকসাম।

দেশ
চেক ডিজিট
BBAN
দৈর্ঘ্য

IBAN ভ্যালিডেশন আসলে কীভাবে কাজ করে

একটি র্যাপারসহ জাতীয় অ্যাকাউন্ট নম্বর

একটি IBAN কোনো নতুন ধরনের অ্যাকাউন্ট নম্বর নয়। এটি বিদ্যমান দেশীয় অ্যাকাউন্ট নম্বর, যাকে BBAN বলা হয়, যার সামনে চারটি অক্ষর জুড়ে দেওয়া হয়: একটি দুই-অক্ষরের ISO 3166 দেশের কোড এবং দুটি চেক ডিজিট। সেই চারটি অক্ষরের পরে যা কিছু আসে তা জাতীয় ব্যাংকিং ব্যবস্থা আগে থেকেই যা ব্যবহার করত, তাই দৈর্ঘ্য এত পরিবর্তনশীল। একটি নরওয়েজীয় IBAN 15 অক্ষরের এবং একটি মাল্টিজ 31 অক্ষরের, এবং দুটোই সম্পূর্ণ সঠিক।

সেই পরিবর্তনশীলতাই প্রথম প্রকৃত ভ্যালিডেশন ধাপ, এবং যেটি মানুষ প্রায়ই বাদ দেয়। প্রতিটি দেশ SWIFT-এর কাছে একটি সঠিক মোট দৈর্ঘ্য নিবন্ধন করে, এবং দৈর্ঘ্যটি সর্বোচ্চ নয় বরং নির্দিষ্ট। একটি জার্মান IBAN সর্বদা 22 অক্ষরের। যদি আপনি DE দিয়ে শুরু একটি 21-অক্ষরের স্ট্রিং পান, চেকসাম যাই বলুক তা ভুল, কারণ স্ট্রিংটি ছোটকারী একটি ট্রান্সপোজিশন এমন একটি চেকসাম দিয়ে ধরা যায় না যা কখনো অনুপস্থিত অক্ষরটি দেখে না। প্রথমে দেশের দৈর্ঘ্য যাচাই করা একটি সাধারণ চেকসাম ব্যর্থতার চেয়ে অনেক বেশি দরকারী ত্রুটি বার্তাও তৈরি করে।

MOD 97-10 চেকসাম

চেকসামটি ISO 7064 থেকে এসেছে এবং মার্জিতভাবে সহজ। প্রথম চারটি অক্ষর শেষে সরান, প্রতিটি অক্ষরকে একটি সংখ্যা দিয়ে প্রতিস্থাপন করুন যেখানে A হল 10 থেকে Z হল 35, তারপর পুরো জিনিসটি একটি বিশাল পূর্ণসংখ্যা হিসেবে পড়ুন। 97 দিয়ে ভাগ করলে সেই পূর্ণসংখ্যার অবশিষ্টাংশ ঠিক 1 হলে, IBAN পাস করে।

সমস্যা হলো ফলাফল সংখ্যাটি যেকোনো ভাষার নেটিভ পূর্ণসংখ্যা টাইপের চেয়ে অনেক বড়, প্রায়ই আশি বা তার বেশি অঙ্কের। বাইনাম লাইব্রেরির কাছে পৌঁছানোর বদলে, বাস্তবায়নগুলো এটি টুকরো টুকরো করে কমায়: বাম থেকে ডানে স্ট্রিং ধরে হাঁটুন, এবং প্রতিটি অঙ্কের পরে শুধু চলমান মান মডিউলো 97 রাখুন। যেহেতু মডুলার পাটিগণিত অঙ্ক-ভিত্তিক নির্মাণের উপর বণ্টিত হয়, চূড়ান্ত অবশিষ্টাংশ পুরো সংখ্যা থেকে যা পেতেন তার সাথে অভিন্ন, এবং এটি কোনো অ্যালোকেশন ছাড়াই একটি একক পাসে খরচ হয়। এই টুলটি ঠিক এটিই করে।

MOD 97-10 বেছে নেওয়া হয়েছে কারণ এটি একটি দুই-অক্ষরের চেকের জন্য অস্বাভাবিকভাবে শক্তিশালী। এটি প্রতিটি একক-অক্ষর প্রতিস্থাপন, দুটি সংলগ্ন অক্ষরের প্রতিটি ট্রান্সপোজিশন এবং দীর্ঘতর স্ক্র্যাম্বলের বিশাল সংখ্যাগরিষ্ঠ ধরে। এটি যেসব ত্রুটি মোড দেখতে পারে না সেগুলো যথেষ্ট বিরল যে অবশিষ্ট ঝুঁকি অ্যাকাউন্টটি কেবল বিদ্যমান না থাকার দ্বারা প্রাধান্য পায়।

একটি বৈধ IBAN আপনাকে কী বলে না

কাঠামোগত বৈধতা অস্তিত্ব নয়। একটি চেকসাম-সঠিক IBAN একটি বন্ধ অ্যাকাউন্ট, একটি অ্যাকাউন্ট যা কখনো খোলা হয়নি, বা একটি ব্যাংকের দিকে নির্দেশ করতে পারে যা তারপর থেকে অস্তিত্ব থেকে মার্জ হয়ে গেছে। টাকা পৌঁছাবে তা জানার একমাত্র উপায় ট্রান্সফার চেষ্টা করা বা ব্যাংক-প্রদত্ত ভেরিফিকেশন সার্ভিস ব্যবহার করা। ভ্যালিডেশনকে প্রবেশের বিন্দুতে টাইপো ধরার উপায় হিসেবে ব্যবহার করুন, প্রাপক বাস্তব তার নিশ্চিতকরণ হিসেবে নয়।

ফরম্যাটিংয়েরও যত্ন প্রয়োজন। রেজিস্ট্রি ইলেকট্রনিক ফর্মকে স্পেসহীন একটি অবিচ্ছিন্ন স্ট্রিং হিসেবে সংজ্ঞায়িত করে, এবং পেমেন্ট ফাইলে বা ডেটাবেসে আপনার যা পাঠানো উচিত তা-ই। চারে চারে গ্রুপ করা ফর্মটি শুধু কাগজে ছাপানোর জন্য বিদ্যমান, যেখানে এটি মানুষকে দীর্ঘ স্ট্রিং সঠিকভাবে কপি করতে সাহায্য করে। ইনপুটে নরমালাইজ করুন, ফ্ল্যাট সংরক্ষণ করুন এবং শুধু প্রদর্শনের জন্য স্পেসগুলো ফিরিয়ে দিন।

ওপেন-সোর্স নোট: কোনো থার্ড-পার্টি লাইব্রেরি ছাড়াই ভ্যানিলা JavaScript-এ বাস্তবায়িত।

FAQ

একটি বৈধ চেকসাম কি অ্যাকাউন্টটি বিদ্যমান মানে?
না। চেকসাম শুধু প্রমাণ করে স্ট্রিংটি অভ্যন্তরীণভাবে সামঞ্জস্যপূর্ণ, তাই কিছু ভুল টাইপ করা বা স্থানান্তরিত হয়নি। এর পেছনের অ্যাকাউন্টটি বন্ধ থাকতে পারে বা কখনোই বিদ্যমান ছিল না। শুধু গ্রহণকারী ব্যাংক নিশ্চিত করতে পারে একটি IBAN সক্রিয়।
IBAN-গুলোর দৈর্ঘ্য ভিন্ন কেন?
কারণ প্রথম চারটি অক্ষরের পরের অংশটি দেশের বিদ্যমান দেশীয় অ্যাকাউন্ট নম্বর, এবং সেগুলো IBAN বিদ্যমান হওয়ার অনেক আগেই জাতীয়ভাবে মানদণ্ড করা হয়েছিল। প্রতিটি দেশ SWIFT-এর কাছে নিজস্ব নির্দিষ্ট দৈর্ঘ্য নিবন্ধন করেছে, নরওয়েতে 15 অক্ষর থেকে সেন্ট লুসিয়ায় 32 পর্যন্ত।
আমার কি স্পেসসহ একটি IBAN সংরক্ষণ করা উচিত?
না। ইলেকট্রনিক ফর্ম সংরক্ষণ করুন, যা স্পেস বা বিরামচিহ্ন ছাড়া একটি অবিচ্ছিন্ন স্ট্রিং, এবং পেমেন্ট সিস্টেমগুলোর প্রত্যাশাও তা-ই। চারে-চারে বিন্যাসটি সম্পূর্ণরূপে একটি প্রিন্ট রীতি, তাই রেন্ডার করার সময় এটি যোগ করুন এবং ইনপুটে মুছে ফেলুন।
BBAN অংশটি কী?
বেসিক ব্যাংক অ্যাকাউন্ট নম্বর, যা দেশের কোড এবং চেক ডিজিটের পরে যা কিছু। এর অভ্যন্তরীণ কাঠামো দেশ-নির্দিষ্ট এবং প্রায়ই একটি ব্যাংক শনাক্তকারী, একটি ব্রাঞ্চ কোড এবং অ্যাকাউন্ট নম্বর এনকোড করে, কখনো কখনো নিজস্ব জাতীয় চেক ডিজিটসহ।
আমার IBAN কি একটি সার্ভারে পাঠানো হয়?
না। দৈর্ঘ্য লুকআপ এবং MOD 97-10 গণনা উভয়ই আপনার ব্রাউজারে চলে, এবং পৃষ্ঠাটি আপনার ইনপুট নিয়ে কোনো নেটওয়ার্ক রিকোয়েস্ট সম্পাদন করে না। আপনি সংযোগ বিচ্ছিন্ন করলেও টুলটি কাজ করে।
সঠিক সংখ্যক অক্ষর থাকা সত্ত্বেও আমার IBAN ব্যর্থ হচ্ছে কেন?
প্রায় সবসময় একটি ভুল টাইপ করা বা বদলানো অক্ষরের কারণে। MOD 97-10 প্রতিটি একক-অঙ্কের ত্রুটি এবং প্রতিটি সংলগ্ন ট্রান্সপোজিশন ধরে, তাই সঠিক দৈর্ঘ্যে চেকসাম ব্যর্থতা মানে একটি অক্ষর এখানে নেই। উৎসটি পুনরায় পড়ুন, বিশেষ করে যেখানে 0 এবং O বা 1 এবং I বিভ্রান্ত করা সহজ।