PintLint

Rules / IBR-CO-13

IBR-CO-13 error

Total without VAT must add up

Total without VAT (IBT-109) = sum of line net amounts − document allowances + document charges.

A rounding difference of 0.01 fails this rule just as a real error does.

Fails

<cbc:TaxExclusiveAmount currencyID="AED">7499.99</cbc:TaxExclusiveAmount>

Fix

Recalculate from the lines, allowances and charges, rounding each to 2 decimals first.

Passes

<cbc:TaxExclusiveAmount currencyID="AED">7500.00</cbc:TaxExclusiveAmount>
Schematron
Context
cac:LegalMonetaryTotal
Test
../cac:TaxTotal/cbc:TaxIncludedIndicator = true() or (((cbc:ChargeTotalAmount) and (cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = round((xs:decimal(cbc:LineExtensionAmount) + xs:decimal(cbc:ChargeTotalAmount) - xs:decimal(cbc:AllowanceTotalAmount)) * 10 * 10) div 100 ))  or (not(cbc:ChargeTotalAmount) and (cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = round((xs:decimal(cbc:LineExtensionAmount) - xs:decimal(cbc:AllowanceTotalAmount)) * 10 * 10 ) div 100)) or ((cbc:ChargeTotalAmount) and not(cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = round((xs:decimal(cbc:LineExtensionAmount) + xs:decimal(cbc:ChargeTotalAmount)) * 10 * 10 ) div 100)) or (not(cbc:ChargeTotalAmount) and not(cbc:AllowanceTotalAmount) and (xs:decimal(cbc:TaxExclusiveAmount) = xs:decimal(cbc:LineExtensionAmount))))

Official text: Invoice total amount without Tax (ibt-109) = Σ Invoice line net amount (ibt-131) - Sum of allowances on document level (ibt-107) + Sum of charges on document level (ibt-108).

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

Check an invoice