Why Peppol invoices are rejected — and how to investigate UBL errors
A rejected Peppol invoice usually contains a missing mandatory value, an invalid code, a routing identifier problem, or totals that do not reconcile. The fastest first step is to identify the exact rule and XML path reported by your Access Point or accounting platform.
1. Missing invoice identity fields
Invoices commonly fail when the identifier, issue date, document type or currency is missing. For example, BR-02 points to /Invoice/cbc:ID, while BR-03 points to /Invoice/cbc:IssueDate. These values should come from your invoicing system, not be guessed during repair.
2. Invalid invoice type or currency
BR-04 checks the InvoiceTypeCode. BR-05 checks the three-letter ISO 4217 document currency code. The correct business value depends on the transaction and your accounting records.
3. Missing EndpointID
Peppol routing uses an electronic address for the supplier and customer. A missing EndpointID can prevent delivery even when the visible invoice details look complete. The identifier and its scheme must be supplied by the Access Point or trading partner.
4. Totals do not reconcile
A calculation error such as BR-CO-15 means the tax-inclusive amount does not match the taxable amount plus tax. Check line rounding, decimal precision, tax categories and currency consistency in the source system.
5. What an automated repair can and cannot do
A safe repair can correct deterministic structural or formatting problems when the intended value is unambiguous. It should not invent an invoice number, date, customer endpoint or tax treatment. If blocking findings remain after the safe repair pass, the repaired export stays unavailable until the source invoice is corrected.
How RejectFix helps
- Upload your UBL 2.1 XML invoice.
- Review rule IDs, messages and XML paths.
- Inspect the line-by-line diff of safe changes.
- Re-run your final file through your own Access Point or official validator.
Frequently asked questions
Does passing RejectFix mean my invoice is compliant?
No. It means no blocking findings were found among RejectFix's implemented checks.
Does RejectFix send invoices to Peppol?
No. It is a diagnostic and repair aid only.
What should I do after fixing an invoice?
Validate it with the Access Point or official Schematron process required by your network and trading partner.