In short
An XRechnung, a UBL invoice or a Factur-X invoice contains an XML file, written for programs and not for people. Open it in a text editor and you see tags, not an invoice. To read it you need a tool that shows the data as an invoice: your accounting software, the visualization tool of the German KoSIT, or a viewer in the browser. With ZUGFeRD and Factur-X the XML is inside a PDF, and that PDF is only the picture.
This guide shows the four ways, what is in the file, where the main details are, and what to do when something goes wrong. If you only have one file to read: open the viewer.
Four ways to read an e-invoice
| Way | When it fits | What to watch |
|---|
| Your accounting or invoicing software | You receive e-invoices all the time | The software must read the format (XRechnung, ZUGFeRD, Factur-X, Peppol) and the profiles your suppliers send. |
| The KoSIT visualization tool | You want the official rendering of the XRechnung, on your own computer | It is a set of XSLT stylesheets (Apache-2.0) that needs an XSLT processor: better for technical users. |
| A viewer in the browser | You have one file and want to read it quickly | Check what happens to the file: is it uploaded, how long is it kept, where is it processed? |
| A text editor or the browser | A last resort to look at a few values | You see tags, not an invoice. Lines and totals are tedious and easy to misread. |
What is in the file
An e-invoice following the standard EN 16931 holds the parties (seller, buyer, and where relevant payee, tax representative and delivery place), the header (number, date, due date, currency), the lines with quantity, unit, price and VAT, the VAT breakdown, the totals and the payment details. Every field has a number in the standard, for example BT-1 for the invoice number. If you are looking for something particular:
| What you look for | Field | Note |
|---|
| Invoice number | BT-1 | |
| Issue date | BT-2 | |
| Due date | BT-9 | |
| Buyer reference (the Leitweg-ID in Germany) | BT-10 | In the German XRechnung this field holds the Leitweg-ID of a public buyer. |
| Payment terms | BT-20 | |
| Seller's VAT identifier | BT-31 | |
| IBAN to pay | BT-84 | |
| Amount due | BT-115 | |
The main fields, with their place in CII and in UBL, are in the guide CII and UBL side by side: where each field is.
ZUGFeRD and Factur-X: the invoice is inside the PDF
ZUGFeRD is a hybrid format: a PDF/A-3 as the readable picture, with an XML file in the CII syntax attached to it. The French Factur-X is the same format from ZUGFeRD 2.0 on. To just look at it, any PDF reader will do. But the XML is what counts: since 1 January 2025 in Germany the embedded XML is the invoice, and the PDF only shows it (more in the guide on the German obligation).
To see what the invoice really says, take the XML out of the PDF. Many PDF readers show attached files, for example in the side bar under "Attachments". Save the file, usually factur-x.xml (zugferd-invoice.xml in ZUGFeRD 2.0), and open it like an XRechnung. The CTC Engine viewer takes the XML file only, not the PDF, for now.
Read an XML invoice as a PDF, in your language
- Open the viewer and drop your CII or UBL XML file (up to 10 MB). Two samples are there to try.
- Press "Show as PDF". The PDF is made in the language of the page: the language buttons at the top set English, French or German. This is how a colleague who does not read German can understand a German XRechnung.
- Read the invoice in the browser, print it or save the PDF.
The PDF is a reading copy made from the data of the invoice, not the original invoice: every page says so, with a watermark. Keep the XML file as you received it. For how long you must keep it, ask your tax adviser.
What happens to your file
The file is sent to the service so that it can make the PDF. The file and the PDF stay in memory only, and are discarded about 30 seconds after the processing ends; nothing is stored, and the invoice is not used for anything else or shared with anyone. If your invoice holds personal data, such as the name of a private person, check that you may process it this way. More is on the privacy page.
When it does not work
- "This is not XML", or the file will not open: you may have a ZUGFeRD or Factur-X PDF instead of the XML file. Take the XML out of the PDF, as described above.
- The file is not recognized as an invoice: the viewer reads XML invoices and credit notes in CII (D22B) and UBL 2.1. Other XML documents, such as orders, quotes or invoices of a national format, are not recognized.
- The XML is not valid: the file is cut or damaged, often by a mail program. Open it in a text editor: it must start with
<?xml or with < and end with the closing tag of the invoice. - The invoice is too big: the viewer takes files up to 10 MB and refuses invoices with a very large number of lines or very long texts, because the PDF would take too long.
- Some characters show as #: the PDF has fonts for Latin, Greek and Cyrillic letters. Other scripts, such as Arabic or Chinese, are not supported yet.
Sources