Enviar un pedido UBL a través de la API PSB: endpoint, perfiles, idempotency y seguimiento de estado.
Con la API PSB puede enviar órdenes de compra (purchase orders) a sus proveedores a través de la red Peppol. El proceso funciona de manera similar al envío de facturas: envía un documento XML UBL Order a la API, y el PSB se encarga de la validación, el enrutamiento y la entrega.
POST /api/v1/{partyId}/purchaseOrder/send
La solicitud contiene el documento XML UBL Order en el body con content-type application/xml. El {partyId} es el identificador Peppol de la organización remitente (el comprador).
El PSB soporta dos perfiles de pedido Peppol:
urn:fdc:peppol.eu:poacc:bis:order_only:3urn:fdc:peppol.eu:poacc:bis:advanced_ordering:3Con Order Only, el comprador envía un pedido y el proceso termina. Con Advanced Ordering, el proveedor puede responder con una Order Response, y el comprador puede modificar o anular el pedido posteriormente.
Consejo: utilice el perfil Advanced Ordering si desea que el proveedor confirme el pedido o si quiere poder modificar los pedidos posteriormente.
OrderSent con el estado de entregaUtilice el header X-EConnect-DocumentId para evitar el procesamiento duplicado:
X-EConnect-DocumentId: 550e8400-e29b-41d4-a716-446655440000
Si envía el mismo documentId nuevamente, la API devuelve 409 Conflict. Utilice siempre un UUID/GUID, nunca un número de pedido.
En caso de entrega fallida, el PSB aplica automáticamente reintentos:
OrderSentRetryOrderSentErrorqueryRecipientParty si el proveedor puede recibir pedidosConfigure webhooks para los siguientes topics para seguir el proceso de pedido:
OrderSentOrderSentRetryOrderSentErrorOrderResponseReceivedOrderChangeReceivedOrderCancellationReceivedUna carga exitosa devuelve 201 Created con el ID del documento en el PSB. Utilice este ID para seguir el pedido a través de la API o mediante webhooks.
Order Only (urn:fdc:peppol.eu:poacc:bis:order_only:3) es un pedido unidireccional sin flujo de mensajes adicional. Advanced Ordering (urn:fdc:peppol.eu:poacc:bis:advanced_ordering:3) es necesario cuando el proveedor debe responder con una Order Response o cuando desea modificar o cancelar pedidos posteriormente. Elija Advanced si necesita ese proceso completo.
Envíe el encabezado X-EConnect-DocumentId con un UUID o GUID único. Si reutiliza el mismo documentId, la API responde con 409 Conflict. No utilice un número de pedido como clave de idempotencia, ya que no está previsto para este mecanismo.
Ante errores 5xx en el lado receptor, el PSB reintenta automáticamente la entrega (hasta 8 intentos en aproximadamente 35 horas). Verá OrderSentRetry por cada intento y OrderSentError en caso de fallo definitivo. En caso de éxito, recibirá OrderSent.
Consulte la especificación API completa en psb.econnect.eu para todos los parámetros y ejemplos de payloads.
Probar en la API