BR-S-09التفصيل الضريبي الخاضع للنسبة الأساسية لا يذكر مبلغ الضريبة
يفحص مطابق ملف XML للفاتورة الإلكترونية في المرحلة الثانية قبل إرساله: تحقق مسبق وفق متطلبات هيئة الزكاة والضريبة والجمارك المنشورة، لا اعتماداً من الهيئة. وتشرح هذه الصفحة قاعدة واحدة هي BR-S-09.
خمس عمليات فحص شهرياً في باقة المجان. يُفحص الملف في الذاكرة ولا يُحفظ.
الرسالة كما تنشرها هيئة الزكاة والضريبة والجمارك
[BR-S-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119) / 100), rounded to two decimals.
فحوص أخرى تُذكر في التقرير نفسه
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 وما شابههما — لا القيمة نفسها.
التفصيل الضريبي الخاضع للنسبة الأساسية لا يذكر مبلغ الضريبة
صورة القيمة في التقريرtax_amount_missingمبلغ الضريبة غير موجود
ما الخلل
أحد عناصر cac:TaxSubtotal الواقعة مباشرة تحت كتلة cac:TaxTotal الخاصة بالفاتورة يحمل فئة ضريبية في cac:TaxCategory مرمَّزة S، أي خاضعة للنسبة الأساسية، تحت النظام الضريبي لضريبة القيمة المضافة، ولا يحمل المجموع الفرعي عنصر cbc:TaxAmount. وتشترط القاعدة BR-S-09 من معيار EN 16931، التي تنفّذها هيئة الزكاة والضريبة والجمارك، أن يساوي مبلغ ضريبة الفئة BT-117 المبلغ الخاضع للفئة BT-116 مضروباً في النسبة BT-119 مقسوماً على مئة. ومع غياب المبلغ لا يوجد ما يُقارَن فتخفق القاعدة. ولا تقرأ هذه القاعدة إلا التفصيل الواقع مباشرة تحت جذر المستند، أما عنصر cac:TaxSubtotal المكتوب داخل بند الفاتورة فخارج عنها وتحكمه القاعدة BR-CO-17.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
يجب أن تحمل كتلة التفصيل الضريبي ثلاثة أشياء معاً: العنصر cbc:TaxableAmount والعنصر cbc:TaxAmount والفئة بنسبتها في cbc:Percent. وأكثرها إغفالاً هو مبلغ الضريبة، لأن الرقم نفسه يظهر إجمالاً في كتلة cac:TaxTotal الأم فيبدو مكرّراً، وليس كذلك: الإجمالي ومبلغ الفئة حقلان مختلفان وكلاهما مقروء. وتحقّق مما إذا كان التصدير يكتب التفصيل من ملخّص ضريبي لكل فئة أم يعيد بناءه من البنود، فإعادة البناء التي لا تجد سطوراً لفئة ما قد تُخرج الكتلة بالمبلغ الخاضع وحده.
التفصيل الضريبي الخاضع للنسبة الأساسية لا يذكر المبلغ الخاضع
صورة القيمة في التقريرtaxable_amount_missingالمبلغ الخاضع غير موجود
ما الخلل
أحد عناصر cac:TaxSubtotal الواقعة مباشرة تحت كتلة cac:TaxTotal الخاصة بالفاتورة يحمل فئة ضريبية مرمَّزة S، أي خاضعة للنسبة الأساسية، تحت النظام الضريبي لضريبة القيمة المضافة، ولا يحمل المجموع الفرعي عنصر cbc:TaxableAmount. وتضرب القاعدة BR-S-09 من معيار EN 16931، التي تنفّذها هيئة الزكاة والضريبة والجمارك، هذا المبلغ الخاضع BT-116 في النسبة لتصل إلى الضريبة المتوقَّعة، فمع غياب العنصر لا يبقى للضرب طرف أول وتخفق القاعدة مهما كان مبلغ الضريبة المذكور.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
العنصر cbc:TaxableAmount هو صافي بنود هذه الفئة بعد الخصومات والرسوم، وهو حقل من حقول التفصيل نفسه لا نسخة من أي إجمالي في المستند. وأكثر ما يغيب حين يُبنى التفصيل من كتلة إجماليات المستند، إذ يقوم فيها مبلغ واحد قبل الضريبة مقام كل فئة فلا يوجد ما يُكتب لكل فئة على حدة. فابنِ التفصيل من الملخّص الضريبي لكل فئة الذي يُخرجه محرّكك الضريبي أصلاً، واكتب عنصر cac:TaxSubtotal واحداً لكل فئة فيه.
التفصيل الضريبي الخاضع للنسبة الأساسية لا يذكر نسبة الضريبة
صورة القيمة في التقريرrate_missingالنسبة غير موجودة
ما الخلل
أحد عناصر cac:TaxSubtotal الواقعة مباشرة تحت كتلة cac:TaxTotal الخاصة بالفاتورة يحمل فئة ضريبية مرمَّزة S، أي خاضعة للنسبة الأساسية، تحت النظام الضريبي لضريبة القيمة المضافة، ولا تحمل هذه الفئة عنصر cbc:Percent. وتحتاج القاعدة BR-S-09 من معيار EN 16931، التي تنفّذها هيئة الزكاة والضريبة والجمارك، إلى النسبة BT-119 لتستخرج الضريبة المتوقَّعة من المبلغ الخاضع، والعنصر الغائب تسلسل خالٍ وكل مقارنة معه كاذبة، فتخفق القاعدة ولا تمرّ صامتة. والتفصيل الذي لا نسبة فيه ترصده كذلك القاعدة BR-48 التي تشترط النسبة على كل تفصيل عدا الخارج عن نطاق الضريبة.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
موضع النسبة هو cac:TaxSubtotal/cac:TaxCategory/cbc:Percent في الكتلة نفسها التي تحمل رمز الفئة cbc:ID والنظام الضريبي cac:TaxScheme. والسبب الشائع تصدير يكتب رمز الفئة والنظام الضريبي من جدول بحث بينما يأخذ النسبة من بند الفاتورة، ثم يُغفلها حين يُكتب التفصيل قبل المرور على البنود. وسبب آخر رمز ضريبي مضبوط بنسبة فارغة لا برقم، لفئة تعدّها المنشأة خاضعة للضريبة كاملةً.
مبلغ الضريبة الخاضع للنسبة الأساسية لا يساوي المبلغ الخاضع مضروباً في النسبة
صورة القيمة في التقريرnot_taxable_times_rateلا يساوي المبلغ الخاضع مضروباً في النسبة
ما الخلل
في أحد عناصر cac:TaxSubtotal الواقعة مباشرة تحت كتلة cac:TaxTotal الخاصة بالفاتورة، والمرمَّز S أي خاضع للنسبة الأساسية تحت النظام الضريبي لضريبة القيمة المضافة، لا يساوي العنصر cbc:TaxAmount ما ينتج عن العنصرين cbc:TaxableAmount وcbc:Percent. وتضرب القاعدة BR-S-09 من معيار EN 16931، التي تنفّذها هيئة الزكاة والضريبة والجمارك، المبلغ الخاضع BT-116 في النسبة BT-119 مقسوماً على مئة، ثم تقرّب الناتج إلى منزلتين عشريتين وتقارن. وتحمل المقارنة هامش تسامح قدره وحدة عملة واحدة، والنطاق مفتوح من الطرفين: فالفرق الأقل من ريال واحد يمرّ، والفرق المساوي لريال واحد بالضبط لا يمرّ. وهو ريال كامل لا هللة، فلا تُرصد هنا أبداً فروق التقريب على مستوى البند التي تُقاس بالهللات. وإن كنت تطابق حساباتك إلى الهللة فليست هذه هي القاعدة التي تخبرك بذلك، بل قاعدتا إجماليات المستند BR-CO-14 وBR-CO-15 اللتان تقارنان تطابقاً تاماً.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
ثلاثة أرقام في كتلة واحدة تتعارض، فابحث عن أيها الخارج عن الصواب بدل تعديل الضريبة لتوافق. والسبب المتكرّر مبلغ خاضع لا يشمل خصماً أو رسماً على مستوى المستند خضع للضريبة رغم ذلك، فحُسبت الضريبة على أساس ويذكر التفصيل أساساً آخر. وسبب ثانٍ تفصيل مجمَّع من البنود بعد تقريب ضريبة كل بند على حدة، والفحص يجمع أولاً ثم يقرّب مرة واحدة. وسبب ثالث نسبة محفوظة كسراً لا نسبة مئوية، فالنسبة المكتوبة 0.15 تجعل الضريبة المتوقَّعة أصغر مئة مرة. قارن الملخّص الضريبي الذي يُخرجه محرّكك بالكتلة التي يكتبها التصدير حقلاً حقلاً.
الفحص الذي يُنفَّذ
منقول حرفياً من ملفات قواعد التحقق التي تنشرها الهيئة، عند الملف والسطر المذكورين أدناه. والتعبير المُنفَّذ هو ما يُقيَّم على المستند، أما التعبير المذكور في التقرير فهو ما يظهر عند الإخفاق، وهما لا يتطابقان دائماً.
التعبير المُنفَّذ
$checkOne or not($checkTwo)
التعبير المذكور في التقرير
(round(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent)) = 0 and (round(xs:decimal(cbc:TaxAmount)) = 0)) or (round(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent)) != 0 and ((abs(xs:decimal(cbc:TaxAmount)) - 1 < round(abs(xs:decimal(cbc:TaxableAmount)) * (cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent) div 100) * 10 * 10) div 100 ) and (abs(xs:decimal(cbc:TaxAmount)) + 1 > round(abs(xs:decimal(cbc:TaxableAmount)) * (cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent) div 100) * 10 * 10) div 100 ))) or (not(exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent))) and (round(xs:decimal(cbc:TaxAmount)) = 0))
كما يرد في الإصدار 3.4.8 من حزمة أدوات التطوير SDK التي تنشرها الهيئة: النسخة المقتبسة هنا هي الملف الذي يتضمنه ذلك الإصدار بايتاً ببايت. والتاريخ في اسم الملف هو الاسم الذي تعطيه الهيئة للملف، أما القواعد فيه فهي قواعد الإصدار 3.4.8.
مثال عملي
مستند اصطناعي من مجموعة الاختبار المقيسة تُرصد عليه هذه القاعدة، تُعرض منه الأسطر التي يختلف فيها عن مستند اجتاز الفحص. ولا يذكر تقرير مطابق سوى صورة القيمة، لا القيمة نفسها.