Wysyłanie zamówienia UBL przez PSB API: endpoint, profile, idempotency i śledzenie statusu.
Za pomocą PSB API mogą Państwo wysyłać zamówienia zakupowe (purchase orders) do dostawców przez sieć Peppol. Proces działa podobnie jak wysyłanie faktur: wysyła się dokument UBL Order XML do API, a PSB zajmuje się walidacją, routingiem i dostarczeniem.
POST /api/v1/{partyId}/purchaseOrder/send
Żądanie zawiera dokument UBL Order XML jako body z content-type application/xml. {partyId} to identyfikator Peppol organizacji wysyłającej (nabywcy).
PSB obsługuje dwa profile zamówień Peppol:
urn:fdc:peppol.eu:poacc:bis:order_only:3urn:fdc:peppol.eu:poacc:bis:advanced_ordering:3Przy Order Only nabywca wysyła zamówienie i proces się kończy. Przy Advanced Ordering dostawca może odpowiedzieć Order Response, a nabywca może później zmienić lub anulować zamówienie.
Wskazówka: profil Advanced Ordering należy stosować, gdy chce się, aby dostawca potwierdził zamówienie, lub gdy zamówienia mają być modyfikowalne w późniejszym czasie.
OrderSent ze statusem dostarczeniaNależy używać headera X-EConnect-DocumentId, aby zapobiec podwójnemu przetworzeniu:
X-EConnect-DocumentId: 550e8400-e29b-41d4-a716-446655440000
Jeśli ten sam documentId zostanie wysłany ponownie, API zwraca 409 Conflict. Zawsze należy używać UUID/GUID, nigdy numeru zamówienia.
W przypadku nieudanego dostarczenia PSB automatycznie stosuje ponowienia:
OrderSentRetryOrderSentErrorqueryRecipientParty, czy dostawca może odbierać zamówieniaNależy skonfigurować webhooki dla następujących topików, aby śledzić proces zamówienia:
OrderSentOrderSentRetryOrderSentErrorOrderResponseReceivedOrderChangeReceivedOrderCancellationReceivedPomyślny upload zwraca 201 Created z identyfikatorem dokumentu w PSB. Tego identyfikatora należy używać do śledzenia zamówienia przez API lub webhooki.
Order Only (urn:fdc:peppol.eu:poacc:bis:order_only:3) to zamówienie jednokierunkowe bez dalszego przepływu wiadomości. Advanced Ordering (urn:fdc:peppol.eu:poacc:bis:advanced_ordering:3) jest wymagane, gdy dostawca musi odpowiedzieć za pomocą Order Response lub gdy chcą Państwo później modyfikować lub anulować zamówienia. Należy wybrać Advanced, jeśli potrzebny jest ten pełny proces.
Należy wysłać nagłówek X-EConnect-DocumentId z unikalnym UUID lub GUID. Jeśli ponownie użyją Państwo tego samego documentId, API odpowie 409 Conflict. Nie należy używać numeru zamówienia jako klucza idempotencji, ponieważ nie jest on przeznaczony do tego mechanizmu.
W przypadku błędów 5xx po stronie odbiorcy, PSB automatycznie ponawia próbę dostarczenia (maksymalnie 8 prób w ciągu około 35 godzin). Zobaczą Państwo OrderSentRetry przy każdej próbie oraz OrderSentError przy trwałym niepowodzeniu. W przypadku sukcesu otrzymają Państwo OrderSent.
Pełna specyfikacja API dostępna jest na psb.econnect.eu ze wszystkimi parametrami i przykładowymi payloadami.
Wypróbuj w API