يفحص مطابق ملف XML للفاتورة الإلكترونية في المرحلة الثانية قبل إرساله: تحقق مسبق وفق متطلبات هيئة الزكاة والضريبة والجمارك المنشورة، لا اعتماداً من الهيئة. وتشرح هذه الصفحة قاعدة واحدة هي BR-KSA-33.
خمس عمليات فحص شهرياً في باقة المجان. يُفحص الملف في الذاكرة ولا يُحفظ.
الرسالة كما تنشرها هيئة الزكاة والضريبة والجمارك
[BR-KSA-33]-Each invoice must have an invoice counter value (KSA-16).
ما الذي يذكره مطابق
مدخل لكل حالة تُذكر فيها هذه القاعدة في التقرير.
صورة القيمة في التقرير
صورة القيمة التي وُجدت — empty وnot_15_digits وما شابههما — لا القيمة نفسها.
قيمة عدّاد الفواتير غير موجودة
صورة القيمة في التقريرicv_reference_missingمرجع عدّاد الفواتير غير موجود
ما الخلل
لا يحمل المستند أي عنصر cac:AdditionalDocumentReference قيمة cbc:ID فيه هي ICV، فهو لا يذكر قيمة عدّاد الفواتير KSA-16. وتشترط هيئة الزكاة والضريبة والجمارك أن تحمل كل فاتورة هذه القيمة بموجب القاعدة BR-KSA-33. والعدّاد هو الرقم المتسلسل لهذا المستند ضمن السلسلة المتصلة الخاصة بالجهاز أو النظام المُصدِر، وهو ما يتيح للهيئة معرفة ما إذا كانت فاتورة من السلسلة مفقودة.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
يُكتب العدّاد في كتلة مرجع مستند خاصة به: عنصر cac:AdditionalDocumentReference قيمة cbc:ID فيه هي النص ICV حرفياً، ويحمل عنصر cbc:UUID فيه قيمة العدّاد. وهو ليس رقم الفاتورة BT-1، ولا يُصفَّر لكل عميل ولا لكل فرع ولا لكل سنة، بل يزيد واحداً مع كل مستند يصدره الجهاز أو النظام، بما في ذلك الإشعارات الدائنة والمدينة. تحقّق من أن وحدة الفوترة الإلكترونية تحفظ هذا العدّاد وتكتب الكتلة؛ فالوحدة المضبوطة على المرحلة الأولى لا تفعل ذلك غالباً.
كتلة مرجع عدّاد الفواتير لا تحمل قيمة
صورة القيمة في التقريرno_reference_uuidالمرجع لا يحمل قيمة
ما الخلل
يحمل المستند عنصر cac:AdditionalDocumentReference معرَّفاً بـ ICV، لكن لا يحمل أي مرجع مستند عند جذر الفاتورة عنصر cbc:UUID غير فارغ، فكتلة العدّاد موجودة والعدّاد نفسه غير موجود. ويخفق المستند في هذه الحالة لدى هيئة الزكاة والضريبة والجمارك بموجب القاعدة BR-KSA-33 التي تشترط المرجع والقيمة معاً.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
يوضع العدّاد في العنصر cbc:UUID داخل كتلة مرجع ICV، والعنصر الفارغ يُعامل معاملة العنصر الغائب تماماً. ويعني ذلك عادةً أن الكتلة تُكتب من قالب يكتب المعرِّف ICV دون شرط بينما يأتي العدّاد نفسه من حقل لم يُملأ قط، فتحقّق من القيمة التي يقرؤها الربط لا من كون الكتلة تُنتَج فحسب. والعدّاد يزيد واحداً مع كل مستند يصدره الجهاز أو النظام المُصدِر.
الفحص الذي يُنفَّذ
منقول حرفياً من ملفات قواعد التحقق التي تنشرها الهيئة، عند الملف والسطر المذكورين أدناه. والتعبير المُنفَّذ هو ما يُقيَّم على المستند، أما التعبير المذكور في التقرير فهو ما يظهر عند الإخفاق، وهما لا يتطابقان دائماً.
التعبير المُنفَّذ
not((cac:AdditionalDocumentReference[normalize-space(cbc:ID) = 'ICV'] and (cac:AdditionalDocumentReference/cbc:UUID) != ''))
التعبير المذكور في التقرير
(cac:AdditionalDocumentReference[normalize-space(cbc:ID) = 'ICV'] and (cac:AdditionalDocumentReference/cbc:UUID) != '')
كما يرد في الإصدار 3.4.8 من حزمة أدوات التطوير SDK التي تنشرها الهيئة: النسخة المقتبسة هنا هي الملف الذي يتضمنه ذلك الإصدار بايتاً ببايت. والتاريخ في اسم الملف هو الاسم الذي تعطيه الهيئة للملف، أما القواعد فيه فهي قواعد الإصدار 3.4.8.
مثال عملي
مستند اصطناعي من مجموعة الاختبار المقيسة تُرصد عليه هذه القاعدة، تُعرض منه الأسطر التي يختلف فيها عن مستند اجتاز الفحص. ولا يذكر تقرير مطابق سوى صورة القيمة، لا القيمة نفسها.