# Tutorial: Send Self-billed Invoices
This page describes how to send self-billed invoices via Peppol.
# What is Self-Billing?
Self-billing is a process where the buyer creates and sends the invoice on behalf of the seller. Instead of waiting for the supplier to invoice them, the buyer generates the invoice and sends it to the supplier for acceptance or rejection.
This process is formally specified in the Peppol BIS Self-Billing 3.0 (opens new window) specification. In self-billing:
- The buyer (customer) creates the invoice
- The invoice is sent to the seller (supplier) for acceptance
- The seller books and accepts (or rejects) via an invoice response message the self-billed invoice
- Corrections can be made using a self-billed credit note
# Prerequisites
- You have registered a hook with the topics
InvoiceSent
andInvoiceSentError
. If not, go to hooks. - Important: The seller (invoice recipient) must be registered in Peppol for receiving self-billed invoices. This is a different variant than the standard registration for receiving invoices. Not all access points support self-billing functionality, so confirm this with your supplier beforehand.
- There is a prior agreement between buyer and seller that explicitly authorizes the buyer to issue invoices on behalf of the seller (Directive 2006/112/EC Article 224 (opens new window)).
- You are able to produce an XML document in the required format (see Peppol BIS Self-Billing XML Format below).
# Peppol BIS Self-Billing XML Format
Submit a properly formatted Peppol BIS Self-Billing 3.0 XML document. A self-billed invoice differs from a regular invoice in three key elements:
cbc:CustomizationID
must contain:urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:selfbilling:3.0
cbc:ProfileID
must contain:urn:fdc:peppol.eu:2017:poacc:selfbilling:01:1.0
Invoice type code must be:
389
for a self-billing invoice incbc:InvoiceTypeCode
261
for a self-billed credit note incbc:CreditNoteTypeCode
In our documentation you can find an example self-billing invoice.
Important: You do not need to swap the supplier and customer parties in the XML. Our service automatically recognizes the invoice type code 389
or 261
and routes the document to the supplier's endpoint.
# Step 1: Query Recipient Party
Before sending a self-billing invoice, verify that the recipient (seller/supplier) can receive it using the salesInvoice/QueryRecipientParty endpoint. Even though it is the salesInvoice api and self-billed invoices are purchase invoices, it will detect the receiving capabilities for selfbilling invoices.
Example request using the supplier's identifiers:
{
"senderPartyId": "0106:12345678",
"receiverPartyIds": [
"0106:87654321",
"0190:0000000123456789000",
"9944:NL987654321B01"
],
"documentType": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:selfbilling:3.0::2.1"
}
Example response:
{
"channel": "peppol",
"description": "default send via peppol delivery",
"id": "0106:87654321"
}
If the supplier is not registered for receiving self-billing invoices, you will receive an error indicating they cannot be found or do not support this document type.
# Step 2: Send the Self-Billing Invoice
Use the Generic/Send endpoint to send your self-billing invoice. While you can also use the SalesInvoice/Send endpoint, using the Generic endpoint is recommended to avoid confusion, as you are sending a purchase invoice.
# Step 3: Monitor Delivery Status
Monitor the delivery status using webhooks. See the step 3 of the send invoice tutorial for receiving information on the delivery status.
# Self-Billing in the Netherlands (NLCIUS)
The implementation of self-billing in the Netherlands follows a simplified approach compared to the standard Peppol BIS Self-Billing 3.0 specification.
# Simplified Dutch Approach
In the Netherlands (NLCIUS/SI-UBL 2.0), you can maintain the exact same XML structure as a regular invoice. The only change required is:
- Set
cbc:InvoiceTypeCode
to389
for a self-billing invoice - Set
cbc:CreditNoteTypeCode
to261
for a self-billed credit note
You do not need to modify:
- The
cbc:CustomizationID
- The
cbc:ProfileID
- The party roles (supplier/customer)
Our service automatically recognizes the invoice type code and routes the document to the correct recipient (the supplier instead of the customer).