Germany's B2B E-Invoicing Mandate: What Developers Need to Know
A practical breakdown of Germany's phased e-invoicing mandate, what it means for your application, and how to prepare before the 2027 deadline.
Germany is rolling out mandatory B2B e-invoicing in phases. If your application handles invoices for German businesses, you need to understand what's coming and when.
The Timeline
The Growth Opportunities Act (Wachstumschancengesetz) introduced a phased mandate:
January 1, 2025 — All businesses must be able to receive structured e-invoices. This is already in effect. If your application processes incoming invoices for German companies, you should already be handling XML invoices alongside traditional PDFs.
January 1, 2027 — Businesses with annual revenue exceeding €800,000 must send e-invoices in a structured format. Paper invoices and plain PDFs are no longer sufficient for B2B transactions.
January 1, 2028 — The sending requirement extends to all businesses, regardless of revenue.
What Counts as an E-Invoice?
A PDF attached to an email is not an e-invoice under the mandate. An e-invoice must be:
- Structured — machine-readable XML following the EN 16931 European standard
- Compliant — conforming to a recognized profile (XRechnung is the German standard)
- Processable — recipients must be able to extract invoice data without manual entry
The accepted formats are:
- XRechnung (UBL 2.1 or CII syntax) — the standard for German B2G invoicing, now extending to B2B
- ZUGFeRD (Comfort or Extended profile) — a hybrid format embedding compliant XML inside a PDF/A-3
What This Means for Developers
If you build applications that generate, send, or receive invoices for German businesses:
Receiving (Now)
Your application should already detect and parse structured invoices from incoming email or file uploads. This means:
- Scanning email attachments for XML files matching UBL or CII schemas
- Checking PDFs for embedded ZUGFeRD metadata
- Extracting structured data (invoice number, line items, tax amounts) for your internal systems
Sending (2027/2028)
When your application generates invoices, it will need to produce valid XRechnung XML:
- Map your internal invoice data to EN 16931 business terms
- Include all mandatory German fields (seller contact, Leitweg-ID for B2G, payment terms)
- Validate the output against XRechnung Schematron rules before sending
- Deliver the XML to recipients via email or Peppol
The Postscale Approach
Instead of implementing XML generation, Schematron validation, and format detection yourself, you can use the Postscale Invoices API:
- Validation API — validate any XML invoice against EN 16931 and XRechnung rules
- Send API — pass JSON, get a compliant XRechnung invoice generated and delivered via email
- Inbound processing — automatically detect and extract e-invoices from incoming email
The validation endpoint is free to use — you can start checking your existing invoices for compliance today.