الدليل الكامل لرقم شبا — البنية، التحقق، والاستعلام
ممّ يتكوّن شبا، كيف تتحقق منه دون الاتصال بالبنك، ماذا يقول استعلام شبا تحديداً وماذا لا يقول، وخمسة أخطاء تُرجع أكبر عدد من الحوالات.
شبا (رقم الحساب البنكي الإيراني) هو النسخة الإيرانية من معيار IBAN العالمي. هدفه بسيط: معرّف فريد لكل حساب بنكي على مستوى البلد، بدلاً من أرقام حسابات كانت كل جهة بنكية تصدرها بطريقتها ولا تحمل معنى واضحاً بين البنوك.
بالنسبة لشركة الصرافة، شبا ليس مجرد حقل في نموذج. الخطأ فيه يعني أن الحوالة سترتدّ (في أحسن الأحوال) أو ستذهب إلى حساب خاطئ (في أسوأ الأحوال). هذا الدليل هو ما يجب أن يعرفه فريقك.
بنية شبا
شبا الإيراني يتكوّن من 26 محرفاً: حرفا IR ثم 24 رقماً. لا أكثر ولا أقل.
- رمز الدولة: دائماً
IR. - أرقام التحقق: رقمان يُشتقّان حسابياً من بقية الرقم. وظيفتهما شيء واحد فقط: التقاط أخطاء الإدخال. إذا أخطأت في رقم واحد، فلن تتطابق هذه الأرقام.
- رمز البنك: ثلاثة أرقام تحدد البنك.
- معرّف الحساب: 19 رقماً يخصصها البنك نفسه. إذا كان رقم الحساب أقصر، يُستكمل بـ أصفار من اليسار — وهذه الأصفار جزء من شبا، وليست للزينة.
ملاحظة عملية: رمز البنك يخبرك هل الحوالة داخلية (نفس البنك، فورية ومن دون رسوم) أم بين بنكية (بايا/ساتنا، بوقت ورسوم مختلفة). هذا التشخيص وحده يصنع الفرق بين «وصلت الآن» و«وصلت غداً».
مثال على رموز بنكية شائعة الاستخدام
| الكود | البنك |
|---|---|
| 012 | ملت |
| 015 | سپه |
| 016 | كشاورزي |
| 017 | ملي إيران |
| 018 | تجارت |
| 019 | صادرات إيران |
| 021 | پست بنك |
| 054 | پارسيان |
| 055 | اقتصاد نوين |
| 056 | سامان |
| 057 | پاسارگاد |
هذه القائمة ليست كاملة وتتغير أيضاً — اندماجات البنوك تُخرج بعض الأكواد من الخدمة. خذ القائمة المرجعية من البنك المركزي، وإذا كانت مضمّنة بشكل ثابت في برنامجك فحدّثها مرة واحدة سنوياً.
التحقق: قبل أي اتصال، افحصه بنفسك
تُنشأ أرقام التحقق في شبا بخوارزمية MOD-97-10 القياسية (من ISO 7064). جمال الفكرة أنك لا تحتاج إلى أي خدمة أو إنترنت للتحقق منها — يمكن تنفيذها حتى على الورق:
- خذ أول أربعة محارف (
IR+ رقما التحقق) وانقلها إلى نهاية الرقم. - حوّل الحروف إلى أرقام:
A=10,B=11, …I=18, …R=27, …Z=35. لذلكIRتصبح1827. - الآن لديك رقم كبير جداً. احسب باقي قسمته على 97.
- إذا كان الباقي يساوي 1 تماماً، فشبا صحيح بنيوياً. أي رقم آخر يعني أنه خاطئ.
لأن الرقم أكبر من سعة الأعداد الصحيحة المعتادة، يتم الحساب عملياً رقماً برقْم:
function shebaValid(string $sheba): bool
{
$s = strtoupper(preg_replace('/[\s-]/', '', $sheba));
if (! preg_match('/^IR[0-9]{24}$/', $s)) {
return false; // طول أو صيغة غير صحيحة
}
$re = substr($s, 4).substr($s, 0, 4); // نقل أول أربعة محارف إلى النهاية
$num = '';
foreach (str_split($re) as $ch) {
$num .= ctype_alpha($ch) ? (string) (ord($ch) - 55) : $ch;
}
$rem = 0; // mod 97 رقماً برقْم
foreach (str_split($num) as $d) {
$rem = ($rem * 10 + (int) $d) % 97;
}
return $rem === 1;
}
هذه الأسطر العشرة تلتقط معظم أخطاء الإدخال قبل أن تدفع أي تكلفة. إذا كنت تستخدم خدمة استعلام مدفوعة، نفّذ هذا الفحص دائماً أولاً؛ إرسال شبا بصيغة خاطئة إلى الخدمة يعني أنك تدفع لتسمع «خاطئ».
لكن انتبه: كونه صحيحاً يعني أن «هذا الرقم يمكن أن يكون شبا» — وليس أن «هذا الحساب موجود». يمكن إنشاء شبا صحيح تماماً لا يرتبط بأي حساب. لمعرفة وجود الحساب وصاحبه، لا يوجد طريق غير الاستعلام.
ماذا يقول استعلام شبا؟
الاستعلام يعيد عادةً ثلاثة أشياء:
- اسم صاحب الحساب — أهم جزء.
- اسم البنك — تأكيد لرمز البنك.
- قابلية الاستلام — بعض الحسابات (المجمّدة، الراكدة، أو أنواع خاصة) لا تقبل الإيداع. معرفة ذلك قبل الإرسال تعني حوالة مرتجعة أقل.
بالنسبة لشركة الصرافة، اسم صاحب الحساب ليس مجرد راحة؛ بل رقابة حقيقية:
- مطابقة الاسم مع العميل. إذا كان العميل «رضا أحمدي» وشبا باسم شخص آخر، فأنت تحتاج إلى سؤال. أحياناً تكون الإجابة بسيطة وصحيحة (حساب الزوجة، حساب الشركة). وأحياناً لا.
- الأخطاء الصامتة. شبا الذي بنيته صحيحة لكنه يخص شخصاً آخر لا يعطي أي خطأ. المال يذهب، واسترجاعه بعد ذلك لم يعد مسألة فنية — بل مسألة قانونية.
- أثر الامتثال. تسجيل أن «وقت تسجيل هذه الحوالة كان شبا باسم فلان» جزء من ملف KYC لديك. بعد ثلاثة أشهر، عندما يسأل أحدهم لماذا نُفذت هذه الحوالة، لديك جواب.
خمسة أخطاء تُرجع أكبر عدد من الحوالات
- الأصفار الأولى المفقودة. إذا كانت تلك الأرقام الـ19 تبدأ بصفر وتم إدخال شبا في Excel، فإن Excel «ينظّف» الأصفار ويفسد شبا. احتفظ بشبا دائماً كنص، لا كرقم. (هنا أيضاً Excel يخرّب بصمت.)
- الأرقام الفارسية والعربية. العميل ينسخ من الهاتف فتصل
۱۲۳وليس123. للعين هما شيء واحد؛ أما للنظام البنكي فهما شيئان مختلفان تماماً. قم دائماً بتوحيد المدخلات إلى أرقام لاتينية. IRناقصة أو مكررة. بعض الأنظمة تضيفIRتلقائياً، والعميل أضافها أيضاً:IRIR…. طبّع المدخل، لا ترفضه.- المسافات والشرطة والمحارف غير المرئية. النسخ من واتساب يجلب غالباً محارف اتجاه (RTL/LTR) لا تُرى لكنها تكسر السلسلة. احذف كل شيء عدا
0-9وIR. Iبدلاً من1وOبدلاً من0. يحدث ذلك عندما يُقرأ شبا من ورقة أو صورة. تحقق MOD-97 يلتقط هذا — بشرط أن تنفذه.
القاعدة العامة: طبّع المدخل، ثم تحقق منه، ثم استعلم عنه. بهذا الترتيب. معظم «أخطاء شبا» هي في الحقيقة أخطاء تطبيع، لا أخطاء من العميل.
هل يمكن تحويل رقم الحساب إلى شبا؟
نصفياً. لكل بنك قاعدته الخاصة في تكوين الأرقام الـ19 من رقم الحساب، وهذه القواعد ليست رسمية ولا مستقرة. المحولات المتاحة على الإنترنت تعمل غالباً بالهندسة العكسية، وتعطي نتائج خاطئة لبعض أنواع الحسابات.
التوصية العملية: خذ شبا من العميل نفسه (متاح في تطبيق البنك وفي خدمات التحويل بالبطاقة) ثم نفّذ الاستعلام. إنشاء شبا بالمعادلة وإرسال المال بناءً عليه مخاطرة لا تستحق.
هذا العمل ليس مكانه اليدوي
استعلام شبا عمل يجب أن يتم بصمت وفي المكان الصحيح، لا أن يفتح الموظف تبويباً آخر وينسخ ويلصق.
في نكستو، عندما تخرج من حقل شبا في نموذج الحوالة البنكية، يتم التحقق المحلي فوراً، وإذا كان صحيحاً يذهب الاستعلام وتُعبأ تلقائياً خانتا اسم صاحب الحساب والبنك — مع مؤشر أخضر أو أحمر. لا يفعل الموظف شيئاً سوى النظر. ولأن النتيجة تُخزّن مؤقتاً، فإن إعادة الاستعلام عن شبا نفسه من شركة الصرافة نفسها لا تضيف تكلفة.
النتيجة العملية: الرقابة التي تتم تلقائياً تتم دائماً. الرقابة اليدوية تُتجاوز تحديداً في أكثر الأيام ازدحاماً — اليوم الذي تكون فيه أهم ما يكون.
الخلاصة
لشبا ثلاث طبقات، وكلها لازمة: التطبيع (المحارف الزائدة والأرقام غير اللاتينية)، التحقق (MOD-97، مجاني ومن دون اتصال)، والاستعلام (وجود الحساب وصاحبه، والطريق الوحيد لمعرفة إلى أين سيذهب المال).
يمكنك إضافة الأوليين إلى نظامك اليوم ومن دون أي تكلفة. الثالثة تكلفتها بسيطة، وفي المقابل تقلل الحوالات المرتجعة، والأخطاء المكلفة، وأسئلة الامتثال التي لا جواب لها.
شاهد كل هذا داخل نكستو
نسخة كاملة وخاصة مع بيانات نموذجية — بدون تثبيت وبدون بطاقة بنكية.
إنشاء تجريبي مجاني