Skip to content

Germany’s e-invoicing mandate 2025–2028: what Laravel apps need now.

Calmly explained, with sources. For domestic invoices between businesses in Germany.

In short

Since 2025, every business in Germany must be able to receive e-invoices. From 1 January 2027, businesses with more than €800,000 prior-year turnover must issue e-invoices domestically; from 1 January 2028, all businesses. XRechnung and ZUGFeRD from version 2.0.1 in the profiles BASIC, EN 16931, EXTENDED and XRECHNUNG count as e-invoices. Exceptions include small invoices up to €250 and invoices to consumers.

Timeline

  1. 1 Jan 2025

    Receive

    Every business must be able to receive e-invoices. An email inbox is sufficient for that.

  2. 1 Jan 2027

    Issue above €800,000

    The transition period ends for businesses with more than €800,000 prior-year turnover. Paper and plain PDFs are then no longer allowed for them domestically.

  3. 1 Jan 2028

    Issue for everyone

    All businesses issue e-invoices for domestic B2B transactions.

Transition rules until the end of 2027

Until the mandate applies to everyone, sec. 27 (38) UStG still allows other invoices for domestic supplies between businesses. What counts is when the supply was made:

  • Until 31 Dec 2026: every business may issue paper invoices or, if the recipient agrees, other electronic invoices such as a PDF by email.
  • 2027: paper and, with the recipient’s consent, PDF remain allowed only if total turnover in the previous year was no more than €800,000.
  • 2027: regardless of turnover, EDI procedures that do not comply with EN 16931 remain allowed if the recipient agrees.
  • From 1 Jan 2028: the transition rules end. Domestic invoices between businesses must then be e-invoices unless an exception applies.

What counts as an e-invoice

An e-invoice is an invoice in a structured format that allows electronic processing and complies with the European standard EN 16931 (sec. 14 (1) UStG).

  • XRechnung in CII or UBL syntax
  • ZUGFeRD from version 2.0.1 in the profiles BASIC, EN 16931, EXTENDED and XRECHNUNG
  • Not: ZUGFeRD MINIMUM and BASIC WL, plain PDFs, scans

Exceptions

  • Small invoices up to €250 gross (sec. 33 UStDV)
  • Tickets
  • Invoices to consumers (B2C)
  • Small businesses do not have to issue, but must be able to receive

Mandatory fields belong in the XML

All mandatory VAT details must be in the structured part. A reference to an attached file that contains them is not enough (Federal Ministry of Finance letter of 15 October 2025, no. 35).

With ZUGFeRD the XML is the leading part: if PDF and XML differ, the data in the XML prevails (section 14.4 (3) UStAE). If the PDF contains different invoice details, such as a different tax amount, it may be a further invoice that has to be checked under sec. 14c UStG. Minor technical differences such as rounding differences or a shortened description are not objected to. The recipient deducts input VAT only from the XML (section 14c.1 (4a) UStAE).

Format errors turn an e-invoice into an “other invoice” (no. 6a), which is why validating before sending pays off.

Receiving

Even businesses that do not have to issue e-invoices yet will receive them. Your app should read and check them instead of just displaying the PDF.

How Quittio reads incoming invoices

Retention

Invoices are accounting records and are kept for 8 years (sec. 14b UStG, sec. 147 AO). At least the structured part must remain unchanged and machine-readable.

Checklist

How to prepare your Laravel app

  1. 1Choose formats: ZUGFeRD (EN 16931) for businesses, XRechnung for authorities
  2. 2All mandatory fields in the data model, not only in the PDF
  3. 3Leitweg-ID for invoices to authorities
  4. 4Validation before sending, in CI with KoSIT and veraPDF
  5. 5Sequential, unique invoice numbers
  6. 6Never change issued invoices
  7. 7Archive the structured part (XML) unchanged for 8 years
  8. 8Cancellations and corrections as separate documents with a reference
  9. 9Read and check incoming e-invoices
  10. 10Tests that guarantee valid invoices

Create, validate, read

Quittio open source covers items 1 to 4, 9 and 10.

Get started

Numbering, archive, cancellations

Quittio Managed takes care of items 5 to 8.

Quittio Managed

Frequently asked questions

Is a PDF sent by email still an e-invoice?

No. An e-invoice is a structured format according to EN 16931, i.e. XRechnung or ZUGFeRD from version 2.0.1 in a suitable profile. A plain PDF is an “other invoice”. With the recipient’s consent it remains allowed until the end of 2026, and in 2027 only with no more than €800,000 turnover in the previous year.

Am I affected if I only sell to consumers?

No. There is no e-invoicing mandate for invoices to consumers.

What applies to small businesses?

Small businesses (Kleinunternehmer) do not have to issue e-invoices but must be able to receive them.

Is there a threshold for small amounts?

Yes. Small invoices up to €250 gross and tickets are exempt.

What if PDF and XML differ?

Then the data in the XML prevails. If the PDF contains different invoice details, such as a different tax amount, it may count as a further invoice that has to be checked under sec. 14c UStG. Quittio therefore creates both from one data model and uses a mandatory field guard to make sure they match.

How long must I keep e-invoices?

Invoices as accounting records for 8 years. At least the structured part must be kept, unchanged and machine-readable.