Common Peppol invoice validation errors and fix order
Fix Peppol validation errors before send: VAT totals, buyer 0208 number, missing fields. Validation is not a customer reject and not a delivery failure.
Updated
A Peppol validation error means your invoicing tool or Access Point refuses the invoice before delivery. The structured file failed EN 16931 / BIS rules. That is not a customer saying they will not pay, and it is not a delivery status problem. Fix validation first. Do not put a legal invoice number on a document you already know is invalid.
After a failed send that consumed a number, or after a later customer reply, see Fix a rejected Peppol invoice.
Symptoms you will recognise
| What you notice | Likely cause |
|---|---|
| “VAT total doesn’t match the lines” | Line VAT and document VAT were calculated differently |
| “Buyer number wrong” / cannot find customer on Peppol | Enterprise number or scheme incorrect |
| “Missing invoice number / date / currency” | Required header fields empty |
| “Line description empty” or “unit not allowed” | Incomplete line |
| “VAT rate doesn’t match the category” | Wrong VAT code on a line (standard, exempt, reverse charge, franchise) |
| “Payable amount doesn’t add up” | Discounts, charges, or VAT not rolled into the total |
Most “almost ready” invoices fail on VAT maths or buyer identity. Later errors often vanish once earlier ones are fixed.
Worked example
Atelier Nord SRL drafts an invoice with two lines: 1,000.00 EUR at 21% (210.00 VAT) and 200.00 EUR at 6% (12.00 VAT). Expected document VAT is 222.00 EUR and payable 1,422.00 EUR. Someone typed TaxTotal as 210.00 to “match the first line.” Validation fails: VAT total does not match the lines.
Wrong: edit only the payable field until the report goes quiet.
Right: correct the VAT category on each line, then regenerate TaxTotal and LegalMonetaryTotal from the lines. Re-validate until the report is clean, then send.
Fix in this order
Work top-down:
- Buyer and seller identity - Correct legal names. For Belgium, Peppol addressing uses scheme 0208 and the ten-digit enterprise number (KBO/BCE). Do not put a VAT number (
BE0…) where the Peppol ID expects0208+ enterprise number. Keep leading zeros. Check parent vs subsidiary. Confirm the buyer with participant lookup. - Invoice basics - Number, issue date, currency (usually
EURdomestically). - Lines - Description, quantity, unit, net amount on every line.
- VAT on each line - Same category and rate as your Belgian VAT treatment; see legal mentions.
- Totals - Fix VAT mapping in the product, then regenerate totals. Do not hand-edit one total field alone.
- References the buyer expects - Purchase order number if they require it.
- Validation error
A refusal before delivery: the structured invoice failed the rules, so Peppol never treated it as a delivered business document.
Quick checklist before send
- Seller and buyer names and addresses
- Your VAT / enterprise IDs for the scenario
- Invoice number and date
- At least one complete line
- VAT breakdown that matches the lines
- IBAN or structured payment communication if you put them on the invoice
Then: open the full error report → fix in the order above → re-validate until clean → only then send (first Peppol invoice). Field meanings: EN 16931 / UBL.
FAQ
What is a Peppol invoice validation error?
A refusal before Peppol delivery: the structured invoice failed EN 16931 or BIS rules. The buyer did not receive a business document.
How do I fix Peppol validation errors?
Open the full report and work in order: buyer and seller identity (0208 plus enterprise number), header fields, complete lines, VAT on each line, then regenerate totals. Re-validate until clean before you send.
Why does the VAT total not match the lines?
Line VAT and document VAT were calculated differently, or a total was typed by hand. Correct the VAT category on each line and regenerate TaxTotal and LegalMonetaryTotal from the lines.
Why is the buyer number wrong on Peppol?
The ID is usually scheme 0208 plus the ten-digit enterprise number, including leading zeros. A VAT number (BE0…) in that field, or the parent instead of the subsidiary, fails lookup and validation.
Is a validation error the same as a rejected invoice?
No. Validation stops the file before delivery. A customer reject is an IMR after a successful send. Do not credit or renumber until you know which one you have.
Can I send after I hand-edit one total?
No. Totals must be derived from the lines. Patching a single field often creates a new mismatch. Fix mapping, regenerate, then re-validate.
Should I use an invoice number on an invalid draft?
No. Do not consume a legal number on a document that already fails validation. Fix the draft first; allocate the number when the report is clean.
What do TaxTotal and LegalMonetaryTotal mean?
TaxTotal is the document VAT breakdown. LegalMonetaryTotal is the monetary footer (line net, allowances, VAT, payable). Both must reconcile with the lines; support uses those names when reading a report.