Guides

What Is a PEPPOL Invoice? Format, Example and How It Works

What a PEPPOL invoice is, what PEPPOL stands for, how the Peppol network delivers it, what the Peppol BIS 3.0 UBL format contains, and a small XML example with a free downloadable sample.

Reviewed by Muhammad Saqlain
·Published 2026-10-13·Updated 2026-10-13·7 min read

Use this guide with

4 ToolsWebPro tools

Open the free tool(s) below and follow the steps in this guide.

Quick answer: what a PEPPOL invoice is

A PEPPOL invoice is an electronic invoice sent as structured XML over the Peppol network instead of as a PDF or paper. In almost all cases it follows the Peppol BIS Billing 3.0 specification, which is based on the European standard EN 16931 and written in the UBL 2.1 XML syntax. Because every field has a fixed place (invoice number, VAT ID, line amounts, totals), the receiver's software can book it automatically without retyping or OCR.

PEPPOL stands for Pan-European Public Procurement OnLine. It started as an EU project for public procurement and is now run by OpenPeppol, a non-profit association based in Belgium. Today it is used for business-to-business invoices as well as invoices to governments, in Europe and beyond.

Direct answer: a PEPPOL invoice is an EN 16931 e-invoice in UBL XML (Peppol BIS Billing 3.0) delivered through Peppol Access Points. To read one, drop the .xml file into the free PEPPOL Invoice Viewer.

How the Peppol network delivers an invoice (the four-corner model)

Peppol does not use e-mail. The sender (corner 1) gives the invoice to its Peppol Access Point (corner 2), a certified service provider. That Access Point looks up the receiver's Peppol ID in the network's address directory (SML and SMP) to find the receiver's Access Point (corner 3), and delivers the file securely. The receiver (corner 4) gets it in its accounting or ERP software.

Every participant has a Peppol participant ID made of a scheme code and a number, for example 0208 followed by a Belgian company number, or 9930 followed by a German VAT number. In the XML these are the EndpointID elements of the supplier and the customer.

The PEPPOL invoice format: what is inside the XML

A Peppol BIS 3.0 invoice is a UBL 2.1 document whose root element is Invoice (or CreditNote). The first two elements say which rules it follows: CustomizationID (urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0) and ProfileID. After that come the business terms of EN 16931, each with a BT number:

↔ Scroll table horizontally to view full data
XML elementBusiness termMeaning
cbc:IDBT-1Invoice number
cbc:IssueDate / cbc:DueDateBT-2 / BT-9Issue date and payment due date
cbc:InvoiceTypeCodeBT-3380 = commercial invoice (credit notes use 381)
cbc:DocumentCurrencyCodeBT-5Invoice currency, e.g. EUR
cbc:BuyerReferenceBT-10Buyer's reference (Leitweg-ID for German public buyers)
cac:AccountingSupplierPartyBG-4Seller: name, address, VAT ID, Peppol ID
cac:AccountingCustomerPartyBG-7Buyer: name, address, VAT ID, Peppol ID
cac:PaymentMeansBG-16How to pay, e.g. code 58 = SEPA credit transfer with IBAN
cac:TaxTotalBG-23VAT total and breakdown per rate
cac:LegalMonetaryTotalBG-22Net total, gross total, amount due
cac:InvoiceLineBG-25One line per product or service

A small PEPPOL invoice example

This shortened example shows the shape of a Peppol BIS 3.0 invoice (namespaces and some mandatory parts removed for readability):

<Invoice> <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID> <cbc:ID>BE-2026-0842</cbc:ID> <cbc:IssueDate>2026-02-15</cbc:IssueDate> <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode> <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode> <cbc:BuyerReference>PO-99412</cbc:BuyerReference> … <cac:LegalMonetaryTotal> <cbc:TaxExclusiveAmount>2000.00</cbc:TaxExclusiveAmount> <cbc:TaxInclusiveAmount>2420.00</cbc:TaxInclusiveAmount> <cbc:PayableAmount>2420.00</cbc:PayableAmount> </cac:LegalMonetaryTotal> … </Invoice>

A complete, fictitious example you can download and use as a template is available here: sample Peppol BIS 3.0 invoice XML. Open it in the PEPPOL Invoice Viewer to see how it looks as an invoice, or check it with the PEPPOL Invoice Validator.

PEPPOL invoice vs PDF invoice, XRechnung and ZUGFeRD

  • PDF invoice: a picture of an invoice. People can read it, software has to guess. It is not an e-invoice under EN 16931.
  • Peppol BIS 3.0: EN 16931 in UBL syntax, sent over the Peppol network. Used in Belgium, the Nordics, the Netherlands and many other countries.
  • XRechnung: Germany's EN 16931 version, in CII or UBL syntax. It can also be sent over Peppol. Open it with the XRechnung Viewer.
  • ZUGFeRD / Factur-X: a PDF with a CII XML invoice attached inside, so it is readable by people and by software. Open it with the ZUGFeRD / Factur-X Viewer.

Frequently asked questions

What does PEPPOL stand for?

Pan-European Public Procurement OnLine. It began as an EU project and is now governed by OpenPeppol, a non-profit association based in Belgium.

What format is a PEPPOL invoice?

Peppol BIS Billing 3.0, which is the European standard EN 16931 expressed in UBL 2.1 XML. The file usually has the extension .xml.

Is there a PEPPOL invoice template or example?

Yes. ToolsWebPro offers a fictitious Peppol BIS 3.0 sample invoice XML you can download, open in the viewer and use as a starting point for testing.

Is a PDF sent by e-mail a PEPPOL invoice?

No. A PEPPOL invoice is structured XML delivered through Peppol Access Points. A PDF is only a picture of an invoice.

Free Peppol Viewer

Open a PEPPOL invoice in seconds

Drop the .xml into the browser viewer to read it as a normal invoice, or load the sample to see how it works.

M

Muhammad Saqlain

Cybersecurity Practitioner & Lead Engineer

Security researcher, web developer, and founder of ToolsWebPro. Tests password entropy, GPU cracking speeds, and client-side encryption systems.

Read full author bio & credentials →