Comment Peppol trouve le bon destinataire via SML, DNS NAPTR et SMP : étape par étape, avec les messages d'erreur courants.
Le Service Metadata Publisher (SMP) est l'annuaire du réseau Peppol. Lorsqu'un Access Point (AP) envoie un document, il utilise le Participant Identifier du destinataire pour trouver -- via le Service Metadata Locator (SML) et le Domain Name System (DNS) -- auprès de quel SMP le destinataire est enregistré, quelle URL d'endpoint appeler et quels types de documents sont pris en charge. Cet article décrit la chaîne de découverte étape par étape.
Peppol est un réseau ouvert : il n'existe pas de boîte aux lettres centrale qui reçoit et distribue tous les documents. Chaque prestataire de services certifié gère son propre SMP avec les métadonnées de ses clients -- quels documents ils peuvent recevoir, via quel AP et avec quels certificats ils signent. L'AP expéditeur doit déterminer où livrer le document avant chaque envoi, et utilise pour cela le SMP du destinataire.
La spécification SMP est une norme de l'Organization for the Advancement of Structured Information Standards (OASIS). eConnect figure sur la liste des solutions conformes eDelivery SMP de la Commission européenne avec sa propre implémentation.
Chaque organisation sur Peppol possède au moins un Participant Identifier, composé d'un scheme et d'une value :
iso6523-actorid-upis::<scheme>:<value>
Le scheme est un code de la liste de codes Electronic Address Scheme (EAS) -- un registre OpenPeppol de systèmes d'identification nationaux et internationaux. Les codes EAS les plus utilisés :
iso6523-actorid-upis::0106:54441587iso6523-actorid-upis::0190:00000001820029336000iso6523-actorid-upis::9944:NL851306469B01iso6523-actorid-upis::0208:0899965307iso6523-actorid-upis::0204:991-01234-56iso6523-actorid-upis::0192:745707327iso6523-actorid-upis::0235:100123456700003iso6523-actorid-upis::0088:1548079098355Un aperçu complet est disponible sur docs.peppol.eu/edelivery/codelists/ et dans ID Peppol et identifiants.
L'AP expéditeur répond à trois questions pour chaque document :
Le Participant Identifier est haché en MD5 et encodé en hexadécimal minuscule. La valeur hachée devient le label le plus à gauche d'un domaine SML, suivi du scheme Peppol et de la zone SML. Pour la production :
B-<md5>.iso6523-actorid-upis.edelivery.tech.ec.europa.eu
L'environnement de test Peppol utilise une zone SML distincte. Depuis mars 2026, seuls des enregistrements NAPTR sont publiés pour la production et le test -- les anciens enregistrements CNAME ont été supprimés.
L'AP expéditeur effectue une requête DNS sur le domaine ci-dessus, pour le type d'enregistrement NAPTR (Naming Authority Pointer). NAPTR est obligatoire depuis le 1er février 2026. La réponse NAPTR contient un tag de service (Meta:SMP) et un champ regexp pointant vers l'URL SMP du destinataire :
B-<md5>.iso6523-actorid-upis.edelivery.tech.ec.europa.eu
IN NAPTR 100 10 "U" "Meta:SMP" "!^.*$!https://smp.example.com/!" .
Résultat : l'AP sait sur quelle URL SMP le destinataire est enregistré.
Avec l'URL SMP, l'AP construit l'URL de métadonnées spécifique pour ce participant :
GET https://smp.example.com/iso6523-actorid-upis%3A%3A0106%3A54441587
Le SMP renvoie un ServiceGroup en XML avec tous les types de documents pris en charge. Par type de document, l'AP peut demander le ServiceMetadata via une seconde requête :
GET https://smp.example.com/iso6523-actorid-upis%3A%3A0106%3A54441587/services/<DocumentTypeId>
La réponse contient l'URL d'endpoint, le profil de transport, le processus et le certificat PKI de l'AP récepteur. Avec ces informations, C2 chiffre et signe le document, ouvre une connexion AS4 vers C3 à l'EndpointURI trouvée et le livre.
L'illustration end-to-end ci-dessous montre comment un Participant Identifier néerlandais (numéro KvK) mène à une URL d'endpoint concrète :
1. L'expéditeur veut envoyer une facture à :
iso6523-actorid-upis::0106:54441587 (eConnect, EAS 0106 -- KvK)
2. L'AP expéditeur effectue un lookup DNS NAPTR :
B-<md5>.iso6523-actorid-upis.edelivery.tech.ec.europa.eu
--> URL SMP : https://smp.econnect.eu/
3. L'AP expéditeur interroge le SMP :
GET https://smp.econnect.eu/iso6523-actorid-upis%3A%3A0106%3A54441587
--> ServiceGroup avec notamment le DocumentTypeId pour la facture NLCIUS
4. L'AP expéditeur interroge les ServiceMetadata pour NLCIUS :
GET https://smp.econnect.eu/iso6523-actorid-upis%3A%3A0106%3A54441587/services/<NLCIUS-DocumentTypeId>
--> EndpointURI : https://ap.econnect.eu/as4
--> Certificate : <X.509 / cert. PKI>
--> TransportProfile : peppol-transport-as4-v2_0
5. L'AP expéditeur construit le SBDH avec les métadonnées de routage,
signe et envoie via AS4 + TLS à l'EndpointURI.
Lors de l'enregistrement dans un SMP, des capabilities par famille de documents sont configurées par organisation :
invoicesselfbillinginvoiceResponseorderOnlyorderAdvancedorderResponsepintProfilesmls / mlrChaque capability a une valeur on, off ou inherited. L'ensemble complet des capabilities détermine quels types de documents l'AP expéditeur peut trouver dans le SMP -- et donc pour quoi un destinataire est effectivement joignable.
Les lookups SMP sont effectués à chaque envoi. Pour la montée en charge et la robustesse, le SMP eConnect applique sa propre couche de mise en cache : les lookups restent disponibles -- même si un SMP externe est temporairement inaccessible -- en réutilisant les métadonnées en cache dans la période de validité. eConnect garantit 99,99 % de disponibilité sur le SMP.
Deux termes similaires souvent confondus en pratique :
edelivery.tech.ec.europa.eu pour la production) dans laquelle tous les Participant Identifiers sont publiés et qui pointe vers le SMP approprié. Il existe un SML de production et un SML de test ; OpenPeppol reprend la gestion de la Commission européenne (transition jusqu'à fin août 2026).Analogie avec le DNS : le SML est l'annuaire de premier niveau qui renvoie au bon annuaire régional ; le SMP est cet annuaire avec les données réelles.
Un Participant Identifier ne peut être enregistré qu'auprès d'un seul SMP à la fois -- sinon C2 ne saurait pas où envoyer le document. En cas de changement de prestataire, une procédure de migration avec une clé de migration s'applique : le SMP actuel génère une clé, et le nouveau SMP l'utilise pour reprendre l'enregistrement de manière transparente. Pendant la transition, l'organisation reste joignable ; l'identifiant ne change pas, de sorte que les partenaires commerciaux ne remarquent rien.
En plus du SMP lisible par machine, deux interfaces publiques permettent des recherches manuelles :
No valid delivery options / PartyId not found, ou inversement. N'utilisez pas le Directory comme preuve qu'une personne peut ou ne peut pas recevoir.Pour une réponse fiable à la question ce destinataire peut-il recevoir ou non, il faut effectuer une vraie recherche SMP -- ne pas consulter la vue du Directory. Deux outils publics effectuent la recherche Peppol réelle (la même recherche que celle exécutée par le PSB eConnect) :
Si la recherche réussit dans l'un de ces outils, le destinataire est joignable ; si elle échoue (PartyId not found / pas d'options de livraison), le destinataire n'est pas connecté pour ce type de document -- indépendamment de ce qu'affiche le Peppol Directory. Par programme, queryRecipientParty du PSB donne le même résultat autoritatif.
Dans le Peppol Directory, le champ « additional information » affiche le nom du fournisseur de services qui a effectué l’enregistrement -- pour les enregistrements via le PSB eConnect, il indique « eConnect ». Il s’agit de métadonnées de registrar SMP du SP enregistrant et ne fait pas partie de la businessCard configurable par participant. Les champs configurables par participant passent par businessCard.names ; le champ « additional information » est en dehors de cette portée et n’est donc pas configurable par participant -- même pas pour les partenaires en marque blanche qui s’enregistrent via l’endpoint PSB eConnect.
Pour les clients qui souhaitent vérifier par programmation si un destinataire est joignable, le Peppol Service Bus (PSB) eConnect propose l'endpoint queryRecipientParty qui interroge le SMP directement et indique via quel canal et format le destinataire est joignable.
SMP not found / la résolution NAPTR échouequeryRecipientPartyService not foundNo valid delivery optionsinvoices -- voir section ci-dessousCertificate expired / invalidEndpoint not reachablequeryRecipientParty timeoutUn destinataire peut être trouvable sur Peppol -- la recherche NAPTR et l'interrogation SMP réussissent -- et pourtant ne pas être en mesure de recevoir des factures. Le SMP publie en effet par type de document une capability. La réception de factures relève de invoices ; le renvoi d'un statut métier (BIS Invoice Response 3.0) relève de la capability distincte invoiceResponse. Ce sont des enregistrements indépendants.
Si un destinataire est enregistré sur son ID Peppol exclusivement pour Invoice Response transaction 3.0 (invoiceResponse sur on, invoices sur off), l'AP expéditeur ne trouve aucun endpoint invoices dans le SMP. Il n'existe alors aucun chemin de livraison valide pour une facture, et la plateforme eConnect signale No valid delivery options lors de l'envoi. Le destinataire peut envoyer un Invoice Response via cet identifiant, mais ne peut pas y recevoir de facture.
Important : il ne s'agit pas d'une erreur du côté d'eConnect ou de l'expéditeur -- c'est un reflet exact de ce que le destinataire a publié dans son propre SMP.
Deux solutions :
invoices) est enregistré. Une organisation peut enregistrer plusieurs identifiants avec des capabilities de type de document distinctes par identifiant.En cas de doute, vérifiez quels types de documents un destinataire publie via le Peppol Lookup Service ou par programmation via queryRecipientParty.
Le Peppol Directory (directory.peppol.eu) est un registre asynchrone qui récupère périodiquement les données des SMP. Il peut prendre du retard sur le statut d'enregistrement réel et est donc peu fiable pour les vérifications d'accessibilité. Le Peppol Lookup Service (lookup.peppol.org) interroge le SMP directement et affiche le statut actuel. Pour le dépannage, le Lookup Service fait référence. Alternatives qui interrogent également le SMP directement : test.peppolautoriteit.nl/discover et peppol.helger.com.
Un destinataire peut figurer dans le registre Peppol mais être enregistré exclusivement pour Invoice Response (capability invoiceResponse) et non pour recevoir des factures (capability invoices). Il n'existe alors aucun chemin de livraison valide pour une facture. Vérifiez via queryRecipientParty ou le Peppol Lookup Service quelles capabilities sont actives, et contactez le destinataire pour un point de livraison alternatif ou un autre ID Peppol.
Une modification dans l'enregistrement SMP réel prend effet dès la prochaine soumission : l'AP expéditeur interroge le SMP à chaque soumission. Les vues externes non autoritatives comme le Peppol Directory (directory.peppol.eu) ou peppolcheck.be peuvent afficher la modification plus tard en raison de leur propre stratégie de mise en cache et de leur extraction asynchrone. Notez la distinction : les outils qui interrogent le SMP directement -- tels que test.peppolautoriteit.nl/discover et peppol.helger.com -- affichent toujours le statut actuel. Pour le statut faisant autorité, le Peppol Lookup Service ou une interrogation SMP directe via queryRecipientParty est déterminant.
Oui. Une organisation peut enregistrer plusieurs Participant Identifiers -- chacun sur un scheme EAS différent (par exemple KvK et numéro de TVA). Par identifiant, des capabilities de type de document distinctes peuvent être configurées. Si une facture est rejetée sur un ID avec No valid delivery options, il vaut la peine de vérifier si le destinataire dispose d'un autre ID Peppol avec la capability invoices activée.
En savoir plus sur l'ID Peppol et les identifiants