Peppol BIS Guide
A plain-English guide to Peppol BIS Billing 3.0: what the format is, what is inside the file, the CustomizationID and ProfileID values, how it differs from XRechnung, and how to validate and send one.
General information. This guide is prepared for informational purposes from the public OpenPeppol specification and the EN 16931 standard. It does not constitute tax or legal advice. Check the rules of your customer's country and your access point.
01Definition
What is Peppol BIS?
Peppol BIS Billing 3.0 is the invoice and credit note specification of the Peppol network. BIS stands for Business Interoperability Specification. It is a structured XML file in the UBL 2.1 syntax that follows the European standard EN 16931 and adds a few Peppol rules on top. OpenPeppol, the non-profit that runs the network, maintains it.
Format
Structured XML in UBL 2.1. Peppol BIS Billing 3.0 does not use the UN/CEFACT CII syntax.
Documents
Invoice (type code 380) and credit note (type code 381).
Standard
EN 16931 core model plus the Peppol rules (PEPPOL-EN16931-R...).
Network
Sent through Peppol access points, but the file is also valid as a plain attachment.
What a computer reads
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" ...> <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID> <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID> <cbc:ID>INV-2026-0891</cbc:ID> <cbc:IssueDate>2026-10-10</cbc:IssueDate> <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode> <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode> <cbc:BuyerReference>PO-4471</cbc:BuyerReference> ... </Invoice>
The header of a Peppol BIS Billing 3.0 invoice. The snippet is shortened for illustration.
02Identifiers
CustomizationID and ProfileID
Every Peppol BIS Billing 3.0 invoice starts with two identifiers. Together they tell the receiver which rules to check the file against. Copy them exactly.
CustomizationID (BT-24)
urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0
Tells the receiver which rule set the file follows. A wrong or missing value makes the file fail validation.
ProfileID (BT-23)
urn:fdc:peppol.eu:2017:poacc:billing:01:1.0
Names the business process, the Peppol billing process. The same value is used for invoices and credit notes.
The XRechnung CustomizationID is a different value. Using the Peppol value in a file meant for a German public body, or the other way round, makes the file fail.
03Adoption
Who uses it?
| Where | Rule | Status |
|---|---|---|
| Peppol BIS Billing 3.0 | The current Peppol invoice and credit note specification. It replaced the older BIS Billing 2.0 (BII) documents. | Current |
| January 1, 2026 | Belgium made structured e-invoicing through Peppol the route for domestic B2B invoices. | Belgium B2B |
| Public sector, many countries | Buyers in the public sector in several European countries require Peppol BIS Billing 3.0 from their suppliers. | B2G |
| Germany | A Peppol BIS Billing 3.0 invoice is an EN 16931 e-invoice, so it counts under § 14 UStG. For German public bodies XRechnung is still the expected format. | Accepted |
Outside Europe, Peppol uses PINT, a set of regional specifications for places such as Australia and New Zealand, Singapore and Japan. They follow the same model as Peppol BIS Billing 3.0.
04Comparison
Peppol BIS or XRechnung?
| Peppol BIS Billing 3.0 | XRechnung | |
|---|---|---|
| Maintained by | OpenPeppol | KoSIT (Germany) |
| Syntax | UBL 2.1 only | UBL 2.1 or UN/CEFACT CII |
| Used in | Peppol network and many countries | Germany, mainly public bodies |
| Routing field | Buyer reference (BT-10) or order reference (BT-13), plus endpoint IDs | Buyer reference (BT-10), the Leitweg-ID for public bodies |
| Endpoint IDs | Seller (BT-34) and buyer (BT-49) electronic address required | Not required in the same way |
| Validation rules | EN 16931 rules plus PEPPOL-EN16931-R rules | EN 16931 rules plus BR-DE rules |
Which one? Send Peppol BIS Billing 3.0 when the customer is on the Peppol network or abroad. Send XRechnung to German public bodies. Read the XRechnung guide for the German rules.
05Required data
What does a Peppol BIS invoice contain?
Party information
Seller and buyer name, postal address and legal registration.
Tax registration
Seller VAT identifier and, where it applies, the buyer VAT identifier.
Invoice metadata
Invoice number, issue date, due date, type code and currency.
Line items
Description, quantity, unit code, unit net price and VAT category and rate.
Tax breakdown
Net amount, VAT amount and gross total for each VAT category.
Payment details
Payment means code, IBAN and payment terms.
Electronic addresses (BT-34 and BT-49)
Both parties need an endpoint ID with a scheme, such as 0088 for a GLN, 9930 for a German VAT ID or 0204 for a German Leitweg-ID. This is how the network finds the receiver.
Buyer reference or order reference
The Peppol rules require at least one of BT-10 (buyer reference) or BT-13 (order reference) so the buyer can route the invoice.
06Validation
Validation and the XSD
A Peppol BIS Billing 3.0 file is checked in two layers. The first is the structure, checked against the OASIS UBL 2.1 XSD. There is no separate Peppol XSD. The second is the business rules, published as Schematron: the EN 16931 rules (BR-...) and the Peppol rules (PEPPOL-EN16931-R...).
Drop any file into the free e-invoice validator to see the rule it breaks, or turn an old PDF into a structured file with the PDF to e-invoice converter.
07Workflow
How do I send one?
- 1
Collect the receiver's Peppol participant ID
Ask the customer for it, or look it up in the Peppol Directory. It is a scheme plus an identifier, for example a GLN or a VAT ID.
- 2
Create the invoice with the Peppol fields
Fill the electronic addresses of both parties and a buyer or order reference, besides the usual invoice data.
- 3
Export it as Peppol BIS Billing 3.0 XML
The file must carry the correct CustomizationID and ProfileID.
- 4
Validate the file before sending
Check it against the UBL 2.1 XSD and the Schematron rules. A file that fails is rejected by the access point or the receiver.
- 5
Send it through a Peppol access point
You need your own access point, or a provider that offers one. The access point delivers the file to the receiver's access point. You can also send the XML as an attachment when the customer agrees.
- 6
Keep the original file
Keep the structured XML as the original invoice. A printout or a PDF rendering is not the original.
08Rejection checklist
Common reasons a Peppol BIS invoice is rejected
Wrong or missing CustomizationID or ProfileID
The receiver cannot tell which rules apply, so validation fails at once.
Missing electronic address (BT-34 or BT-49)
Peppol rules require an endpoint ID with a scheme on both sides.
No buyer reference or order reference
At least one of BT-10 and BT-13 must be filled.
VAT amounts that do not add up to the line items
Rounding differences between line totals and the tax breakdown break the calculation rules.
Unknown unit code or missing VAT category code
Units use UN/ECE Recommendation 20 codes and each tax line needs a VAT category such as S, Z, E or AE.
Sending a PDF instead of the XML
A PDF is not a Peppol BIS Billing 3.0 document.
09Invoqk
Create a Peppol BIS invoice with Invoqk
Paste your job description or email, review the invoice, then export Peppol BIS Billing 3.0 XML. The file is validated before download. Peppol, XRechnung and ZUGFeRD export is free with an account.
Try the generator10Questions
Frequently asked questions
What is Peppol BIS?
Peppol BIS (Business Interoperability Specification) is a family of document specifications for the Peppol network. Peppol BIS Billing 3.0 is the one for invoices and credit notes. It is a UBL 2.1 XML file that follows EN 16931.
What is the difference between Peppol BIS 3.0 and XRechnung?
Both follow EN 16931 and both can use UBL. XRechnung is the German CIUS with extra German rules such as a mandatory Leitweg-ID for public bodies. Peppol BIS Billing 3.0 adds Peppol rules such as electronic addresses. A file is valid for one rule set, so set the right CustomizationID.
Is there a Peppol BIS 4.0?
There is no Peppol BIS Billing 4.0. The current invoice specification is Peppol BIS Billing 3.0, which OpenPeppol updates with minor releases. Always check the OpenPeppol site for the latest release.
Is there a Peppol XSD schema?
Peppol BIS Billing 3.0 uses the standard OASIS UBL 2.1 XSD for the structure. The Peppol and EN 16931 business rules are published as Schematron files, not as a separate XSD.
Where do I find a Peppol BIS 3.0 invoice example?
OpenPeppol publishes example files together with the specification. The snippet in this guide shows the header of a minimal file. Use the free e-invoice validator to open and check any file.
Is Peppol BIS Billing 3.0 mandatory?
Not as a single worldwide rule. It depends on the country and the buyer. Some governments require it for public sector invoices, and Belgium uses Peppol for domestic B2B invoices since January 1, 2026. Ask your customer which format they need.
What is Peppol PINT?
Peppol PINT (Peppol International Invoice) is a set of regional specifications, such as for Australia and New Zealand, Singapore and Japan, built on the same model as Peppol BIS Billing 3.0. Use the PINT variant when the receiver is in one of those regions.
Is there a Peppol BIS for despatch advice?
Yes. Peppol BIS Despatch Advice 3.0 is a separate document for shipments. It is not an invoice and does not replace one.
11Sources
Sources and references
OpenPeppol, Peppol BIS Billing 3.0
docs.peppol.eu/poacc/billing/3.0
Peppol Directory
directory.peppol.eu
OASIS, Universal Business Language 2.1
The UBL 2.1 XSD that Peppol BIS Billing 3.0 uses
- EU standard
European Committee for Standardization (CEN)
EN 16931-1, the semantic data model of the core elements of an electronic invoice