Statusupdates van ontvangers verwerken via hooks: acknowledged, accepted, rejected, paid.
Wanneer een ontvanger de status van jouw factuur terugkoppelt via een Invoice Response (statusbericht), stuurt de PSB een notificatie naar je webhook. Zo weet je als verzender of een factuur is goedgekeurd, afgekeurd, of dat de ontvanger aanvullende informatie nodig heeft. Dit artikel beschrijft hoe je die notificaties opvangt en verwerkt.
Na het versturen van een factuur kan de ontvanger via het Peppol-netwerk statusberichten terugsturen. De PSB koppelt elk binnengekomen Invoice Response automatisch aan je oorspronkelijke factuur en publiceert een webhook-event.
De flow:
InvoiceResponseReceived-eventRegistreer een hook op het topic InvoiceResponseReceived:
POST /api/v1/hook
{
"action": "https://mijn-systeem.nl/webhook/responses#mijnSecretKey",
"topics": ["InvoiceResponseReceived"]
}
De webhook-payload bevat het documentId van de oorspronkelijke factuur en het responseDocumentId van het Invoice Response-bericht.
Haal het volledige Invoice Response-bericht op via de API:
GET /api/v1/{partyId}/salesInvoice/{documentId}/response/{responseDocumentId}/download HTTP/1.1
Host: psb.econnect.eu
Authorization: Bearer {access_token}
Het bericht bevat de statuscode, eventuele clarification codes en een optionele toelichting van de ontvanger.
De ontvangen statuscode geeft aan in welk stadium de factuur zich bij de ontvanger bevindt:
Bij de statussen UQ en RE is het belangrijk om de meegestuurde Reason code en Action code te lezen. Deze geven aan wat er mis is en welke actie de ontvanger van je verwacht. Zie het artikel Invoice Response verzenden voor een overzicht van alle Reason- en Action codes.
Om Invoice Responses te kunnen ontvangen als verzender moet je organisatie geregistreerd zijn in de Peppol SMP met de invoiceResponse-capability. Zonder deze registratie kan het Access Point van de ontvanger het response-bericht niet afleveren.
Controleer en activeer de capability:
PUT /api/v1/peppol/config HTTP/1.1
Host: psb.econnect.eu
Authorization: Bearer {access_token}
Content-Type: application/json
{
"invoiceResponse": {
"state": "on"
}
}
Enkele aanbevelingen voor het verwerken van Invoice Responses:
documentId uit de payload om de response te koppelen aan de juiste factuur in je eigen administratie.X-EConnect-DocumentId, want het gaat om een nieuw document.Registreer een hook op het topic InvoiceResponseReceived. De payload bevat het documentId van je oorspronkelijke verzonden factuur en het responseDocumentId van het statusbericht. Zo koppel je het antwoord in je systeem aan de juiste verkoopfactuur.
Gebruik GET /api/v1/{partyId}/salesInvoice/{documentId}/response/{responseDocumentId}/download met het documentId van de factuur en het responseDocumentId uit de webhook. In het bericht staan de statuscode en eventuele clarification-informatie van de ontvanger.
Bij RE (Rejected) moet je de factuur corrigeren en opnieuw versturen; de Reason- en Action codes geven aan wat er mis is. Voor die nieuwe versie gebruik je een nieuw X-EConnect-DocumentId, omdat het om een nieuw document gaat en idempotency per documentId werkt.
Invoice Responses zijn optioneel in het Peppol-netwerk. Niet elke ontvanger stuurt ze. Maar wanneer ze wel worden gebruikt, bieden ze waardevolle inzichten in het factuurproces.
Probeer het in de API