BR-KSA-DEC-06: Prepayment taxable and tax amounts may have at most two decimals

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

Warning: accepted with a warningConditional, see belowFields: KSA-31, KSA-32

In an invoice with cbc:PrepaidAmount > 0, each line-level cac:TaxTotal/cac:TaxSubtotal must have cbc:TaxableAmount (KSA-31) and cbc:TaxAmount (KSA-32) with at most two decimals. The test string displayed for the rule refers to cbc:RoundingAmount, but the executed check reads the TaxSubtotal amounts.

How to fix it

Round both values to 2 decimals, e.g. <cbc:TaxableAmount currencyID="SAR">1000.00</cbc:TaxableAmount> and <cbc:TaxAmount currencyID="SAR">150.00</cbc:TaxAmount>.

ZATCA's official text

[BR-KSA-DEC-06]-Prepayment VAT category Taxable Amount (KSA-31) and Prepayment VAT Category Tax Amount (KSA-32) must have a maximum two decimals.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules

Fails when (the condition ZATCA's SDK runs)

not(string-length(substring-after(cbc:TaxableAmount,'.')) <= 2 and string-length(substring-after(cbc:TaxAmount,'.')) <= 2)

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