The invoice must contain a unique identifier ("UUID") (KSA-1) given by the unit that issued the document (unique message identifier for interchange process). This value must contain only letters, digits, and dashes.
ماذا يعني هذا؟
كل مستند يحمل معرّفين يسهل الخلط بينهما. رقم الفاتورة (BT-1) هو التسلسل الذي تطبعه على الورقة ويذكره العميل. أما الـ UUID (الحقل KSA-1) فمعرّف تقني للمستند نفسه في التبادل مع الهيئة: لا يقرؤه أحد، ووجوده ليُشار إلى مستند بعينه بلا لبس.
والقاعدة تفحص أمرين معًا: أن يكون الحقل موجودًا، وألا تحتوي قيمته إلا حروفًا وأرقامًا وشرطات. والصيغة المتعارف عليها للـ UUID تحقّق الشرطين: 36 خانة على هيئة 8-4-4-4-12 من الأرقام الستّ عشرية تفصل بينها شرطات، مثل f6e1c7b4-3a0d-4a3e-9f2b-1d8c5e4a7b90.
مستند واحد، معرّف واحد. الفاتورة والإشعار الدائن والإشعار المدين ثلاثة مستندات لها ثلاث قيم؛ ويبقى المستند على القيمة التي أُنشئ بها.
لماذا يحدث؟
مرتّبة من الأشيع إلى الأقل شيوعًا — الأرجح أن سببك في الأول أو الثاني.
- XML مبني على ملف مثال بقي فيه UUID المثال كما هو — فتخرج المستندات كلها بالقيمة نفسها.
- توليد المعرّف مرة واحدة عند إقلاع النظام أو في ملف الإعدادات، ثم إعادة استخدام المتغيّر طوال التشغيل.
-
كتابة رقم الفاتورة في الحقل:
INV-2026/0042يسقط بسبب الشرطة المائلة، وINV_42يسقط بسبب الشرطة السفلية لأنها ليست شرطة. -
تغليف القيمة: بادئة
urn:uuid:، أو الأقواس المعقوفة التي تنتجهاGuid.ToString("B")في .NET — النقطتان والأقواس خارج المسموح. -
قيمة مؤقتة نُسيت من الاختبار مثل
00000000-0000-0000-0000-000000000000: تمرّ من شرط الحروف ولا تعرّف شيئًا، وهي أخفى هذه الأسباب.
كيف تصلحه
3 خطوات، ثم أعد إرسال الفاتورة.
-
1
ولّد معرّفًا لكل مستند لحظة إنشائه
ولّد UUID من النوع الرابع (v4) عند إنشاء سجل المستند، واحفظه في السجل، وأرسل القيمة المحفوظة. أما التوليد لحظة الإرسال فيعني أن كل إعادة محاولة تعطي المستند نفسه معرّفًا مختلفًا.
-
2
أرسله مجرّدًا
36 خانة بحروف صغيرة وشرطات: بلا بادئة
urn:uuid:، وبلا أقواس، وبلا مسافات حوله. وصيغةNفي .NET (32 خانة بلا شرطات) تمرّ من شرط الحروف لكنها ليست الصيغة المتعارف عليها؛ المطلوب صيغةD. -
3
أبقِ رقم الفاتورة في حقله
الحقل BT-1 هو مكان
INV-2026-0042، وعدّاد الفاتورة (KSA-16) حقل ثالث لا يقبل غير الأرقام — راجع BR-KSA-34. ثلاثة حقول، ثلاث وظائف، ولا قيمة مشتركة بينها.
بعد التصحيح أعد إرسال الفاتورة. الفاتورة المرفوضة لم تُسجَّل عند الهيئة، فلا تحتاج إشعارًا دائنًا — أرسل الفاتورة الصحيحة نفسها.
هل يمنعه ZATCA Tools؟
نعم، ولا سبيل للوصول إليه من عندنا: ZATCA Tools يولّد UUID من النوع الرابع عند إنشاء سجل المستند — فاتورةً كان أو إشعارًا دائنًا أو مدينًا — ويحفظه ويرسل القيمة المحفوظة. ولا تقبل شاشة ولا حقل في الـ API معرّفًا من الخارج، فلا يتكرر ولا تنكسر صيغته. وهذه الصفحة لمن يبني الربط بنفسه أو يستخدم حلًّا آخر يولّد الـ XML.
أكواد لها علاقة
أسئلة شائعة
هل الـ UUID هو رقم الفاتورة؟ +
هل أستطيع استخدام رقم متسلسل من عندي بدل UUID؟ +
رُفضت فاتورتي — أعيد الإرسال بالمعرّف نفسه أم بجديد؟ +
ZATCA Tools يبني التوقيع والبصمة والعدّاد والترميز عنك، ويتحقق من البيانات قبل الإرسال. مجاني بالكامل حاليًا، وبدون بطاقة ائتمانية.
ابدأ مجانًا