Peppol invoice rejected? What the code means and how to fix it
Your software or access point returned a code such as PEPPOL-COMMON-R043 or BR-CO-15 instead of an explanation. Here is what the most common ones mean, with the exact XML to change. Written with Belgian invoices in mind, but the rules are the same across the Peppol network.
- PEPPOL-COMMON-R043: Belgian enterprise number MUST be stated in the correct format
- PEPPOL-EN16931-R020 / R010: electronic address MUST be provided
- PEPPOL-EN16931-R003: buyer reference or purchase order reference missing
- PEPPOL-EN16931-R001 / R004 / R007: the two identifiers at the top of the invoice
- BR-CO-15, BR-CO-10, PEPPOL-EN16931-R120: the amounts do not add up
Another code? Every rule the validator runs has its own page, with the fix.
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.
Why this matters in Belgium
Since 1 January 2026, Belgian VAT-liable companies must exchange structured electronic invoices with each other, and these travel over the Peppol network. So a code that used to concern a few integrators now reaches small companies and their accountants.
What a validator cannot tell you
A clean report means the document passes the official UBL, EN 16931 and Peppol BIS Billing 3.0 rules. It does not show that:
- the buyer is registered on Peppol under that identifier, for this document type: only a Peppol lookup or your access point can tell;
- your access point has no additional checks of its own;
- the buyer accepts the content. A buyer can still refuse an invoice for business reasons, through a Peppol invoice response;
- the invoice meets every tax requirement: ask your accountant about the VAT treatment.