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.
What is usually actually broken
The ERP has an identifier on file, but it is not the exact scheme-plus-value pair the network or provider expects for this counterparty.
Do these before you resend
- Verify the live participant ID rather than trusting the local GLN field alone.
- Check whether the recipient expects 0208, 9925, or another explicit scheme.
- Update the partner record and regenerate the invoice before retrying.
What people ask right before they get blocked
Not always. The network still needs the right participant scheme and value pair for the exact recipient route.
Because teams often keep multiple identifiers in the ERP and the wrong one can win at send time.
Go one level deeper before you resend
A short checklist that filters out the most common Belgian routing mistakes in minutes.
Read the guideA calm, ordered checklist for Belgian Odoo users when Peppol starts failing without a clear explanation.
Read the guideSimilar failure patterns worth checking
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 pageThis 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 pageThe invoice can look structurally valid and still fail because the participant scheme does not match the recipient's published routing identity.
Open issue page