e-invoice validator

Peppol errors

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

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

  1. Run the validator below: for calculation errors it shows the correct value, computed from your invoice.
  2. Start with the lowest level in the chain above, then validate again.
  3. Fix the calculation in your software too, otherwise the next invoice fails the same way.
  4. 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.

Other Peppol errors