XRechnung & ZUGFeRD Validator (Germany, EN 16931)
Drop the XML or the ZUGFeRD PDF: basic checks, plain-language errors, a readable invoice.
E-Rechnung prüfen
Oder XML einfügen
Ergebnis
Eine korrekte E-Rechnung erstellen: XRechnung- und ZUGFeRD-Generator
Was geprüft wird
- XML-Syntax (wohlgeformt, Namensräume, Zeichenkodierung)
- Struktur nach dem EN-16931-Teil der Schemata CII D16B und UBL 2.1: Elementnamen, Reihenfolge, Pflichtelemente – keine vollständige XSD-Prüfung
- Regeln von EN 16931 in MySmartCoPilots eigener Umsetzung: Pflichtangaben, Summen (BR-CO), Umsatzsteuerkategorien, Nachkommastellen, Codelisten
- Für XRechnung: die Regeln BR-DE und die von XRechnung übernommenen Peppol-Regeln (nach dem XRechnung-Schematron der KoSIT, Apache-2.0)
- Für ZUGFeRD-PDFs: eingebettete XML, Dateiname, AFRelationship und XMP-Angaben – keine PDF/A-Prüfung
Nicht geprüft: die offiziellen CEN-Prüfregeln (EUPL), die XRechnung-Erweiterung (BR-DEX), die CVD-Regeln und ob Nummern wirklich vergeben sind (USt-IdNr., IBAN, Leitweg-ID werden nur auf ihre Form geprüft).
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 XRechnung & ZUGFeRD Validator (Germany, EN 16931)
Drop an XRechnung (UBL or CII) or a ZUGFeRD / Factur-X PDF and see at once whether it keeps the rules: the XML syntax, the structure of the EN 16931 schemas, the EN 16931 business rules (required fields, totals per VAT rate, VAT categories) and, for XRechnung, the German rules BR-DE and the Peppol rules XRechnung adopted. Each finding is explained in plain German or English with its rule, its business term (for example BT-10 Käuferreferenz) and its line in the XML, and one click marks the field in the readable invoice.
These are basic checks, not a legal validation. Nothing is uploaded: the file is read in your browser, so it may contain real customer and bank details.
How to use it
- Choose or drop one or more files: the XML of an XRechnung, or a ZUGFeRD / Factur-X PDF — the embedded factur-x.xml or xrechnung.xml is taken out of it. Or open Oder XML einfügen and paste the XML.
- Read the result: errors first, then warnings and notes. Each finding names the rule (for example BR-DE-15), the field and the XML line; In der Rechnung zeigen marks the field in the readable view.
- Switch to Alle Angaben to see every business term with its value, for example to compare the invoice with the order.
- Download or copy the check report for your records or for the sender, and save a readable PDF of the invoice to print or file it.
- A file meant as XRechnung that names the wrong specification: tick Auch nach den XRechnung-Regeln prüfen to apply the German rules anyway.
Examples
XRechnung 3.0 (CII) without buyer reference and seller phone, total with VAT 1,734.96 instead of 1,733.96, IBAN mistyped
Fehler BR-DE-15 (BT-10 Käuferreferenz): Die Käuferreferenz (BT-10) fehlt. Öffentliche Auftraggeber geben dafür ihre Leitweg-ID vor … Fehler BR-DE-6 (BT-42 Telefon des Verkäufers) · Fehler BR-CO-15 (BT-112): 1734.96 ≠ 1465.02 + 268.94 = 1733.96 · Fehler BR-CO-16 (BT-115) · Warnung BR-DE-19 (BT-84): keine gültige IBAN
One wrong total breaks two rules: the total with VAT (BR-CO-15) and the amount due that is worked out from it (BR-CO-16).
Rechnung.pdf with factur-x.xml, profile EN 16931
The XML is taken out of the PDF and checked; the PDF’s declarations are checked too: AFRelationship “Alternative”, MIME type text/xml, Factur-X conformance level “EN 16931” in the XMP metadata.
Rechnung.pdf without embedded XML
Fehler MSC-PDF-NO-XML: Das PDF enthält keine eingebettete Rechnungs-XML. Ein reines PDF ist keine E-Rechnung, sondern eine „sonstige Rechnung“.
Common uses
- Checking an XRechnung before uploading it to a public portal, so a rejection does not delay payment.
- Reading a received XRechnung, which has no PDF: the readable view and a PDF to print or file.
- Finding out why a customer’s system rejected an invoice: the rule ID and the field, in plain words.
- Software developers testing the XML their system writes, with the XML line of every finding.
What is checked — and what is not
- XML syntax: well-formed, namespaces, character encoding. ZUGFeRD 1.0 and other documents are recognised and named.
- Structure: element names, order and count against the EN 16931 part of the CII D16B (Factur-X) and UBL 2.1 schemas. The tables are derived from the published schemas; this is not a complete XSD validation.
- EN 16931 business rules in MySmartCoPilot’s own implementation of the published rule descriptions: required business terms (BR-01 to BR-65), the totals (BR-CO-10 to BR-CO-17), the VAT categories (BR-S, BR-Z, BR-E, BR-AE, BR-IC, BR-G, BR-O), decimals (BR-DEC) and code lists (BR-CL).
- XRechnung 3.0: the national rules BR-DE-1 to BR-DE-31 and the Peppol rules XRechnung adopted, written after KoSIT’s XRechnung Schematron (Apache License 2.0, github.com/itplr-kosit/xrechnung-schematron) and tested against KoSIT’s published test files.
- ZUGFeRD / Factur-X PDFs: the embedded invoice file (factur-x.xml, xrechnung.xml or zugferd-invoice.xml), its AFRelationship and MIME type, and the XMP declarations (PDF/A-3, a Factur-X conformance level that matches the XML’s profile). The PDF itself is not validated as PDF/A.
Not checked: the official CEN validation artefacts (published under the EUPL), the rules of the XRechnung extension (BR-DEX), the CVD rules, and whether a VAT number, IBAN or Leitweg-ID has actually been issued — those are checked for their form and check digits only.
Errors, warnings and notes
- Fehler / error: a rule is broken. An official validator would reject the file for the same reason, and public portals refuse it.
- Warnung / warning: probably wrong, or a rule receivers handle differently — for example a Leitweg-ID or an IBAN whose check digits do not match, a missing specification identifier of XRechnung, or a VAT amount that misses the rate times the taxable amount by a few cents. The last one is only a warning because the rule itself tolerates a difference below one unit of the currency: software that rounds the VAT per line lands there, and an official validator reports nothing.
- Hinweis / note: worth knowing, not wrong — for example an invoice date in the future, a VAT amount one cent off the rounded rate (rounding per line), or elements that EN 16931 does not use.
Every finding keeps the rule identifier of the standard (BR-…, BR-DE-…, PEPPOL-EN16931-R…), so the sender’s software provider can look it up. Findings that start with MSC- are MySmartCoPilot’s own checks.
Common errors and how to fix them
- BR-DE-15 — the buyer reference (BT-10) is missing. Public buyers give their Leitweg-ID for it; business customers often give their order number.
- BR-DE-2, BR-DE-5 to BR-DE-7 — XRechnung needs the seller’s contact (BG-6) with name, phone and e-mail.
- BR-CO-10 to BR-CO-16 — the totals do not add up: usually a discount or charge left out of a sum, or amounts rounded differently.
- BR-S-08, BR-AE-08 and similar — the VAT breakdown does not match the lines: each VAT category and rate needs its own breakdown with the sum of its lines, discounts and charges.
- PEPPOL-EN16931-R008 — an empty element: leave out elements without a value instead of writing them empty.
- BR-DE-21 — the file names another specification than XRechnung 3.0; ask the sender which version their software writes.
Kurz auf Deutsch
Ziehen Sie eine XRechnung (XML in UBL- oder CII-Syntax) oder ein ZUGFeRD-/Factur-X-PDF in das Feld. Die Datei wird im Browser gelesen und nicht hochgeladen. Geprüft werden die XML-Syntax, die Struktur, die Geschäftsregeln von EN 16931 und für XRechnung die Regeln BR-DE; jeder Fehler wird verständlich erklärt und lässt sich in der lesbaren Rechnung anzeigen. Bericht und lesbares PDF lassen sich herunterladen. Es handelt sich um eine Basisprüfung, keine rechtliche Validierung. Eine korrekte E-Rechnung erstellen Sie mit dem XRechnung-Generator.
Validation and viewing, officially
The BMF recommends validating e-invoices when they are created and sent, but names no validator, “for reasons of equal treatment of all market participants” — a validation is not itself a condition for input VAT deduction. To read an e-invoice, the tax administration offers a viewer at e-rechnung.elster.de. Source: the BMF’s questions and answers on e-invoicing (questions 7 and 12a). KoSIT publishes its validator, the XRechnung configuration and test suite as open source at xeinkauf.de.
Limitations
- Basic checks, not a legal validation: MySmartCoPilot’s own implementation of the EN 16931 rules (not the official CEN artefacts) plus the XRechnung rules after KoSIT. A receiver’s validator may judge a file differently; it has the final word.
- Only EN 16931 documents: XRechnung, ZUGFeRD 2.x / Factur-X (all profiles are read; MINIMUM and BASIC WL are reported as not being e-invoices) and Peppol BIS Billing 3.0. ZUGFeRD 1.0 and other formats are recognised but not checked.
- The structure check covers the EN 16931 elements of the schemas, not every detail of a complete XSD validation; the PDF is not validated as PDF/A.
- XRechnung 3.0 rules. Files of older XRechnung versions are checked against the current rules.
- Large files (over 40 MB) are not read.
Privacy
The file is read in your browser and is not uploaded or stored by MySmartCoPilot. Only your choice of interface language is kept in this browser.
Frequently asked questions
Is this an official validation?
No. It is a basic check that catches the usual reasons for rejection. The reference is KoSIT’s open-source validator with the XRechnung configuration; the BMF recommends validating but endorses no particular validator.
Is my invoice uploaded?
No. The XML or PDF is read in your browser; nothing is sent to MySmartCoPilot or anyone else.
How do I open an XRechnung? It is just XML.
Drop it here: the readable view shows it as an invoice, and Lesbare Rechnung als PDF saves a PDF to print or file. The legal invoice remains the XML: keep at least the XML unaltered, in the form you received it, for eight years (§ 14b UStG).
My software says the file is valid, but this page shows errors. Who is right?
Look at the rule IDs: rule sets differ between versions (XRechnung 3.0 or older) and between XRechnung and plain EN 16931. Notes and warnings are not errors. For a disputed error, ask the sender to run the official validator; the receiver’s portal decides in the end.
Can I check a ZUGFeRD PDF?
Yes. The embedded XML (factur-x.xml, xrechnung.xml or zugferd-invoice.xml) is taken out of the PDF and checked, and so are the PDF’s declarations of the embedded file. What the PDF shows on its pages is not compared with the XML; where they differ, the XML counts.