يفحص مطابق ملف XML للفاتورة الإلكترونية في المرحلة الثانية قبل إرساله: تحقق مسبق وفق متطلبات هيئة الزكاة والضريبة والجمارك المنشورة، لا اعتماداً من الهيئة. وتشرح هذه الصفحة قاعدة واحدة هي BR-04.
خمس عمليات فحص شهرياً في باقة المجان. يُفحص الملف في الذاكرة ولا يُحفظ.
الرسالة كما تنشرها هيئة الزكاة والضريبة والجمارك
[BR-04]-An Invoice shall have an Invoice type code (BT-3).
ما الذي يذكره مطابق
مدخل لكل حالة تُذكر فيها هذه القاعدة في التقرير.
صورة القيمة في التقرير
صورة القيمة التي وُجدت — empty وnot_15_digits وما شابههما — لا القيمة نفسها.
عنصر رمز نوع الفاتورة غير موجود
صورة القيمة في التقريرmissingالعنصر غير موجود
ما الخلل
لا يحتوي المستند على العنصر cbc:InvoiceTypeCode إطلاقاً. وتشترط القاعدة BR-04 في طبقة EN 16931 أن تحمل كل فاتورة رمز نوع الفاتورة BT-3، وهو ما يُعرِّف هيئة الزكاة والضريبة والجمارك بأن المستند فاتورة ضريبية أو إشعار مدين أو إشعار دائن، فالمستند الخالي من هذا العنصر مرفوض. ويسقط هنا حقلان معاً لا حقل واحد: فرمز نوع معاملة الفاتورة KSA-2، وهو الرمز المكوَّن من سبعة محارف مثل 0100000، يرد بوصفه السمة name على هذا العنصر نفسه، فلا سبيل إلى وجوده ما دام العنصر غائباً.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
راجع الربط في وحدة الفوترة الإلكترونية: نوع المستند موضعه المحتوى النصي للعنصر cbc:InvoiceTypeCode، أي 388 للفاتورة الضريبية، و381 لإشعار دائن، و383 لإشعار مدين، ويجب أن يُكتب معه رمز نوع معاملة الفاتورة في السمة name على العنصر نفسه. والأسباب الشائعة: قالب تصدير أُعدّ لنوع مستند ثم أُعيد استعماله لنوع آخر لم يُربط قط، أو ربط لا يكتب العنصر إلا عند نجاح البحث في جدول أنواع المستندات ويتجاوزه بصمت عند إخفاق البحث، أو حقل أُسقط لأنه عُدَّ اختيارياً. وتأكد من إخراج العنصر في كل نوع مستند يصدره نظامك، لا في الفاتورة الضريبية وحدها.
الفحص الذي يُنفَّذ
منقول حرفياً من ملفات قواعد التحقق التي تنشرها الهيئة، عند الملف والسطر المذكورين أدناه. والتعبير المُنفَّذ هو ما يُقيَّم على المستند، أما التعبير المذكور في التقرير فهو ما يظهر عند الإخفاق، وهما لا يتطابقان دائماً.
التعبير المُنفَّذ
not((exists(cbc:InvoiceTypeCode) and (cbc:InvoiceTypeCode) !='') or (exists(cbc:CreditNoteTypeCode) and (cbc:CreditNoteTypeCode) !=''))
التعبير المذكور في التقرير
(exists(cbc:InvoiceTypeCode) and (cbc:InvoiceTypeCode) !='') or (exists(cbc:CreditNoteTypeCode) and (cbc:CreditNoteTypeCode) !='')
العناصر التي يُقيَّم عليها
/ubl:Invoice | /cn:CreditNote
المصدر
vendor/zatca/schematron/CEN-EN16931-UBL.xsl:657
كما يرد في الإصدار 3.4.8 من حزمة أدوات التطوير SDK التي تنشرها الهيئة: النسخة المقتبسة هنا هي الملف الذي يتضمنه ذلك الإصدار بايتاً ببايت. والتاريخ في اسم الملف هو الاسم الذي تعطيه الهيئة للملف، أما القواعد فيه فهي قواعد الإصدار 3.4.8.
مثال عملي
مستند اصطناعي من مجموعة الاختبار المقيسة تُرصد عليه هذه القاعدة، تُعرض منه الأسطر التي يختلف فيها عن مستند اجتاز الفحص. ولا يذكر تقرير مطابق سوى صورة القيمة، لا القيمة نفسها.