ما هو رقم الآيبان (IBAN)؟

رقم الآيبان (IBAN، اختصار International Bank Account Number، أي رقم الحساب المصرفي الدولي) هو الطريقة القياسية لكتابة رقم الحساب المصرفي بحيث يصلح عبر الحدود: رمز دولة من حرفين، ثم رقمان للتحقق، ثم رقم الحساب بالتخطيط الخاص بتلك الدولة. فالآيبان السعودي مثلاً طوله 24 خانة ويبدأ بـ SA، كما في ⁦SA03 8000 0000 6080 1016 7519⁩، وهو المثال الوارد في سجل IBAN الذي تنشره SWIFT. يحدد المعيار ⁦ISO 13616⁩ البنية، وتُسجَّل صيغة كل دولة لدى SWIFT، ويتيح رقما التحقق لأي نظام أن يكتشف الآيبان المكتوب خطأً قبل أن تتحرك الأموال.

يشرح هذا الدليل كل جزء من أجزاء الآيبان، والصيغة السعودية والقواعد التي يضعها لها البنك المركزي السعودي (ساما)، وكيف يُحسب رقما التحقق بطريقة ⁦MOD-97⁩، وما الذي تثبته نتيجة «صالح» وما لا تثبته. ولأن الموقع يُعنى باختبار البرمجيات، فهو يعرض بعد ذلك كيف تختبر حقل إدخال الآيبان، وأي أرقام آيبان للاختبار آمنة الاستخدام، ثم يختم بقائمة تحقق جاهزة للنسخ. وأداة فحص الآيبان تنفّذ كل الفحوص الموصوفة هنا داخل متصفحك.

ما هو الآيبان وأين تصادفه

الآيبان يعرّف حساباً مصرفياً واحداً. وقد صُمم لكي تُعالَج المدفوعات آلياً: يستطيع البنك الذي يستقبل حوالة أن يتحقق من الرقم ويوجّهها دون أن يقرأه أحد، ويصلح التخطيط نفسه على الورق أيضاً. يحدد المعيار ⁦ISO 13616-1:2020⁩ عناصر الآيبان، أما صيغة كل دولة فليست في المعيار نفسه، بل في سجل IBAN الذي تنشره SWIFT بصفتها جهة التسجيل التي عيّنتها ISO. ولا يحق طلب تسجيل صيغة دولة أو تعديلها إلا لهيئة المواصفات الوطنية فيها أو لبنكها المركزي، لذا فالسجل هو المرجع الرسمي الوحيد للأطوال والتخطيطات.

المملكة العربية السعودية وسائر دول الخليج ومصر والأردن وباكستان ودول أوروبا وغيرها كثير مسجّلة في السجل. أما الولايات المتحدة وكندا وأستراليا والهند فليست فيه: تُعرَّف الحسابات هناك برقم الحساب مع رموز البنك أو الفرع، فلا يوجد آيبان لحساب هندي أو أمريكي. وإن كنت تعمل في السعودية أو الإمارات فلحساب راتبك هناك آيبان يبدأ بـ SA أو AE.

والآيبان ليس رمز SWIFT. فرمز BIC (رمز تعريف الأعمال، المعيار ⁦ISO 9362⁩)، الذي يسميه الناس غالباً «رمز السويفت»، يعرّف بنكاً أو مؤسسة أخرى لا حساباً: ثماني خانات تتكون من بادئة الجهة ورمز الدولة ولاحقة، ويمكن أن تُضاف إليها ثلاث خانات اختيارية لرمز الفرع. وقد تطلب الحوالة الدولية الاثنين معاً — يحدد BIC المؤسسة، ويحدد الآيبان الحساب. ولا يحتوي أي منهما على اسم صاحب الحساب. وفي البرمجيات يظهر الآيبان في مواضع كثيرة:

  • نماذج التسجيل والرواتب والموارد البشرية التي تطلب حساب الراتب أو حساب استلام المبالغ.
  • سجلات الموردين والمستفيدين في أنظمة تخطيط الموارد والمحاسبة والمشتريات، والفواتير التي تطبع آيبان البائع.
  • مسارات الاسترداد والسحب وصرف المستحقات في التجارة الإلكترونية والمحافظ الرقمية والأسواق الإلكترونية.
  • ملفات المدفوعات الجماعية والرواتب التي تُعدّها الشركة لبنكها.
  • واجهات API التي تستقبل آيبان المستفيد وتمرره إلى بنك أو مزوّد خدمات دفع.

جرّبها: فحص رقم الآيبان (IBAN)

بنية الآيبان: رمز الدولة ورقما التحقق ورقم الحساب الوطني

لكل آيبان الأجزاء الثلاثة نفسها. رمز الدولة هو رمز ⁦ISO 3166-1⁩ المكوّن من حرفين للدولة التي يتبع الآيبان صيغتها (SA وAE وDE). يليه رقما التحقق اللذان يحميان الرقم كله من أخطاء الكتابة. والباقي هو رقم الحساب الوطني الأساسي (BBAN)، الذي تسجّل كل دولة طوله وتخطيطه. ويكتب السجل التخطيط بترميز مختصر: n للأرقام، وa للحروف الإنجليزية الكبيرة، وc للحروف أو الأرقام، والعدد المتبوع بعلامة ! لعدد ثابت، فالتخطيط ⁦2!n18!c⁩ يعني رقمين بالضبط تليهما 18 خانة بالضبط من الحروف أو الأرقام. ويحدد السجل كذلك موضع رمز البنك داخل BBAN، وموضع رمز الفرع في بعض الدول، مثل رمز الفرز (Sort code) البريطاني.

الطول ثابت داخل الدولة الواحدة لكنه يختلف من دولة إلى أخرى: 15 خانة للنرويج، و22 لألمانيا والمملكة المتحدة، و23 للإمارات، و24 للسعودية وباكستان، و29 لمصر وقطر، و30 للكويت والأردن، و33 لروسيا. ويسمح ⁦ISO 13616⁩ بحد أقصى قدره 34 خانة. لذلك يحتاج فحص الطول إلى معرفة الدولة أولاً، والحقل المحدود بـ 24 خانة للآيبان السعودي يقتطع كل آيبان كويتي أو قطري.

للآيبان صيغتان مكتوبتان. الصيغة الإلكترونية بلا مسافات، وهي التي تُخزَّن وتُقارَن وتُرسَل إلى الأنظمة الأخرى. والصيغة المطبوعة تقسّمه إلى مجموعات من أربع خانات تفصل بينها مسافات، وقد تكون المجموعة الأخيرة أقصر، ليسهل على الناس قراءته ونسخه؛ وعلى الورق كثيراً ما تسبقه كلمة IBAN. والصيغتان آيبان واحد، فعلى البرنامج أن يقبل أياً منهما وأن يخزّن الصيغة الإلكترونية.

One IBAN, two forms (the SWIFT IBAN Registry example for Saudi Arabia)
Electronic   SA0380000000608010167519no spaces: store, compare and send this
Print        SA03 8000 0000 6080 1016 7519groups of four: show and print this

SA  03  80  000000608010167519
SA                      country code (ISO 3166-1 alpha-2)
    03                  check digits, 02 to 98 (ISO/IEC 7064 MOD 97-10)
        80              bank code: 2 digits (2!n), characters 5-6
            000000608010167519   account number: 18 letters or digits (18!c)

National formats in the SWIFT IBAN Registry, with the registry's own example IBANs
Country               Length  BBAN layout   Bank codeExample
Norway (NO)           15      4!n6!n1!n     characters 5-8NO9386011117947
Germany (DE)          22      8!n10!n       characters 5-12DE89370400440532013000
United Kingdom (GB)   22      4!a6!n8!n     characters 5-8GB29NWBK60161331926819 (sort code 9-14)
United Arab Emirates  23      3!n16!n       characters 5-7AE070331234567890123456
Saudi Arabia (SA)     24      2!n18!c       characters 5-6SA0380000000608010167519
Pakistan (PK)         24      4!a16!c       characters 5-8PK36SCBL0000001123456702
Egypt (EG)            29      4!n4!n17!n    characters 5-8EG380019000500000000263180002
Qatar (QA)            29      4!a21!c       characters 5-8QA58DOHB00001234567890ABCDEFG
Kuwait (KW)           30      4!a22!c       characters 5-8KW81CBKU0000000000001234560101

Layout notation: n = digits, a = upper-case letters, c = letters or digits;
a number with ! = exactly that many. 2!n18!c = exactly 2 digits, then exactly 18 letters or digits.

جرّبها: فحص رقم الآيبان (IBAN)

الآيبان السعودي: 24 خانة تبدأ بـ SA

طول الآيبان السعودي 24 خانة، ويبدأ دائماً بـ SA: رقمان للتحقق، ثم رمز بنك من رقمين، ثم رقم حساب من 18 خانة (التخطيط في السجل ⁦2!n18!c⁩). رمز البنك هو الخانتان الخامسة والسادسة، ففي مثال السجل ⁦SA03 8000 0000 6080 1016 7519⁩ رقما التحقق 03، ورمز البنك 80، وجزء الحساب ⁦000000608010167519⁩. وليس في الصيغة السعودية رمز فرع منفصل، ويعرّف السجل جزء الحساب بأنه حروف أو أرقام، فالحقل الذي لا يقبل بعد SA إلا أرقاماً أشد صرامة من السجل.

وينظم البنك المركزي السعودي (ساما) أيضاً طريقة عرض البنوك للآيبان على عملائها. فتعميمه الصادر عام 2009 بشأن صيغ طباعة الآيبان (Printed IBAN Account Formats) يطلب من البنوك طباعته في كشوف الحساب ومراسلات العملاء الأخرى في مجموعات من أربع خانات تفصل بين كل مجموعة وأخرى مسافة أو شرطة، بينما يبقى الآيبان الإلكتروني بلا فواصل. ويتيح تعميم صادر عام 2010 للبنوك أن تزوّد عملاءها بالآيبان في شهادة على ورق البنك الرسمي، أو في الجزء الخاص بالبنك من نموذج المطالبات، تجنباً للأخطاء التي تنشأ عن إدخاله يدوياً. ويترتب على ذلك في الاختبار أن المستخدمين في السعودية سيلصقون الآيبان بمسافات وبشرطات، وأن النموذج الذي يرفض أياً منهما يرفض ما طبعه بنك سعودي.

آيبانك الشخصي يأتي من بنكك: يُخصَّص لحسابك ويظهر في تطبيق البنك وكشوف الحساب وشهادة الآيبان. ولا يستطيع أي موقع أن يولّد آيباناً شخصياً. فالمولّد يُنتج أرقاماً سليمة البنية، وهذا مفيد لاختبار البرمجيات، وعديم الفائدة — بل ضار — لاستقبال الأموال. وهذه نقاط ينبغي تغطيتها حين يخدم المنتج مستخدمين في السعودية:

  • 24 خانة بالضبط تبدأ بـ SA، بالصيغة الإلكترونية وبالصيغة المطبوعة مع المسافات أو الشرطات.
  • الواجهات العربية: يجب أن يبقى الآيبان من اليسار إلى اليمين داخل النص العربي، على الشاشة وفي رسائل البريد وملفات PDF، وأن يُنسخ قيمةً واحدة متصلة.
  • الأرقام العربية المشرقية (٠١٢٣٤٥٦٧٨٩) المكتوبة بلوحة مفاتيح عربية: حوّلها إلى الأرقام ⁦0–9⁩ أو بيّن بوضوح أنها غير مقبولة.
  • إذا طلب النموذج اختيار البنك أيضاً، فاختبر ما يحدث حين يختلف البنك المختار عن رمز البنك داخل الآيبان.
  • رسائل خطأ بالعربية تسمّي القاعدة التي فشلت — الطول أو المحارف أو رقمي التحقق — بدلاً من عبارة عامة مثل «غير صالح».

جرّبها: فحص رقم الآيبان (IBAN) جرّبها: مولّد IBAN للاختبار

كيف يعمل رقما التحقق بطريقة MOD-97

يُحسب رقما التحقق بطريقة ⁦MOD 97-10⁩ من المعيار ⁦ISO/IEC 7064⁩، وهو عائلة من أنظمة محارف التحقق صُممت لكشف الأخطاء التي يقع فيها الناس عند نسخ البيانات أو إدخالها. لفحص آيبان: احذف المسافات، وانقل الخانات الأربع الأولى (رمز الدولة ورقمي التحقق) إلى النهاية، وحوّل كل حرف إلى رقمين ⁦(A = 10, B = 11 … Z = 35)⁩، ثم اقرأ الناتج عدداً واحداً كبيراً واقسمه على 97. فإذا كان الباقي 1، فرقما التحقق يطابقان بقية الآيبان.

ويُجري البنك الذي يُصدر الآيبان الحساب نفسه بالاتجاه المعاكس: يضع 00 مكان رقمي التحقق، ويحسب الباقي، ثم يطرحه من 98. لهذا يقع رقما التحقق الحقيقيان دائماً بين 02 و98. والقيم 00 و01 و99 لا تُصدَر أبداً، ومع ذلك قد تعطي باقياً قدره 1، لأن 99 تكافئ 02 في القسمة على 97، و00 تكافئ 97، و01 تكافئ 98. لذا يجب أن يتحقق المدقق من النطاق ومن الباقي معاً.

العدد أكبر من أن تحتمله الحسابات العادية: يصبح الآيبان السعودي عدداً من 26 رقماً، والكويتي من 36 رقماً، والقطري من 42 رقماً. والعدد العشري ذو 64 بت لا يحفظ إلا نحو 15 إلى 17 رقماً معنوياً، فالتعبير ⁦Number(…) % 97⁩ في JavaScript، أو أي عدد من نوع double في أي لغة، يعطي باقياً خاطئاً — 27 بدلاً من 1 في المثال السعودي. استخدم نوع الأعداد الصحيحة الكبيرة (BigInt في JavaScript، وBigInteger في Java و⁦.NET⁩، وint في Python)، أو احسب الباقي على أجزاء: خذ أول تسعة أرقام، وضع باقيها مكانها، وألحق به الأرقام التالية، وكرّر.

MOD-97 check of SA0380000000608010167519 (ISO/IEC 7064 MOD 97-10)

1. Remove spaces, make upper case          SA0380000000608010167519
2. Move the first 4 characters to the end  80000000608010167519SA03
3. Letters to numbers (A = 10 ... Z = 35)  S = 28, A = 10
                                           80000000608010167519 28 10 03
                                           -> 80000000608010167519281003 (26 digits)
4. Remainder after dividing by 97          80000000608010167519281003 mod 97 = 1
5. Remainder 1: the check digits match the rest of the IBAN

The same remainder in pieces, nine digits at a time (no big-number type needed)
800000006 mod 97 = 72     first nine digits
720801016 mod 97 = 30     72 followed by the next seven digits
307519281 mod 97 = 84     30 followed by the next seven digits
84003     mod 97 = 1      84 followed by the last three digits

How the check digits 03 were computed when the IBAN was issued
80000000608010167519 + SA + 00 -> 80000000608010167519281000
80000000608010167519281000 mod 97 = 95, check digits = 98 - 95 = 03

The precision trap (JavaScript; the same happens with any 64-bit float)
Number("80000000608010167519281003") % 97   -> 27   wrong: 26 digits exceed a double
BigInt("80000000608010167519281003") % 97n  -> 1n   right

جرّبها: فحص رقم الآيبان (IBAN)

ما الذي يثبته الآيبان الصالح وما لا يثبته

النتيجة «صالح» تعني أن الآيبان سليم البنية: رمز دولة موجود في السجل، والطول والتخطيط الصحيحان لتلك الدولة، ورقما تحقق مطابقان. وعند تجربة أمثلة سجل SWIFT لعشر دول، كشف فحص ⁦MOD-97⁩ كل حالة وُضع فيها رقم مكان رقم آخر أو حرف مكان حرف آخر، وكل تبديل بين محرفين متجاورين مختلفين، بما يتفق مع ما ينص عليه ⁦ISO/IEC 7064⁩ لهذه الأنظمة؛ أما حين يكون محرفان خاطئين في آن واحد، فقد اجتاز الفحص أقل بقليل من تنويع واحد في كل مئة. وينص ⁦ISO/IEC 7064⁩ كذلك على ما ليس الفحص مصمماً له: فهو يستثني كشف التزوير المتعمد، لأن أي شخص يستطيع حساب رقمي تحقق صحيحين لأي رقم حساب.

ففحص البنية هو البوابة الأولى الصحيحة — يوقف أخطاء الكتابة قبل أن تُرفض الدفعة أو تُعاد — لكنه ليس تحققاً من الحساب. الآيبان الصالح لا يستطيع أن يخبرك:

  • أن الحساب موجود أو مفتوح أو قادر على استقبال الأموال: الحساب المغلق له آيبان صالح تماماً.
  • من صاحبه: الآيبان لا يحتوي على اسم. تأكد من المستفيد مع الطرف الذي ستدفع له، أو عبر بنكك عند إضافة المستفيد.
  • اسم البنك: رمز البنك موجود داخل الآيبان، لكن تحويله إلى اسم أو إلى BIC يحتاج إلى دليل بنوك محدَّث.
  • أن رقم الحساب الوطني صحيح: كثير من الدول تضيف أرقام تحقق خاصة بها داخل BBAN (مثل مفتاح RIB الفرنسي ورمز CIN الإيطالي)، ولا يغطيها فحص ⁦MOD-97⁩.
  • أن الدفع آمن: كثيراً ما يأتي احتيال الفواتير برسالة تعلن «آيباناً جديداً» لمورّد معروف، وهذا الآيبان يجتاز كل الفحوص. تأكد من أي تغيير عبر رقم أو قناة تثق بها مسبقاً.
What the MOD-97 check caught on the SWIFT registry examples
(SA, AE, KW, QA, EG, JO, BH, GB, DE, FR; every variation of each example tried)

One digit replaced by another digit                 all caught
One letter replaced by another letter               all caught
Two different neighbouring characters swapped       all 190 caught
Two characters replaced at once                     0.94% still pass (sample of 159,504)
A wrong account with check digits computed for it   passes: the check is not a security control

SA0380000000608010167519    remainder 1    valid
SA0380000000608010167518    remainder 71   last digit mistyped: invalid
SA0380000000608010167159    remainder 78   5 and 1 swapped: invalid

جرّبها: فحص رقم الآيبان (IBAN)

كيف تختبر حقل إدخال الآيبان

حقل الآيبان مُدخل صغير وراءه قائمة طويلة من الشروط. اختبره على ثلاثة مستويات: المُدخل (ما يكتبه المستخدمون ويلصقونه)، والتحقق (كل قاعدة على حدة، مع رسالة تبيّن أيها فشل)، وما يحدث بعد ذلك (التخزين والعرض، ثم الدفع نفسه في بيئة اختبار). اكتب النتيجة المتوقعة لكل حالة قبل تنفيذها. وبعض الحالات — الشرطات، وكلمة IBAN في البداية، والأرقام العربية المشرقية — قرارات تخص المنتج لا عيوباً إلى أن يحسمها أحد، فاطرحها أسئلةً أثناء مراجعة المتطلبات.

  • المدخلات الصالحة: كل دولة يدعمها المنتج، بالصيغة الإلكترونية والمطبوعة، وبالحروف الكبيرة والصغيرة.
  • التوحيد (Normalization): المسافات، وكلمة IBAN، والشرطات، والمحارف غير المرئية المنسوخة من ملفات PDF وتطبيقات المحادثة، والأرقام المحلية.
  • فشل كل قاعدة وحدها: خانة ناقصة وخانة زائدة، وحرف حيث يشترط السجل أرقاماً، ورقم مكتوب خطأً، وتبديل محرفين متجاورين، ورقما تحقق 00 أو 01 أو 99، ورمز دولة بلا صيغة آيبان، ودولة لا يخدمها النشاط التجاري.
  • القيم الحدّية: أقصر دولة مدعومة وأطولها، و34 خانة، والحقل الفارغ، واللصق الطويل جداً.
  • الرسائل: سمِّ القاعدة التي فشلت، واحتفظ بما أدخله المستخدم، ولا تردّ على خطأ في البنية بعبارة «الحساب غير موجود».
  • جهة الخادم: واجهة API واستيراد الملفات والرفع الجماعي تطبّق القواعد نفسها؛ فالفحص في المتصفح وسيلة راحة لا ضابط حماية.
  • العرض والخصوصية: مجموعات من أربع خانات على الشاشة؛ وإخفاء جزء من الآيبان في السجلات ورسائل البريد والتحليلات، وعدم وضعه في عناوين URL أبداً.
IBAN field test cases: expected results for a form that accepts Saudi and foreign IBANs

Input                                       Expected
SA0380000000608010167519                    accepted
sa03 8000 0000 6080 1016 7519               accepted, stored as SA0380000000608010167519
IBAN SA03 8000 0000 6080 1016 7519          label removed and accepted, or a message (decide)
SA03-8000-0000-6080-1016-7519               dashes removed and accepted, or a message (decide)
SA03 8000 0000 6080 1016 751٩               Arabic-Indic digit read as 9, or a message (decide)
SA0380000000608010167519 + zero-width space accepted after removing the invisible character
SA0380000000608010167518                    rejected: check digits do not match (typo)
SA0380000000608010167159                    rejected: check digits do not match (5 and 1 swapped)
SA038000000060801016751                     rejected: 23 characters, a Saudi IBAN has 24
SAO380000000608010167519                    rejected: letter O where the check digits must be digits
check digits 00, 01 or 99                   rejected, even when the remainder is 1
US or IN followed by digits                 rejected: no IBAN format registered for the country
GB29NWBK60161331926819                      accepted if foreign IBANs are allowed, else "Saudi IBAN required"
KW81CBKU0000000000001234560101              accepted: 30 characters, so no Saudi-only maxlength
(empty)                                     "IBAN is required" when the field is mandatory

Shape checks with regular expressions (they cannot verify the check digits)
Any IBAN, electronic form   ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$
Saudi IBAN                  ^SA[0-9]{4}[A-Z0-9]{18}$
UAE IBAN                    ^AE[0-9]{21}$

جرّبها: فحص رقم الآيبان (IBAN) جرّبها: أداة اختبار Regex جرّبها: مولّد Regex

أرقام آيبان للاختبار: أمثلة السجل والمولّدات وبيئات الاختبار

آيبان الاختبار، أو الآيبان الصالح للاختبار، أو الآيبان الوهمي، رقمٌ يقبله المدقق ويكون استخدامه آمناً في بيئة اختبار. يستطيع التعبير النمطي (Regex) أن يفحص شكله — كالأنماط السابقة — لا رقمي التحقق، لذا يجب أن تأتي بيانات الاختبار من مصدر يحسبهما. وهناك ثلاثة مصادر، لكل منها عمل مختلف:

  • أمثلة السجل: يقدّم سجل IBAN مثالاً واحداً لكل دولة، مثل ⁦SA0380000000608010167519⁩ و⁦DE89370400440532013000⁩ و⁦GB29NWBK60161331926819⁩. إنها بيانات توثيقية يجب أن يقبلها كل مدقق، وهذا يجعلها القيم الثابتة المناسبة لاختبارات الوحدات وللفحص اليدوي السريع.
  • الأرقام المولَّدة: يبني المولّد أرقام آيبان بالطول والتخطيط ورقمي التحقق الصحيحة، لتوفير الكمية والتنوع — مئات الصفوف لعدة دول، مع صفوف برقمي تحقق خاطئين عمداً للاختبارات السلبية. ويستخدم مولّد أرقام الآيبان للاختبار رموز بنوك حرفية وهمية (TEST وDEMO وMOCK) حيث يكون رمز البنك في الدولة حروفاً؛ أما رموز البنوك الرقمية فعشوائية وقد تطابق بنكاً حقيقياً، فقد يكون الرقم المولَّد، مصادفةً، حساباً حقيقياً.
  • حسابات بيئة الاختبار (Sandbox): لاختبار تحويل فعلي، استخدم حسابات الاختبار التي يوثّقها البنك أو مزوّد خدمات الدفع الذي تستدعي بيئته التجريبية. فتلك البيئة وحدها تعرف كيف تتصرف حساباتها — قبولاً أو رفضاً أو إعادة.

جرّبها: مولّد IBAN للاختبار جرّبها: فحص رقم الآيبان (IBAN)

قائمة تحقق لاختبار الآيبان والأخطاء الشائعة

لا ترسل أموالاً أبداً إلى آيبان من أمثلة السجل أو إلى آيبان مولَّد، ولا تنسخ آيبان زميل أو عميل حقيقياً إلى بيانات الاختبار: فهو بيانات مالية شخصية، والقيم المولَّدة أو المُقنَّعة تؤدي الغرض نفسه. انسخ قائمة التحقق إلى خطة الاختبار أو إلى معايير قبول القصة، واشطب ما لا ينطبق. وهذه الأخطاء تسمح لعيوب الآيبان بالمرور:

  • طول واحد لكل الدول: الحقل أو النمط المكتوب للآيبان السعودي يرفض كل آيبان كويتي وقطري ومصري.
  • الحساب بالأعداد العشرية في فحص ⁦MOD-97⁩: بواقٍ خاطئة للأعداد التي تبلغ 17 رقماً فأكثر، فيُرفض آيبان صالح ويُقبل آيبان غير صالح.
  • إغفال فحص النطاق: رقما التحقق 00 و01 و99 يجتازان اختبار الباقي.
  • رفض ما تطبعه البنوك: المسافات والشرطات والحروف الصغيرة وكلمة IBAN في البداية.
  • معاملة «صالح» كأنها «موثَّق»: علامة خضراء تقول «تم التحقق من الحساب» بعد فحص البنية فقط.
  • التحقق في المتصفح وحده: الاستيراد وواجهات API تتجاوز الفحص.
  • أرقام آيبان حقيقية في بيانات الاختبار أو السجلات أو تقارير الأخطاء أو لقطات الشاشة.
IBAN field test checklist

Input
[ ] Spaces, lower case and a leading "IBAN" label accepted and normalized
[ ] Dashes and other separators: removed, or rejected with a clear message
[ ] Arabic-Indic and other native digits: converted to 0-9, or rejected clearly
[ ] Invisible characters from copy and paste (zero-width space, direction marks) removed
[ ] 34 characters plus spaces fit; a longer paste is handled, not silently cut

Validation
[ ] Country code is in the IBAN registry and allowed by the business rule
[ ] Length matches the country (SA 24, AE 23, DE 22, GB 22, QA 29, KW 30 ...)
[ ] BBAN layout matches the registry (digits where digits are required)
[ ] Check digits between 02 and 98, and the MOD-97 remainder is 1
[ ] Big-integer or piecewise arithmetic, never a 64-bit float
[ ] The same rules on the server, for the API and for file imports
[ ] The message names the rule that failed and keeps what the user typed

Storage and display
[ ] Stored in electronic form (no spaces, upper case)
[ ] Shown in groups of four; left to right inside Arabic text
[ ] Masked where the full IBAN is not needed (logs, e-mails, screenshots, analytics)

Beyond the format
[ ] "Valid" never shown as "account verified"
[ ] A change to a saved IBAN confirmed through a channel the owner already uses
[ ] Transfers tested only in the bank's or payment provider's sandbox
[ ] No real customer or employee IBAN in test data

جرّبها: فحص رقم الآيبان (IBAN)

الأسئلة الشائعة

ما هو رقم الآيبان؟

الآيبان (IBAN، رقم الحساب المصرفي الدولي) يعرّف حساباً مصرفياً واحداً بصيغة تصلح عبر الحدود: رمز دولة من حرفين، ورقمان للتحقق، ورقم الحساب الوطني (BBAN). يحدد المعيار ⁦ISO 13616⁩ البنية، وتسجّل كل دولة طول آيبانها وتخطيطه في سجل IBAN الذي تنشره SWIFT. ويبدو الآيبان السعودي هكذا: ⁦SA03 8000 0000 6080 1016 7519⁩.

كم عدد خانات رقم الآيبان؟

يعتمد ذلك على الدولة، وقد يحتوي الآيبان على حروف إلى جانب الأرقام. يسمح ⁦ISO 13616⁩ بحد أقصى قدره 34 خانة، ولكل دولة طول ثابت واحد: 24 للسعودية، و23 للإمارات، و22 لألمانيا والمملكة المتحدة، و29 لقطر ومصر، و30 للكويت والأردن، و15 للنرويج.

ما هو فحص MOD 97 في الآيبان؟

هو فحص ⁦MOD 97-10⁩ من المعيار ⁦ISO/IEC 7064⁩ الذي يحمي الآيبان من أخطاء الكتابة. انقل الخانات الأربع الأولى إلى النهاية، وحوّل الحروف إلى أرقام ⁦(A = 10 … Z = 35)⁩، واقسم العدد الناتج على 97: الآيبان الصحيح يترك باقياً قدره 1. ويُصدَر رقما التحقق على أنهما 98 مطروحاً منها الباقي المحسوب مع وضع 00 مكانهما، لذا يقعان دائماً بين 02 و98.

هل يوجد آيبان صالح أستخدمه للاختبار؟

نعم. يقدّم سجل IBAN مثالاً لكل دولة — مثل ⁦SA0380000000608010167519⁩ للسعودية و⁦DE89370400440532013000⁩ لألمانيا و⁦GB29NWBK60161331926819⁩ للمملكة المتحدة — ويجب أن يقبلها كل مدقق. ولعدد كبير من الصفوف استخدم مولّد أرقام آيبان للاختبار، وللتحويلات الفعلية استخدم حسابات الاختبار في البيئة التجريبية لبنكك أو لمزوّد خدمات الدفع. ولا ترسل أموالاً أبداً إلى آيبان اختبار.

هل يمكنني توليد آيبان شخصي في السعودية؟

لا. الآيبان الشخصي يخصصه بنكك لحسابك، وتجده في تطبيق البنك أو كشوف الحساب أو شهادة الآيبان. أما مولّد الآيبان فيُنشئ أرقاماً سليمة البنية لاختبار البرمجيات فقط: تجتاز فحص البنية لكنها ليست حسابك، وقد يعود رقم مولَّد عشوائياً إلى شخص آخر.

ما الفرق بين الآيبان ورمز السويفت؟

الآيبان يعرّف حساباً، أما رمز السويفت، واسمه الصحيح BIC ⁦(ISO 9362)⁩، فيعرّف بنكاً أو مؤسسة أخرى. يتكون BIC من 8 خانات مع 3 خانات اختيارية لرمز الفرع، ولا يحتوي على رقم حساب. وقد تطلب الحوالات الدولية الاثنين معاً.

هل يعني الآيبان الصالح أن الحساب موجود؟

لا. «صالح» تعني سليم البنية: دولة مسجّلة، والطول والتخطيط الصحيحان، ورقما تحقق مطابقان. والحساب المغلق، أو الحساب الخاطئ الذي حُسب له رقما تحقق، يجتاز الفحص كذلك. ووحده البنك الذي يدير الحساب يستطيع تأكيد وجوده ولمن يعود.

المراجع

  • ISO 13616-1:2020 — Financial services — International bank account number (IBAN) — Part 1: Structure of the IBANISO · 2020المعيار الدولي لرقم الآيبان: رمز دولة ورقمان للتحقق ورقم الحساب الوطني، صُمم للمعالجة الآلية ويصلح على الورق؛ وتحفظ SWIFT الصيغ الوطنية بصفتها جهة التسجيل.
  • IBAN RegistrySWIFTالسجل الرسمي لصيغ IBAN الوطنية (الطول والبنية وقواعد أرقام التحقق لكل دولة)، المُدار وفق ISO 13616.
  • ISO/IEC 7064:2003 — Information technology — Security techniques — Check character systemsISO/IEC · 2003أنظمة محارف التحقق، ومنها ⁦MOD 97-10⁩، التي تحمي السلاسل من أخطاء النسخ والإدخال — كل استبدال لمحرف واحد وكل تبديل تقريباً — ولا تكشف التزوير المتعمد بحكم تصميمها.
  • Printed IBAN Account Formats (circular 301000000391)البنك المركزي السعودي (ساما) · 2009يوجّه البنك المركزي السعودي البنوك إلى طباعة الآيبان لعملائها في مجموعات من أربع خانات تفصل بينها مسافة أو شرطات؛ أما الآيبان الإلكتروني فبلا فواصل.
  • Providing Bank Customers Their IBAN Numbers (circular 311000022538)البنك المركزي السعودي (ساما) · 2010يتيح البنك المركزي السعودي للبنوك تزويد العملاء بالآيبان في شهادة على ورق البنك الرسمي، أو في الجزء الخاص بالبنك من نموذج المطالبات، تجنباً لأخطاء إدخاله يدوياً.
  • Business Identifier Code (BIC)SWIFTرمز BIC ⁦(ISO 9362)⁩ الذي تصدره SWIFT بصفتها جهة التسجيل: رمز من 8 خانات لمؤسسة — بادئة الجهة ورمز الدولة واللاحقة — مع رمز فرع اختياري من 3 خانات؛ وهو يعرّف جهة لا حساباً.

الأدوات المذكورة في هذا الدليل

تحقّق من رقم الآيبان داخل متصفحك: الدولة والطول والصيغة الوطنية وفق سجل SWIFT لأرقام IBAN، ورقمَي التحقق بطريقة MOD-97، ورمز البنك والفرع داخل الرقم.

أدوات الويب المساعدة جديد

ولّد أرقاماً اختبارية بنمط IBAN بأرقام تحقق صالحة للسعودية والأردن والإمارات والمملكة المتحدة وألمانيا وغيرها — لاختبار التحقق فقط.

بيانات الاختبار

اختبر التعابير النمطية مباشرةً مع إبراز التطابقات ومجموعات الالتقاط ومعاينة الاستبدال.

أدوات مساعدة

أنشئ تعابير نمطية من مكتبة أنماط مختبَرة (البريد الإلكتروني، URL، IP، التواريخ، IBAN، أرقام الهواتف السعودية والأردنية…) ومن قواعد مخصصة.

أدوات مساعدة

كيف تساعدك متقن سوفت

أدلة أخرى

أدلة أخرى
أدوات مساعدة

التعابير النمطية (Regex) للمبتدئين

تعلّم Regex من الصفر: فئات الأحرف والمحددات الكمية والمراسي والمجموعات والأعلام، وأنماط جاهزة للبريد والهواتف والتواريخ، وكيفية الاختبار بأمان.

وقت القراءة 4 دقائق
تصميم الاختبارات

كيف تكتب حالات الاختبار (Test Cases)

كيف تكتب حالات اختبار موثوقة: الحقول التي تحتاجها كل حالة، ونموذج جاهز للنسخ، ومثال تسجيل الدخول، وتقنيات التصميم التي تكتشف الأخطاء الحقيقية.

وقت القراءة 4 دقائق
بيانات الاختبار

اختبار التوطين والتدويل

دليل اختبار التوطين: الفرق بين التدويل والتوطين، وجودة الترجمة، وصيغ الجمع، والتوطين الزائف، والتاريخ الهجري، والأرقام والعملات، واليونيكود والأتمتة.

وقت القراءة 13 دقائق
تصميم الاختبارات

ضمان جودة المنتج من البداية إلى النهاية

ما الذي يشمله ضمان الجودة الشامل — مراجعة المتطلبات وتصميم الاختبارات والاختبار الوظيفي واختبار الأداء والأمان وبوابات الإصدار والمقاييس — وكيف تنفّذه.

وقت القراءة 8 دقائق
الأتمتة

أتمتة اختبار واجهة المستخدم

أتمتة اختبار الواجهة عملياً: طبقات إطار العمل، وSelenium وPlaywright وCypress، والمحددات والانتظار والتأكيدات، وPage Objects، وبيانات الاختبار وCI.

وقت القراءة 13 دقائق
الأتمتة

استراتيجيات محددات العناصر

كيف تختار محددات اختبارات الواجهة: الدور والتسمية أولاً، ثم معرّفات الاختبار وCSS وXPath، مع المعرّفات الديناميكية وiframe وShadow DOM وقائمة تحقق.

وقت القراءة 10 دقائق