How to Fix a Rejected UBL Invoice
A rejected Peppol invoice is a special kind of stuck. The file came out of some system as UBL, a validator somewhere said no, and what you hold is an error report full of rule codes and an invoice that legally exists but cannot be delivered. The editor above is built for exactly this moment: upload the refused file, correct the fields behind the codes, and download a UBL invoice that passes.
Where a Peppol invoice can bounce
A UBL invoice is validated more than once on its way to the buyer. Your access point checks it against the Peppol BIS Billing 3.0 rules before it enters the network; the receiving access point and the buyer's software check it again on arrival. Every gate runs the same layered validation: the UBL 2.1 schema, the EN 16931 business rules, and the BIS 3.0 constraints on top. A single failed rule at any gate stops the document, however correct the rest of it is.
The failures behind most rejections
- An endpoint identifier with the wrong scheme, or none: a KVK number declared under the wrong code, an OIN where a VAT number was registered
- A customization or profile ID that does not announce the document as Peppol BIS Billing 3.0
- VAT category totals that disagree with the line amounts, usually after a late price change
- No buyer reference or order reference, which BIS 3.0 requires one of
- A credit transfer declared without a payment account identifier
- Missing country codes or incomplete addresses
Not one of these needs new software to fix. They are values in fields, and fields can be edited.
Edit the data, let the machine write the XML
UBL is not a format made for hand-editing: the cac and cbc elements are namespaced, their order is fixed by the schema, and the same amounts appear in several places that have to agree. This editor removes the XML from the equation. The uploaded file is parsed into the EN 16931 invoice model, every field becomes a plain input, and totals recompute as you type. Whatever the form does not display, attachments and notes included, is preserved and merged back. On download the UBL is regenerated from scratch by the same engine behind the invoice generator, so structure, namespaces, and sums are correct by construction.
When the broken invoice was sent to you
The receiving side has the same problem in reverse: a supplier's UBL file that your bookkeeping or your access point inbox refuses to process. Upload it, repair the offending fields, and import the corrected file so processing continues. For the VAT record, ask the supplier to reissue the corrected invoice as well; the repaired copy keeps you moving while you wait.
Validate before it goes back on the network
If all you have is the access point's error message, validate the original file first: the report names every violated rule and the element behind it, which tells you exactly which fields to change here. The regenerated invoice is checked against the same rules before download, so the round trip ends with a file that passes:
- Validate a UBL invoice against EN 16931 and Peppol BIS 3.0
- Read a UBL invoice like a paper document first
Related tools for the rest of the journey
Editing covers the case where a UBL file already exists and is wrong. If the invoice only exists as a PDF or a spreadsheet, convert it instead, and if Peppol itself is the confusing part, the guide explains the network end to end: