Search
Getting Started Invoice sending Invoice sending Consumer Invoicing Printing Email invoicing Invoice receiving Invoice receiving Scanning Detect Fraud reporting Integration tools Webhooks Reference implementations Maventa Connector Embeddable User Interface Peppol Peppol Network Document Exchange Invoice Response Self-billing support Invoicing formats Invoicing formats Validation Peppol BIS 3.0 Finvoice 3.0 Document types and type codes Preview Maventa JSON (table) Preview Maventa JSON (json schema) Account management Companies and Settings Department Company Users Billing Accounts receivable Accounts receivable Ropo Reminder & Collection Amili Kassavirta Amili Perintä

Self-billing support

What is self-billing?

Self-billing is a process where the buyer issues and sends an invoice on behalf of the supplier through the Peppol network. The invoice refers to goods or services that the buyer has received and is responsible for documenting.

In Peppol, this process is defined in the Peppol BIS Self-Billing 3.0 specification, which ensures interoperability and VAT compliance across participating countries. Self-billed invoices must contain the same required data elements as standard invoices, including buyer and supplier identifiers, tax details, and references to the underlying commercial transaction.

Before self-billing can be used, the supplier and buyer must have a prior agreement that explicitly authorises the buyer to issue invoices on the supplier’s behalf, as required by VAT and e-invoicing legislation. This agreement is handled outside Maventa between the parties themselves.

Key distinction

Legally and according to Peppol standards, the buyer creates the invoice on behalf of the supplier, and the supplier is the recipient. The supplier remains the legal seller, and VAT liability stays with the supplier.

From an accounting perspective:

Integrators should make sure this distinction is clear in the accounting system so there is no confusion about responsibilities.

Country support

Self-billing via Maventa is available in all countries where Maventa supports Peppol invoice receiving, except Norway.

Sending self-billing invoices

The buyer creates a compliant Peppol BIS Self-Billing document with the correct profiles and type codes, and sends it like any other invoice via the REST API. Maventa automatically identifies the document as a self-billing invoice or credit note and delivers it to the supplier via Peppol — provided the supplier is registered to receive self-billing documents. If the supplier is not registered, the invoice will fail, as no fallback routing is available for self-billing documents.

Maventa reads routing data from the XML for self-billing invoices. Any routing information provided in the API metadata (such as recipient_eia or recipient_operator) is ignored.

The self-billing document must include the following identifiers in the XML. The CustomizationID and ProfileID are the same for both invoices and credit notes — only the document type code and root element differ:

<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:selfbilling:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:selfbilling:01:1.0</cbc:ProfileID>
Self-billing invoice

The root element is <Invoice> with type code 389:

<cbc:InvoiceTypeCode>389</cbc:InvoiceTypeCode>

Receiving self-billing invoices

To receive self-billing documents, a company must explicitly register dedicated Peppol self-billing profiles via the API — one for self-billing invoices and one for self-billing credit notes. These are separate registrations from the standard INVOICE_AND_CREDIT_NOTE profile. There is no UI available for self-billing profile registrations.

Self-billing is supported only in the Peppol BIS format. No conversion to other formats is available, meaning the receiving ERP must be capable of downloading and handling Peppol BIS invoices.

Register self-billing profiles

Call POST /v1/company/profiles with the following parameters:

Once the profiles are created, use GET /v1/company/profiles to verify that they are active for the PEPPOL network. This separate registration is necessary because not all ERPs support self-billing by default.

Downloading and processing self-billing invoices

Downloading self-billing invoices works the same way as downloading any other received invoice — use the standard invoice receiving flow.

After downloading, the receiving system must identify the document as a self-billing document by checking the CustomizationID and document type code in the XML. Both types use the self-billing customization ID (urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:selfbilling:3.0):

Based on these identifiers, the receiving system should handle the document as a sales record rather than a purchase record.

Summary

Self-billing via Peppol allows buyers to issue compliant electronic invoices on behalf of suppliers. It requires:

Back to top

AI Chat Support 24/7

  • Get help via AI chat available 24/7 whenever it suits you
  • Chat extensively uses Maventa support pages, websites, and blogs in its answers
  • If you need assistance that the AI cannot provide, you can also ask a customer service agent to join the conversation
  • Support requests processed Monday to Friday
Cancel Open chat

Got feedback?

Did you not find what you were looking for? Or was something explained unclearly? Or just want to share your thoughts? We are happy to hear your feedback!

Note: This form is not a way to get support, this is only for feedback for the documentation website. If you need support, please contact Maventa support.

Integration Guide Services & Reach API Specification Changelogs Integration guide Getting Started Invoice sending Consumer Invoicing Printing Email invoicing Invoice receiving Scanning Detect Fraud reporting Webhooks Reference implementations Maventa Connector Embeddable User Interface Peppol Network Document Exchange Invoice Response Self-billing support Invoicing formats Validation Peppol BIS 3.0 Finvoice 3.0 Document types and type codes Maventa JSON (table) Maventa JSON (json schema) Companies and Settings Department Company Users Billing Accounts receivable Ropo Reminder & Collection Amili Kassavirta Amili Perintä Services and reach Maventa services and reach e-invoicing in Finland Mass Printing Service e-invoicing in Sweden e-invoicing in Norway e-invoicing in Denmark e-invoicing in the Netherlands e-invoicing in Belgium e-invoicing in Germany e-invoicing in Estonia e-invoicing in Latvia e-invoicing in Poland e-invoicing in Italy e-invoicing in France e-invoicing in Spain Api specification API overview Getting Started Common & authentication API Invoices API Documents API Companies & settings API Lookups API Detect API Validator API Receivables API Billing API Scanning API B2CFI API B2CNO API B2CSE API Partner API Getting Started API Methods Overview Account Configuration API Methods Invoice Sending API Methods Invoice Receiving API Methods B2C Norway API Methods B2C Finland API Methods Other API Methods Changelogs Product changelog Developer Changelog
Clear Send

Enter your credentials to Maventa testing environment, to authenticate and try things out with the Swagger UI. This will fetch a Bearer token using OAuth2 with the endpoint POST https://ax-stage.maventa.com/oauth2/token. The token is stored in your browser's session storage (cleared when you close the tab) and used in Swagger calls done from this documentation website. The token is valid for 1 hour.

Never use your production credentials here. This is only for testing the Maventa test environment in the Swagger UI.
Reset All None
eui global company lookup document:receive document:send invoice:receive invoice:send company:read company:write validate receivables:assignments analysis billing:reports partner:invoice_delivery_actions partner:lookups partner:takeovers partner:lyanthe_scan_service fi_bank_message:send fi_bank_message:receive
Cancel Sign In