Check ZUGFeRD invoices (PDF or XML) for embedded XML, profile and EN 16931 rules. Your file never leaves your machine.
ZUGFeRD is Germany’s hybrid e-invoice format: a PDF/A-3 that reads like a normal invoice for humans while carrying machine-readable XML (UN/CEFACT CII) inside. Since version 2.0, ZUGFeRD is technically identical to the French Factur-X — one invoice, two markets. Legally, only the XML part counts: if the visual and the XML disagree, the XML wins.
ZUGFeRD tiers its data scope into profiles: MINIMUM and BASIC WL (booking aids, not full e-invoices), BASIC, EN 16931/COMFORT (the standard for the mandate), EXTENDED (more fields, but the recipient must support it) and XRECHNUNG (additionally satisfies the German BR-DE rules). The validator reads the profile identifier and applies exactly the rules that profile demands — a MINIMUM file is not wrongly measured against EN 16931 mandatory fields.
In practice the most frequent result is not a rule violation inside the XML but a PDF without embedded XML — produced by tools that confuse “PDF invoice” with “e-invoice”. Since the 2025 receiving mandate this surfaces quickly: receiving systems only read the XML. Second most frequent: ZUGFeRD 1.0 from legacy systems, which does not fulfil the mandate.
The validator answers “is this file okay?” — the developer API answers it inside your product: validate ZUGFeRD PDFs and parse them into normalized JSON, same engine, messages in three languages, self-hosted if you need it.
Technically none: ZUGFeRD 2.x (Germany, FeRD) and Factur-X (France, FNFE-MPE) are the same standard — a PDF/A-3 with embedded CII XML. The embedded file is usually called factur-x.xml in both.
At least the EN 16931 (formerly COMFORT) profile. MINIMUM and BASIC WL count as booking aids only; EXTENDED is conformant but must be supported by the recipient. The validator detects the profile automatically and applies exactly the rules that profile requires.
What counts is the embedded XML, not the visual. A scanned or conventionally generated PDF without an XML attachment is not an e-invoice. The validator reports this as BH-PDF-01.
No — even the PDF analysis (extracting the XML from the PDF/A-3 container) runs entirely in your browser via WebAssembly.
Validation and parsing as a developer API: same engine, normalized JSON, messages in three languages. Self-hosted available.
Explore the API