What is checked
- Embedded XML present: a ZUGFeRD PDF must be a PDF/A-3 with an attachment named
factur-x.xml(ZUGFeRD 2.x and Factur-X) orzugferd-invoice.xml(older files). A PDF without it is not an e-invoice. - Profile: MINIMUM, BASIC WL, BASIC, EN 16931 (COMFORT), EXTENDED or XRECHNUNG, read from the guideline identifier in the XML. Only BASIC and above are compliant e-invoices under the German rules from 2025.
- EN 16931 business rules: mandatory fields, code lists, calculation rules such as line totals, VAT breakdown and payable amount.
- German CIUS rules (BR-DE-*) when the profile is XRECHNUNG.
ZUGFeRD and the German e-invoice obligation
Since 1 January 2025 every German business must be able to receive electronic invoices from other businesses; a PDF with an embedded ZUGFeRD XML counts, a plain PDF does not. Issuing becomes mandatory on 1 January 2027 for companies above €800,000 turnover and on 1 January 2028 for everyone else. The legal yardstick is EN 16931 together with the German national rules (BR-DE), which is exactly what this validator applies.
ZUGFeRD is the format most German accounting and ERP products emit by default because it keeps a human-readable PDF for the archive. Under GoBD the XML part is the legally relevant invoice, so it must be archived unchanged and it must be correct: a broken XML inside a perfect-looking PDF is still a defective invoice and can cost the input VAT deduction.
The same specification is published in France as Factur-X. If your files come from French suppliers or go to Chorus Pro, use that page; the French profile notes and platform rules differ.
Typical errors and what they mean
| Rule | Meaning | Who fixes it |
|---|---|---|
| BR-CO-15 | Invoice total with VAT ≠ total without VAT + VAT amount | Sender (rounding in their software) |
| BR-S-08 / BR-CO-17 | VAT breakdown does not match line amounts | Sender |
| BR-DE-15 | Buyer reference (Leitweg-ID) missing (XRechnung profile only) | Sender needs your reference |
| BR-08 / BR-10 | Seller or buyer postal address missing | Sender |
| no scenario matched | Unknown or outdated profile identifier | Sender uses an old ZUGFeRD version |
If the sender disputes the result, send them the rule ID and the XPath shown in the report. Their invoicing software vendor will know what to do with it.
Frequently asked questions
Is ZUGFeRD 1.0 still valid?
No. ZUGFeRD 1.0 predates EN 16931 and is not a compliant e-invoice under the German rules effective 2025. The tool still opens such files for viewing but marks them as legacy. Ask the sender for ZUGFeRD 2.x or XRechnung.
ZUGFeRD and Factur-X: same thing?
Technically yes. ZUGFeRD 2.1 and later and Factur-X 1.0 and later are the same specification maintained jointly by FeRD (Germany) and FNFE-MPE (France). The embedded file is named factur-x.xml in both.
Why does my PDF pass in one tool and fail here?
Many simple tools only check that the XML is well-formed. This validator runs the full schematron rule set used by the German authorities. A file that fails here will also fail at a public invoice portal or a strict ERP import.
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