SMP e ricerca del partecipante: come instrada Peppol

Come Peppol trova il destinatario corretto tramite SML, DNS NAPTR e SMP: passo dopo passo, inclusi i messaggi di errore comuni.

Il Service Metadata Publisher (SMP) è la rubrica della rete Peppol. Quando un Access Point (AP) invia un documento, utilizza il Participant Identifier del destinatario per trovare -- tramite il Service Metadata Locator (SML) e il Domain Name System (DNS) -- in quale SMP è registrato il destinatario, quale URL di endpoint chiamare e quali tipi di documento sono supportati. Questo articolo descrive la catena di scoperta passo dopo passo.

Perché un SMP?

Peppol è una rete aperta: non esiste una casella di posta centrale che riceve e distribuisce tutti i documenti. Invece, ogni fornitore di servizi certificato gestisce il proprio SMP con i metadati dei propri clienti -- quali documenti possono ricevere, tramite quale AP e con quali certificati firmano. L'AP mittente deve determinare dove consegnare il documento prima di ogni invio, e utilizza per questo l'SMP del destinatario.

La specifica SMP è una norma dell'Organization for the Advancement of Structured Information Standards (OASIS). eConnect è elencato nell'elenco delle soluzioni conformi a eDelivery SMP della Commissione europea con la propria implementazione.

Participant Identifier: l'indirizzo

Ogni organizzazione su Peppol ha almeno un Participant Identifier, composto da uno scheme e un value:

iso6523-actorid-upis::<scheme>:<value>

Lo scheme è un codice dell'elenco di codici Electronic Address Scheme (EAS) -- un registro OpenPeppol di sistemi di identificazione nazionali e internazionali. I codici EAS più utilizzati:

EASPaeseTipo di identificatoreEsempio0106Paesi BassiNumero della camera di commercio (KvK)iso6523-actorid-upis::0106:544415870190Paesi BassiNumero di identificazione dell'organizzazione (OIN, 20 cifre)iso6523-actorid-upis::0190:000000018200293360009944Paesi BassiNumero IVAiso6523-actorid-upis::9944:NL851306469B010208BelgioNumero d'impresa (KBO)iso6523-actorid-upis::0208:08999653070204GermaniaLeitweg-ID (pubblica amministrazione)iso6523-actorid-upis::0204:991-01234-560192NorvegiaNumero di organizzazioneiso6523-actorid-upis::0192:7457073270235Emirati Arabi UnitiNumero di registrazione fiscale (TRN)iso6523-actorid-upis::0235:1001234567000030088InternazionaleGlobal Location Number (GLN, GS1)iso6523-actorid-upis::0088:1548079098355

Una panoramica completa è disponibile su docs.peppol.eu/edelivery/codelists/ e in ID Peppol e identificatori.

La catena di scoperta completa

L'AP mittente risponde a tre domande per ogni documento:

  1. Dove si trova l'SMP del destinatario? Ricerca tramite SML / DNS NAPTR.
  2. Quale endpoint e quale certificato corrispondono al tipo di documento desiderato? Ricerca nell'SMP stesso.
  3. Quale profilo Peppol supporta il destinatario? La risposta si trova nella risposta SMP (BIS Billing V3, NLCIUS, PINT EU, ecc.).
Passo 1: Hash del Participant Identifier

Il Participant Identifier viene sottoposto a hash MD5 e codificato in esadecimale minuscolo. Il valore hash diventa l'etichetta più a sinistra di un dominio SML, seguita dallo scheme Peppol e dalla zona SML. Per la produzione:

B-<md5>.iso6523-actorid-upis.edelivery.tech.ec.europa.eu

L'ambiente di test Peppol utilizza una zona SML separata. Da marzo 2026, vengono pubblicati solo record NAPTR per produzione e test -- i vecchi record CNAME sono stati rimossi.

Passo 2: Ricerca DNS NAPTR

L'AP mittente esegue una query DNS sul dominio precedente, per il tipo di record NAPTR (Naming Authority Pointer). NAPTR è obbligatorio dal 1° febbraio 2026. La risposta NAPTR contiene un tag di servizio (Meta:SMP) e un campo regexp che punta all'URL SMP del destinatario:

B-<md5>.iso6523-actorid-upis.edelivery.tech.ec.europa.eu
   IN NAPTR 100 10 "U" "Meta:SMP" "!^.*$!https://smp.example.com/!" .

Risultato: l'AP sa su quale URL SMP il destinatario è registrato.

Passo 3: Interrogare l'SMP

Con l'URL SMP, l'AP costruisce l'URL dei metadati specifico per questo partecipante:

GET https://smp.example.com/iso6523-actorid-upis%3A%3A0106%3A54441587

L'SMP restituisce un ServiceGroup in XML con tutti i tipi di documento supportati. Per tipo di documento, l'AP può richiedere il ServiceMetadata tramite una seconda richiesta:

GET https://smp.example.com/iso6523-actorid-upis%3A%3A0106%3A54441587/services/<DocumentTypeId>

La risposta contiene l'URL di endpoint, il profilo di trasporto, il processo e il certificato PKI dell'AP ricevente. Con queste informazioni, C2 cifra e firma il documento, apre una connessione AS4 verso C3 all'EndpointURI trovato e lo consegna.

Esempio: dal Participant Identifier alla route AP

L'illustrazione end-to-end seguente mostra come un Participant Identifier olandese (numero KvK) porta a un URL di endpoint concreto:

1. Il mittente vuole inviare una fattura a:
   iso6523-actorid-upis::0106:54441587  (eConnect, EAS 0106 -- KvK)

2. L'AP mittente esegue un lookup DNS NAPTR:
   B-<md5>.iso6523-actorid-upis.edelivery.tech.ec.europa.eu
   --> URL SMP: https://smp.econnect.eu/

3. L'AP mittente interroga l'SMP:
   GET https://smp.econnect.eu/iso6523-actorid-upis%3A%3A0106%3A54441587
   --> ServiceGroup con, tra gli altri, il DocumentTypeId per la fattura NLCIUS

4. L'AP mittente interroga i ServiceMetadata per 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 mittente costruisce l'SBDH con i metadati di instradamento,
   firma e invia tramite AS4 + TLS all'EndpointURI.
Cosa contiene una registrazione SMP?

Al momento della registrazione in un SMP, vengono configurate capability per famiglia di documenti per organizzazione:

CapabilityTipi di documentoinvoicesSI-UBL 2.0 (NLCIUS), Peppol BIS Billing V3 (UBL e CII), PINT EUselfbillingBIS Self-Billing V3invoiceResponseBIS Invoice Response 3.0orderOnlyOrder Only 3.3orderAdvancedOrder, Order Change, Order Cancellation 3.3orderResponseOrder Response 3.3pintProfilesPer regione: PINT-SG, PINT-A-NZ, PINT-MY, PINT-JP, PINT-AE, PINT-OM, PINT-SKmls / mlrMessage Level Status / Message Level Response

Ogni capability ha un valore on, off o inherited. L'insieme completo delle capability determina quali tipi di documento l'AP mittente può trovare nell'SMP -- e quindi per cosa un destinatario è effettivamente raggiungibile.

Cache e disponibilità

I lookup SMP vengono eseguiti ad ogni invio. Per scalabilità e robustezza, l'SMP di eConnect applica un proprio livello di cache: i lookup rimangono disponibili -- anche se un SMP esterno è temporaneamente irraggiungibile -- riutilizzando i metadati in cache nel periodo di validità. eConnect garantisce il 99,99% di uptime sull'SMP.

SML e SMP

Due termini simili che vengono spesso confusi nella pratica:

  • L'SML (Service Metadata Locator) è la zona DNS centrale (edelivery.tech.ec.europa.eu per la produzione) in cui vengono pubblicati tutti i Participant Identifier e che punta all'SMP corretto. Esiste un SML di produzione e uno di test; OpenPeppol sta assumendo la gestione dalla Commissione europea (transizione fino alla fine di agosto 2026).
  • L'SMP (Service Metadata Publisher) è la directory di un singolo fornitore di servizi. Ogni SP gestisce il proprio SMP per i propri clienti.

Analogia con il DNS: l'SML è l'elenco telefonico di primo livello che rimanda alla giusta directory regionale; l'SMP è quella directory con i dati effettivi.

Migrazione tra fornitori di servizi

Un Participant Identifier può essere registrato solo presso un SMP alla volta -- altrimenti C2 non saprebbe dove inviare il documento. In caso di cambio di fornitore, si applica una procedura di migrazione con una chiave di migrazione: l'SMP attuale genera una chiave, e il nuovo SMP la utilizza per assumere la registrazione in modo trasparente. Durante la transizione, l'organizzazione rimane raggiungibile; l'identificatore non cambia, quindi i partner commerciali non si accorgono di nulla.

Peppol Directory e Lookup Service

Oltre all'SMP leggibile dalle macchine, esistono due interfacce pubbliche per ricerche manuali:

  • Peppol Directory -- directory.peppol.eu: il registro pubblico dei partecipanti Peppol, con ricerca per nome organizzazione, paese e Participant ID. Asincrono e inaffidabile per le verifiche di raggiungibilità: il Directory recupera periodicamente i propri dati dagli SMP e il servizio Directory è a volte temporaneamente non disponibile. Di conseguenza, una registrazione o de-registrazione può apparire nel Directory con ritardo -- o non apparire affatto. Un'organizzazione può quindi figurare nel Directory mentre la ricerca SMP restituisce No valid delivery options / PartyId not found, o viceversa. Non utilizzare il Directory come prova che qualcuno possa o non possa ricevere.
  • Peppol Lookup Service -- lookup.peppol.org, da marzo 2026: interroga l'SMP direttamente e mostra lo stato di pubblicazione attuale. Utile per la risoluzione dei problemi quando il Directory e la registrazione effettiva non sono sincronizzati.
Verificare se qualcuno è raggiungibile su Peppol

Per una risposta affidabile alla domanda questo destinatario può ricevere o no, è necessario eseguire una vera ricerca SMP -- non consultare la vista del Directory. Due strumenti pubblici eseguono la ricerca Peppol reale (la stessa ricerca eseguita dal PSB di eConnect):

Se la ricerca ha successo in uno di questi strumenti, il destinatario è raggiungibile; se fallisce (PartyId not found / nessuna opzione di consegna), il destinatario non è connesso per quel tipo di documento -- indipendentemente da ciò che mostra il Peppol Directory. Programmaticamente, queryRecipientParty del PSB fornisce lo stesso risultato autorevole.

Il campo «additional information» nel Peppol Directory

Nel Peppol Directory, il campo «additional information» mostra il nome del fornitore di servizi che ha effettuato la registrazione -- per le registrazioni tramite PSB di eConnect appare «eConnect». Si tratta di metadati registrar SMP del SP registrante e non fanno parte della businessCard configurabile per partecipante. I campi configurabili per partecipante vengono gestiti tramite businessCard.names; il campo «additional information» è al di fuori di tale ambito e pertanto non è configurabile per partecipante -- nemmeno per i partner in white label che si registrano tramite l'endpoint PSB di eConnect.

Per i clienti che desiderano verificare programmaticamente se un destinatario è raggiungibile, il Peppol Service Bus (PSB) di eConnect offre l'endpoint queryRecipientParty che interroga l'SMP direttamente e indica tramite quale canale e formato il destinatario è raggiungibile.

Messaggi di errore comuni
SintomoCausaSoluzioneRegistrazione Peppol fallita / partecipante SMP non trovato; organizzazione propria non instradabileLa propria organizzazione (mittente) non è attivata -- un'organizzazione non attivata non viene pubblicata come Participant nel SMP/SML, quindi il Participant ID non è instradabileAttivare prima la propria organizzazione tramite l'amministratore, quindi riprovare la registrazione o l'invio. Vedi Errori di invio sezione "Il campo Fornitore è vuoto"SMP not found / la risoluzione NAPTR fallisceParticipant Identifier non (o non correttamente) registrato; codice EAS erratoVerificare la registrazione tramite Peppol Directory o queryRecipientPartyService not foundDocumentTypeId non supportato dal destinatarioConfermare con il destinatario quali profili pubblica il suo SMPNo valid delivery optionsIl destinatario è nel registro Peppol ma non ha attivato la capability invoices -- vedere sezione seguentePunto di consegna alternativo o altro ID Peppol -- vedere sezione seguenteCertificate expired / invalidIl certificato dell'AP ricevente è scadutoL'AP ricevente deve rinnovare il suo certificatoEndpoint not reachableProblema operativo presso l'AP riceventeContattare il destinatario; una ricerca in cache può offrire una soluzione temporaneaqueryRecipientParty timeoutL'SMP del destinatario non rispondeL'AP ricevente o il suo amministratore deve esaminare l'SMP
"No valid delivery options": destinatario registrato solo per Invoice Response

Un destinatario può essere rintracciabile su Peppol -- la ricerca NAPTR e la query SMP hanno successo -- eppure non essere in grado di ricevere fatture. L'SMP pubblica infatti per tipo di documento una capability. La ricezione di fatture rientra in invoices; il rinvio di uno stato aziendale (BIS Invoice Response 3.0) rientra nella capability separata invoiceResponse. Queste sono registrazioni indipendenti.

Se un destinatario è registrato sul suo ID Peppol esclusivamente per Invoice Response transaction 3.0 (invoiceResponse su on, invoices su off), l'AP mittente non trova alcun endpoint invoices nell'SMP. Non esiste quindi alcun percorso di consegna valido per una fattura, e la piattaforma eConnect segnala No valid delivery options all'invio. Il destinatario può inviare un Invoice Response tramite quell'identificatore, ma non può ricevere una fattura su di esso.

Importante: questo non è un errore da parte di eConnect o del mittente -- è un riflesso accurato di ciò che il destinatario ha pubblicato nel proprio SMP.

Due soluzioni:

  1. Punto di consegna alternativo: chiedere al cliente di contattare il destinatario per sapere tramite quale canale (e-mail o portale fornitori) la fattura può essere consegnata.
  2. Altro ID Peppol: verificare se il destinatario dispone di un secondo ID Peppol su cui il tipo di documento fattura (invoices) è registrato. Un'organizzazione può registrare più identificatori con capability di tipo di documento indipendenti per identificatore.

In caso di dubbio, verificare quali tipi di documento pubblica un destinatario tramite il Peppol Lookup Service o programmaticamente tramite queryRecipientParty.

Domande frequenti
Qual è la differenza tra Peppol Directory e Peppol Lookup Service?

Il Peppol Directory (directory.peppol.eu) è un registro asincrono che recupera periodicamente i dati dagli SMP. Può essere in ritardo rispetto allo stato di registrazione effettivo ed è quindi inaffidabile per le verifiche di raggiungibilità. Il Peppol Lookup Service (lookup.peppol.org) interroga l'SMP direttamente e mostra lo stato attuale. Per la risoluzione dei problemi, il Lookup Service è autorevole. Alternative che interrogano anche direttamente l'SMP: test.peppolautoriteit.nl/discover e peppol.helger.com.

Perché ottengo 'No valid delivery options' quando il destinatario è su Peppol?

Un destinatario può figurare nel registro Peppol ma essere registrato esclusivamente per Invoice Response (capability invoiceResponse) e non per ricevere fatture (capability invoices). Non esiste quindi alcun percorso di consegna valido per una fattura. Verificare tramite queryRecipientParty o il Peppol Lookup Service quali capability sono attive, e contattare il destinatario per un punto di consegna alternativo o un altro ID Peppol.

Quanto tempo ci vuole perché una modifica nell'SMP diventi visibile?

Una modifica nella registrazione SMP effettiva ha effetto al prossimo invio: l'AP mittente interroga l'SMP per ogni invio. Le visualizzazioni esterne non autorevoli come il Peppol Directory (directory.peppol.eu) o peppolcheck.be possono mostrare la modifica più tardi a causa della propria strategia di caching e del recupero asincrono. Si noti la distinzione: gli strumenti che interrogano l'SMP direttamente -- come test.peppolautoriteit.nl/discover e peppol.helger.com -- mostrano sempre lo stato attuale. Per lo stato autorevole, il Peppol Lookup Service o una query SMP diretta tramite queryRecipientParty è determinante.

Un destinatario può avere più ID Peppol?

Sì. Un'organizzazione può registrare più Participant Identifier -- ciascuno su uno scheme EAS diverso (ad esempio KvK e numero IVA). Per identificatore, è possibile configurare capability di tipo di documento indipendenti. Se una fattura viene rifiutata su un ID con No valid delivery options, vale la pena verificare se il destinatario ha un altro ID Peppol con la capability invoices attivata.


Ulteriori informazioni su ID Peppol e identificatori