BR-KSA-DEC-02: VAT rates must be 0-100 with at most two decimals

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

Error: the invoice is rejectedAll invoicesFields: BT-96, BT-103, BT-119, BT-152, KSA-34

Every non-empty cbc:Percent under cac:AllowanceCharge/cac:TaxCategory, cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory, cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory and line cac:TaxSubtotal/cac:TaxCategory must be a decimal from 0 to 100 with at most two decimals and no % sign.

How to fix it

Write <cbc:Percent>15.00</cbc:Percent>, not 15% or 15.000.

ZATCA's official text

[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.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules

Fails when (the condition ZATCA's SDK runs)

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

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