Germany
XRechnung and ZUGFeRD e-invoicing requirements for Germany, with Beliq configuration examples.
Germany mainly uses two EN 16931-based e-invoicing formats:
- XRechnung — mandatory for many public-sector invoices (B2G) and increasingly used in B2B
- ZUGFeRD — a PDF invoice with embedded XML data for system processing
Mandate timeline
Germany is phasing in mandatory B2B e-invoicing. Receiving a structured invoice is already required; issuing is phased in by prior-year turnover.
| Date | What changes |
|---|---|
| 1 January 2025 | Every domestic business must be able to receive an EN 16931 e-invoice. |
| 1 January 2027 | Issuing becomes mandatory for businesses with prior-year turnover above EUR 800,000. |
| 1 January 2028 | Issuing becomes mandatory for all remaining domestic businesses. |
Paper and PDF invoices (with the recipient's consent) and non-conforming EDI stay permitted through 31 December 2027.
Last verified against the German Federal Ministry of Finance (BMF) and the European Commission eInvoicing country page on 9 July 2026. Official source.
For the dates beliq tracks across every covered country, see the mandate calendar.
XRechnung
XRechnung is Germany’s official CIUS profile of EN 16931, maintained by KoSIT. It adds German-specific business rules on top of EN 16931.
Key requirements
| Rule | Description |
|---|---|
| Buyer reference (BT-10) | Required for B2G invoices. This is the “Leitweg-ID” that identifies the receiving government entity |
| Seller email (BT-43) | Required — the seller must provide an email address |
| Buyer email | Required for certain routing scenarios |
| Payment means | At least one payment means must be specified |
| VAT identifiers | Either vatId (BT-31) or taxId must be provided for the seller |
Generating XRechnung invoices
Use standard: "xrechnung" with output: "xml":
curl -X POST https://api.beliq.eu/v1/generate \
-H "Authorization: Bearer blq_live_abc123..." \
-H "Content-Type: application/json" \
-d '{
"standard": "xrechnung",
"profile": "en16931",
"output": "xml",
"invoice": {
"number": "RE-2026-0042",
"issueDate": "2026-04-13",
"dueDate": "2026-05-13",
"currencyCode": "EUR",
"buyerReference": "04011000-12345-03",
"seller": {
"name": "Muster GmbH",
"vatId": "DE123456789",
"email": "rechnung@muster.example",
"address": {
"street": "Hauptstraße 1",
"city": "Berlin",
"postalCode": "10115",
"countryCode": "DE"
}
},
"buyer": {
"name": "Stadtverwaltung Beispielstadt",
"email": "eingangsrechnung@beispielstadt.example",
"address": {
"city": "Beispielstadt",
"postalCode": "12345",
"countryCode": "DE"
}
},
"lines": [
{
"description": "Beratungsleistung April 2026",
"quantity": 40,
"unitCode": "HUR",
"unitPrice": 95.00,
"lineTotal": 3800.00,
"vatRate": 19,
"vatCategoryCode": "S"
}
],
"paymentMeans": {
"typeCode": "58",
"iban": "DE89370400440532013000"
},
"totalNetAmount": 3800.00,
"totalTaxAmount": 722.00,
"totalGrossAmount": 4522.00
}
}'XML syntax
XRechnung supports both UBL 2.1 and CII D16B. Beliq generates CII by default.
Submission channels
XRechnung invoices are submitted to government entities via:
- ZRE (Zentraler Rechnungseingang) — for federal agencies
- OZG-RE — for state and municipal authorities
Beliq generates compliant XML. Submission to government portals is handled by your ERP or AP system.
Validation
Beliq validates XRechnung invoices against:
- CII D16B or UBL 2.1 XSD schema
- EN 16931 core Schematron rules (currently v1.3.16)
- XRechnung-specific Schematron rules (currently v2.5.0)
See the validation artifacts page for version details.
ZUGFeRD 2.x
ZUGFeRD (Zentraler User Guide des Forums elektronische Rechnung Deutschland) is a hybrid format that embeds CII D22B XML inside a PDF/A-3 document. Beliq targets ZUGFeRD 2.x — jointly published with Factur-X 1.08 — and is widely used in German B2B invoicing because one file supports both people and systems.
Profiles
ZUGFeRD supports multiple profiles that determine the level of detail in the embedded XML:
| Profile | Beliq value | Description |
|---|---|---|
| Minimum | minimum |
Minimal structured data (invoice number, date, totals) |
| Basic WL | basicwl |
Basic without lines — header data only, no line items |
| Basic | basic |
Complete header data and line items |
| EN 16931 (Comfort) | en16931 |
Full EN 16931 compliance — recommended for most use cases |
| Extended | extended |
Additional fields beyond EN 16931 |
Generating ZUGFeRD invoices
Use standard: "zugferd" with output: "pdf":
curl -X POST https://api.beliq.eu/v1/generate \
-H "Authorization: Bearer blq_live_abc123..." \
-H "Content-Type: application/json" \
-d '{
"standard": "zugferd",
"profile": "en16931",
"output": "pdf",
"invoice": {
"number": "RE-2026-0042",
"issueDate": "2026-04-13",
"currencyCode": "EUR",
"seller": {
"name": "Muster GmbH",
"vatId": "DE123456789",
"address": {
"street": "Hauptstraße 1",
"city": "Berlin",
"postalCode": "10115",
"countryCode": "DE"
}
},
"buyer": {
"name": "Kunde AG",
"address": {
"city": "München",
"postalCode": "80331",
"countryCode": "DE"
}
},
"lines": [
{
"description": "Software-Lizenz",
"quantity": 1,
"unitCode": "C62",
"unitPrice": 499.00,
"lineTotal": 499.00,
"vatRate": 19,
"vatCategoryCode": "S"
}
],
"totalNetAmount": 499.00,
"totalTaxAmount": 94.81,
"totalGrossAmount": 593.81
}
}' --output invoice.pdfThe resulting PDF is a valid PDF/A-3b document with the CII XML embedded as factur-x.xml.
Parsing ZUGFeRD invoices
Upload a ZUGFeRD PDF to the parse endpoint to extract the embedded invoice data:
curl -X POST https://api.beliq.eu/v1/parse \
-H "Authorization: Bearer blq_live_abc123..." \
-H "Content-Type: application/octet-stream" \
--data-binary @invoice.pdfBeliq searches for known attachment filenames (factur-x.xml, zugferd-invoice.xml, ZUGFeRD-invoice.xml) and extracts the XML for parsing.
Common validation errors
| Rule ID | Message | Fix |
|---|---|---|
BR-DE-1 |
Buyer reference (BT-10) is missing | Add buyerReference to your invoice (required for XRechnung) |
BR-DE-5 |
Seller email is missing | Add email to the seller object |
BR-DE-15 |
Buyer email is missing | Add email to the buyer object |
BR-01 |
Specification identifier missing | This is set automatically by Beliq — contact support if you see this |
BR-06 |
VAT identifier is missing | Add vatId (e.g. DE123456789) to the seller |
Resources
- XRechnung specification — official KoSIT documentation
- ZUGFeRD specification — official FeRD documentation
- EN 16931 business rules — CEN/TC 434 Schematron rules