PEPPOL BIS Billing 3.0 is the standard electronic invoice format used across the global PEPPOL network, covering transactions in more than 40 countries. In Germany, PEPPOL BIS Billing 3.0 is one of three formats that satisfy the domestic B2B e-invoicing mandate under §14 UStG — alongside XRechnung and ZUGFeRD at EN 16931+ profile. Understanding PEPPOL BIS Billing 3.0 is essential for German businesses that invoice cross-border, participate in PEPPOL-connected supply chains, or prefer a single format that works for both domestic German invoicing and international B2B flows. This guide explains what PEPPOL BIS Billing 3.0 is, how it relates to EN 16931, why it uses UBL syntax, what its mandatory fields are, and how to validate a PEPPOL invoice before transmission.
PEPPOL BIS Billing 3.0 was introduced to replace PEPPOL BIS Billing 2.0 and to align with the EN 16931 European standard published in 2017. BIS stands for Business Interoperability Specification — it is a CIUS (Core Invoice Usage Specification) of EN 16931, meaning it implements the European standard with PEPPOL-specific rules applicable across all PEPPOL member countries. PEPPOL mandatory fields in BIS Billing 3.0 are primarily the 52 EN 16931 mandatory Business Terms, with additional PEPPOL-specific business rules (codified as BRs — Business Rules) that constrain content further. For German businesses, PEPPOL BIS Billing 3.0 offers a format that satisfies both the German mandate and the international PEPPOL standard simultaneously.
Key Takeaways
- PEPPOL BIS Billing 3.0: It is the standard invoice specification for the PEPPOL network, implementing EN 16931 alongside PEPPOL-specific business rules for electronic invoicing across participating countries.
- PEPPOL BIS 3.0 example XML: It uses UBL 2.1 syntax, with the invoice root element in the namespace.
- PEPPOL validation rules: Invoices must satisfy applicable EN 16931 validation rules and PEPPOL BIS business rules. Validate the XML using an appropriate validator before transmission to identify structural and business-rule errors.
- PEPPOL mandatory fields: The specification incorporates EN 16931 business terms covering invoice identification, seller and buyer details, supply date, invoice lines, VAT breakdowns and document totals, together with additional PEPPOL business-rule constraints.
- PEPPOL UBL invoice customization ID: A BIS Billing 3.0 invoice must use the applicable PEPPOL customization identifier.
What Is PEPPOL BIS Billing 3.0?
PEPPOL BIS Billing 3.0 is the current version of the PEPPOL BIS (Business Interoperability Specification) for invoice and credit note exchange. It was developed by OpenPEPPOL — the international non-profit association that governs the PEPPOL network — and published in 2019 as the replacement for BIS Billing 2.0. The “3.0” version number aligns the format with EN 16931 (the European standard for electronic invoices published in 2017) and with the UBL 2.1 syntax binding that EN 16931 specifies as one of its two normative syntaxes. PEPPOL BIS Billing 3.0 is mandatory for all PEPPOL network invoice exchanges — access points that claim PEPPOL certification must support BIS Billing 3.0 as a minimum. Older PEPPOL formats (BIS 2.0 and earlier) are officially deprecated and no longer accepted on the network.
In the context of German e-invoicing, PEPPOL BIS Billing 3.0 is one of the three formats that satisfy the domestic B2B mandate under §14 UStG. German businesses can therefore use PEPPOL BIS Billing 3.0 for domestic B2B invoicing without needing to maintain a separate XRechnung implementation — though XRechnung is required for B2G via ZRE, and ZUGFeRD is often preferred for the embedded PDF experience. PEPPOL mandatory fields in BIS Billing 3.0 are fully aligned with EN 16931 mandatory Business Terms, so any invoice that satisfies PEPPOL BIS Billing 3.0 field requirements also satisfies the EN 16931 content standard required by German law.
How PEPPOL BIS Billing 3.0 Relates to EN 16931
PEPPOL BIS Billing 3.0 is a CIUS — a Core Invoice Usage Specification — of EN 16931. EN 16931 defines the semantic data model for European electronic invoices: 52 mandatory Business Terms (BTs), 28 conditional BTs, associated Business Groups (BGs), and two normative syntax bindings (UBL 2.1 and UN/CEFACT CII). A CIUS is a national or sectoral specification that constrains EN 16931 without adding new mandatory fields outside the base standard. PEPPOL BIS Billing 3.0 constrains EN 16931 by: specifying that only UBL 2.1 syntax is supported (CII is not used in PEPPOL BIS Billing 3.0); adding PEPPOL-specific business rules (BRs) that restrict allowed values for code lists; and requiring specific identification of the PEPPOL customization in the invoice header.
The relationship between EN 16931, XRechnung, and PEPPOL BIS Billing 3.0 is therefore: EN 16931 is the base; both XRechnung and PEPPOL BIS Billing 3.0 are CIUSes of the base. A document conforming to XRechnung or PEPPOL BIS Billing 3.0 also conforms to EN 16931 by definition — but not vice versa. A document that conforms to EN 16931 only (without either CIUS) may not satisfy all XRechnung or PEPPOL business rules. For German B2B compliance under §14 UStG, any of the three formats (XRechnung, ZUGFeRD EN 16931+, PEPPOL BIS Billing 3.0) satisfies the mandate. For PEPPOL network transmission, only PEPPOL BIS Billing 3.0 is the native format; XRechnung can also be transmitted but requires the receiver to support XRechnung CIUS rules.
Why Does PEPPOL BIS Billing 3.0 Use UBL Syntax?
PEPPOL UBL invoice format uses UBL 2.1 (Universal Business Language) syntax rather than UN/CEFACT CII for several reasons. UBL is an OASIS standard with broader global adoption across procurement and supply chain domains; CII is primarily European and more commonly used in pan-European contexts like ZUGFeRD. When PEPPOL expanded globally to cover Singapore, Australia, Japan, and other non-European markets, UBL’s broader international recognition made it the more natural syntax choice. PEPPOL BIS Billing 3.0 therefore specifies UBL 2.1 as its only normative syntax — there is no CII binding for PEPPOL BIS Billing 3.0, unlike EN 16931 which provides both UBL and CII bindings.
PEPPOL UBL invoice structure: the root element of a PEPPOL BIS Billing 3.0 invoice is <Invoice> in the UBL 2.1 namespace. For credit notes, the root element is in the equivalent namespace. The first elements in a compliant PEPPOL UBL invoice are These elements must appear in this order and in the correct UBL 2.1 namespaces.
PEPPOL BIS Billing 3.0 Mandatory Fields and Business Rules
PEPPOL mandatory fields in BIS Billing 3.0 are the 52 EN 16931 mandatory Business Terms plus PEPPOL-specific business rules. The EN 16931 mandatory terms cover: invoice identification (BT-1 invoice number, BT-2 invoice date, BT-5 currency, BT-9 payment due date); seller information (BT-27 seller name, BT-31 seller VAT ID or BT-32 tax number, BT-34 seller electronic address); buyer information (BT-44 buyer name, BT-48 buyer VAT ID or BT-46 buyer identifier, BT-49 buyer electronic address); supply information (BT-72 supply date or BT-73/74 supply period); line item data (BT-131 net line amount, BT-153 item name, BT-146 item net price); VAT breakdown (BT-118 VAT category code, BT-119 VAT rate, BT-110 category VAT amount); and document totals (BT-106 sum of line net amounts, BT-109 document totals, BT-112 invoice total with VAT).
PEPPOL validation rules beyond mandatory fields include: BR-CO-15 (every invoice line net amount must equal price × quantity); BR-CO-13 (the sum of line net amounts must equal the document-level net amount); BR-CO-14 (VAT amounts must match the sum of category VAT amounts); and code list constraints requiring that country codes use ISO 3166-1 alpha-2, currency codes use ISO 4217, unit codes use UNECE Recommendation 20, and invoice type codes are restricted to those in the PEPPOL code list. These arithmetic and code list rules are codified as schematron assertions in the PEPPOL BIS Billing 3.0 specification and are checked by every certified PEPPOL invoice validator.
| Business Group | Key Business Terms | Example Values | Cardinality |
|---|---|---|---|
| BG-2: Process and identifiers | BT-1 (invoice no), BT-2 (date), BT-5 (currency), BT-10 (buyer ref) | RE-2027-0099, 2027-04-15, EUR, PO-2027-0055 | Mandatory |
| BG-4: Seller | BT-27 (name), BT-35–37 (address), BT-31 (VAT ID) | Muster GmbH; Hauptstr. 1, 10117 Berlin; DE123456789 | Mandatory |
| BG-7: Buyer | BT-44 (name), BT-50–52 (address), BT-48 (VAT ID) | Beispiel AG; Bahnhofstr. 5, 80333 München; DE987654321 | Mandatory |
| BG-13: Delivery | BT-72 (supply date) or BT-73/74 (supply period) | 2027-04-12 or 2027-04-01 to 2027-04-12 | Mandatory (one of BT-72 or BT-73/74) |
| BG-25: Invoice lines | BT-126 (line ID), BT-153 (item name), BT-146 (net price), BT-131 (line net) | L001; IT consulting; 150.00; 1,500.00 | Min 1 line |
| BG-23: VAT breakdown | BT-118 (VAT category), BT-119 (VAT rate), BT-116 (taxable base), BT-117 (VAT amount) | S; 19; 1,500.00; 285.00 | Mandatory per VAT rate |
| BG-22: Document totals | BT-106 (sum line net), BT-109 (net total), BT-110 (VAT total), BT-112 (gross total) | 1,500.00; 1,500.00; 285.00; 1,785.00 | Mandatory |
How to Validate a PEPPOL Invoice Against BIS Billing 3.0 Rules
PEPPOL invoice validator tools check a generated PEPPOL BIS Billing 3.0 invoice against two layers of rules: the UBL 2.1 XML schema (structural validation) and the EN 16931 plus PEPPOL BIS Billing 3.0 schematron assertions (business rule validation). Schema validation checks that every XML element is in the correct namespace and has the correct data type. Schematron validation checks business logic: amounts balance, mandatory fields are present, code lists contain valid values. Both layers must pass for an invoice to be accepted by a PEPPOL access point.
PEPPOL validation rules are implemented in schematron files published by OpenPEPPOL and available at docs.peppol.eu. The KoSIT validator (validator.xeinkauf.de) validates both XRechnung and PEPPOL BIS Billing 3.0 — for PEPPOL BIS Billing 3.0, select the BIS Billing 3.0 validation profile. The validator returns a structured report listing: errors (rule violations that prevent acceptance), warnings (potential issues that do not prevent acceptance), and informational notices. Any error must be corrected before transmission. PEPPOL mandatory fields violations consistently generate errors; code list violations (wrong country code format, invalid unit code) also generate errors. Running the validator on every invoice type before go-live — standard invoice, credit note, multi-line, mixed VAT rates — is essential for confirming that your software generates fully compliant output.
| Validation Tool | Validates | How to Access | What It Checks |
|---|---|---|---|
| KoSIT validator (xeinkauf.de) | XRechnung and PEPPOL BIS Billing 3.0 | Online at validator.xeinkauf.de ; downloadable Java app | Schema + EN 16931 schematron + PEPPOL BIS 3.0 schematron + German CIUS rules |
| OpenPEPPOL Testbed | PEPPOL BIS Billing 3.0 | Online at testbed.openpeppol.eu | PEPPOL BIS 3.0 schema and schematron; regression testing |
| Access point provider validator | PEPPOL BIS Billing 3.0 | Provided by your PEPPOL access point as part of integration | Full PEPPOL validation; may include additional access-point-specific checks |
| Schematron rules (offline) | EN 16931 + PEPPOL BIS 3.0 | Download from docs.peppol.eu ; run with Oxygen XML or similar | Full validation without online dependency; suitable for CI/CD pipelines |
Frequently Asked Questions
1. Can I use CII syntax with PEPPOL BIS Billing 3.0?
No — PEPPOL BIS Billing 3.0 only specifies UBL 2.1 syntax. CII is used in ZUGFeRD and in XRechnung (CII variant), but PEPPOL BIS Billing 3.0 is UBL only. If you need to send CII-syntax invoices over PEPPOL, check whether your access point offers format translation.
2. What does a PEPPOL BIS 3.0 example XML look like for a credit note?
A credit note uses the <CreditNote> root element (not <Invoice>) and invoice type code 381. The structure is otherwise similar, with negative amounts where applicable. A free credit note example is available in the PEPPOL BIS Billing 3.0 specification at docs.peppol.eu.
3. What PEPPOL invoice validator should I use for development?
The KoSIT validator at validator.xeinkauf.de is the recommended tool for German businesses — it validates both XRechnung and PEPPOL BIS Billing 3.0 and is free to use online or as a downloadable Java application. For automated CI/CD testing, use the downloadable schematron files from docs.peppol.eu.
4. Are PEPPOL mandatory fields the same as XRechnung mandatory fields?
The 52 EN 16931 mandatory Business Terms are the same across both. The format-specific rules differ: XRechnung adds German CIUS rules (Leitweg-ID for B2G); PEPPOL BIS Billing 3.0 adds PEPPOL business rules (code list restrictions, arithmetic checks). Both sets must pass for the respective format.
5. How often does PEPPOL BIS Billing 3.0 change and how do I stay updated?
OpenPEPPOL publishes new versions typically once or twice per year, with a transition period. Subscribe to the OpenPEPPOL changelog at docs.peppol.eu and confirm that your access point provider certifies against the current version. Your KoSIT validator should also be kept current.
Source by:
Image by Gemini

