يفحص مطابق ملف XML للفاتورة الإلكترونية في المرحلة الثانية قبل إرساله: تحقق مسبق وفق متطلبات هيئة الزكاة والضريبة والجمارك المنشورة، لا اعتماداً من الهيئة. وتشرح هذه الصفحة قاعدة واحدة هي BR-KSA-CL-02.
خمس عمليات فحص شهرياً في باقة المجان. يُفحص الملف في الذاكرة ولا يُحفظ.
الرسالة كما تنشرها هيئة الزكاة والضريبة والجمارك
[BR-KSA-CL-02]-All currencyID attributes (BT-5) must have the same value as the invoice currency code (BT-5), except for the invoice total VAT amount in accounting currency (BT-111).
ما الذي يذكره مطابق
مدخل لكل حالة تُذكر فيها هذه القاعدة في التقرير.
صورة القيمة في التقرير
صورة القيمة التي وُجدت — empty وnot_15_digits وما شابههما — لا القيمة نفسها.
مبلغ بلا عملة
صورة القيمة في التقريرcurrency_id_missingالمبلغ بلا عملة
ما الخلل
أحد عناصر المبالغ، سواء مبلغ بند أو خصم أو رسم أو إجمالي أو مبلغ في التفصيل الضريبي، لا يحمل السمة currencyID. فترفض هيئة الزكاة والضريبة والجمارك المستند بموجب القاعدة BR-KSA-CL-02، وهي تشترط أن تكون السمة currencyID في كل مبلغ هي عملة الفاتورة. ويرصد فحص المخطط العنصر نفسه، لأن UBL يشترط هذه السمة.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
اكتب السمة currencyID في كل عنصر من عناصر المبالغ بالرمز نفسه الذي في cbc:DocumentCurrencyCode. وتغيب في العادة عن مبلغ يكتبه جزء آخر من التصدير، وكثيراً ما يكون الخصومات أو الرسوم أو ضريبة البنود.
عملة أحد المبالغ ليست عملة الفاتورة
صورة القيمة في التقريرcurrency_id_not_invoice_currencyعملة المبلغ ليست عملة الفاتورة
ما الخلل
أحد عناصر المبالغ يحمل في السمة currencyID رمزاً غير الذي في cbc:DocumentCurrencyCode. فترفض هيئة الزكاة والضريبة والجمارك المستند بموجب القاعدة BR-KSA-CL-02: فكل مبلغ يجب أن يكون بعملة الفاتورة إلا العنصر cbc:TaxAmount الواقع مباشرة تحت كل كتلة cac:TaxTotal، وهو موضع إجمالي ضريبة القيمة المضافة بعملة المحاسبة (BT-111).
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
في الفاتورة الصادرة بالريال تكون كل قيم currencyID هي SAR. وفي الفاتورة بعملة أخرى تكون مبالغ البنود والخصومات والرسوم والتفصيل والإجماليات بتلك العملة، ولا يكون بالريال إلا إجمالي الضريبة بعملة المحاسبة. والسبب المعتاد تصدير يكتب SAR في بعض المبالغ أياً كانت عملة المستند، أو يكتب عملة المستند فيها كلها.
الفحص الذي يُنفَّذ
منقول حرفياً من ملفات قواعد التحقق التي تنشرها الهيئة، عند الملف والسطر المذكورين أدناه. والتعبير المُنفَّذ هو ما يُقيَّم على المستند، أما التعبير المذكور في التقرير فهو ما يظهر عند الإخفاق، وهما لا يتطابقان دائماً.
التعبير المُنفَّذ
not(exists(@currencyID) and matches(normalize-space(//cbc:DocumentCurrencyCode), @currencyID) and (@currencyID !='') )
كما يرد في الإصدار 3.4.8 من حزمة أدوات التطوير SDK التي تنشرها الهيئة: النسخة المقتبسة هنا هي الملف الذي يتضمنه ذلك الإصدار بايتاً ببايت. والتاريخ في اسم الملف هو الاسم الذي تعطيه الهيئة للملف، أما القواعد فيه فهي قواعد الإصدار 3.4.8.
مثال عملي
مستند اصطناعي من مجموعة الاختبار المقيسة تُرصد عليه هذه القاعدة، تُعرض منه الأسطر التي يختلف فيها عن مستند اجتاز الفحص. ولا يذكر تقرير مطابق سوى صورة القيمة، لا القيمة نفسها.