BR-CO-15لا يوجد إجمالي ضريبي مذكور بعملة الفاتورة نفسها

يفحص مطابق ملف XML للفاتورة الإلكترونية في المرحلة الثانية قبل إرساله: تحقق مسبق وفق متطلبات هيئة الزكاة والضريبة والجمارك المنشورة، لا اعتماداً من الهيئة. وتشرح هذه الصفحة قاعدة واحدة هي BR-CO-15.

افحص 5 فواتير مجاناً

خمس عمليات فحص شهرياً في باقة المجان. يُفحص الملف في الذاكرة ولا يُحفظ.

الرسالة كما تنشرها هيئة الزكاة والضريبة والجمارك

[BR-CO-15]-Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).

ما الذي يذكره مطابق

مدخل لكل حالة تُذكر فيها هذه القاعدة في التقرير.

صورة القيمة في التقرير
صورة القيمة التي وُجدت — empty وnot_15_digits وما شابههما — لا القيمة نفسها.

لا يوجد إجمالي ضريبي مذكور بعملة الفاتورة نفسها

صورة القيمة في التقريرno_tax_amount_in_document_currencyلا إجمالي ضريبي بعملة الفاتورة

ما الخلل

لا تحمل أي كتلة cac:TaxTotal على مستوى المستند عنصر cbc:TaxAmount سمته currencyID مطابقة لعملة الفاتورة في العنصر cbc:DocumentCurrencyCode. وتشترط القاعدة BR-CO-15 من معيار EN 16931، التي تنفّذها هيئة الزكاة والضريبة والجمارك، وجود إجمالي ضريبي واحد على الأقل مذكور بعملة المستند نفسها قبل أن تفحص الحساب أصلاً. وليست هذه ملاحظة على أرقامك: فقد تكون المبالغ صحيحة تماماً وتخفق هنا، لأن الخطأ في العملة الموسومة بها لا في المبالغ.

ما الذي تتحقق منه في وحدة الفوترة الإلكترونية

قارن شيئين: الرمز في العنصر cbc:DocumentCurrencyCode والسمة currencyID على العنصر cbc:TaxAmount على مستوى المستند. ويجب أن يكونا الرمز نفسه، وهو SAR في الفاتورة المحلية. ويعني هذا عادةً أن العملة مضبوطة في موضعين في نظامك، واحد للمستند وآخر للمبالغ، ولم يُضبط إلا أحدهما. ويظهر كذلك حين تكون عملة المستند نفسها ليست رمزاً تعرفه الهيئة، وعندئذ لا شيء يطابقها وذلك هو الخلل الذي يُعالَج أولاً.

الإجمالي شاملاً الضريبة غير مذكور في إجماليات المستند

صورة القيمة في التقريرtotal_missingالإجمالي غير موجود

ما الخلل

كتلة إجماليات المستند cac:LegalMonetaryTotal لا تحمل العنصر cbc:TaxInclusiveAmount. وهذا الحقل هو إجمالي الفاتورة شاملاً ضريبة القيمة المضافة BT-112، وتشترط القاعدة BR-CO-15 من معيار EN 16931، التي تنفّذها هيئة الزكاة والضريبة والجمارك، أن يكون هذا الحقل مساوياً للإجمالي قبل الضريبة مضافاً إليه المجاميع الفرعية الضريبية. ومع غياب القيمة لا يوجد ما يُقارَن فتخفق القاعدة.

ما الذي تتحقق منه في وحدة الفوترة الإلكترونية

راجع قالب التصدير في وحدة الفوترة الإلكترونية: يجب أن تحمل كتلة الإجماليات المبلغ قبل الضريبة والمبلغ شاملاً الضريبة والمبلغ المستحق، وهذا أكثرها إغفالاً لأنه يطابق المبلغ المستحق في الفاتورة التي لا دفعة مقدَّمة فيها. والعنصر مطلوب في مخطط UBL أيضاً، فالمستند في هذه الحالة تُرصد عليه هذه الملاحظة وملاحظة فحص المخطط معاً.

الإجمالي شاملاً الضريبة لا يساوي الإجمالي قبل الضريبة مضافاً إليه الضريبة

صورة القيمة في التقريرnot_exclusive_plus_subtotalsلا يساوي الإجمالي قبل الضريبة مضافاً إليه الضريبة

ما الخلل

العنصر cbc:TaxInclusiveAmount في كتلة cac:LegalMonetaryTotal ليس العنصر cbc:TaxExclusiveAmount مضافاً إليه مجموع مبالغ التفصيل الضريبي. وتجمع القاعدة BR-CO-15 من معيار EN 16931، التي تنفّذها هيئة الزكاة والضريبة والجمارك، الإجمالي قبل الضريبة إلى مبلغ cbc:TaxAmount في كل عنصر cac:TaxSubtotal، ثم تقرّب الناتج إلى منزلتين عشريتين وتشترط تطابقاً تاماً.

ما الذي تتحقق منه في وحدة الفوترة الإلكترونية

تأتي الأرقام الثلاثة عادةً من مواضع مختلفة، فابحث عن أيّها الخارج عن الصواب بدل تعديل الإجمالي ليوافق. والسبب المتكرّر أن تُحسب الضريبة لكل بند وتُقرَّب هناك بينما يُحسب التفصيل لكل فئة ضريبية: فالهيئة تجمع أولاً وتقرّب مرة واحدة، فقد يفترق التقريب على مستوى البند بهللة أو هللتين. وسبب آخر خصم على مستوى المستند طُبِّق بعد حساب الضريبة. ولاحظ أن هذه القاعدة تقرأ بنود التفصيل الضريبي، فالمستند الصحيحة إجمالياته والناقص تفصيله يخفق هنا أيضاً.

الفحص الذي يُنفَّذ

منقول حرفياً من ملفات قواعد التحقق التي تنشرها الهيئة، عند الملف والسطر المذكورين أدناه. والتعبير المُنفَّذ هو ما يُقيَّم على المستند، أما التعبير المذكور في التقرير فهو ما يظهر عند الإخفاق، وهما لا يتطابقان دائماً.

التعبير المُنفَّذ

not(every $Currency in cbc:DocumentCurrencyCode satisfies (count(cac:TaxTotal/xs:decimal(cbc:TaxAmount[@currencyID=$Currency])) >= 1) and (cac:LegalMonetaryTotal/xs:decimal(cbc:TaxInclusiveAmount) = round( (cac:LegalMonetaryTotal/xs:decimal(cbc:TaxExclusiveAmount) + sum(cac:TaxTotal/cac:TaxSubtotal/xs:decimal(cbc:TaxAmount))) * 10 * 10) div 100))

التعبير المذكور في التقرير

every $Currency in cbc:DocumentCurrencyCode satisfies (count(cac:TaxTotal/xs:decimal(cbc:TaxAmount[@currencyID=$Currency])) >= 1) and (cac:LegalMonetaryTotal/xs:decimal(cbc:TaxInclusiveAmount) = round( (cac:LegalMonetaryTotal/xs:decimal(cbc:TaxExclusiveAmount) + sum(cac:TaxTotal/cac:TaxSubtotal/xs:decimal(cbc:TaxAmount))) * 10 * 10) div 100)
العناصر التي يُقيَّم عليها
/ubl:Invoice | /cn:CreditNote
المصدر
vendor/zatca/schematron/CEN-EN16931-UBL.xsl:775

كما يرد في الإصدار 3.4.8 من حزمة أدوات التطوير SDK التي تنشرها الهيئة: النسخة المقتبسة هنا هي الملف الذي يتضمنه ذلك الإصدار بايتاً ببايت. والتاريخ في اسم الملف هو الاسم الذي تعطيه الهيئة للملف، أما القواعد فيه فهي قواعد الإصدار 3.4.8.

مثال عملي

مستند اصطناعي من مجموعة الاختبار المقيسة تُرصد عليه هذه القاعدة، تُعرض منه الأسطر التي يختلف فيها عن مستند اجتاز الفحص. ولا يذكر تقرير مطابق سوى صورة القيمة، لا القيمة نفسها.

الأسطر التي يختلف فيها عن مستند اجتاز الفحص

  • هذا المثال
  • مستند اجتاز الفحص
<cbc:LineExtensionAmount currencyID="SAR">100.00</cbc:LineExtensionAmount><cbc:TaxExclusiveAmount currencyID="SAR">100.00</cbc:TaxExclusiveAmount>هذا المثال: <cbc:TaxInclusiveAmount currencyID="SAR">116.00</cbc:TaxInclusiveAmount>مستند اجتاز الفحص: <cbc:TaxInclusiveAmount currencyID="SAR">115.000</cbc:TaxInclusiveAmount><cbc:AllowanceTotalAmount currencyID="SAR">0.00</cbc:AllowanceTotalAmount><cbc:PrepaidAmount currencyID="SAR">0.00</cbc:PrepaidAmount>
المستند
bad-32-tax-inclusive-mismatch.xml
ما حكم به مطابق
لم يجتز
صورة القيمة في التقرير
not_exclusive_plus_subtotalsلا يساوي الإجمالي قبل الضريبة مضافاً إليه الضريبة

نزّل هذا المثال (.xml)افحصه في مطابق

مثال هذه الصفحة، يُفحص بالقواعد نفسها التي يمر بها ملفك عند الرفع. بلا رفع وبلا تسجيل دخول.

أدلة الأنظمة المحاسبية

أسماء المنتجات تُذكر هنا لتعيين الأنظمة لا غير. ومطابق مستقل عن الشركات التي تنتجها، ولا يتبع أياً منها ولا يحمل تأييدها.

قواعد تُقيَّم على الموضع نفسه من المستند، وكثيراً ما تُرصد عدة قواعد منها معاً بسبب قيمة واحدة خاطئة.

افحص فاتورة

افحص فاتورتك

© 2026 Hayatiq AI Solutions F.Z.E. جميع الحقوق محفوظة.