BR-CO-15, BR-CO-10, PEPPOL-EN16931-R120: the amounts do not add up
The official rule
Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110) (BR-CO-15). Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount (PEPPOL-EN16931-R120).
Rule pages: BR-CO-15 BR-CO-10 BR-CO-13 BR-CO-14 BR-S-08 BR-S-09 PEPPOL-EN16931-R120
What it means
The rules recompute the invoice from the bottom up, and one wrong number can trigger several errors. Start at the lowest level: line (R120: quantity x price) → sum of lines (BR-CO-10) → VAT breakdown per rate (BR-S-08, BR-S-09) → totals (BR-CO-13, BR-CO-14, BR-CO-15) → amount due (BR-CO-16). Fixing a lower level often clears the ones above it.
Common causes
- VAT calculated line by line and rounded, then added up, while the rules expect VAT per rate on the sum of the lines (a difference of one or two cents is enough for BR-S-09);
- a price with more decimals than the line amount, rounded before multiplying;
- an allowance or charge included in the line but not in the totals, or the other way round;
- totals typed in by hand after the lines changed.
Example
Wrong:
<cbc:TaxExclusiveAmount currencyID="EUR">1000.00</cbc:TaxExclusiveAmount> <cbc:TaxInclusiveAmount currencyID="EUR">1190.00</cbc:TaxInclusiveAmount>
Right:
<cbc:TaxExclusiveAmount currencyID="EUR">1000.00</cbc:TaxExclusiveAmount> <cbc:TaxInclusiveAmount currencyID="EUR">1210.00</cbc:TaxInclusiveAmount>
How to fix it
- Run the validator below: for calculation errors it shows the correct value, computed from your invoice.
- Start with the lowest level in the chain above, then validate again.
- Fix the calculation in your software too, otherwise the next invoice fails the same way.
- If the amounts legally issued differ from the file, correct the source document instead of the XML: the XML must describe the invoice you actually issued.
Automatic repair recomputes the sum of the lines, the VAT breakdown and the totals from the lines. It does not touch R120, because the lines are its starting point: it cannot know whether the price, the quantity or the amount is wrong.
Check your invoice against the Peppol rules
Paste the UBL XML: you get every error at once (UBL schema, EN 16931, Peppol BIS 3.0), with the fix for each one. Free, 3 checks a day, no account. The file is not stored.
Frequently asked questions
Why does a one-cent difference fail?
Most of the totals rules are exact. Peppol allows a tolerance of 0.02 only on the line calculation (R120) and on the allowance/charge percentage calculation.
Should VAT be rounded per line or per rate?
For the check, per rate: BR-S-09 compares each VAT subtotal with its taxable amount times the rate, rounded to two decimals.
Can a tool correct my totals automatically?
Yes, when the lines are right, and it should list every change. Review them: you are responsible for what the invoice says.