Envoyer une commande UBL via l'API PSB : endpoint, profils, idempotency et suivi de statut.
Avec l'API PSB, vous pouvez envoyer des commandes d'achat (purchase orders) à vos fournisseurs via le réseau Peppol. Le processus fonctionne de manière similaire à l'envoi de factures : vous envoyez un document XML UBL Order à l'API, et le PSB se charge de la validation, du routage et de la livraison.
POST /api/v1/{partyId}/purchaseOrder/send
La requête contient le document XML UBL Order dans le body avec le content-type application/xml. Le {partyId} est l'identifiant Peppol de l'organisation expéditrice (l'acheteur).
Le PSB prend en charge deux profils de commande Peppol :
urn:fdc:peppol.eu:poacc:bis:order_only:3urn:fdc:peppol.eu:poacc:bis:advanced_ordering:3Avec Order Only, l'acheteur envoie une commande et le processus est terminé. Avec Advanced Ordering, le fournisseur peut répondre avec une Order Response, et l'acheteur peut modifier ou annuler la commande ultérieurement.
Conseil : utilisez le profil Advanced Ordering si vous souhaitez que le fournisseur confirme la commande ou si vous voulez pouvoir modifier les commandes par la suite.
OrderSent avec le statut de livraisonUtilisez le header X-EConnect-DocumentId pour éviter le traitement en double :
X-EConnect-DocumentId: 550e8400-e29b-41d4-a716-446655440000
Si vous envoyez le même documentId une seconde fois, l'API retourne 409 Conflict. Utilisez toujours un UUID/GUID, jamais un numéro de commande.
En cas d'échec de livraison, le PSB applique automatiquement des retries :
OrderSentRetry est publiéOrderSentErrorqueryRecipientParty si le fournisseur peut recevoir des commandesConfigurez des webhooks pour les topics suivants afin de suivre le processus de commande :
OrderSentOrderSentRetryOrderSentErrorOrderResponseReceivedOrderChangeReceivedOrderCancellationReceivedUn upload réussi retourne 201 Created avec l'ID du document dans le PSB. Utilisez cet ID pour suivre la commande via l'API ou via les webhooks.
Order Only (urn:fdc:peppol.eu:poacc:bis:order_only:3) est une commande unidirectionnelle sans flux de messages supplémentaire. Advanced Ordering (urn:fdc:peppol.eu:poacc:bis:advanced_ordering:3) est nécessaire lorsque le fournisseur doit répondre avec une Order Response ou lorsque vous souhaitez modifier ou annuler des commandes ultérieurement. Choisissez Advanced si vous avez besoin de ce processus complet.
Envoyez l'en-tête X-EConnect-DocumentId avec un UUID ou GUID unique. Si vous réutilisez le même documentId, l'API répond avec 409 Conflict. N'utilisez pas un numéro de commande comme clé d'idempotence, car il n'est pas prévu pour ce mécanisme.
En cas d'erreurs 5xx du côté récepteur, le PSB tente automatiquement une nouvelle livraison (jusqu'à 8 tentatives sur environ 35 heures). Vous verrez OrderSentRetry pour chaque tentative et OrderSentError en cas d'échec définitif. En cas de succès, vous recevez OrderSent.
Consultez la spécification API complète sur psb.econnect.eu pour tous les paramètres et exemples de payloads.
Essayer dans l'API