PintLint

Rules / IBR-CO-14

IBR-CO-14 error

Total VAT must equal the VAT breakdown

Invoice total VAT (IBT-110) must equal the sum of the VAT amounts in the breakdown by category.

ERPs that compute VAT per line and round per line drift from the per-category total. The spec checks the total against the breakdown.

Fails

<cac:TaxTotal>
  <cbc:TaxAmount currencyID="AED">380.00</cbc:TaxAmount>
  <cac:TaxSubtotal><cbc:TaxAmount currencyID="AED">375.00</cbc:TaxAmount>...</cac:TaxSubtotal>
</cac:TaxTotal>

Fix

Compute VAT per category (taxable amount × rate, rounded to 2 decimals) and make the total the sum of those.

Passes

<cbc:TaxAmount currencyID="AED">375.00</cbc:TaxAmount>
Schematron
Context
/ubl:Invoice/cac:TaxTotal | /cn:CreditNote/cac:Taxtotal
Test
(xs:decimal(child::cbc:TaxAmount)= round((sum(cac:TaxSubtotal/xs:decimal(cbc:TaxAmount)) * 10 * 10)) div 100) or not(cac:TaxSubtotal)

Official text: Invoice total Tax amount (ibt-110) = Σ Tax category tax amount (ibt-117).

Official · PINT shared rules. Severity: error. Runs on UBL XML and on JSON.

Check an invoice