Hoe een document de zes fases van de PSB doorloopt: van Submit tot Delivered of Failed, met statusberichten, webhooks en retry-beleid.
Een document dat je via de PSB verstuurt, doorloopt een vaste reeks verwerkingsfases — van het indienen tot de bevestigde aflevering of definitieve mislukking. Op elk overgangspunt publiceert de PSB een statusbericht dat je kunt ophalen via de status-API of afvangen via een webhook.
Dit artikel beschrijft de flow in detail, welke statuscodes en topics de PSB publiceert, hoe je de status van een document opvraagt en wat er gebeurt als aflevering of webhook-bezorging mislukt.
Submit → Validate → Transform → Route → Acknowledge → Delivered
↘ Failed
PendingValidated, *ReceivedError bij foutRoutedAcknowledged*Sent, *SentErrorSubmit kan worden gestart vanuit verschillende kanalen — REST-upload, mailfrom-hook, SFTP-pull, Office 365 of een ander hook-type. Vanaf Submit is de flow voor elk kanaal identiek.
De PSB publiceert de volgende canonieke statussen via topics en de status-API:
PendingValidatedRoutedDeliveredRejectedFailedAanvullende fijnmazige topics zoals InvoiceSentRetry, InvoiceSentError en MessageLevelStatusReceived zijn beschikbaar voor monitoring via webhooks.
De actuele status van een document is op te vragen via een status-endpoint per documenttype:
GET /api/v1/{partyId}/salesInvoice/{documentId}/statusGET /api/v1/{partyId}/purchaseInvoice/{documentId}/statusDe response bevat de huidige status, het tijdstip van de laatste wijziging en bij een fout een foutcode met omschrijving. Via een list-endpoint per documenttype kun je openstaande documenten filteren op status, periode en (waar relevant) ontvanger.
Voor real-time integratie heeft webhook-routing de voorkeur boven polling. Abonneer je op de relevante topics om direct notificaties te ontvangen:
InvoiceReceived, InvoiceReceivedError, OrderReceived, MessageLevelStatusReceivedInvoiceSent, InvoiceSentRetry, InvoiceSentError, OrderSent, OrderSentRetry, OrderSentErrorHookSent, HookSentRetry, HookSentErrorZie Webhooks instellen voor de configuratie, payload-structuur en HMAC-handtekening.
Als een afleverpoging mislukt door een fout aan de ontvangende kant (bijv. 5xx van een Peppol Access Point), hervat de PSB de aflevering automatisch met exponential backoff.
*SentErrorBij elke afleverpoging publiceert de PSB een {DocumentType}SentRetry-topic. Na definitief falen volgt {DocumentType}SentError. Ontvang je een InvoiceSentError of OrderSentError? Neem dan contact op met de ontvanger of escaleer via eConnect Support.
Tip: abonneer je op
InvoiceSentRetryenInvoiceSentErrorvia een webhook zodat je afleveringsproblemen direct detecteert.
Het retry-beleid voor webhook-bezorging — notificaties naar jouw eigen endpoint — staat los van het afleveringsretry-beleid.
HookSentRetryHookSentErrorDe PSB verwacht binnen 100 seconden een 2xx-response van je endpoint. Verwerk inkomende webhooks zo snel mogelijk: bevestig ontvangst met 200 OK en doe zware verwerking asynchroon in een achtergrondproces.
Optioneel: voeg de query-parameter noRetryCodes toe om specifieke HTTP-codes uit te sluiten van retry (bijv. ?noRetryCodes=400,401,403). Stel een mailhook of secundaire webhook in op HookSentError als operationele monitoring.
Let op: na circa 6 dagen (137 uur) zonder geslaagde bezorging stopt de PSB met herpogingen. Gemiste events haal je op via het batch-endpoint. Zie Batch hooks.
Submit-endpoints ondersteunen idempotency via de header X-EConnect-DocumentId. Bij een duplicaat-aanbieding retourneert de PSB HTTP 409 Conflict. Zo worden herverzoeken — bijv. na een netwerkfout — nooit dubbel verwerkt. Zie Idempotency voor de volledige uitleg.
Je hebt twee opties. Via de status-API (GET …/salesInvoice/{documentId}/status) vraag je de actuele status op. Voor real-time monitoring stel je webhooks in op de relevante topics, zoals InvoiceSent, InvoiceSentRetry en InvoiceSentError. Webhooks verdienen de voorkeur boven polling.
De PSB herprobeert de aflevering automatisch tot 8 keer verspreid over circa 3 dagen (72 uur). Bij elke poging ontvang je een {DocumentType}SentRetry-notificatie (als je een webhook hebt ingesteld). Na definitief falen volgt {DocumentType}SentError en is handmatige actie nodig.
De PSB probeert een webhook-notificatie maximaal 12 keer te bezorgen, verspreid over circa 6 dagen (137 uur). Per poging is er een timeout van 100 seconden. Na definitief falen volgt het HookSentError-event.
Rejected betekent dat de ontvanger het document actief heeft afgewezen — bijvoorbeeld via een MLS Reject-bericht. Failed betekent dat de aflevering definitief is mislukt na uitputting van alle herpogingen, zonder dat de ontvanger bereikbaar was of het document expliciet afwees.
Gedeeltelijk. Met de query-parameter noRetryCodes sluit je specifieke HTTP-codes uit van retry, zodat een bewuste 400- of 403-response geen verdere pogingen triggert. Het maximale aantal pogingen en de retry-duur zijn niet aanpasbaar.
Bekijk de interactieve API-documentatie