ProjectLiveEN 16931

E-invoicing.
Provably compliant.

Rechenwerk (German) — the calculating unit of a machine.

From 2028, a plain PDF no longer counts as an invoice in German B2B. Instead of gluing together other people's beta parts, Rechenwerk produces real e-invoices compliant from the ground up, and proves it against the same validators the authorities use.

Matte black document stele with a dog-eared corner, gold rim light, an inset XML circuit-board tile, and a green compliance seal — a hybrid e-invoice documentMatte black document stele with a dog-eared corner, gold rim light, an inset XML circuit-board tile, and a green compliance seal — a hybrid e-invoice document
30/30
Conformance checks green
EN 16931
Standard met
2028
Mandatory from
>100
Automated tests
As of June 2026

2028 e-invoicing mandate: a PDF is no longer enough

Every business in Germany has had to be able to receive e-invoices since the start of 2025. For issuing them, the grace period expires in stages: paper and PDF remain permitted for everyone until the end of 2026, until the end of 2027 only for issuers with no more than €800,000 in prior-year turnover. From 2028, invoices between domestic companies must be issued as e-invoices.

A PDF sent by email no longer counts; what is required is a structured, machine-readable data set conforming to the EN 16931 standard.

Buying that ready-made is possible, but the trickiest part, guaranteed PDF/A-3 conformance, is the least secured one in the JavaScript world. The broadest ready-made part calls its own PDF generation “not battle tested” in its own documentation. Resting a legal obligation on that is not a good idea.

Create XRechnung and ZUGFeRD, compliant with EN 16931

The PDF is built compliant from the first line, not bent into shape afterward (compliant by construction). The engine needs no heavy Java runtime, so it runs in a lean cloud environment too.

multiple tax ratesreverse chargediscounts & surchargesgross pricesprepaymentsSEPA

ZUGFeRD/Factur-X

The hybrid PDF/A-3 that embeds the machine-readable data set into a visible PDF.

XRechnung

The pure XML data set, in both permitted dialects, including the routing ID (Leitweg-ID) for invoices to public authorities.

The proof does not come from me.

Editorial illustration: three validator monitors (veraPDF, KoSIT, Mustang) showing a green PASS around a central PDF/A-3 document.Editorial illustration: three validator monitors (veraPDF, KoSIT, Mustang) showing a green PASS around a central PDF/A-3 document.

veraPDF

Checks the PDF/A-3 archival standard. Makes sure the PDF is still readable in ten years.

KoSIT

The public-administration validator, for EN 16931 and XRechnung. The same check the authorities use.

Mustang

Checks the ZUGFeRD profiles. The reference validator for the hybrid PDF/A-3 format.

30/30 checks green·the same tools authorities use to check incoming invoices.

Why this is here

The engine grew out of a real client project, the invoicing portal. Rather than wiring a third-party library into that portal, the problem was solved in general: a standalone, publishable package that uses the portal as its first consumer and its proof of conformance.

Grew out of the invoicing portal
Invoicing Portal

Frequently asked questions

Will a PDF sent by email still count as an invoice from 2028?+

No. For German VAT purposes a plain PDF already counts only as an “other invoice”. Between domestic companies it remains generally permitted only until the end of 2026, until the end of 2027 for issuers with no more than €800,000 in prior-year turnover. From 2028, the invoice must be issued as a structured data set conforming to EN 16931.

XRechnung or ZUGFeRD: which one do I need?+

XRechnung is a pure XML data set and the standard for invoicing public authorities. ZUGFeRD is a hybrid PDF/A-3: a normally readable PDF with embedded XML, often the more convenient route in day-to-day B2B. Both count as e-invoices under EN 16931 according to the German tax administration (ZUGFeRD from version 2.0.1, excluding the minimal profiles); the engine produces both formats from the same invoice model.

What is EN 16931?+

EN 16931 is the European standard that defines which elements the structured data set of an electronic invoice must contain and what they mean. German VAT law points directly to this standard for e-invoices: meet it, and you are issuing a valid e-invoice.

Does the e-invoicing mandate apply to small businesses?+

Half of it does. Businesses under Germany's small-business scheme (Kleinunternehmer) are permanently exempt from issuing e-invoices; the exemption was added by the 2024 Annual Tax Act. They still have to be able to receive e-invoices like everyone else, since 2025. Low-value invoices up to €250 and passenger tickets also remain permanently exempt.

Does it run without Java?+

Yes. The engine is pure TypeScript, needs neither Java nor Ghostscript at runtime, and therefore runs serverless too. The Java-based validators KoSIT, Mustang and veraPDF are used only in the test pipeline: as independent proof, not as a dependency.

What does the commercial license cost?+

There is no public price yet; the release is in preparation. The plan is an open AGPL license plus a commercial license for use without copyleft obligations. For the specifics, a short conversation works best.

The engine will be released under an open license (AGPL), with the option of a commercial license for use without copyleft obligations. The release is in preparation.

Need something like this?

If the e-invoice mandate is coming up in your business and you would rather not rest it on shaky code, a conversation is worth it.

Send an email