BR-KSA-DEC-02نسبة ضريبة القيمة المضافة أقل من الصفر أو أكبر من مئة

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

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

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

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

[BR-KSA-DEC-02]-The VAT rates (BT-96, BT-103, BT-119, BT-152, KSA-34) must be from 0.00 to 100.00, with maximum two decimals.Only numerals are accepted, the percentage symbol (%) is not allowed.

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

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

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

نسبة ضريبة القيمة المضافة أقل من الصفر أو أكبر من مئة

صورة القيمة في التقريرrate_out_of_rangeالنسبة أقل من الصفر أو أكبر من مئة

ما الخلل

أحد عناصر cbc:Percent التي تقرؤها هذه القاعدة يحمل قيمة خارج المدى من صفر إلى مئة شاملاً الطرفين. وتشترط القاعدة BR-KSA-DEC-02 من هيئة الزكاة والضريبة والجمارك أن تقع كل نسبة تقرؤها في ذلك المدى وألا تحمل أكثر من منزلتين عشريتين. وتقرأ القاعدة موضعين اثنين من المستند: نسبة بند الفاتورة في cac:Item/cac:ClassifiedTaxCategory/cbc:Percent ونسبة الخصم في cac:TaxCategory/cbc:Percent. ولا تقرأ نسبة التفصيل الضريبي، لأن فرع التعبير الذي كان سيقرؤها يطلب فئة ضريبية داخل العنصر cbc:TaxAmount، وهذا العنصر يحمل رقماً ولا يجوز أن تكون فيه عناصر، فلا يطابقه مستند صحيح. فنسبة التفصيل غير مقيَّدة هنا حقاً، وأداة الفحص تنقل القاعدة كما كُتبت لا كما يبدو أنها قُصدت. ولاحظ كذلك أن فرع الخصم بلا شرط على مؤشر الرسم، فتُقرأ نسبة الرسم كما تُقرأ نسبة الخصم.

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

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

نسبة ضريبة القيمة المضافة مكتوبة بأكثر من منزلتين عشريتين

صورة القيمة في التقريرtoo_many_decimalsمنازل عشرية أكثر مما يُسمح به

ما الخلل

أحد عناصر cbc:Percent التي تقرؤها هذه القاعدة مكتوب بأكثر من رقمين بعد الفاصلة العشرية. وتعدّ القاعدة BR-KSA-DEC-02 من هيئة الزكاة والضريبة والجمارك الأرقام كما كُتبت في الملف لا كما تدل عليه القيمة، فالنسبة المكتوبة بثلاث منازل تخفق ولو كان الرقم الثالث صفراً وكانت القيمة نفسها معتادة. وتقرأ القاعدة نسبة بند الفاتورة في cac:Item/cac:ClassifiedTaxCategory/cbc:Percent ونسبة الخصم في cac:TaxCategory/cbc:Percent. ولا تقرأ نسبة التفصيل الضريبي، لأن فرع التعبير الذي كان سيقرؤها يطلب فئة ضريبية داخل العنصر cbc:TaxAmount الذي يحمل رقماً ولا تكون فيه عناصر، فنسبة التفصيل المكتوبة بثلاث منازل لا تُرصد بهذه القاعدة، وأداة الفحص تنقل ذلك كما هو. والقاعدة لا تقول شيئاً عن كيفية التقريب، بل عن عدد الأرقام المطبوعة وحده.

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

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

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

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

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

not(xs:decimal(.) >= 0 and xs:decimal(.) <= 100 and string-length(substring-after(.,'.')) <=2 and not (contains('%',(.))) )

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

xs:decimal(.) >= 0 and xs:decimal(.) <= 100 and string-length(substring-after(.,'.')) <=2
العناصر التي يُقيَّم عليها
cac:AllowanceCharge/cac:TaxCategory/cbc:Percent | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:Percent | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent | cac:InvoiceLine/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:Percent
المصدر
vendor/zatca/schematron/20210819_ZATCA_E-invoice_Validation_Rules.xsl:2357

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

مثال عملي

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

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

  • هذا المثال
  • مستند اجتاز الفحص
<cac:ClassifiedTaxCategory>  <cbc:ID schemeID="UN/ECE 5305" schemeAgencyID="6">S</cbc:ID>هذا المثال:   <cbc:Percent>15.000</cbc:Percent>مستند اجتاز الفحص:   <cbc:Percent>15.00</cbc:Percent>  <cac:TaxScheme>    <cbc:ID schemeID="UN/ECE 5153" schemeAgencyID="6">VAT</cbc:ID>
المستند
bad-68-rate-3dp.xml
ما حكم به مطابق
لم يجتز
صورة القيمة في التقرير
too_many_decimalsمنازل عشرية أكثر مما يُسمح به

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

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

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

افحص فاتورة

افحص فاتورتك

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