E‑Rechnungs-Studio logomarkE‑Rechnungs-Studio
Sign inCreate account

E‑invoice made simple: XRechnung, ZUGFeRD, EN 16931

This short guide explains the core terms around e‑invoices — without jargon. If you want to start right away, upload a PDF and generate a verifiable e‑invoice with E‑Rechnungs‑Studio.

In 30 seconds

  • An e‑invoice contains machine‑readable, structured invoice data.
  • EN 16931 defines the European data model behind many formats.
  • XRechnung is a German EN 16931 specification as XML.
  • ZUGFeRD combines a PDF/A-3 with embedded XML. For German VAT purposes, version 2.0.1 or later can meet the mandate format requirements, except MINIMUM and BASIC-WL; direct EN 16931 conformance depends on the profile.

Germany note: domestic businesses have had to receive e‑invoices since 1 January 2025; issuing transitions run until 31 December 2026 or, in some cases, 31 December 2027. From 2028, e‑invoices are generally required for in-scope domestic B2B transactions, while statutory exceptions remain. See the mandate timeline guide.

Already received an XRechnung XML file or ZUGFeRD invoice? Follow the practical guide to receiving and checking e-invoices.

What is an e‑invoice?

An e‑invoice (E‑Rechnung) is more than a PDF. It contains structured invoice data in a standardized XML format. These data are machine‑readable: systems can automatically import and check amounts, taxes, line items and parties. The XML follows defined rules for mandatory fields, code lists and consistent calculations.

A PDF can still exist as a visual copy, but by itself it's not the structured e‑invoice. Depending on the format, the XML is sent as a separate file (for example XRechnung) or embedded in a PDF (ZUGFeRD).

What does EN 16931 mean?

EN 16931 is the European standard that defines which information an electronic invoice contains and how it maps to a common semantic data model. The goal is interoperability: invoices should be understood consistently across systems.

It covers data fields, relationships and business rules — for example totals, VAT, payment terms and references. Concrete formats and national profiles build on it. If an invoice is EN 16931‑based, it can be validated and processed automatically.

What is XRechnung?

XRechnung is a German specification for EN 16931‑based e‑invoices. Technically it's a CIUS (Core Invoice Usage Specification): it narrows down the European model and defines which fields are required, optional or excluded.

You often encounter XRechnung in the context of the German public sector. XRechnung is pure XML (no PDF) and is typically exchanged system‑to‑system. Validators check structure and business rules (mandatory fields, codes and totals).

What is ZUGFeRD?

ZUGFeRD is a hybrid invoice format that combines a human‑readable PDF/A-3 with embedded XML. For German VAT purposes, ZUGFeRD from version 2.0.1 can meet the e‑invoice format requirements, except for the MINIMUM and BASIC-WL profiles. The EN 16931 profile fully maps the core standard; BASIC is a subset, while EXTENDED is an extension.

This is useful when you need a visual invoice but still want machine‑readable data. In short: ZUGFeRD combines usability (PDF) and automation (XML) in a single file.

How E‑Rechnungs‑Studio helps

With E‑Rechnungs‑Studio, you can create a verifiable e‑invoice from an existing PDF:

  • Upload PDF
  • Generate XML
  • Validate (review errors and warnings)
  • Check the PDF preview
  • Export and download ZUGFeRD

FAQ

Is a PDF invoice enough?

A PDF is primarily a human‑readable document. Many e‑invoice workflows rely on structured data so systems can import and check line items, taxes and totals automatically.

Whether a PDF is enough depends on the recipient and the process. If structured data is expected, a PDF alone often isn't sufficient.

Can I convert an existing PDF into an e‑invoice?

Yes. From an existing PDF, the relevant invoice data can often be extracted and structured as XML (for example XRechnung or ZUGFeRD XML).

In practice, a quick review helps: depending on layout, tables and fonts, automatic extraction can mix up details. E‑Rechnungs‑Studio shows you the results so you can verify and correct them.

What's the difference between XRechnung and ZUGFeRD?

XRechnung is a pure XML format. It only contains structured data and is typically exchanged directly from system to system.

ZUGFeRD is hybrid: it combines a human‑readable PDF/A-3 with embedded XML. For German VAT purposes, ZUGFeRD from version 2.0.1 can meet the e‑invoice format requirements, except for the MINIMUM and BASIC-WL profiles. The EN 16931 profile fully maps the core standard; BASIC is a subset, while EXTENDED is an extension.

What does “validate” mean for an e‑invoice?

Validation means a validator checks the XML structure and the business rules: mandatory fields, code lists and calculation rules (for example totals, taxes and rounding).

The result is usually a report with errors and warnings that helps you make the invoice technically sound and internally consistent.

Why does a validator show errors and warnings?

Errors are clear rule violations (for example missing mandatory data or invalid codes) and usually prevent successful processing.

Warnings indicate potential issues that may still be acceptable depending on context. They are a prompt to double‑check before sending the e‑invoice.

What do I get at the end?

You get the generated structured invoice data as XML as well as the validation results. You can also check a PDF preview to verify the visual representation.

If you use ZUGFeRD, you'll get a ZUGFeRD PDF with embedded XML that works for both humans and systems.

What happens to my uploaded PDF?

The PDF is processed to recognize invoice data, generate a matching XML and (if needed) create a preview.

For details about data processing, see the privacy policy.

Do I need to know XML?

No. You don't need to write XML. E‑Rechnungs‑Studio generates the structure and shows validation hints so you can fix issues selectively.

If you can roughly place terms like e‑invoice, XRechnung, ZUGFeRD and EN 16931, reviewing results gets even easier — that's what this guide is for.