Start with the identifier

Make sure you know which scheme and value are being used on the invoice itself.

Do not trust the ERP record alone if the live send failed.

Treat the directory as evidence

The directory is useful, but it is not perfect. A missing result can still be a publication gap.

Use it to build confidence, not as the only source of truth.

Record the resend decision

If the identifier changes, regenerate the invoice so the exported XML matches the intended route.

Never resend blindly from a broken company record.

Related issue pages

Exact blocked moments this guide helps you resolve

0208 vs 9925 in Belgium: which Peppol ID should you use?

Belgian Peppol delivery often fails because the counterparty is stored with the wrong identifier scheme. This page explains when 0208 and 9925 diverge and what to verify first.

Open issue page
Wrong endpoint scheme in a Belgian Peppol invoice

The invoice can look structurally valid and still fail because the participant scheme does not match the recipient's published routing identity.

Open issue page
No valid Peppol ID found for a Belgian customer

This usually means the customer is registered under a different identifier or not fully published. Here is how to separate a real absence from a lookup mismatch.

Open issue page
My customer has a GLN in Odoo, but I still get 'no valid Peppol ID'

A stored GLN or alternate identifier does not guarantee Odoo will resolve the exact Peppol participant the recipient expects. This page shows where the mismatch happens.

Open issue page
Next step

Use the analyzer on the live symptom

Guides are useful when the pattern is familiar. When the latest failure still feels fuzzy, run the analyzer with the exact provider message or XML so you can separate routing, profile, and provider-state problems.