BR-CO-14: Total VAT must equal the sum of the VAT breakdown amounts
For each cac:TaxTotal, cbc:TaxAmount (BT-110) must equal the sum of cbc:TaxAmount (BT-117) of its cac:TaxSubtotal children, rounded to two decimals. A cac:TaxTotal with no cac:TaxSubtotal is not checked.
How to fix it
In the cac:TaxTotal that carries the breakdown, set cbc:TaxAmount to the sum of its cac:TaxSubtotal/cbc:TaxAmount values, rounded to 2 decimals.
ZATCA's official text
[BR-CO-14]-Invoice total VAT amount (BT-110) = Σ VAT category tax amount (BT-117).
Source: ZATCA SDK 3.4.8 · EN 16931 (CEN) rules
Fails when (the condition ZATCA's SDK runs)
not((xs:decimal(child::cbc:TaxAmount)= round((sum(cac:TaxSubtotal/xs:decimal(cbc:TaxAmount)) * 10 * 10)) div 100) or not(cac:TaxSubtotal))
Related rules
- BR-46 · Each VAT breakdown needs a VAT amount (BT-117)
- BR-CO-15 · Total with VAT must equal total without VAT plus total VAT
- BR-CO-17 · VAT amount per category must equal taxable amount x rate
- BR-E-09 · VAT amount in an exempt (E) breakdown must be 0
- BR-KSA-97 · Non-SAR invoice: SAR VAT total must differ from the VAT total
- BR-O-09 · 'Not subject to VAT' (O) breakdown tax amount must be 0
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