BR-KSA-DEC-06: Prepayment taxable and tax amounts may have at most two decimals
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
- BR-KSA-75 · Prepayment lines need taxable amount, tax amount, category and rate
- BR-KSA-79 · Line VAT breakdown: tax amount = taxable amount x rate / 100
- BR-KSA-80 · Prepaid amount must equal prepayment taxable plus tax amounts
- BR-KSA-DEC-02 · VAT rates must be 0-100 with at most two decimals
- BR-KSA-DEC-03 · Line VAT amount may have at most two decimals
- BR-KSA-DEC-04 · Line amount with VAT may have at most two decimals
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