XRechnung — the German EN 16931 specification
XRechnung is the German CIUS (Core Invoice Usage Specification) of European standard EN 16931, maintained by KoSIT on behalf of the federal government and the 16 Länder. Pivot format of German B2G since 2020, it becomes one of the two canonical B2B formats on 1 January 2025 alongside ZUGFeRD.
History: E-Rechnung-Verordnung and KoSIT
XRechnung was born from the German transposition of Directive 2014/55/EU (electronic invoicing in public procurement). The implementation timeline is marked by a methodical, typically German approach:
- 2014-2016 — Strategic framework. The Federal Republic created the "Forum elektronische Rechnung Deutschland" (FeRD) in 2010 and then entrusted KoSIT with the mission of specifying a national CIUS format for B2G.
- 13 October 2017 — E-Rechnungs-Verordnung (ERechV). Federal decree that imposes XRechnung as the mandatory format for invoicing federal public procurement from November 2020 (and 27 November 2018 for constitutional bodies).
- 30 June 2017 — XRechnung 1.0. First stable version published by KoSIT, UBL 2.1 syntax only.
- 1 January 2020 — XRechnung 2.0. Adds the UN/CEFACT CII D16B alternate syntax, structures business rules as BR-DE-* codes (Business Rules Deutschland).
- 2020-2024 — Adoption by Länder. Each Land adopts XRechnung for its own public procurement, generally by regional decree. Bremen and Hamburg (April 2020) first; Bavaria (April 2023) last.
- 22 November 2024 — XRechnung 3.0. Major refresh: alignment with
EN 16931:2024, removal of the legacy "ProfileID urn:xoev-de:..." replaced by
urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_3.0.
Version 3.0 — January 2025
XRechnung 3.0 (official release 22 November 2024, effective 1 February 2025) marks the alignment of the spec with the new EN 16931:2024 and the B2B extension planned by the Wachstumschancengesetz.
Key changes from 2.3.1:
- Specification identifier (BT-24 CustomizationID):
urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_3.0 - Removal of BR-DE-13/14 (mandatory intracom VAT numbers) — now optional to align with European practices.
- Reinforcement of BR-DE-1 to BR-DE-30 (complementary German rules) on banking references, IBAN mandatory if BT-81 present.
- Addition of Code 0204 in EndpointID for Leitweg-ID per the PEPPOL ICD registry.
- Backward compatibility with XRechnung 2.3.1 until 31 December 2025 (coexistence period).
UBL and CII syntaxes
XRechnung permits two interchangeable XML syntaxes, compliant with EN 16931 annexes A and B. The choice depends on the issuer's technical profile and exchange network.
| Syntax | Underlying spec | Typical use |
|---|---|---|
| UBL 2.1 | OASIS Universal Business Language Invoice 2.1, namespace urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 | Nordic vendors, PEPPOL access points, multi-country EU integrations |
| CII D16B | UN/CEFACT Cross Industry Invoice D16B, namespace urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100 | Large industrial enterprises, internal SAP hub, ZUGFeRD compatibility (which is CII-based) |
The BMF letter of 15 October 2024 confirms: no legal preference between the two syntaxes, recipients must be able to process both.
<?xml version="1.0" encoding="UTF-8"?>
<ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>2026-DE-000412</cbc:ID>
<cbc:IssueDate>2026-05-19</cbc:IssueDate>
<cbc:DueDate>2026-06-18</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>04011000-12345-67</cbc:BuyerReference>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="EM">rechnung@beispiel-gmbh.de</cbc:EndpointID>
<cac:PartyTaxScheme>
<cbc:CompanyID>DE123456789</cbc:CompanyID>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="0204">04011000-12345-67</cbc:EndpointID>
</cac:Party>
</cac:AccountingCustomerParty>
</ubl:Invoice> CIUS: extensions and business rules
A CIUS (Core Invoice Usage Specification, EN 16931-1 spec) restricts the core
standard without modifying it: stricter mandatory fields, national codelists,
additional business rules. For XRechnung, these rules are codified
BR-DE-NN in the KoSIT rulebook.
- BR-DE-1: BT-30 (issuer SIRET number) or BT-32 (other legal identifier) mandatory for German VAT-liable parties.
- BR-DE-3: BT-29 (recipient IBAN BankAccount) mandatory if payment means is SEPA credit transfer (code 30 or 58).
- BR-DE-15: BT-50 (CountrySubentity recipient region) mandatory if country = DE — Bundesland code (e.g., "DE-BY" for Bavaria).
- BR-DE-21: BT-25 (DocumentReference billing reference) mandatory for credit notes (Gutschrift) or corrective invoices.
- BR-DE-26: Recipient EndpointID with
schemeID="0204"(Leitweg-ID) mandatory for federal B2G. - BR-DE-30: BT-43 (CompanyLegalForm) mandatory for German legal entities (GmbH, AG, KG, etc.).
Schematron validation
KoSIT publishes an open-source Java validator itplr-kosit/validator
(Apache 2.0) that combines XSD validation (UBL/CII schemas) and Schematron validation
(ISO/IEC 19757-3). The produced report is in SVRL format (Schematron Validation
Reporting Language) with three severity levels:
┌────────────────────┐ XML Source ┌────────────────────────────┐
│ ERP / Buchhaltung │ ───────────────> │ KoSIT Validator │
└────────────────────┘ │ (xrechnung-3.0 ruleset) │
└────────────────────────────┘
│
┌────────────────────────┴───────────────────────┐
▼ ▼
┌──────────────────────┐ ┌──────────────────────┐
│ XSD schema UBL/CII │ │ Schematron .sch │
│ ISO/IEC 19757-3 │ │ EN 16931 + DE rules │
└──────────────────────┘ └──────────────────────┘
│
▼
┌──────────────────────────────┐
│ SVRL report (severity ok / │
│ warning / fatal) │
└──────────────────────────────┘ - severity="fatal": rejection — the invoice is rejected by the B2G receiver (Zentrale Rechnungseingangsplattform — ZRE for the federal state, OZG-RE for participating Länder).
- severity="warning": non-blocking warning — the invoice passes but a log is kept for improvement.
- severity="information": informational remark.
The KoSIT repository also publishes test assertions
(itplr-kosit/xrechnung-testsuite) with 130+ scenarios covering BR-DE-*
and EN 16931 BR-* rules. Every German ERP software vendor is expected to pass these
tests before self-declaring compliance of its XRechnung module.
Leitweg-ID and public routing
XRechnung B2G invoice routing relies on the Leitweg-ID, a structured German identifier registered as ICD 0204 in the PEPPOL registry. See the Leitweg-ID page for the full grammar.
- Federal platform: ZRE — Zentrale Rechnungseingangsplattform of the
Bund (Bundesfinanzbehörde), endpoint
https://xrechnung.bund.dewith PEPPOL AS4 and OZG-XTA reception. - Inter-state platform: OZG-RE for Länder that delegated reception (Mecklenburg-Vorpommern, Saxony, Schleswig-Holstein, etc.).
- Independent Länder platforms: Bavaria (Bayerisches Rechnungseingangsportal), Baden-Württemberg (E-Rechnungsplattform BW), NRW (Service-Konto.NRW).
Cross-links
- Germany hub — full e-invoicing mandate
- Wachstumschancengesetz — legal foundation
- ZUGFeRD — hybrid PDF/A-3 + CII format
- Leitweg-ID — federal addressing ICD 0204
- FeRD — ZUGFeRD/XRechnung governance
- XRechnung — official KoSIT page
- KoSIT Validator (GitHub, Apache 2.0)
- Leitweg-ID — official XÖV page
- E-Rechnungs-Verordnung (ERechV, 13 October 2017)