EN16931 defines a common part (Core Invoice) and allows for national extensions, so-called Core Invoice Usage Specifications, CIUS. XRechnung is the CIUS for invoices to the german authorities. Current version is 3.0.1.

Example: The Core Invoice requires country and email address of the recipient, but according to german §19 UstG an invoice has to bear the street address of the recipient. So the street address is among the attributes which XRechnung there are also additional optional attributes, e.g. the german Skonto (cash discount), despite being usual in Germany, is unusual in the rest of Europe, that’s why it didn’t make it into the Core Invoice.

As part of the legal qualification the XRechnung had to be tested, with mixed results.

The XRechnung sender can decide if (s)he want to send the XRechnung invoice either as UBL or UN/CEFACT CII XML. A UN/CEFACT XRechnung (like this one) is based on the same schema files, thus identical similar to the file embedded in a ZUGFeRD 2.0 PDF in the EN16931 profile.

Name Release date File format Hybrid B2G B2B with agreements B2B without agreements B2C XML dialect
XRechnung 1.0 2017-05-10 .xml n y y n n UBL, UN/CEFACT CII
XRechnung 1.1 2017-11-30 .xml n y y n n UBL, UN/CEFACT CII
XRechnung 1.2 2018-12-18 .xml n y y n n UBL, UN/CEFACT CII
XRechnung 2.0 2020-06-30 .xml n y y n n UBL, UN/CEFACT CII
ZUGFeRD 1.0 2014-06-25 .pdf y n y y y UN/CEFACT CII
ZUGFeRD 2.0 2019-03-11 .pdf y y y y y UN/CEFACT CII

You can also refer to a german ZUGFeRD/XRechnung comparison.

XRechnung has published open source XSLT style sheets to convert EN16931 XML to HTML, which also work on ZUGFeRD 2 and Factur-X files.

There are Online-Tools to create a UBL-XRechnung data structure.

The idea is that invoices to national authorities are uploaded to central platforms, Chorus in France, ZRE in Germany. The ZRE has a environment for uploads of productive and test invoices and almost certainly runs the open source Kosit validator on the incoming invoices. The same validator is probably used on the OZG-RE (test access), the invoice upload portal for several german states.

The share of businesses sending XRechnung is, according to a Bitkom-study, around 26% in September 2021 (of 43% of the businesses submitting electronic invoices at all).


Like ZUGFeRD, the XRechnung uses the EN16931 calculation rules and the according codelists for the allowed attribute values.


For this reason (the central upload) one concept is that the recipient is encoded as a so-called “Leitweg-ID” in the BuyerReference field. There is a specification for a Leitweg ID 2.0 with a checksum, unfortunately previous versions (with no or an unknown checksum) are still wide-spread. The sample mentioned in the 2.0 spec is not a live Leitweg-ID and although the need has been documented there is currently not yet a public complete list or online validator.

If you need a Leitweg ID to test, e.g. against the ZRE test portal you may have to use a live one, like the one of the German Weather Service DWD, mentioned by Mr. Dedus in his slides.

A list of all Leitweg-IDs is currently only available for one state, North Rhine-Westphalia.


After the API access has been discontinued, sending XRechnung via Peppol is the only way to not having to manually upload each XRechnung on one of the different portals. According to the FAQ the Peppol Recipient ID is then the Leitweg-ID with the prefix 0204, e.g. 0204:991-33333TEST-33.


On a (german) federal level, Mr. Hauschild summarized in a german speech the situation in german non-federal administration in early 2018: (slides). He recommended a german handbook for the authorities.
Since 2019 Kosit has published a detailed description of the implementation of the states and additionally the VER has a map with information by state. Apart from the federal ZRE some states (and some federal ministries like the BAFIN or the DLR) use the OGZRE.

All german states will accept, but only few will require electronic invoices: Bremen since 2020-11-27, Baden-Wuerttemberg and Saarland from 2022-01-01, Rhineland-Palatinate from 2024-01-01 and the state of Hesse from 2024-04-18.

Bonpago has a interactive map which portal is used in which federal state.
Screenshot der Bonpago-Karte der Bundesländer und deren benutztes XRechnung-Portal

Versions, profiles

XRechnung 3.0.1 (Specification) became mandatory as of February 1st, 2024. The version 1.2.2 will be replaced as of 2021-01-01 by XRechnung Version 2. On December 8 an Email from bmf.bund.de (ticket: 451793, Gz:II E 2 – O 1918/19/10060:016., Dok: 2020/1289755) indicated the transition period in which XR 1.2.2 would still be accepted will last until 2021-06-30.

Since version 2.0 the XRechnung has two profiles (standard and extension) and after the release of the specification, the sample files as well as the
schematron validation as well as the Kosit validator configuration
have been updated. Currently, only UBL samples are available for the extension profile.


Additional files accompanying the invoice, e.g. protocols, measurements or journals, may be embedded Base64-encoded within the XML, the technical terms of use allow up to 200 embedded files totalling not more than 11MB. Allowed filetypes are

  • application/pdf (.pdf)
  • image/png (.png)
  • image/jpeg (.jpg)
  • text/csv (.csv)
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.xslx)
  • application/vnd.oasis.opendocument.spreadsheet (.ods)

The typecode for those attachments is often “916”.



The permitted attribute values are listed in the Full listing of the code lists as used in EN16931.

Industry recommendations

E.g. the german railway apparently asks for certain fields like BT-132.