Germany's B2B E-Invoicing Mandate: What Developers Need to Know

Published on March 18, 2026

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.