BR-KSA-51 🧮 حسابات الضريبة والبنود error

BR-KSA-51: عدم تطابق إجمالي مبلغ البند شامل الضريبة (KSA-12)

BR-KSA-51: Line Total Amount with VAT Mismatch (KSA-12)

المواصفة التقنية المعتمدة من زاتكا:

يجب أن يكون مبلغ البند شاملاً الضريبة مساوياً لصافي مبلغ البند مضافاً إليه مبلغ الضريبة المحتسب للبند بدقة خانتين عشريتين.

XPath Context: /ubl:Invoice/cac:InvoiceLine/cac:TaxTotal/cbc:RoundingAmount

📌 نبذة عن القاعدة وسبب التدقيق

مبلغ البند شامل الضريبة (KSA-12) يجب أن يساوي تماماً صافي مبلغ البند (BT-131) + مبلغ ضريبة البند (KSA-11).

English Description: The line amount with VAT (KSA-12) must strictly equal Invoice line net amount (BT-131) + Line VAT amount (KSA-11).

⚠️ الأسباب الشائعة لظهور الخطأ ورفض الفاتورة

  • احتساب الضريبة على سعر الوحدة الفردية قبل ضربه في الكمية بدلاً من احتسابها على صافي إجمالي البند
  • أخطاء الكسور العشرية (Floating Point) في لغات البرمجة
  • عدم خصم الخصومات على مستوى البند بشكل صحيح قبل تطبيق نسبة 15%

خطوات الحل وتصحيح الفاتورة

1

استخدام حسابات الأعداد العشرية الدقيقة

استخدم مكتبات الحساب العشري الدقيق (مثل BigDecimal أو Decimal.js) وتجنب float/double.

2

التحقق من المعادلة

تأكد من تطبيق المعادلة: صافي مبلغ البند (LineExtensionAmount) + ضريبة البند (TaxAmount) = إجمالي البند بالضريبة (RoundingAmount).

💻 نموذج برمجي لمقارنة ملف XML (قبل وبعد التصحيح)

❌ النموذج الخاطئ (مرفوض من زاتكا) Invalid XML
<cac:InvoiceLine>
  <cbc:LineExtensionAmount currencyID="SAR">100.00</cbc:LineExtensionAmount>
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="SAR">15.00</cbc:TaxAmount>
    <cbc:RoundingAmount currencyID="SAR">114.99</cbc:RoundingAmount> <!-- Error: 100 + 15 != 114.99 -->
  </cac:TaxTotal>
</cac:InvoiceLine>
✓ النموذج الصحيح (المعتمد رسمياً) Valid UBL 2.1
<cac:InvoiceLine>
  <cbc:LineExtensionAmount currencyID="SAR">100.00</cbc:LineExtensionAmount>
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="SAR">15.00</cbc:TaxAmount>
    <cbc:RoundingAmount currencyID="SAR">115.00</cbc:RoundingAmount>
  </cac:TaxTotal>
</cac:InvoiceLine>

تحقق من صحة ملف الفاتورة الآن مجاناً

استخدم أدوات قيمة لفحص بنية XML والتأكد من عدم وجود أخطاء قبل إرسال الفواتير لمنصة زاتكا.

الأسئلة الشائعة حول BR-KSA-51

كيف يتم التعامل مع الخصومات على مستوى البند في قاعدة BR-KSA-51؟

يتم طرح الخصم من (السعر الإجمالي × الكمية) للحصول على صافي البند، ثم تحسب ضريبة 15% على المبلغ الصافي بعد الخصم.

ودّع مشاكل الربط وأخطاء الفوترة مع برنامج قيمة

يتكفل نظام قيمة بكافة متطلبات هيئة الزكاة والضريبة والجمارك تلقائياً في الخلفية: اعتماد فوري للفواتير، توقيع رقمي، وربط كامل مع منصة فاتورة.