Fix a rejected or failed Peppol invoice

Diagnose rejected or failed Peppol invoices in Belgium: validation errors, addressing failures, and business rejects via IMR. Correct without corrupting invoice numbering.

Updated

Separate three kinds of “reject”

A Peppol invoice can fail in three different places. Treat them differently:

Failure typeWhere you see itMeaning
Validation / syntaxYour tool or Access Point before or at sendUBL / EN 16931 / BIS rules failed
Addressing / routingSend fails: participant not found, no endpointBuyer not reachable under that ID
Business reject (IMR)Delivery succeeded; buyer returns Rejected / Under queryContent or commercial objection

Confusing transport failure with business rejection wastes time and often breaks numbering. Background on responses: Peppol IMR.

Step 1: Read the exact status

Capture: invoice number, send timestamp, recipient ID used, error code/text, and whether the Access Point reported delivered. If delivered, do not “resend the same invoice” until you know whether the buyer rejected it commercially.

Step 2: Fix by failure type

Validation errors

Typical causes: missing VAT category, totals that do not reconcile, wrong currency, empty mandatory party fields, invalid unit codes.

  1. Open the validation report line by line.
  2. Correct master data or line items in the draft if the document was never issued in your legal sequence.
  3. If the number was already issued, follow Step 3 (numbering) before inventing a second document.

Content rules: EN 16931 / UBL and Belgian legal mentions.

Addressing failures

  1. Re-check the buyer’s enterprise number (ten digits, scheme 0208).
  2. Run participant lookup.
  3. Confirm legal entity (parent vs subsidiary).
  4. If truly off-network, see Client not on Peppol.

Do not “fix” routing by changing random identifiers on a delivered invoice.

Business reject via IMR

Read the reason code and free text. Common themes: wrong PO/reference, price/quantity dispute, wrong buyer entity, tax treatment dispute.

  1. Agree the commercial correction with the buyer.
  2. Issue a credit note (and a new invoice if needed) rather than silently rewriting history. See Credit notes on Peppol.
  3. Resubmit only the corrected structured documents.
IMR reject

A structured Invoice Message Response that says the buyer will not accept the invoice as submitted, after Peppol delivery already succeeded.

Step 3: Protect invoice numbering

Belgian invoices need a unique, chronological sequence. Bad patterns:

  • Reusing the same invoice number after a failed send that your books already treat as issued
  • Deleting a failed number and leaving a gap without a documented policy
  • Editing a delivered Peppol XML and resending it as if it were new

Practical rules:

  1. Never issued (blocked before allocation): fix and send under the next number when ready.
  2. Issued but not delivered (network/validation after number taken): keep the number; correct data and resend the same invoice only if your Access Point and accounting rules allow retransmission of the same document ID; otherwise credit and re-issue per your accountant’s process.
  3. Delivered then business-rejected: keep the original; credit note + new invoice with a new number.

When unsure whether the number was consumed, check your invoicing ledger first, not only the Peppol UI.

Quick recovery checklist

  1. Classify: validation vs addressing vs IMR
  2. Fix the root cause once
  3. Choose credit / re-issue / resend according to whether the number and delivery already exist
  4. Confirm the buyer’s inbox shows the corrected document
  5. File the error text and IMR with the invoice for audit
Fix a rejected or failed Peppol invoice · OrdoGrid