SMP, SML and Peppol Directory: how Peppol finds a recipient
How Peppol routes an invoice: the SML points to the recipient's SMP, which lists the documents it accepts. Why the Directory proves nothing, and how OrdoGrid checks.
- Updated
- Content owner
- Customer education team
- For
- Business owners and finance staff in Belgium · Accountants and bookkeepers who support clients on Peppol · IT staff and developers who troubleshoot Peppol delivery
At a glance
Peppol finds a recipient in two lookups. The SML, a central DNS service run by OpenPeppol since 2026, points each participant ID to exactly one SMP; that SMP, run by the recipient's provider, lists the document types the recipient accepts and the access point that receives them. The Peppol Directory is a separate, optional search index: a missing card does not mean unreachable, and a card does not prove that the recipient can receive.
Before you begin
- A basic idea of what Peppol and an access point are
- The enterprise number or VAT number of the business you want to check
- For the OrdoGrid steps: a company with a BE VAT number and a signed Autorisation Peppol (Peppol authorisation)
What you will achieve
- Explain what the SML, the SMP and the Peppol Directory each do, and which of them decides delivery
- Read a lookup result correctly, including 0208 versus 9925 and the document types listed
- Know which registers OrdoGrid consults, and in what order, before it says a client is or is not on Peppol
- Ask a customer or a provider for the right fix when a registration is incomplete
On this page
Before an invoice can travel over Peppol, the sender's access point has to find out where the recipient receives its documents. It does so in two lookups. The SML (Service Metadata Locator), a central DNS service, says which SMP (Service Metadata Publisher) holds the recipient's details. The SMP, run by the recipient's provider, says which document types the recipient accepts and to which access point they must be delivered. The Peppol Directory is a separate, optional search index of business cards that plays no part in routing.
This reference explains how the three fit together, what each result proves and how OrdoGrid uses them. For the step-by-step check of a customer and the usual causes of “not found”, see Check whether a Belgian customer can receive invoices on Peppol. For identifier formats and the mod-97 check, see Peppol ID explained.
SML, SMP and Directory at a glance
| SML (Service Metadata Locator) | SMP (Service Metadata Publisher) | Peppol Directory | |
|---|---|---|---|
| What it is | One central DNS service for the whole network | Metadata server of the recipient's provider | Search index of business cards |
| Who runs it | OpenPeppol, which took it over from the European Commission in 2026 | The provider that receives for the participant, sometimes separately from its access point | A central service at directory.peppol.eu, fed by the SMPs that choose to publish |
| What it holds | One entry per participant ID, pointing to one SMP | Per document type: receiving access point, transport profile, certificate, optional activation and expiry dates | Name, country, identifiers and document types, as published |
| Used for routing? | Yes, first lookup | Yes, second lookup | No |
| A result proves | The ID is registered with a provider in that environment | Which documents the recipient accepts, and where | Only that a card was published at some point |
- Dynamic discovery
- The way a Peppol access point finds, at the moment of sending, where to deliver a document: it asks the SML which SMP holds the recipient's ID, then asks that SMP for the address that accepts the document type. Nothing is set up per customer in advance.
In the four-corner model, your access point (corner 2) runs this discovery for you (corner 1) and delivers to the recipient's access point (corner 3), which passes the invoice to your customer (corner 4). Only providers write to the SML and the SMP; a business never edits them itself.
How a sender finds your customer, step by step
- Build the participant ID. The sender takes the recipient's identifier: a scheme code, a colon and a value, for example
0208:0999887777, where 0208 means Belgian enterprise number. The value is not case-sensitive. - Hash it. The access point lowercases the ID, computes its SHA-256 hash and encodes it in Base32 without the trailing
=signs, which gives a DNS label of fixed length. - Ask the SML. It queries the DNS name made of that hash, the scheme
iso6523-actorid-upisand the SML zone. Under SML specification 1.3.0, in force since 1 November 2025, the answer is a U-NAPTR record for the serviceMeta:SMPholding the address of the recipient's SMP. No record means the ID is not registered in that environment. - Ask the SMP. The access point requests the metadata for the exact document type it wants to send, for example the Peppol BIS Billing 3.0 invoice. The SMP returns the receiving access point's address, the transport profile (AS4), its certificate and, optionally, activation and expiry dates. Senders must ignore an entry that is not yet active or has expired. An SMP may redirect the request to another SMP, but only one level deep.
- Deliver. The sending access point delivers over AS4 to that address, using the certificate it has just received, and the receiving access point passes the invoice on.
Invoices and credit notes are separate document types in the SMP, so a recipient can be reachable for one and not the other. Peppol BIS Billing expects receivers to support both.
What the DNS lookup looks like
For technical readers, this is the production lookup for the identifiers in the worked example below. Any DNS tool can run the query; for this fictitious number it returns no record.
Participant ID 0208:0999887777
SHA-256, Base32 rjtk4m7ohrai7xkohzgw6eys7z3xmeftxm4xfckvlqtp6v4so3uq
DNS name (NAPTR) rjtk4m7ohrai7xkohzgw6eys7z3xmeftxm4xfckvlqtp6v4so3uq.iso6523-actorid-upis.participant.sml.prod.tech.peppol.org
Participant ID 9925:BE0999887777
SHA-256, Base32 zqbxprwc6l2ypul5n2aqmbehihns4acomxhdsoxq3yhxs7rbihea
The same company under its VAT number hashes to a completely different name. That is why 0208 and 9925 are two separate registrations: one can exist without the other.
One ID, one SMP: what follows from it
| Rule | What it means for you |
|---|---|
| Each participant ID is registered with one and only one SMP (SML 1.3.0, section 2.1) | Only one provider holds the registration for an ID at a time; a second registration is refused, not shared. That provider's SMP can redirect a document type to one other SMP, which is rare in Belgium and set up manually |
| Moving an ID needs the old provider's cooperation | With Peppol's migration key, the old SMP hands over and the SML switches in one step. Otherwise the old provider deregisters first and the new one registers afterwards, which can leave a gap |
| 0208 and 9925 are different IDs | A business can be reachable under one and not the other. The Belgian Peppol Authority requires providers to register every Belgian participant under 0208; FPS Finance allows 9925 and other IDs only in addition |
| Sending needs no registration of your own | You can send through one provider while another receives for you. A business within the Belgian e-invoicing obligation must still be able to receive, through some provider |
OrdoGrid does not support migration keys: if another provider holds your registration, that provider must deregister you before OrdoGrid can register you. See Switch Peppol access point or provider without losing invoices.
What each lookup result proves
| What you see | What it means | What it does not mean | What to do |
|---|---|---|---|
| The ID lists the BIS Billing 3.0 invoice and credit note | Registered in production for both | That the customer can send to you, or will approve or pay | Send |
| The BIS Billing invoice or credit note is missing from the list | Incomplete registration | That the missing type is optional: receivers are expected to support both | Ask the customer to have its provider publish both |
Nothing under 0208:, found under 9925:BE with the same digits | Registered under the VAT number only | That the registration meets the Belgian rule | Send to the 9925 ID; tell the customer its provider must add 0208 |
| Nothing under 0208 or 9925 | No production registration under these IDs, or a wrong number | That the number is right: a typo gives the same answer | Check the number and search by name, then see Customer not on Peppol |
| A Directory card, but no SML entry | An outdated card, or a card filed under another ID | That the customer can receive | Rely on the SML result |
| An SML entry, but no Directory card | Normal: cards are voluntary and indexed later | That the customer is unreachable | Send |
| Found with test tools only | Registered on the test SML (T-SML, formerly SMK) | Reachability in production: the two networks never mix | Ask the customer to register in production |
FPS Finance points businesses to lookup.peppol.org, OpenPeppol's lookup service, where you type 0208: followed by the enterprise number. It reads what is currently published, which is why OpenPeppol introduced it alongside the asynchronous Directory. FPS Finance warns that it does not show whether an organisation can also send.
A registration also has a legal meaning: according to FPS Finance, being published on Peppol as an invoice recipient counts as agreement to receive structured invoices (B2B FAQ, question 9).
How OrdoGrid uses these registers
OrdoGrid connects to Peppol through a certified access point. Its Peppol screens are in French in every interface language; labels are quoted exactly, with a translation.
When you send
OrdoGrid has no Peppol ID field on clients. When you click Envoyer (send) on an invoice or credit note, or the globe button Envoyer à Peppol (send to Peppol) in the list, it starts from the N° de TVA (VAT number) of the client on that document.
- For a Belgian client, it looks up
0208:plus the ten digits in the SML, then9925:plus BE and the digits. - If the SML gives nothing, it searches the Peppol Directory, then asks its own access point (Belgian clients only).
- It addresses the document to the first ID it finds. For foreign clients, it tries the schemes it maps to the client's country.
- The check runs again on the server when the document is actually sent.
| Message in the Peppol block of the send popover | Which lookup answered | What to do |
|---|---|---|
| Envoi électronique via Peppol (electronic sending via Peppol), ticked | An SML entry, a Directory card or the access point confirmed an ID | Send with Sauvegarder & Envoyer (Save & Send) |
| Peppol — ignoré (skipped): Pas de numéro de TVA client (no client VAT number) | None: there was nothing to look up | Add the VAT number if the client has one; otherwise send by email |
| Peppol — ignoré: Le client n'est pas enregistré sur le réseau Peppol (client not registered on Peppol) | No source confirmed a registration | Check the number, then check lookup.peppol.org: see participant lookup |
| Peppol — ignoré: Impossible de vérifier le statut Peppol du client (status could not be checked) | A lookup failed for technical reasons | Try again later; this is not a “not registered” answer |
OrdoGrid does not show which source answered or which ID it found. The list button's confirmation window shows Client inscrit sur Peppol (client registered) or Client non inscrit sur Peppol (client not registered). It does not show a technical failure separately: if the check fails, it also shows Client non inscrit sur Peppol, together with an error notice. In that case, retry later.
OrdoGrid's check confirms a registration; it does not read or show the document types in the customer's SMP. If that SMP has no entry for your document, the send cannot be delivered and the row in Peppol → Outbox ends in Erreur (error) instead of Traité (network delivery completed): see Peppol delivery status.
A tick does not prove reachability either: it can rest on a Directory card alone. If lookup.peppol.org shows no SML entry for the customer's ID, the send is likely to end in Erreur; ask the customer to have its provider fix the registration.
When you receive
- On Réception Peppol (Peppol reception), OrdoGrid shows whether your own number is already on the network: Pas encore trouvé sur le réseau Peppol (not found yet), Déjà inscrit sur le réseau Peppol (registered with another provider), Déjà présent sur Peppol via notre access point (present through our access point) or Référencé sur Peppol, access point non vérifié (listed on Peppol, access point not verified). OrdoGrid decides who receives from the SMP that the SML names for your ID (without an SML answer, from its access point's own lookup), never from a Directory card alone; the last, grey state means it found you but could not verify which provider holds your ID. If the check itself fails, the page also shows Pas encore trouvé sur le réseau Peppol, together with an error notice: reload the page before you activate reception.
- Activer la réception (activate reception) registers
0208:plus your ten-digit enterprise number and declares reception of the BIS Billing 3.0 invoice and credit note, Invoice Response, MLR and the self-billing invoice and credit note. OrdoGrid registers under 0208 only. - If another provider already receives for you, choose Continuer en envoi seul (continue send-only): you send through OrdoGrid and keep receiving where you are. When the SML names another provider's SMP for your ID, activation is greyed out and OrdoGrid refuses it; to receive in OrdoGrid, that provider must first release the ID.
- In Peppol → Statut (status), Réception (Inbox) shows Enregistré (registered) and the date under “Depuis le” (since). Libérer la réception (release reception) deregisters your ID at OrdoGrid's access point; sending remains possible.
- The Annuaire Peppol (Peppol Directory) panel on that tab reads Votre entreprise est référencée dans l'annuaire Peppol (listed) or Votre entreprise n'est pas encore dans l'annuaire Peppol (not listed yet). Despite its name, it uses the same lookup chain as sending, starting with the SML. When you are listed, it shows your Identifiant Peppol (Peppol ID) and, when known, Access point de réception (receiving access point): Notre access point (ours) or Autre prestataire (another provider). For a Belgian company registered under 0208 it also shows Nom enregistré (registered name) and Pays (country). If the panel lists Documents supportés (supported documents), check that Facture (invoice) and Note de crédit (credit note) both appear; otherwise check on lookup.peppol.org that both invoice and credit note are listed.
OrdoGrid has no Peppol test mode: every check and every send uses the production network. Setting up both directions is covered in Set up Peppol in OrdoGrid.
Worked example: an ID under 9925 only, and no credit-note reception
Bureau Claes BV, an IT consultancy in Leuven, starts working for Transport Maes NV in Antwerp, enterprise number 0999.887.777 (check: 09998877 divided by 97 leaves 20, and 97 − 20 = 77). Both are VAT-registered and established in Belgium. Bureau Claes invoices through OrdoGrid.
| Document | Lines | Excl. VAT | VAT 21% | Total |
|---|---|---|---|---|
| Invoice F-2026-0214, 5 October 2026, due 4 November 2026 | Route-planning consultancy, 16 h × €95.00 = €1,520.00; dashboard set-up, flat fee €480.00 | €2,000.00 | €420.00 | €2,420.00 |
| Credit note NC-2026-0009, 12 October 2026, referring to F-2026-0214 | Consultancy not performed, 2 h × €95.00 | €190.00 | €39.90 | €229.90 |
- 2 October, before the first invoice. On lookup.peppol.org,
0208:0999887777returns nothing.9925:BE0999887777returns Transport Maes NV with one document type: the BIS Billing 3.0 invoice, no credit note. - Reading the result. The SML has an entry for the VAT-number ID only, and the SMP lists invoices only. Transport Maes can receive F-2026-0214 but not a credit note, and its registration lacks the 0208 ID that Belgian providers must register.
- 5 October, sending. In OrdoGrid, the send popover opened by Envoyer shows Envoi électronique via Peppol, ticked: behind the scenes, the 0208 lookup found nothing and the 9925 lookup found the entry. After Sauvegarder & Envoyer, the invoice goes to
9925:BE0999887777, and in Peppol → Outbox the row moves from En file (queued) to Traité. - Same day. The bookkeeper emails Transport Maes's accounts team: “Your Peppol registration lacks 0208:0999887777 and credit-note reception. Please ask your Peppol provider to add both.” The dated lookup screenshot is attached and filed.
- 12 October, credit note. Two consultancy hours were not delivered. Before sending NC-2026-0009, the bookkeeper checks again:
0208:0999887777now lists invoice and credit note. OrdoGrid finds 0208 first and sends the credit note there; the row reaches Traité. - Result. In the Settlement panel of F-2026-0214, Credits shows €229.90 and Outstanding €2,190.10 (€2,420.00 − €229.90).
Had the credit note gone out on 6 October, OrdoGrid's check would still have passed, because the 9925 entry existed. The customer's SMP had no credit-note entry, though, so the send would have ended in Erreur. The fix sat with the customer's provider, not in the credit note.
Production, test and the 2026 SML move
- Two separate networks. Production and test have their own certificates and their own SML zone:
participant.sml.prod.tech.peppol.organdparticipant.sml.test.tech.peppol.org(the T-SML, formerly SMK). An ID registered only in test cannot be found from production. See Peppol test versus production: what to check before a live send. - A new SML operator in 2026. OpenPeppol took over the SML from the European Commission. Providers had to move SMP registrations to the new SML by 31 May 2026 and switch their lookups by 31 August 2026. The old Commission addresses are not redirected and are being decommissioned.
- What it means for you. Nothing to change as a business: the migration is your provider's job. If lookups that used to work started failing around those dates, ask your provider whether its migration is complete.
Edge cases and common mistakes
| Mistake or situation | Why it goes wrong | Correct action |
|---|---|---|
| “Not in the Directory, so not on Peppol” | Directory cards are optional and indexed asynchronously | Check lookup.peppol.org, or let OrdoGrid check, starting with the SML |
| “We signed with a provider, so suppliers can find us” | You are findable only once the provider has registered your ID in the SML and published document types in its SMP | Ask the provider to confirm the production registration, then check yourself |
| A wrong or incomplete number | Enterprise numbers have ten digits and end with a mod-97 check; a wrong value usually points to no registration at all | Copy the number from a KBO/BCE extract (Crossroads Bank for Enterprises); search 9925 as BE plus the ten digits; never use the old schemes 9956 or 0193 |
| A provider switch is under way | One SMP per ID: a gap if the old provider deregisters first, and an activation date in the future makes senders skip the entry until then | Ask the customer for the switch date and check again afterwards |
| A registration activated today | No official publication time exists. The SML entry usually appears quickly; a Directory card can take longer or never appear, as the indexer gives up on items that still fail after 24 hours | Rely on the SML result; if the customer stays missing, ask it to have its provider confirm the production registration |
Evidence to keep
These are recommendations; no rule prescribes this list.
- New business customer: a screenshot or PDF of the lookup.peppol.org result, with date, ID searched and document types listed. Note the outcome in the client's Notes field in Base Clients (client list).
- Customer not reachable: the dated lookup with no result under 0208 or 9925, and your message asking the customer to register. It shows why the invoice did not go via Peppol.
- Your own registration: the Statut tab showing Enregistré with its date, and your provider's confirmation. When switching, keep the old provider's deregistration date.
- Failed send: the Outbox status, the date, and what was fixed before the retry.
FAQ
What is the difference between SMP and SML?
The SML is one central DNS service for the whole Peppol network: for each participant ID it points to the one SMP that holds its details. The SMP belongs to the recipient's provider and lists, per document type, the access point that receives it. Senders ask the SML first, then the SMP.
Is the Peppol Directory authoritative?
No. Routing never uses it: the Directory indexes business cards that providers publish voluntarily, with a delay. Many registered businesses have no card. To see what is currently published, use lookup.peppol.org, as FPS Finance recommends.
Can two providers receive invoices for the same Peppol ID?
No. Each participant ID is registered with exactly one SMP, so one provider controls where its documents are delivered. Switching needs either a migration key from the old provider or a deregistration before the new registration; OrdoGrid supports only the second route.
Do I need to be registered in the SML to send invoices?
No, sending works without a registration of your own. But a business within the Belgian obligation must also be able to receive structured invoices, which requires a registration with some provider. In OrdoGrid, choose Continuer en envoi seul if another provider already receives for you.
How long after registration can suppliers find us?
There is no official publication time. The SML entry usually appears quickly but depends on the provider; a Directory card can follow later or not at all. Check your ID on lookup.peppol.org rather than waiting for the Directory.
Does OrdoGrid show which document types my customer accepts?
No. OrdoGrid confirms that the customer is registered under 0208 or 9925, not which document types its SMP lists. Check lookup.peppol.org for the BIS Billing invoice and credit note.
Sources and references
- OpenPeppol — Service Metadata Locator (SML) specification 1.3.0
- OpenPeppol — Service Metadata Publishing (SMP) specification 1.4.0
- OpenPeppol — Policy for use of Identifiers 4.4.0
- OpenPeppol — SML Insourcing: new SML zones and migration deadlines
- OpenPeppol — Peppol Directory specification 1.1.1
- FPS Finance — FAQ: general questions about Peppol (Peppol ID, Lookup Peppol)
- Belgian Peppol Authority — Peppol Authority Specific Requirements
- FPS Finance — FAQ: general questions on the B2B obligation
- OpenPeppol — Peppol Lookup Service is now available
- OpenPeppol — Peppol BIS Billing 3.0