BR-CO-15: Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) +…
Peppol BIS Billing 3.0.21 · UBL
Original rule text
[BR-CO-15]-Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).
every $Currency in cbc:DocumentCurrencyCode satisfies (count(cac:TaxTotal/xs:decimal(cbc:TaxAmount[@currencyID=$Currency])) eq 1) and (cac:LegalMonetaryTotal/xs:decimal(cbc:TaxInclusiveAmount) = round( (cac:LegalMonetaryTotal/xs:decimal(cbc:TaxExclusiveAmount) + cac:TaxTotal/xs:decimal(cbc:TaxAmount[@currencyID=$Currency])) * 10 * 10) div 100)BR-CO-15 is a fatal rule in the business layer of Peppol BIS Billing 3.0.21 · UBL. An invoice that breaks it is rejected. It refers to BT-112, BT-109, BT-110.
What this rule requires
BR-CO-15 is a fatal rule: the invoice total amount with VAT (BT-112) must equal the invoice total amount without VAT (BT-109) plus the invoice total VAT amount (BT-110), calculated in the invoice currency and rounded to two decimal places. In UBL this means cbc:TaxInclusiveAmount must equal the rounded sum of cbc:TaxExclusiveAmount and the one cbc:TaxAmount with @currencyID equal to cbc:DocumentCurrencyCode; there must be exactly one such cbc:TaxAmount. A document fails if the rounded sum does not match, or if the cbc:TaxAmount count is zero or more than one. In CII, the same equality applies to the monetary summation amounts, but an additional accepted condition is ram:GrandTotalAmount equal to ram:TaxBasisTotalAmount.
How to fix
Check the amounts in the invoice currency. If cbc:TaxInclusiveAmount was entered manually, set it to the result of round((cbc:TaxExclusiveAmount + cbc:TaxAmount) * 100) div 100. Ensure cac:TaxTotal contains exactly one cbc:TaxAmount with @currencyID matching cbc:DocumentCurrencyCode; remove duplicates or add the missing tax total amount if needed. For CII, apply the same corrections to ram:GrandTotalAmount, ram:TaxBasisTotalAmount, and ram:TaxTotalAmount, or use the accepted condition where ram:GrandTotalAmount equals ram:TaxBasisTotalAmount.
Guidance on this rule. The original text above is authoritative.
Where to go next
No published Peppol BIS Billing UBL release comparison lists a change to BR-CO-15.
Validate an invoice against these rules · All release changes