بررسی صحت شبا فقط شمردن ارقام نیست. ممکن است شمارهای ۲۶ کاراکتر داشته باشد، با
IR شروع شود و حتی کد بانک معتبری داشته باشد، اما از نظر رقمهای کنترلی نامعتبر باشد.
از طرف دیگر، حتی شبای الگوریتمیمعتبر لزوماً متعلق به شخص یا حساب موردنظر شما نیست.
اعتبارسنجی شماره شبا
شبا را وارد کنید تا ساختار، طول و الگوریتم MOD-97 همینجا بررسی شود.
شماره شبا معتبر چیست؟
شبای ایران از ۲۶ کاراکتر تشکیل میشود: دو حرف IR و ۲۴ رقم.
جزئیات ساختار را در
راهنمای شماره شبا
هم میتوانید ببینید.
IR + CC + BBB + A + NNNNNNNNNNNNNNNNNN
| بخش | معنی |
|---|---|
IR | کد کشور ایران |
CC | دو رقم کنترلی |
BBB | کد بانک |
A | شناسه نوع حساب |
N… | ۱۸ رقم بخش حساب |
2 حرف + 24 رقم = 26 کاراکتر
چگونه در نگاه اول صحت شبا را بررسی کنیم؟
۱. شبا باید با IR شروع شود
IR12...
بهتر است دقیقاً با حروف لاتین بزرگ IR وارد شود.
۲. شبا باید ۲۶ کاراکتر داشته باشد
دو کاراکتر اول حروف و ۲۴ کاراکتر بعدی رقماند. فاصلههای نمایشی بخشی از شماره نیستند و هنگام اعتبارسنجی باید حذف شوند:
IR12 0123 4567 8901 2345 6789 01
۳. بعد از IR فقط رقم
IRXXXXXXXXXXXXXXXXXXXXXXXX
اگر بعد از IR حرف دیگری باشد، ساختار نامعتبر است.
۴. کد بانک را بررسی کنید
IR CC BBB ...
↑
کد بانک
سه رقم بعد از رقم کنترل، کد بانک است. اگر شبا را برای بانک خاصی گرفتهاید، باید با همان بانک بخواند. تفاوت کارت، حساب و شبا را در این مقاله ببینید.
مهمترین مرحله: رقمهای کنترلی
دو رقم کنترلی بعد از IR با استاندارد IBAN و روش MOD-97 محاسبه میشوند تا خطاهای ورود شماره تا حد زیادی شناسایی شوند.
الگوریتم MOD-97 چیست؟
چهار کاراکتر اول (IRCC) به انتهای شماره منتقل میشوند:
IRCCBBBB... → BBBB...IRCC
حروف به عدد تبدیل میشوند:
I = 18 R = 27 → IR = 1827
سپس عدد حاصل بر ۹۷ تقسیم میشود. اگر باقیمانده = ۱ باشد، شبا از نظر MOD-97 معتبر است.
مراحل خلاصه
- چهار کاراکتر اول را به انتها ببرید.
- حروف
IRرا به عدد تبدیل کنید. - محاسبه کنید:
عدد mod 97 - اگر نتیجه ۱ بود، از نظر الگوریتمی معتبر است.
برای شناسایی خطاهایی مثل حذف رقم، تغییر رقم یا جابهجایی. این لایه تشخیص خطاست، نه تضمین مقصد تراکنش.
چرا رقمبهرقم محاسبه کنیم؟
عدد کامل شبا خیلی بزرگ است و ممکن است دقت عددی از بین برود. روش امن:
remainder = 0 برای هر رقم: remainder = (remainder × 10 + digit) mod 97 در پایان: remainder باید 1 باشد
آیا معتبر بودن MOD-97 یعنی شبا واقعی است؟
خیر. فقط میگوید شماره از نظر ساختاری و رقم کنترل با استاندارد سازگار است. هنوز نمیدانید حساب وجود دارد، فعال است، مال شخص موردنظر است یا امکان دریافت وجه دارد.
ممکن است شبای معتبر شخص دیگری را داشته باشید. اعتبار ساختاری با صحت اطلاعات مقصد فرق دارد.
شبا از نظر ساختاری معتبر است
↓
اما
↓
شبای حساب موردنظر شما نیست
چگونه مطمئن شویم شبا مال شخص درست است؟
برای مبالغ مهم، علاوه بر اعتبارسنجی ساختاری، نام صاحب حساب مقصد را در سامانه انتقال بررسی کنید. اگر نام نمیخواند، ادامه ندهید.
از روی خود شبا نمیتوان نام، موجودی یا گردش حساب را فهمید؛ شبا فقط شناسه استاندارد حساب است.
اعتبارسنجی آنلاین در برابر دستی
ابزار آنلاین (مثل باکس بالای همین صفحه) باید حداقل طول، کد کشور، ساختار، کد بانک، رقم کنترل و MOD-97 را چک کند. پیام «معتبر است» فقط ساختاری است.
بدون اینترنت هم میتوانید IR، طول ۲۶، ۲۴ رقم، کد بانک و در نهایت MOD-97 را خودتان بررسی کنید.
پیادهسازی در نرمافزار و اکسل
1. حذف فاصلهها و کاراکترهای اضافی 2. تبدیل به حروف بزرگ 3. بررسی شروع با IR 4. بررسی طول 26 5. بررسی عدد بودن 24 کاراکتر بعدی 6. انتقال چهار کاراکتر اول به انتها 7. تبدیل حروف به عدد 8. محاسبه MOD-97 رقمبهرقم 9. باقیمانده باید 1 باشد
این منطق را میتوان در Python، JavaScript، PHP، Java، C# یا Dart پیاده کرد. در اکسل هم ممکن است، اما بهخاطر اعداد بزرگ بهتر است رقمبهرقم کار کنید.
اگر یک رقم عوض یا جابهجا شود؟
در بسیاری از موارد MOD-97 رد میشود. جابهجایی دو رقم هم معمولاً لو میرود. با این حال اعتبارسنجی، سیستم تشخیص خطاست نه احراز هویت مالک.
آیا شبای الگوریتمیمعتبر میتواند وجود نداشته باشد؟
بله. حتی با IR درست، کد بانک درست و MOD-97 = 1 نمیتوان فقط از روی شماره گفت حساب واقعاً وجود دارد یا فعال است.
با بررسی شبا میتوان فهمید حساب فعال است؟
صرفاً با خود شماره، خیر. برای وجود، فعال بودن، قابلیت دریافت و مالک، به استعلام بانکی نیاز است.
تفاوت اعتبارسنجی شبا و استعلام شبا
| اعتبارسنجی (Validation) | استعلام بانکی (Inquiry) |
|---|---|
| ساختار، طول، IR، کد بانک، رقم کنترل، MOD-97 | اطلاعات حساب از منبع بانکی (مثل نام صاحب حساب در صورت پشتیبانی) |
| بدون نیاز به داده بانکی زنده | نیاز به سرویس بانکی/مجاز |
Validation ≠ Bank Inquiry
هنگام دریافت شبا از دیگران چه کنیم؟
- شبا را از روی پیام کپی کنید تا خطای تایپ کم شود.
- فاصلههای نمایشی را حذف کنید.
- طول ۲۶ و شروع با IR را چک کنید.
- اعتبار ساختاری و MOD-97 را اجرا کنید.
- نام گیرنده را در سامانه انتقال تطبیق دهید.
- برای مبالغ بالا دقت بیشتری داشته باشید.
اگر شبا نامعتبر بود چه کنیم؟
حدس نزنید و رقم کنترل را دستی عوض نکنید. راهنمای کامل رفع خطا: شماره شبا نامعتبر است؛ علت و اصلاح.
IR، حذف/اشتباه رقم، فاصله اضافی و منبع شماره را چک کنید. بهترین کار: دوباره از صاحب حساب یا منبع رسمی کپی کنید. شبا را حدس نزنید یا با تغییر یک رقم «درست» نکنید؛ ممکن است چند شماره معتبر وجود داشته باشد که مال حساب شما نباشد.
آیا اعتبارسنجی جلوی انتقال اشتباه را میگیرد؟
خطای ساختاری را کم میکند، اما اگر شبای معتبر شخص دیگری را وارد کنید، الگوریتم معمولاً مشکلی نمیبیند. اگر وجه به حساب اشتباه رفت: واریز به شماره شبا اشتباه.
- خطای ساختاری: رقم کنترل غلط — با اعتبارسنجی قابل تشخیص
- خطای مقصد: شبای معتبر شخص دیگر — فقط با بررسی صاحب حساب
کاربرد برای کسبوکارها
فرمهای بانکی، حقوق و دستمزد، حسابداری، فروشگاه آنلاین، اپ انتقال وجه و APIها همگی از اعتبارسنجی اولیه سود میبرند تا داده غلط کمتر وارد سیستم شود.
کارت دارید و شبا میخواهید؟
بعد از اعتبارسنجی، میتوانید با شبایار کارت را به شبا تبدیل کنید — نسخه وب یا اپ اندروید.
چکلیست سریع بررسی صحت شماره شبا
- با
IRشروع میشود. - مجموعاً ۲۶ کاراکتر دارد.
- بعد از IR فقط عدد است.
- کد بانک با بانک موردنظر میخواند.
- ارقام کنترلی / MOD-97 نتیجه ۱ دارد.
- در صورت امکان نام صاحب حساب تطبیق شده است.
- شماره از منبع معتبر آمده است.
جمعبندی
بین اعتبار ساختاری و صحت اطلاعات حساب فرق بگذارید:
۲۶ کاراکتر
↓
شروع با IR
↓
۲۴ رقم
↓
کد بانک معتبر
↓
رقمهای کنترلی معتبر
↓
MOD-97 = 1
اعتبارسنجی شبا میگوید «این شماره از نظر ساختاری درست است.» استعلام بانکی میتواند بگوید «این شماره واقعاً به چه حسابی مربوط است.»
برای پیدا کردن شبا، چگونه شماره شبا را پیدا کنیم؟ را ببینید؛ برای تفاوت شناسهها هم تفاوت کارت، حساب و شبا مفید است.
سؤالات متداول درباره صحت شماره شبا
چگونه بفهمیم شماره شبا درست است؟
طول و ساختار را بررسی کنید و رقم کنترل را با MOD-97 چک کنید. باقیمانده تقسیم بر ۹۷ باید ۱ باشد.
شماره شبا چند رقم دارد؟
۲۶ کاراکتر: دو حرف IR و ۲۴ رقم — نه ۲۶ رقم خالص.
رقم کنترل شبا چیست؟
دو رقم بعد از IR برای بررسی صحت ساختار در استاندارد IBAN.
MOD-97 در شبا چیست؟
الگوریتم استاندارد اعتبارسنجی IBAN؛ پس از جابهجایی چهار کاراکتر اول و تبدیل حروف، باقیمانده باید ۱ باشد.
آیا شبا با ۲۶ رقم معتبر است؟
خیر؛ دو حرف اول IR است. همچنین فقط طول کافی نیست.
آیا شبای معتبر حتماً وجود دارد؟
خیر. ممکن است الگوریتمی معتبر باشد ولی حساب وجود نداشته باشد یا مال فرد دیگری باشد.
آیا از روی شبا میتوان نام صاحب حساب را فهمید؟
از روی خود شماره خیر؛ نیاز به سرویس بانکی/استعلام مجاز است.
آیا اعتبارسنجی جلوی اشتباه انتقال را میگیرد؟
خطاهای تایپی و ساختاری را کم میکند، اما تضمین نمیکند گیرنده همان فرد موردنظر است.
اگر شبا نامعتبر باشد چه کنیم؟
حدس نزنید؛ دوباره از صاحب حساب یا منبع رسمی بانکی بگیرید. جزئیات: شماره شبا نامعتبر است.
آیا جابهجایی دو رقم قابل تشخیص است؟
در بسیاری از موارد بله، اما اعتبارسنجی تضمین همه خطاها نیست.
آیا میتوان شبا را دستی بررسی کرد؟
بله؛ طول، IR، ارقام، کد بانک و MOD-97. برای روزمره ابزار خودکار سریعتر است.