E-Invoice Viewer (XRechnung, ZUGFeRD, Factur-X, UBL)
Open an e-invoice XML or a ZUGFeRD PDF and read it like a paper invoice.
The e-invoice
Or paste the XML
The invoice
The sums
These are arithmetic checks only. For the full rule set — required fields, code lists and the German BR-DE rules — use the XRechnung & ZUGFeRD validator.
Tax rules and rates change. This calculator follows the rules described on this page and may not cover every situation. Check the official source or a qualified tax professional before filing or invoicing.
About the E-Invoice Viewer (XRechnung, ZUGFeRD, Factur-X, UBL)
An e-invoice is a structured XML file, not a picture of an invoice — so opening one in a browser usually shows a wall of tags. Drop it here and read it as an invoice instead: seller and buyer with their VAT identifiers, the reference the buyer asked for, every line with quantity, unit price and VAT rate, the VAT breakdown per rate, the totals, the payment details and the notes. A ZUGFeRD or Factur-X PDF works too: the invoice XML embedded in it is taken out and read.
The sums are checked while the invoice is read: the line amounts against quantity × price, the sum of the lines, the totals with and without VAT, the VAT per category against taxable × rate, and the amount due. Anything that does not add up is listed with the rule it breaks (BR-CO-15, BR-S-09 …) and can be marked in the invoice view. This is a reader with arithmetic checks, not a validation — the full rule set is the XRechnung & ZUGFeRD validator.
How to use it
- Choose the invoice (drag it onto the box): the XML of an XRechnung, UBL, UN/CEFACT CII or Peppol BIS invoice, or a ZUGFeRD / Factur-X PDF. Several files at once are fine — pick one from the list afterwards. You can also paste the XML.
- Read the invoice. The invoice shows it as a printed invoice would look; Every field lists every EN 16931 business term (BT-1, BT-10, BT-112 …) with its value, which is what you need when a system complains about a particular field.
- Look at The sums: errors first, then warnings and notes. Show it in the invoice marks the field a finding is about.
- Switch the view between English and German — the invoice’s own words (item names, notes, payment terms) stay as the sender wrote them.
- Save a readable PDF to file or forward, Print the view (the paper copy shows the invoice alone, without the checks), or Copy as text for an e-mail. The legal invoice stays the XML: keep that file as you received it.
Examples
xrechnung.xml (UBL syntax), 3 lines, 19 % and 7 % VAT
The invoice view with the Leitweg-ID as the buyer reference, both VAT rates in the breakdown, the IBAN and the payment terms; the sums add up, so nothing is flagged.
Rechnung.pdf with factur-x.xml inside (profile EN 16931)
The XML is taken out of the PDF and read: “XML inside the PDF: factur-x.xml · UN/CEFACT CII syntax · EN 16931”. What the PDF pages show is not compared with the XML — where they differ, the XML is the invoice.
An invoice whose total with VAT says 1,734.96 while the lines and VAT add up to 1,733.96
error BR-CO-15 (BT-112): total with VAT 1734.96 ≠ 1465.02 + 268.94 = 1733.96 — and error BR-CO-16 (BT-115), because the amount due is worked out from that total.
Common uses
- Reading an e-invoice a supplier sent as XML, without special software.
- Checking what is in a ZUGFeRD or Factur-X PDF — the picture and the data are two different things.
- Finding out which field a system means when it names a business term such as BT-10 or BT-112.
- Seeing why an invoice’s total does not match its lines before you pass it to accounting.
- Filing a readable copy of an e-invoice, or printing one for someone who needs paper.
What it reads
- XRechnung 3.0 and earlier, in both syntaxes (UBL and UN/CEFACT CII).
- ZUGFeRD 2.x / Factur-X: the embedded invoice file (
factur-x.xml,xrechnung.xmlorzugferd-invoice.xml) is taken out of the PDF. The MINIMUM and BASIC WL profiles are read as far as they go, and the view says so: they do not meet EN 16931 and are not e-invoices in their own right. - UBL 2.1 invoices and credit notes (ISO/IEC 19845:2015) and Peppol BIS Billing 3.0.
- UN/CEFACT Cross Industry Invoice (CII D16B) as EN 16931 uses it.
ZUGFeRD 1.0 is recognised and named, but not read: it is an older format that EN 16931 does not cover.
Which sums are checked
The arithmetic rules of EN 16931-1 (the European semantic model for electronic invoicing), as MySmartCoPilot implements them:
- BR-CO-10 to BR-CO-17 — the sum of the line net amounts (BT-106), the sums of the document allowances and charges (BT-107, BT-108), the total without VAT (BT-109), the total VAT (BT-110), the total with VAT (BT-112) and the amount due (BT-115), plus the one-cent rounding note.
- BR-S-08/09 and the other category rules (Z, E, AE, IC, G, O, L, M) — each VAT breakdown’s taxable amount against the lines of that category, and its tax against taxable × rate. The rule set tolerates less than one unit of the currency where software rounds VAT per line, so such a difference is a warning, not an error.
- The line amounts — quantity × unit price, less the line’s own allowances, plus its own charges.
Everything else EN 16931 asks for — required fields, code lists, the German BR-DE rules, the Peppol rules — is not checked here. Use the XRechnung & ZUGFeRD validator for that.
The XML is the invoice
For an e-invoice the structured data is the original document; a PDF that comes with it is a convenience copy. So the readable PDF this tool writes is a copy for reading and filing, not an e-invoice: it carries no XML inside it and cannot replace the file you received. Keep the XML (or the ZUGFeRD PDF) exactly as it arrived, for as long as your country’s rules require.
Nothing is uploaded: the invoice is read in your browser, which matters because it carries your customers’, suppliers’ and bank details.
Limitations
- A reader with arithmetic checks, not a validation: a receiver’s validator may still reject an invoice this page shows without errors.
- Only EN 16931 documents are read: XRechnung, ZUGFeRD 2.x / Factur-X, UBL 2.1 and Peppol BIS Billing 3.0. ZUGFeRD 1.0 and other formats are recognised but not read.
- The PDF of a ZUGFeRD file is not checked as PDF/A, and what its pages show is not compared with the XML.
- Attachments inside the invoice XML are listed as business terms, not opened; the files attached to a PDF itself are not listed here.
- An encrypted PDF cannot be read; remove the protection first, or ask the sender for the XML.
- Files up to 40 MB.
- The readable PDF is a copy for people, never an e-invoice: it carries no structured data.
Privacy
Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.
Frequently asked questions
Is my invoice uploaded?
No. The XML or PDF is read in your browser and stays there. That matters for an invoice, which carries customer names, addresses, bank details and prices.
How do I open an XRechnung at all?
Drop the XML here: this page shows it as an invoice. KoSIT, which maintains the XRechnung standard, also publishes open-source stylesheets that turn an XRechnung into HTML or PDF (XRechnung visualization), and your accounting software may have a viewer built in. Whatever you use, keep the XML itself — it is the invoice.
Is the readable PDF an e-invoice?
No. It is a copy for reading, printing and filing; it carries no structured data. Only the XML you received (or the ZUGFeRD PDF with its XML inside) is the e-invoice.
Why does it say a sum is wrong when my software says the invoice is fine?
Look at the level: a warning usually means a difference below one unit of the currency, which the rule tolerates — software that rounds VAT per line lands there, and an official validator reports nothing. An error is a real mismatch; ask the sender to check.
Does it check whether the invoice is legally valid?
No, and it does not try to. It checks arithmetic and shows the content. Whether an invoice is complete and legal for your country is for the full rule set and your own tax advice — these are not professional advice.
Can I read several invoices at once?
Yes. Choose or drop several files and pick one from the list above the view. Each is read on its own.