InvogradeGuides

What is an XRechnung and how do you create one?

An XRechnung is an electronic invoice in a fixed XML format. Unlike a scanned PDF, it is not made for the human eye but for the receiving side's software: the invoice data, meaning amount, tax rate, delivery date and recipient, sits in clearly named fields that an accounting system can read without asking questions. That is exactly what the law means when it talks about a "structured electronic invoice".

XRechnung is the German standard for this format. It is built on the European norm EN 16931, which defines what an e-invoice must contain and how it is put together technically. XRechnung adds a few German specifics on top (a so-called CIUS). If your invoice follows these rules, the other side accepts it, which is what matters in the end.

Who needs an XRechnung?

Two groups meet the XRechnung most often:

  • Anyone invoicing German public authorities (B2G) has had to bill electronically for several years. The XRechnung is the usual route here.
  • Anyone invoicing between businesses (B2B) falls under the phased e-invoicing obligation that started in 2025. Since 1 January 2025 every German business must be able to receive e-invoices; the obligation to issue them is being introduced in stages through 2027/2028.

A plain PDF you send by email no longer counts as an e-invoice under the new rules; it is an "other invoice". For many invoices that is still enough during the transition, but the direction is clear, and the XRechnung is the format that keeps you on the safe side.

How do you create an XRechnung?

You do not have to write the XML by hand. That would be error-prone and unnecessary. In practice you enter your invoice data into a form, and a program produces the valid XML from it. The details the norm requires are what matter:

  • your full details as the invoice issuer, including VAT ID or tax number
  • the full address of the recipient
  • a unique invoice number and the invoice date
  • the individual line items with quantity, unit price and tax rate
  • for public authorities, often a routing ID (Leitweg-ID) that your customer gives you

If a mandatory field is missing or a tax rate is implausible, the invoice is rejected by the other side, and you often only notice when the payment fails to arrive. That is why it pays to check the finished file against the norm before you send it.

With Invograde you can create an XRechnung for free: you fill in a form, and we produce the file as XRechnung 3.0 (UBL or CII) and check it against EN 16931 with the official validator in the same step. What you download has therefore already been checked. What we explicitly do not do: transmit your invoice to an authority or file it for you. Sending stays with you.

General information, not tax or legal advice.

Ready to try it?

Create your e-invoice

Related guides