Report invoice status back to the sender via Peppol BIS Invoice Response 3.0.
With an Invoice Response (also known as a status message), you as a recipient report the processing status of an invoice back to the sender. This could be a confirmation that the invoice was received, approved for payment, or rejected. This article describes how to send an Invoice Response via the PSB API in accordance with the Peppol BIS Invoice Response 3.0 standard.
Without status messages, a supplier can only hope that their invoice arrived and is being processed. With Invoice Responses, you make the invoicing process transparent: the sender knows exactly what stage the invoice is at, and can take immediate action if it is rejected.
The Peppol BIS Invoice Response 3.0 standard defines six status codes:
The statuses follow a logical order: AB, IP, UQ, AP, PD. The RE status can be sent at any point if the invoice is rejected.
When changing status, you can include a Reason code and an Action code to clarify the reason and the desired action.
Send an Invoice Response via the PurchaseInvoice endpoint:
POST /api/v1/{partyId}/purchaseInvoice/{documentId}/response HTTP/1.1
Host: psb.econnect.eu
Authorization: Bearer {access_token}
Content-Type: application/json
{
"status": "AP",
"clarificationCode": "NON",
"actionCode": "NOA",
"note": "Factuur goedgekeurd voor betaling."
}
The PSB automatically generates a Peppol BIS Invoice Response 3.0 message and sends it via the Peppol network to the sender's Access Point.
To send Invoice Responses, your organisation must be registered as a Peppol recipient with the correct SMP capabilities. Check this via:
GET /api/v1/peppol/config HTTP/1.1
Host: psb.econnect.eu
Authorization: Bearer {access_token}
The invoiceResponse capability must have the state on. If it does not, activate it via:
PUT /api/v1/peppol/config HTTP/1.1
Host: psb.econnect.eu
Authorization: Bearer {access_token}
Content-Type: application/json
{
"invoiceResponse": {
"state": "on"
}
}
A common flow when processing a purchase invoice:
InvoiceReceivedYou do not need to send every intermediate status. It is common to send at least AB (receipt confirmation) and AP or RE (final verdict).
After sending an Invoice Response, you receive an InvoiceResponseSent webhook event confirming that the message was successfully delivered to the sender.
You post JSON to POST /api/v1/{partyId}/purchaseInvoice/{documentId}/response including status (for example AB, AP, RE), clarificationCode and actionCode, plus an optional note. The PSB builds a Peppol BIS Invoice Response 3.0 message from this and delivers it via Peppol to the sender.
Your organisation must be registered in the SMP with the capability for Invoice Response. Check GET /api/v1/peppol/config and if necessary set invoiceResponse.state to on via PUT /api/v1/peppol/config. Without an active capability, the counterparty's Access Point cannot correctly deliver your response.
No, that is not mandatory. A common approach is to send at least an acknowledgement of receipt (AB) and a final verdict (AP, PD or RE). For a rejection (RE), Reason and Action codes are relevant to inform the sender what is wrong and what follow-up step is expected.
The full specification of the Peppol BIS Invoice Response 3.0 can be found at docs.peppol.eu. The PSB endpoints and response models are available at psb.econnect.eu.
View the response endpoints