What is an XRechnung file?
XRechnung is the German implementation of the European e-invoice standard EN 16931. Since 2020 it is mandatory for invoices to German public authorities, and since 1 January 2025 every German business must be able to receive it. It comes as a pure XML file, either in UBL syntax (root element Invoice) or in UN/CEFACT CII syntax (root element CrossIndustryInvoice). There is no PDF layer, which is why it looks like code when you double-click it.
How to open it
- Drop the
.xmlfile into the box above or click to choose it. - The invoice is rendered with seller, buyer, Leitweg-ID (buyer reference), line items, VAT and totals.
- Use the browser print function to save it as PDF for your records.
The viewer also accepts ZUGFeRD and Factur-X PDFs, Peppol BIS invoices and Polish KSeF files, so you do not need to know the format in advance.
Validation included
Every file is sent through the KoSIT validator with the current XRechnung 3.0.2 configuration, the same reference implementation used by German federal and state invoice portals (ZRE, OZG-RE). If the invoice would be rejected there, you see the exact rule, for example BR-DE-15 (missing buyer reference) or BR-CO-15 (totals do not add up), with the XPath to the offending element.
Frequently asked questions
XRechnung or ZUGFeRD: which one do I have?
If the file is an .xml, it is XRechnung (or a plain EN 16931 invoice). If it is a .pdf that opens as a normal invoice but also carries an XML inside, it is ZUGFeRD or Factur-X. The tool detects both and shows the standard and profile in the Format box.
Can I open XRechnung on a Mac or phone?
Yes. Everything runs in the browser, there is nothing to install. Safari, Chrome and Firefox on macOS, iOS and Android all work.
Does this replace the ELSTER viewer?
The ELSTER viewer from the German tax administration also shows XRechnung files. This tool adds validation, JSON export, PDF/ZUGFeRD support and other countries' formats in one place.
Developers: same engine as an API
curl -F file=@invoice.pdf https://einvoicechecker.com/v1/validatecurl -F file=@invoice.xml https://einvoicechecker.com/v1/parsecurl -F file=@invoice.xml "https://einvoicechecker.com/v1/render?lang=en" -o invoice.html