Peppol lookup: verificar un destinatario a través de la API

Verifica de antemano si un destinatario es accesible vía Peppol usando el endpoint queryRecipientParty.

Antes de enviar una factura u orden, quieres saber si el destinatario es accesible. Con el endpoint queryRecipientParty verificas en una sola llamada si una organización está registrada en Peppol, qué tipos de documento acepta y a través de qué canal el PSB entregará el documento. Esto previene errores de entrega y te permite dar a tus usuarios retroalimentación directa.

Cómo funciona

El PSB realiza automáticamente un lookup SML/SMP con cada entrega para encontrar el Access Point correcto del destinatario. Con queryRecipientParty puedes realizar ese mismo lookup de antemano, sin enviar realmente un documento.

La API verifica:

  • Si el destinatario está registrado en la red Peppol (registro SMP)
  • Qué tipos de documento puede aceptar el destinatario (capabilities)
  • A través de qué Access Point se enruta la entrega
  • Qué canal utilizará el PSB (Peppol, DICO, email fallback, etc.)
Endpoint
GET /api/v1/queryRecipientParty?identifier={schemeID}:{id}

Reemplaza {schemeID} con el esquema de identificación e {id} con el número del destinatario. Usa uno de los identificadores Peppol comunes:

SchemeIDTipoEjemplo0106Número de Cámara de Comercio NL0106:123456780190NL OIN (gobierno, 20 dígitos)0190:000000012345678900009944Número de IVA NL9944:NL123456789B010208Número de empresa BE0208:01234567890088GLN (internacional)0088:1234567890123
Ejemplo de solicitud
GET /api/v1/queryRecipientParty?identifier=0106:12345678
Respuesta exitosa

Si el destinatario es accesible, la API devuelve el identificador recomendado y el canal que utilizará el PSB:

{
  "id": "NL:KVK:12345678",
  "channel": "peppol",
  "description": "default send via peppol delivery"
}
CampoDescripciónidEl identificador Peppol a utilizar como endpointId en tu factura u ordenchannelEl canal de entrega que utilizará el PSB (p. ej. peppol, dico)descriptionDescripción del canal seleccionado

Usa el valor de id como EndpointID en tu documento UBL.

Respuesta para destinatario desconocido

Si el destinatario no se encuentra en Peppol, la API devuelve un 404 con un mensaje de error:

{
  "helpLink": "https://psb.econnect.eu/endpoints/v1/SalesInvoice.html#query-recipient-party",
  "message": "PartyId 'NL:KVK:12345678' not found in Peppol.",
  "code": "API404",
  "requestId": "41cd5529904be94d941137068c1c3fa1",
  "dateTime": "2026-03-14T10:22:19.4878393+00:00"
}

Consejo: ¿Tiene una organización múltiples identificadores (KvK, IVA, OIN)? Prueba un schemeID diferente. No todos los destinatarios están registrados bajo cada identificador. Por ejemplo: una organización está registrada como 0106:12345678 (KvK) pero no como 0088:5412345678908 (GLN). ¿Recibes un 404? Prueba siempre el número de Cámara de Comercio (0106) o el número de IVA (9944) como alternativa, o usa la variante POST para verificar múltiples identificadores a la vez.

Variante POST con múltiples identificadores

Si deseas verificar múltiples identificadores al mismo tiempo, usa la variante POST. El PSB evalúa todos los identificadores y devuelve la mejor opción:

POST /api/v1/{partyId}/salesInvoice/queryRecipientParty

El {partyId} en la URL es tu propio partyId (emisor). En el cuerpo de la solicitud, proporciona un array de posibles identificadores del destinatario:

["0106:12345678", "9944:NL123456789B01", "0190:00000001234567890000"]

Esto es útil cuando no sabes bajo qué identificador está registrado el destinatario. La API selecciona automáticamente la mejor coincidencia.

Parámetros opcionales
ParámetroDescripción?preferredDocumentTypeIdDa prioridad a un formato de documento específico en el lookup?includeOptionsDevuelve todos los canales disponibles, no solo el canal recomendado
Respuesta con includeOptions

Con ?includeOptions=true la respuesta contiene un array options con todos los canales de entrega disponibles:

{
  "id": "NL:KVK:12345678",
  "channel": "peppol",
  "description": "default send via peppol delivery",
  "options": [
    {
      "channel": "peppol",
      "description": "default send via peppol delivery",
      "identifiers": [
        {
          "partyId": {
            "text": "NL:KVK:12345678",
            "value": "12345678",
            "schemeAuthority": "iso6523-actorid-upis",
            "schemeIdText": "NL:KVK",
            "schemeIdNumber": "0106"
          },
          "isValid": true
        }
      ]
    }
  ]
}
¿Cuándo utilizarlo?

Usa queryRecipientParty como verificación previa en las siguientes situaciones:

  • Antes de enviar: verifica si el destinatario es accesible antes de llamar al endpoint de envío, para poder dar retroalimentación directa a tus usuarios finales
  • Onboarding de relaciones: verifica al crear un nuevo cliente o proveedor si ya está registrado en Peppol
  • Enrutamiento multicanal: consulta qué canal de entrega seleccionará el PSB (Peppol, DICO, email) y opcionalmente fuerza un canal alternativo a través del parámetro ?channel al enviar
  • Self-billing: verifica si un proveedor tiene la capability de self-billing antes de enviar una factura de autofacturación

Nota: el lookup verifica el registro en el momento de la llamada. Entre el lookup y la entrega real, un registro puede cambiar. En la práctica esto es poco frecuente, pero tenlo en cuenta para lotes grandes con un retraso entre la verificación y la entrega.

Consejo: ¿Quieres comprobar manualmente un registro SMP, fuera de la API? OpenPeppol ofrece el Peppol Lookup Service, donde puedes consultar directamente los datos SMP y Business Card de un participante Peppol. Útil para verificar si un registro está correctamente configurado.

Errores comunes
ErrorCausaSoluciónAPI404 "PartyId not found in Peppol"El destinatario no está registrado para este tipo de identificadorPrueba un schemeID diferente (KvK, IVA, OIN)API404 "No valid delivery options"No hay ruta disponible hacia el destinatarioVerifica si el destinatario está conectado a un proveedor de servicios Peppol activo

¿Quieres ver también qué Access Point y formatos de documento soporta exactamente un destinatario? El endpoint Peppol delivery options proporciona una vista más detallada del registro SMP.

Probar el lookup en la API

Relacionados
Artículos relacionados