BR-KSA-97: Non-SAR invoice: SAR VAT total must differ from the VAT total
When cbc:DocumentCurrencyCode (BT-5) is not SAR, the warning fires if both document cac:TaxTotal/cbc:TaxAmount values are above 0 and the one with cac:TaxSubtotal (BT-110) equals the one without (BT-111) after rounding to 2 decimals. The expression shown for the rule is the failure condition, not the pass condition.
How to fix it
Put the VAT total in the invoice currency in the cac:TaxTotal that has subtotals, and the VAT total converted to SAR in the separate cac:TaxTotal without subtotals, e.g. <cac:TaxTotal><cbc:TaxAmount currencyID="SAR">...</cbc:TaxAmount></cac:TaxTotal>.
ZATCA's official text
[BR-KSA-97]-If the Document Currency Code (BT-5) is different from "SAR", then the value in "Invoice total VAT amount (BT-110)" cannot be the same as the value in "Invoice total VAT amount in accounting currency (BT-111)".
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules
Fails when (the condition ZATCA's SDK runs)
(./cac:TaxTotal[cac:TaxSubtotal]/cbc:TaxAmount > 0) and (./cac:TaxTotal[not(cac:TaxSubtotal)]/cbc:TaxAmount > 0) and (round(./cac:TaxTotal[cac:TaxSubtotal]/cbc:TaxAmount * 100) div 100 = round(./cac:TaxTotal[not(cac:TaxSubtotal)]/cbc:TaxAmount * 100) div 100)
Related rules
- BR-05 · Every invoice needs a currency code (BT-5)
- BR-53 · With a tax currency (BT-6), give the VAT total in it (BT-111)
- BR-CO-14 · Total VAT must equal the sum of the VAT breakdown amounts
- BR-CO-15 · Total with VAT must equal total without VAT plus total VAT
- BR-KSA-88 · Exchange-rate source currency must equal the invoice currency
- BR-KSA-CL-01 · Invoice currency code must be a valid ISO 4217 code
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