BR-KSA-84: Standard-rated (S) VAT rate must be 15 or 5

Explained by Matheel from ZATCA's rule text and the condition SDK 3.4.8 executes · Updated

Error: the invoice is rejectedConditional, see belowFields: BT-96, BT-103, BT-119, BT-152, KSA-34, BT-95, BT-102, BT-118, BT-151, KSA-33

Wherever a VAT cac:TaxCategory or cac:ClassifiedTaxCategory has cbc:ID 'S' (document allowances and charges, document and line cac:TaxSubtotal, line items), its cbc:Percent, if present, must be 15 or 5. The executed check compares the whole-number part with 15 (floor), so a value such as 15.50 also passes, while 5 must match exactly.

How to fix it

Use <cbc:Percent>15.00</cbc:Percent>, or 5.00 where the 5% rate applies, in every S-category tax category.

ZATCA's official text

The Document level allowance VAT rate (BT-96), Document level Charge VAT rate (BT-103), VAT category rate(BT-119), Invoiced item VAT rate (BT-152), Prepayment VAT rate(KSA-34) must be limited to one of the following values (5 or 15) when the relevant Document level allowance VAT category code (BT-95), Document level Charge VAT category code(BT-102), VAT category code(BT-118), Invoiced item VAT category code(BT-151), Prepayment VAT Category Code (KSA-33) is "S"- "Standard rated". In other words, for Standard Rate VAT Category the rate can either be 15% or 5%.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules

Fails when (the condition ZATCA's SDK runs)

exists(./cbc:Percent) and not(floor(number(./cbc:Percent)) = 15 or floor(number(./cbc:Percent = 5)))

Related rules

Validate your invoice against ZATCA's rules

Paste the XML and see every error and warning. It runs in your browser; the invoice goes nowhere.

Validate an invoice or try Matheel