Inviare un ordine UBL tramite la PSB API: endpoint, profili, idempotency e tracciamento dello stato.
Con la PSB API può inviare ordini d'acquisto (purchase order) ai Suoi fornitori tramite la rete Peppol. Il processo funziona in modo simile all'invio di fatture: si invia un documento UBL Order XML all'API, e la PSB si occupa della validazione, dell'instradamento e della consegna.
POST /api/v1/{partyId}/purchaseOrder/send
La richiesta contiene il documento UBL Order XML come body con content-type application/xml. Il {partyId} è l'identificativo Peppol dell'organizzazione mittente (l'acquirente).
La PSB supporta due profili d'ordine Peppol:
urn:fdc:peppol.eu:poacc:bis:order_only:3urn:fdc:peppol.eu:poacc:bis:advanced_ordering:3Con Order Only l'acquirente invia un ordine e il processo è concluso. Con Advanced Ordering il fornitore può rispondere con un Order Response, e l'acquirente può modificare o annullare l'ordine successivamente.
Suggerimento: utilizzi il profilo Advanced Ordering se desidera che il fornitore confermi l'ordine o se vuole poter modificare gli ordini in seguito.
OrderSent con lo stato della consegnaUtilizzi l'header X-EConnect-DocumentId per prevenire l'elaborazione duplicata:
X-EConnect-DocumentId: 550e8400-e29b-41d4-a716-446655440000
Se si invia nuovamente lo stesso documentId, l'API restituisce 409 Conflict. Utilizzi sempre un UUID/GUID, mai un numero d'ordine.
In caso di consegna fallita, la PSB applica automaticamente i retry:
OrderSentRetryOrderSentErrorqueryRecipientParty se il fornitore può ricevere ordiniConfiguri i webhook per i seguenti topic per seguire il processo d'ordine:
OrderSentOrderSentRetryOrderSentErrorOrderResponseReceivedOrderChangeReceivedOrderCancellationReceivedUn upload riuscito restituisce 201 Created con l'ID del documento nella PSB. Utilizzi questo ID per seguire l'ordine tramite l'API o tramite i webhook.
Order Only (urn:fdc:peppol.eu:poacc:bis:order_only:3) è un ordine unidirezionale senza ulteriore flusso di messaggi. Advanced Ordering (urn:fdc:peppol.eu:poacc:bis:advanced_ordering:3) è necessario quando il fornitore deve rispondere con una Order Response o quando si desidera modificare o annullare ordini in seguito. Scelga Advanced se necessita di questo processo completo.
Invii l'header X-EConnect-DocumentId con un UUID o GUID univoco. Se riutilizza lo stesso documentId, l'API risponde con 409 Conflict. Non utilizzi un numero d'ordine come chiave di idempotenza, poiché non è previsto per questo meccanismo.
Per errori 5xx sul lato ricevente, la PSB ritenta automaticamente la consegna (fino a 8 tentativi nell'arco di circa 35 ore). Vedrà OrderSentRetry per ogni tentativo e OrderSentError in caso di fallimento definitivo. In caso di successo, riceverà OrderSent.
Consulti la specifica API completa su psb.econnect.eu per tutti i parametri e i payload di esempio.
Provi nell'API