The Buyer's contact phone number (BT-57) shall start with "0" or "+", followed by a maximum of 15 number and minimum 4 character after the "+" or "0" , if exist.
ماذا يعني هذا؟
الحقل اختياري: BT-57 هو هاتف جهة الاتصال عند المشتري، وموضعه cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:Telephone. القاعدة لا تطلب وجوده — «if exist» في نصّها — وإنما تحكم صيغته متى وُجد: المحرف الأول 0 أو +، ثم أرقام لا غير، لا أقل من أربعة ولا أكثر من خمسة عشر. فالرقم 0501234567 يمرّ، و+966501234567 يمرّ، و00966501234567 يمرّ لأنه يبدأ بصفر وبعده ثلاثة عشر رقمًا.
والذي يسقط ليس رقمًا خاطئًا بل رقمًا صحيحًا كُتب على غير هذه الصورة: +966 50 123 4567 بمسافاته، و050-123-4567 بشرطاته، و966501234567 بلا صفر ولا زائد، و(011) 4567890 بقوسيه. الرقم نفسه يصل صاحبه في كل هذه الصور، والقاعدة لا تقبل منها إلا واحدة. والحدّ الأعلى — خمسة عشر رقمًا بعد علامة الزائد — هو حدّ المعيار الدولي E.164 نفسه، فأي رقم دولي مكتوب بصيغته يمرّ.
ودرجته تحذير: الفاتورة تُقبل ويُسجَّل التحذير في warningMessages من الرد. لكن الرقم يبقى على مستند ضريبي موقَّع بصيغة أعلنت الهيئة أنها لا تقرؤها، وقسم الحسابات عند المشتري الذي يطابق بيانات الفاتورة بسجلاته يجد رقمًا يختلف حرفيًا عمّا عنده. والذي نقرؤه من المخطط المُصرَّف نصّ القاعدة ودرجتها لا شرط تنفيذها؛ فكلمة «number» في الرسالة نأخذها على أرقام ASCII من 0 إلى 9، والأرقام الهندية (٠٥٠) محارف أخرى لا نضمن أن المتحقّق يعدّها أرقامًا.
لماذا يحدث؟
مرتّبة من الأشيع إلى الأقل شيوعًا — الأرجح أن سببك في الأول أو الثاني.
-
المتجر الإلكتروني يرسل الجوال كما كتبه العميل عند الدفع — برمز دولة مفصول ومسافات، مثل
+966 50 123 4567— والنظام يمرّره إلى الـ XML بلا تنظيف. هذا أشيع سبب على الإطلاق. -
رمز الدولة بلا سابقة:
966501234567. بعض الأنظمة تخزّن الرقم بصيغة E.164 وتحذف علامة الزائد عند التخزين ثم لا تعيدها عند الإخراج. -
رقم بشرطات أو أقواس أو نقاط من نموذج يدوي، أو تحويلة مكتوبة بعده مثل
0114567890 ext 12. -
قالب يكتب عنصر الهاتف دائمًا ولو كان فارغًا:
<cbc:Telephone></cbc:Telephone>لا يبدأ بصفر ولا بزائد فيقع في القاعدة نفسها. الحقل الاختياري يُحذف عنصره كله لا يُترك فارغًا. - رقم بالأرقام الهندية، أو نص في حقل الهاتف أصلًا مثل «لا يوجد» أو «نفس رقم المكتب».
كيف تصلحه
4 خطوات، ثم أعد إرسال الفاتورة.
-
1
طبّع الرقم قبل كتابته
خطوة واحدة في مسار التصدير: احذف من الرقم كل ما ليس رقمًا، ثم أعد إليه سابقته. إن بدأ الأصل بعلامة الزائد أو بـ
00فاكتبه+ثم الأرقام؛ وإن بدأ بصفر واحد فاتركه كما هو؛ وإن جاء رمز الدولة عاريًا (966…) فضع قبله علامة الزائد. بأي لغة: احذف كل محرف خارج0-9واحفظ ما إذا كان الأصل قد بدأ بزائد. -
2
عُدّ الأرقام ثم قرّر: أرسل أو احذف
بعد السابقة عُدّ الأرقام: من 4 إلى 15 يُرسَل، وما عداه لا يُرسَل. الحقل اختياري، والعنصر المحذوف لا يطلق أي كود، بينما القيمة الخاطئة تطلق هذا التحذير على كل فاتورة لذلك المشتري. ولا تحاول إصلاح رقم ناقص بتخمين رمز الدولة؛ مستند بلا رقم خير من مستند برقم مخترَع.
-
3
لا تكتب العنصر فارغًا
إن لم يكن للمشتري هاتف فلا تكتب
cac:Contactأصلًا، أو اكتبه بما فيه فقط. العنصر الفارغ يقع في القاعدة ولا يفيد أحدًا. -
4
صحّح سجل المشتري لا الفاتورة المقبولة
الفاتورة التي قُبلت مع هذا التحذير صادرة وباقية في سلسلتك ولا تحتاج إشعارًا؛ التحذير لا يطلب إعادة إصدار. صحّح الرقم في سجل المشتري ليخرج صحيحًا في الفاتورة القادمة، وراجع معه بريده (BR-KSA-86) فالقاعدتان تخرجان معًا في العادة من المصدر نفسه.
هذا الكود لا يمنع القبول، فالفاتورة الحالية نظامية. صحّح البيانات لتختفي التحذيرات من الفواتير القادمة.
هل يمنعه ZATCA Tools؟
نعم، بطريقة تستحق أن تُعرف: الهاتف لا يُكتب في الـ XML أصلًا. ما نحفظه من جوال المشتري — من نموذج العميل أو ملف الاستيراد أو الـ API أو طلب المتجر المربوط، ومنه يُحفظ حتى عشرين محرفًا — يُطبع في خانة المشتري على PDF ويبقى في سجله كما كُتب، ولا يصل إلى عنصر BT-57 لأن المكتبة التي نبني بها طرف المشتري لا تعرف عنصر الاتصال. فلا صيغة للجوال عندنا يمكن أن تطلق هذا الكود. ولا نطبّع الرقم قبل طباعته: ما كتبته يُطبع كما كتبته. ومن يبني الـ XML بنفسه ويرسله بأداة أخرى فالتطبيع عليه.
أكواد لها علاقة
أسئلة شائعة
هل رُفضت فاتورتي بسبب هذا الكود؟ +
errorMessages لا في warningMessages. وطريقة قراءة الرد كاملًا في فاتورتي مرفوضة من الهيئة.ما الصيغة الآمنة لرقم سعودي؟ +
05XXXXXXXX — صفر ثم تسعة أرقام — أو +9665XXXXXXXX بعلامة الزائد ثم اثني عشر رقمًا. كلتاهما تمرّ. الذي لا يمرّ هو ما بينهما: 9665… بلا سابقة، أو أي مسافة أو شرطة داخل الرقم.هل يلزمني إرسال هاتف المشتري أصلًا؟ +
عميلي رقمه دولي طويل — هل يمرّ؟ +
هل تنطبق القاعدة نفسها على هاتف البائع؟ +
ZATCA Tools يبني التوقيع والبصمة والعدّاد والترميز عنك، ويتحقق من البيانات قبل الإرسال. ابدأ مجانًا، وبدون بطاقة ائتمانية.
ابدأ مجانًا