Skip to content

What an XRechnung is, and why it will not open like a PDF

By the getPDF team · Published 11 October 2026

The short answer

An XRechnung is a German e-invoice that is pure XML: structured data for accounting software, with no page to show. That is why double-clicking it opens code or an error; the file is not broken. You can read it today in your accounting software, with an XRechnung viewer, or by opening the XML in a text editor and finding the amount and due date by their field names. Keep the .xml itself: it is the invoice.

Inspect PDFFonts, images, metadata, why it is big. Free, runs on your device.

The file is not broken: it was never meant for eyes

A PDF invoice is a picture of an invoice: pages with text placed on them. An XRechnung is the invoice as data, with every value in a labelled field: invoice number, dates, seller, buyer, each line item, the tax, the amount to pay. There is no layout and no page, so there is nothing for a PDF viewer to draw. Windows opens .xml files in a browser or an editor, and what you see is the raw data:

<?xml version="1.0" encoding="UTF-8"?>
<ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
    xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
    xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
  <cbc:ID>2026-0412</cbc:ID>
  <cbc:IssueDate>2026-10-11</cbc:IssueDate>
  <cbc:DueDate>2026-11-10</cbc:DueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
  <cbc:BuyerReference>991-12345-67</cbc:BuyerReference>
  <cac:AccountingSupplierParty>
    <cac:Party>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Studio Lumen GmbH</cbc:RegistrationName>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingSupplierParty>
  <cac:LegalMonetaryTotal>
    <cbc:TaxExclusiveAmount currencyID="EUR">1000.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="EUR">1190.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="EUR">1190.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
</ubl:Invoice>

This is an invented and shortened example: a real XRechnung also carries the seller’s address and VAT ID, the buyer, payment details and the line items. But the parts that matter for paying it are already readable.

Split view: raw XRechnung fields on the left (cbc:ID 2026-0412, cbc:DueDate 2026-11-10, cbc:PayableAmount 1190.00) mapped by arrows to a readable invoice table on the right with invoice number, due date and amount to pay.invoice.xml (raw)cbc:ID2026-0412cbc:IssueDate2026-10-11cbc:DueDate2026-11-10cbc:BuyerReference991-12345-67cbc:RegistrationNameStudio Lumen GmbHcbc:TaxExclusiveAmount1000.00cbc:PayableAmount1190.00no page, no layout: data onlyInvoiceStudio Lumen GmbHNumber2026-0412Due10 Nov 2026Net1,000.00 EURTo pay1,190.00 EUR
The same invented invoice twice: on the left a few fields of the raw XML, on the right what an XRechnung viewer shows. The arrows map 3 fields: the invoice number, the due date and the amount to pay.

Where XRechnung comes from

XRechnung is the German standard for electronic invoices to the public sector. It is run by KoSIT, the coordination office for IT standards, on behalf of the IT-Planungsrat, and it implements the European e-invoicing standard EN 16931 with German rules on top. It comes in 2 XML dialects, UBL 2.1 (the example above, starting with ubl:Invoice) and UN/CEFACT CII (starting with rsm:CrossIndustryInvoice); both carry the same data.

According to KoSIT, version 3.0 has applied since 1 February 2024 and stays in force until at least 31 July 2027, with 3.0.2 as the current bug-fix release. A preliminary specification of version 4.0 was published in September 2026, with the final release expected in spring 2027. You can see the version in the CustomizationID line of the file (checked on 11 October 2026).

Who has to deal with it:

  • Suppliers to the federal administration have had to send electronic invoices since 27 November 2020 under the federal e-invoicing regulation (E-Rechnungsverordnung), with XRechnung as the standard format and a Leitweg-ID (the BuyerReference field) that routes the invoice to the right office. The federal states have their own rules.
  • Every business in Germany must be able to receive e-invoices since 1 January 2025; an email inbox is enough for that, according to the German Federal Ministry of Finance’s e-invoice FAQ.
  • Issuing between businesses becomes mandatory on 1 January 2027 for companies with more than 800,000 euro turnover in the previous year, and on 1 January 2028 for everyone else, when the ministry’s transition rules end. XRechnung is 1 of the accepted formats; ZUGFeRD in an EN 16931 profile is the other common one. Invoices up to 250 euro and travel tickets are exempt, and invoices to private customers are not covered.

The dates were checked on 11 October 2026 against the ministry’s FAQ and KoSIT’s XRechnung page. This page explains the formats; it is not legal or tax advice, and the detailed rules can still change through ministry letters. The full timeline, with the EU date, is in E-invoices and business PDFs.

3 honest ways to read one today

  1. Your accounting or invoicing software. German accounting packages commonly import XRechnung files and show them as an invoice; that is what the format is for. If you have a tax advisor, their platform does the same.
  2. A viewer. KoSIT publishes an open-source visualisation (Apache-2.0) that turns an XRechnung into HTML or PDF; it is a building block for software rather than an app you double-click. Free online viewers also exist, and most work by uploading your invoice to their server to render it. An invoice holds bank details, prices and customer names, so check where it goes before you use one. A visualisation is for reading only; KoSIT notes that it is not a valid XRechnung itself.
  3. A text editor or your browser. Open the .xml in Notepad, TextEdit or a browser window and search for the fields by name. In the UBL dialect: cbc:ID is the invoice number, cbc:DueDate the due date, cbc:PayableAmount the amount to pay, cac:AccountingSupplierParty the seller. In the CII dialect, look for ram:DuePayableAmount and ram:DueDateDateTime. Clumsy, but it works offline and nothing leaves your computer.

XRechnung or ZUGFeRD: tell them apart in 5 seconds

Plain PDF invoice ZUGFeRD XRechnung
File extension .pdf .pdf .xml
Double-click shows The invoice The invoice Code or an error
Counts as an e-invoice No Yes, in an EN 16931 profile Yes
Inspect shows Attachments: none The attached XML by name, such as factur-x.xml Leaves it out: not a PDF

The last row in detail. Inspect works on PDFs only; drop an XRechnung .xml on it and the page says “Left out 1 file this tool does not take”. On a ZUGFeRD it lists each attached file by name: factur-x.xml for ZUGFeRD 2.1 and later (the same name Factur-X uses), zugferd-invoice.xml for ZUGFeRD 2.0, xrechnung.xml for the XRechnung profile inside a ZUGFeRD. That name is a strong sign of an e-invoice, not proof: Inspect does not open the XML or check it against the standard.

What getPDF does, and does not do, with e-invoices

getPDF cannot read or create e-invoices yet. Inspect names the XML inside a ZUGFeRD, but there is no tool here that displays an XRechnung, extracts the XML from a ZUGFeRD, or writes either format. A reader that shows an XRechnung as a readable invoice on your device, with nothing uploaded, is on our plan; until it ships, the 3 routes above are the honest options.

Two traps to avoid meanwhile. Printing an XRechnung to PDF, or taking a screenshot of a viewer, gives you a picture of the invoice, not an e-invoice: the XML is what the tax rules recognise, so archive the original file unchanged. And a ZUGFeRD PDF re-saved through an ordinary PDF editor can lose its embedded XML, and with it its e-invoice status; keep the file you received. For setting up receiving without buying software, E-invoices and business PDFs has the quarter’s homework.

Questions

Is my XRechnung file broken?

Almost certainly not. An XRechnung is an XML file with no page to display, so a double-click shows code, an error, or nothing useful. It is meant for accounting software. Open it with software that understands it, or read the fields in a text editor.

Can I convert an XRechnung to PDF?

You can make a readable PDF of it with a viewer, for your own reference. That PDF is not the invoice and not an e-invoice: the XML is what counts for tax purposes, so keep and archive the original .xml file.

What is the difference between XRechnung and ZUGFeRD?

An XRechnung is the XML alone. A ZUGFeRD invoice is a normal PDF you can read and print, with the invoice data embedded inside it as XML. Both follow the European standard EN 16931.

Can getPDF open an XRechnung?

Not yet. Our tools work on PDFs, and Inspect leaves an .xml file out as one it does not take. For a ZUGFeRD PDF, Inspect names the attached XML. An on-device reader for XRechnung is planned. Until then, use your accounting software, a viewer, or a text editor.

Do I have to send XRechnungen myself?

To German public authorities, usually yes, already. Between businesses, the duty to issue e-invoices starts on 1 January 2027 for companies above 800,000 euro prior-year turnover and from 2028 for the rest; XRechnung is 1 of the accepted formats. This is not legal or tax advice.

The tools for this job