Receive self-billing documents: SMP capabilities and processing flow.
As a supplier, you receive self-billing invoices from your buyers. The buyer creates the invoice on your behalf and sends it via the Peppol network. This article describes what registration you need and how to process the received documents.
Self-billing invoices are delivered in the same way as regular purchase invoices. The PSB sends a webhook notification and you can download the document via the PurchaseInvoice endpoint. The difference lies in the registration and the document type.
The receiving flow:
389) via the PSBInvoiceReceived event to your webhookTo receive self-billing invoices, your organisation must be registered in the Peppol SMP. Which registration you need depends on the variant:
If you are already registered to receive regular NLCIUS invoices, no additional steps are needed. Self-billing invoices with InvoiceTypeCode 389 are delivered via the same profile. The PSB automatically recognises the document type.
The BIS Self-Billing 3.0 profile requires a separate registration. This profile has its own CustomizationID and ProfileID, and requires a specific SMP configuration.
Configure the self-billing capability via the Peppol config API:
PUT /api/v1/peppol/config HTTP/1.1
Host: psb.econnect.eu
Authorization: Bearer {access_token}
Content-Type: application/json
{
"selfBilling": {
"state": "on"
}
}
Without this registration, buyers using the BIS Self-Billing 3.0 profile cannot find you via a Peppol SMP lookup.
Use the same topic as for regular purchase invoices:
{
"action": "https://mijn-systeem.nl/webhook/invoices#mijnSecretKey",
"topics": ["InvoiceReceived"]
}
Self-billing invoices arrive as InvoiceReceived events. You can distinguish them from regular invoices by checking the InvoiceTypeCode in the XML document: 389 for a self-billing invoice, 261 for a self-billing credit note.
Download the document in the same way as a regular purchase invoice:
GET /api/v1/{partyId}/purchaseInvoice/{documentId}/download HTTP/1.1
Host: psb.econnect.eu
Authorization: Bearer {access_token}
Optionally, you can use targetDocumentTypeId to retrieve the document in a different format if your system requires it.
After downloading, you can check the XML document to determine whether it is a self-billing invoice:
<!-- InvoiceTypeCode 389 = self-billing invoice -->
<InvoiceTypeCode>389</InvoiceTypeCode>
<!-- InvoiceTypeCode 261 = self-billing credit note -->
<InvoiceTypeCode>261</InvoiceTypeCode>
In a self-billing invoice, the AccountingSupplierParty is your organisation (the supplier), while the AccountingCustomerParty is the buyer who created the invoice.
After reception, you can send an Invoice Response back to the buyer to confirm processing or reject the invoice. The flow is identical to that for regular invoices:
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"
}
See Send an Invoice Response for the full overview of status codes and clarification codes.
The retention rules for self-billing documents are the same as for regular purchase invoices: stored for 90 days after reception, 7 days after download. Retrieve documents promptly and store them in your own system.
No, self-billing uses the same topic as regular purchase invoices: InvoiceReceived. You distinguish self-billing in your processing by reading the InvoiceTypeCode in the XML (389 for invoice, 261 for credit note).
If you already receive NLCIUS purchase invoices, that registration also covers NLCIUS self-billing with code 389 or 261. For BIS Self-Billing 3.0, a separate capability is required; set selfBilling.state to on via PUT /api/v1/peppol/config, otherwise buyers cannot find you for that profile in the SMP.
Use GET /api/v1/{partyId}/purchaseInvoice/{documentId}/download as with any purchase invoice. With the query parameter targetDocumentTypeId you can request a different target format if your back-end system requires it. After download, check in the XML which party is the supplier and which is the buyer according to AccountingSupplierParty and AccountingCustomerParty.
Whether you receive NLCIUS or BIS Self-Billing 3.0 as a supplier depends on what the buyer sends. Make sure you have the correct SMP registration for the variants your buyers use. When in doubt: register for both.
View the API documentation