Cómo Peppol encuentra al destinatario correcto mediante SML, DNS NAPTR y SMP: paso a paso, incluidos mensajes de error habituales.
El Service Metadata Publisher (SMP) es el directorio de la red Peppol. Cuando un Access Point (AP) envía un documento, utiliza el Participant Identifier del destinatario para encontrar -- a través del Service Metadata Locator (SML) y el Domain Name System (DNS) -- en qué SMP está registrado el destinatario, qué URL de endpoint llamar y qué tipos de documentos se admiten. Este artículo describe la cadena de descubrimiento paso a paso.
Peppol es una red abierta: no existe un buzón central que reciba y distribuya todos los documentos. En cambio, cada proveedor de servicios certificado mantiene su propio SMP con los metadatos de sus clientes -- qué documentos pueden recibir, a través de qué AP y con qué certificados firman. El AP remitente debe determinar dónde entregar el documento antes de cada envío, y utiliza para ello el SMP del destinatario.
La especificación SMP es una norma de la Organization for the Advancement of Structured Information Standards (OASIS). eConnect figura en la lista de soluciones conformes con eDelivery SMP de la Comisión Europea con su propia implementación.
Cada organización en Peppol tiene al menos un Participant Identifier, compuesto por un scheme y un value:
iso6523-actorid-upis::<scheme>:<value>
El scheme es un código de la lista de códigos Electronic Address Scheme (EAS) -- un registro de OpenPeppol de sistemas de identificación nacionales e internacionales. Los códigos EAS más utilizados:
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 resumen completo está disponible en docs.peppol.eu/edelivery/codelists/ y en ID Peppol e identificadores.
El AP remitente responde a tres preguntas para cada documento:
El Participant Identifier se hashea con MD5 y se codifica en hexadecimal en minúsculas. El valor hasheado se convierte en la etiqueta más a la izquierda de un dominio SML, seguido del scheme de Peppol y la zona SML. Para producción:
B-<md5>.iso6523-actorid-upis.edelivery.tech.ec.europa.eu
El entorno de pruebas de Peppol utiliza una zona SML separada. Desde marzo de 2026, solo se publican registros NAPTR para producción y pruebas -- los antiguos registros CNAME han sido eliminados.
El AP remitente realiza una consulta DNS en el dominio anterior, para el tipo de registro NAPTR (Naming Authority Pointer). NAPTR es obligatorio desde el 1 de febrero de 2026. La respuesta NAPTR contiene una etiqueta de servicio (Meta:SMP) y un campo regexp que apunta a la 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/!" .
Resultado: el AP sabe en qué URL SMP está registrado el destinatario.
Con la URL SMP, el AP construye la URL de metadatos específica para este participante:
GET https://smp.example.com/iso6523-actorid-upis%3A%3A0106%3A54441587
El SMP devuelve un ServiceGroup en XML con todos los tipos de documentos admitidos. Por tipo de documento, el AP puede solicitar el ServiceMetadata mediante una segunda solicitud:
GET https://smp.example.com/iso6523-actorid-upis%3A%3A0106%3A54441587/services/<DocumentTypeId>
La respuesta contiene la URL de endpoint, el perfil de transporte, el proceso y el certificado PKI del AP receptor. Con esta información, C2 cifra y firma el documento, abre una conexión AS4 hacia C3 en la EndpointURI encontrada y lo entrega.
La ilustración end-to-end siguiente muestra cómo un Participant Identifier neerlandesa (número KvK) conduce a una URL de endpoint concreta:
1. El remitente quiere enviar una factura a:
iso6523-actorid-upis::0106:54441587 (eConnect, EAS 0106 -- KvK)
2. El AP remitente realiza un lookup DNS NAPTR:
B-<md5>.iso6523-actorid-upis.edelivery.tech.ec.europa.eu
--> URL SMP: https://smp.econnect.eu/
3. El AP remitente consulta el SMP:
GET https://smp.econnect.eu/iso6523-actorid-upis%3A%3A0106%3A54441587
--> ServiceGroup con, entre otros, el DocumentTypeId para la factura NLCIUS
4. El AP remitente consulta los ServiceMetadata para 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. El AP remitente construye el SBDH con metadatos de enrutamiento,
firma y envía vía AS4 + TLS a la EndpointURI.
Al registrarse en un SMP, se configuran capabilities por familia de documentos por organización:
invoicesselfbillinginvoiceResponseorderOnlyorderAdvancedorderResponsepintProfilesmls / mlrCada capability tiene un valor on, off o inherited. El conjunto completo de capabilities determina qué tipos de documentos puede encontrar el AP remitente en el SMP -- y por lo tanto para qué es realmente accesible un destinatario.
Los lookups SMP se realizan en cada envío. Para escala y robustez, el SMP de eConnect aplica su propia capa de caché: los lookups permanecen disponibles -- incluso si un SMP externo no está disponible temporalmente -- reutilizando metadatos en caché dentro del período de validez. eConnect garantiza un 99,99% de disponibilidad del SMP.
Dos términos similares que a menudo se confunden en la práctica:
edelivery.tech.ec.europa.eu para producción) en la que se publican todos los Participant Identifiers y que apunta al SMP correcto. Existe un SML de producción y uno de pruebas; OpenPeppol está asumiendo la gestión de la Comisión Europea (transición hasta finales de agosto de 2026).Analogía con el DNS: el SML es la guía telefónica de nivel superior que remite a la guía regional correcta; el SMP es esa guía con los datos reales.
Un Participant Identifier solo puede estar registrado en un único SMP a la vez -- de lo contrario, C2 no sabría a dónde enviar el documento. Al cambiar de proveedor, se aplica un procedimiento de migración con una clave de migración: el SMP actual genera una clave, y el nuevo SMP la utiliza para asumir el registro sin interrupciones. Durante la transición, la organización sigue siendo accesible; el identificador no cambia, por lo que los socios comerciales no notan nada.
Además del SMP legible por máquina, existen dos interfaces públicas para consultas manuales:
Para los clientes que deseen comprobar programáticamente si un destinatario es accesible, el Peppol Service Bus (PSB) de eConnect ofrece el endpoint queryRecipientParty que consulta el SMP directamente e indica a través de qué canal y formato es accesible el destinatario.
SMP not found / la resolución NAPTR fallaqueryRecipientPartyService not foundNo valid delivery optionsinvoices -- ver sección a continuaciónCertificate expired / invalidEndpoint not reachablequeryRecipientParty timeoutUn destinatario puede ser localizable en Peppol -- la búsqueda NAPTR y la consulta SMP tienen éxito -- y aun así no poder recibir facturas. El SMP publica por tipo de documento una capability. La recepción de facturas cae bajo invoices; el envío de un estado empresarial (BIS Invoice Response 3.0) cae bajo la capability separada invoiceResponse. Son registros independientes.
Si un destinatario está registrado en su ID Peppol exclusivamente para Invoice Response transaction 3.0 (invoiceResponse en on, invoices en off), el AP remitente no encuentra ningún endpoint invoices en el SMP. No existe entonces ninguna ruta de entrega válida para una factura, y la plataforma eConnect indica No valid delivery options al enviar. El destinatario puede enviar un Invoice Response a través de ese identificador, pero no puede recibir una factura en él.
Importante: esto no es un error por parte de eConnect o del remitente -- es un reflejo preciso de lo que el destinatario ha publicado en su propio SMP.
Dos soluciones:
invoices) esté registrado. Una organización puede registrar varios identificadores con capabilities de tipo de documento independientes por identificador.En caso de duda, compruebe qué tipos de documentos publica un destinatario a través del Peppol Lookup Service o mediante programación a través de queryRecipientParty.
El Peppol Directory (directory.peppol.eu) es un registro asíncrono que obtiene periódicamente datos de los SMP. Puede ir por detrás del estado de registro real. El Peppol Lookup Service (lookup.peppol.org) consulta el SMP directamente y muestra el estado actual. Para la resolución de problemas, el Lookup Service es el referente.
Un destinatario puede figurar en el registro de Peppol pero estar registrado exclusivamente para Invoice Response (capability invoiceResponse) y no para recibir facturas (capability invoices). No existe entonces ninguna ruta de entrega válida para una factura. Compruebe a través de queryRecipientParty o el Peppol Lookup Service qué capabilities están activas, y contacte al destinatario para un punto de entrega alternativo u otro ID Peppol.
Un cambio en el registro SMP real surte efecto en el siguiente envío: el AP remitente consulta el SMP de nuevo para cada envío. Los portales externos como directory.peppol.eu pueden ir por detrás debido a su propia estrategia de caché. Para el estado autoritativo, el Peppol Lookup Service o una consulta SMP directa mediante queryRecipientParty es determinante.
Sí. Una organización puede registrar varios Participant Identifiers -- cada uno en un scheme EAS diferente (por ejemplo KvK y número de IVA). Por identificador, se pueden configurar capabilities de tipo de documento independientes. Si una factura es rechazada en un ID con No valid delivery options, vale la pena comprobar si el destinatario tiene otro ID Peppol con la capability invoices activada.
Más sobre ID Peppol e identificadores