BR-Z-08تفصيل للفئة الخاضعة بنسبة الصفر ولا شيء خاضع بنسبة الصفر في الفاتورة

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

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

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

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

[BR-Z-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is " Zero rated" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Zero Rated".

فحوص أخرى تُذكر في التقرير نفسه

  • BR-CO-17

    [BR-CO-17]-VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.

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

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

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

تفصيل للفئة الخاضعة بنسبة الصفر ولا شيء خاضع بنسبة الصفر في الفاتورة

صورة القيمة في التقريرcategory_unusedتفصيل لفئة لا يستعملها شيء في الفاتورة

ما الخلل

يحمل تفصيل ضريبة القيمة المضافة للفاتورة عنصر cac:TaxSubtotal مرمَّزاً Z، أي خاضعاً بنسبة الصفر، تحت النظام الضريبي لضريبة القيمة المضافة، لكن لا صنف في أي بند ولا خصم ولا رسم على مستوى المستند مرمَّز Z تحت هذا النظام. والقاعدة BR-Z-08 من معيار EN 16931، التي تنفّذها أداة الفحص لدى هيئة الزكاة والضريبة والجمارك منذ الإصدار 3.4.8 من حزمة أدوات التطوير SDK، تفحص أن المبلغ الخاضع للفئة الخاضعة بنسبة الصفر يساوي مبالغ بنودها مطروحاً منها الخصومات ومضافاً إليها الرسوم، وترصد التفصيل الذي لا شيء فيه يُجمع. وتصنّف الهيئة هذه القاعدة تحذيراً لا خطأً، فالتحذير وحده لا يؤدي إلى رفض المستند.

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

فإما أن التفصيل لا مكان له، وإما أن البنود التي يلخّصها مرمَّزة بفئة أخرى. تحقّق أن رمز الفئة في صنف كل بند (cac:ClassifiedTaxCategory/cbc:ID) ونظامه الضريبي يطابقان التفصيل الذي يُجمع فيه البند؛ والسبب المعتاد تفصيل بقي على Z بعد أن أُعيد ترميز البند معفى من الضريبة.

التفصيل الضريبي الخاضع بنسبة الصفر لا يذكر المبلغ الخاضع

صورة القيمة في التقريرtaxable_amount_missingالمبلغ الخاضع غير موجود

ما الخلل

أحد عناصر cac:TaxSubtotal الواقعة مباشرة تحت كتلة cac:TaxTotal الخاصة بالفاتورة مرمَّز Z، أي خاضع بنسبة الصفر، تحت النظام الضريبي لضريبة القيمة المضافة، ولا يحمل عنصر cbc:TaxableAmount. وتقارن القاعدة BR-Z-08 من معيار EN 16931، التي تنفّذها أداة الفحص لدى هيئة الزكاة والضريبة والجمارك منذ الإصدار 3.4.8 من حزمة أدوات التطوير SDK، ذلك المبلغ بمجموع مبالغ البنود الخاضعة بنسبة الصفر، مضافاً إليه رسومها ومطروحاً منه خصوماتها. والعنصر الغائب تسلسل خالٍ في XPath: فالحساب عليه يعطي تسلسلاً خالياً، وكل مقارنة به كاذبة، فتخفق القاعدة عند الغياب بدل أن تتجاوزه، ولا بد من كتابة المبلغ ولو كان صفراً. وتصنّف الهيئة هذه القاعدة تحذيراً لا خطأً، فالتحذير وحده لا يؤدي إلى رفض المستند. وأمران عن المجموعين، لأنهما أضيق مما يوحي به اللفظ: يُؤخذان من العناصر المباشرة تحت جذر المستند وحدها، فالخصم الملحق ببند فاتورة ليس فيهما؛ وتُلتقط البنود والرسوم والخصومات المشاركة بحرف الفئة وحده، بلا اختبار أن يكون النظام الضريبي VAT.

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

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

المبلغ الخاضع في التفصيل الخاضع بنسبة الصفر لا يطابق بنوده

صورة القيمة في التقريرtaxable_amount_mismatchالمبلغ الخاضع لا يطابق البنود

ما الخلل

أحد عناصر cac:TaxSubtotal الواقعة مباشرة تحت كتلة cac:TaxTotal الخاصة بالفاتورة مرمَّز Z، أي خاضع بنسبة الصفر، تحت النظام الضريبي لضريبة القيمة المضافة، وعنصره cbc:TaxableAmount لا يساوي مجموع مبالغ البنود الخاضعة بنسبة الصفر، مضافاً إليه رسومها ومطروحاً منه خصوماتها. وتقارن القاعدة BR-Z-08 من معيار EN 16931، التي تنفّذها أداة الفحص لدى هيئة الزكاة والضريبة والجمارك منذ الإصدار 3.4.8 من حزمة أدوات التطوير SDK، الطرفين مقارنة صارمة: لا هامش تسامح ولا خطوة تقريب، بخلاف القاعدتين BR-S-09 وBR-CO-17 اللتين تسمحان بهامش وحدة عملة واحدة حول مبلغ ضريبة الفئة. ففرق هللة واحدة يُخفق هذه القاعدة. وتصنّف الهيئة هذه القاعدة تحذيراً لا خطأً، فالتحذير وحده لا يؤدي إلى رفض المستند. والتعبير المسجَّل لهذه القاعدة في ملفات قواعد التحقق المنشورة يسمّي الفئة الخاضعة للنسبة الأساسية، وهي زلّة نسخ؛ أما الفحص الذي تنفّذه الهيئة فيجمع البنود الخاضعة بنسبة الصفر، وهذه الملاحظة تتبع الفحص. وأمران عن المجموعين، لأنهما أضيق مما يوحي به اللفظ: يُؤخذان من العناصر المباشرة تحت جذر المستند وحدها، فالخصم الملحق ببند فاتورة ليس فيهما؛ وتُلتقط البنود والرسوم والخصومات المشاركة بحرف الفئة وحده، بلا اختبار أن يكون النظام الضريبي VAT.

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

أعِد بناء الرقم بيدك من الملف المصدَّر: اجمع عنصر cbc:LineExtensionAmount في كل بند فئته Z، وأضف الرسوم على مستوى المستند المرمَّزة Z، واطرح الخصومات على مستوى المستند المرمَّزة Z، ثم قارن الناتج بعنصر cbc:TaxableAmount في التفصيل. والأسباب المتكرّرة: المبلغ الخاضع بنسبة الصفر مأخوذ من الإجمالي قبل الضريبة للمستند بدل مجموعة الخاضع بنسبة الصفر؛ وخصم على مستوى المستند تحمل كتلته cac:TaxCategory حرفاً آخر فلا تطرحه القاعدة؛ وخصم طُبِّق على التفصيل ولم يُطبَّق على عنصر cbc:LineExtensionAmount في البند؛ وتقريب طُبِّق على التفصيل مستقلاً عن البنود. وابدأ بالملخّص الضريبي لكل فئة، فعنده يفترق التفصيل عن بنوده.

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

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

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

count(/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'])> 0 and not(exists(../../../cac:AllowanceCharge/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'Z']) or exists(../../../cac:InvoiceLine[cac:Item/cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'Z']])) or not( (xs:decimal(../cbc:TaxableAmount) =(sum(../../../cac:InvoiceLine[cac:Item/cac:ClassifiedTaxCategory/normalize-space(cbc:ID)='Z']/xs:decimal(cbc:LineExtensionAmount)) + sum(../../../cac:AllowanceCharge[cbc:ChargeIndicator=true()][cac:TaxCategory/normalize-space(cbc:ID)='Z']/xs:decimal(cbc:Amount)) - sum(../../../cac:AllowanceCharge[cbc:ChargeIndicator=false()][cac:TaxCategory/normalize-space(cbc:ID)='Z']/xs:decimal(cbc:Amount)) )))

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

count(/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'])> 0 and (exists(../../../cac:AllowanceCharge/cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'Z']) or exists(../../../cac:InvoiceLine[cac:Item/cac:ClassifiedTaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID[normalize-space(.) = 'Z']])) or ((xs:decimal(../cbc:TaxableAmount) =(sum(../../../cac:InvoiceLine[cac:Item/cac:ClassifiedTaxCategory/normalize-space(cbc:ID)='S']/xs:decimal(cbc:LineExtensionAmount)) + sum(../../../cac:AllowanceCharge[cbc:ChargeIndicator=true()][cac:TaxCategory/normalize-space(cbc:ID)='S']/xs:decimal(cbc:Amount)) - sum(../../../cac:AllowanceCharge[cbc:ChargeIndicator=false()][cac:TaxCategory/normalize-space(cbc:ID)='S']/xs:decimal(cbc:Amount)) )))
العناصر التي يُقيَّم عليها
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'Z'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
المصدر
vendor/zatca/schematron/CEN-EN16931-UBL.xsl:1636

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

مثال عملي

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

المستند
bad-114-z-taxable-amount-off-by-hundredth.xml
ما حكم به مطابق
اجتاز
صورة القيمة في التقرير
taxable_amount_mismatchالمبلغ الخاضع لا يطابق البنود

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

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

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

افحص فاتورة

افحص فاتورتك

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