BR-KSA-52أحد بنود الفاتورة لا يحمل مبلغ ضريبة القيمة المضافة

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

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

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

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

[BR-KSA-52]-The line VAT amount (KSA-11) is mandatory for tax invoice and associated credit notes and debit notes (KSA-2, position 1 and 2 = 01).

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

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

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

أحد بنود الفاتورة لا يحمل مبلغ ضريبة القيمة المضافة

صورة القيمة في التقريرline_tax_amount_missingمبلغ ضريبة القيمة المضافة للبند غير موجود

ما الخلل

بند واحد على الأقل من بنود هذه الفاتورة الضريبية، أي عنصر cac:InvoiceLine، لا يحمل cac:TaxTotal/cbc:TaxAmount، فمبلغ ضريبة القيمة المضافة للبند KSA-11 غائب في ذلك البند، وترفض هيئة الزكاة والضريبة والجمارك المستند. وتوقَّع رمزين من الهيئة لهذا الخلل الواحد: فهي تنشر هذه القاعدة مرتين، مرة برمز BR-KSA-52 ومرة برمز BR-KSA-54، بالشرط نفسه وفي القالب نفسه، فيستدعي بندٌ واحد بلا مبلغ ضريبة الرمزين كليهما. ويذكره مطابق مرة واحدة تحت المعرِّف MTB-BR-KSA-52، وإصلاح واحد يرفعهما معاً. ويشمل الفحص كل عنصر cac:InvoiceLine في المستند، بما في ذلك بند متداخل داخل صنف شحنة تحت كتلة التسليم، ويتوقف عند أول بند يخفق، فقد تكون بنود أخرى مصابة كذلك. ولا يسري إلا على الفاتورة الضريبية وإشعاراتها الدائنة والمدينة، أي ما يبدأ رمز نوع معاملة الفاتورة KSA-2 فيه بـ 01؛ والمستند الخالي من بنود الفاتورة أصلاً يجتازه ولا يُذكر هنا.

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

مبلغ الضريبة على مستوى البند إضافة سعودية فوق معيار EN 16931 الذي لا يطلب إلا تفصيل ضريبة القيمة المضافة على مستوى المستند، فهو من أكثر الحقول سقوطاً في تصدير بُني على المعيار الأوروبي ثم عُرّب. والأسباب المعتادة: محرّك ضريبي يحسب على مستوى المستند أو على مستوى المجموعة الضريبية فلا يجد رقماً لكل بند ليكتبه؛ وربط لا يُخرج كتلة cac:TaxTotal إلا تحت cac:LegalMonetaryTotal ولا يُخرجها داخل كل بند؛ وقاعدة تكبح الكتلة في البنود الخاضعة بنسبة الصفر أو المعفاة، وتلك البنود تحتاج إلى العنصر cbc:TaxAmount مكتوباً بالقيمة 0.00 لا محذوفاً. وافحص مستنداً تختلط فيه النسب، فهناك يظهر النقص على مستوى البند أول ما يظهر.

مبلغ ضريبة القيمة المضافة في أحد بنود الفاتورة فارغ

صورة القيمة في التقريرline_tax_amount_emptyمبلغ ضريبة القيمة المضافة للبند موجود لكنه فارغ

ما الخلل

بند واحد على الأقل من بنود هذه الفاتورة الضريبية يحمل cac:TaxTotal/cbc:TaxAmount، لكن كل نسخة منه في ذلك البند فارغة، فمبلغ ضريبة القيمة المضافة للبند KSA-11 بلا قيمة، وترفض هيئة الزكاة والضريبة والجمارك المستند كما ترفضه عند غياب العنصر تماماً. وتوقَّع ملاحظة مخطط إلى جانب هذه: فعنصر مبلغ بلا محتوى ليس صحيحاً في مخطط UBL أيضاً، فستسمّي الملاحظة MTB-XSD-01 العنصر نفسه غالباً. وتوقَّع رمزين من الهيئة لهذا الخلل الواحد: فهي تنشر هذه القاعدة مرتين، مرة برمز BR-KSA-52 ومرة برمز BR-KSA-54، بالشرط نفسه وفي القالب نفسه، فيستدعي بندٌ واحد بلا مبلغ ضريبة الرمزين كليهما. ويذكره مطابق مرة واحدة تحت المعرِّف MTB-BR-KSA-52، وإصلاح واحد يرفعهما معاً. ويشمل الفحص كل عنصر cac:InvoiceLine في المستند، بما في ذلك بند متداخل داخل صنف شحنة تحت كتلة التسليم، ويتوقف عند أول بند يخفق، فقد تكون بنود أخرى مصابة كذلك. ولا يسري إلا على الفاتورة الضريبية وإشعاراتها الدائنة والمدينة، أي ما يبدأ رمز نوع معاملة الفاتورة KSA-2 فيه بـ 01؛ والمستند الخالي من بنود الفاتورة أصلاً يجتازه ولا يُذكر هنا.

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

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

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

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

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

not(every $line in //cac:InvoiceLine satisfies exists($line/cac:TaxTotal/cbc:TaxAmount) and ($line/cac:TaxTotal/cbc:TaxAmount) != '')

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

every $line in //cac:InvoiceLine satisfies exists($line/cac:TaxTotal/cbc:TaxAmount) and ($line/cac:TaxTotal/cbc:TaxAmount) != ''
العناصر التي يُقيَّم عليها
cbc:InvoiceTypeCode[substring(@name, 1, 2) = '01'] | cbc:InvoiceTypeCode[substring(@name, 1, 2) = '02']
المصدر
vendor/zatca/schematron/20210819_ZATCA_E-invoice_Validation_Rules.xsl:1736

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

مثال عملي

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

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

  • هذا المثال
  • مستند اجتاز الفحص
<cbc:InvoicedQuantity unitCode="PCE">1.000000</cbc:InvoicedQuantity><cbc:LineExtensionAmount currencyID="SAR">100.00</cbc:LineExtensionAmount>مستند اجتاز الفحص: <cac:TaxTotal>مستند اجتاز الفحص:   <cbc:TaxAmount currencyID="SAR">15.000</cbc:TaxAmount>مستند اجتاز الفحص:   <cbc:RoundingAmount currencyID="SAR">115.00</cbc:RoundingAmount>مستند اجتاز الفحص: </cac:TaxTotal><cac:Item>  <cbc:Name>Consulting services</cbc:Name>
المستند
bad-48-standard-line-no-vat-amount.xml
ما حكم به مطابق
لم يجتز
صورة القيمة في التقرير
line_tax_amount_missingمبلغ ضريبة القيمة المضافة للبند غير موجود

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

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

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

افحص فاتورة

افحص فاتورتك

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