Validate a ZUGFeRD invoice
Check a ZUGFeRD invoice: the PDF/A-3 container, the embedded XML and the profile rules, with guidance on returned findings. Free within the daily limit.
In short
Check an invoice against its applicable EN 16931 and national rule set. Read each finding and guidance on what to correct. Free, 5 a day without an account.
Klarbon's ZUGFeRD validator checks a ZUGFeRD invoice in two parts: the PDF/A-3 container that carries the XML, and the XML itself against the selected ZUGFeRD profile rules. Returned findings include rule codes and guidance where available. It is free for five checks a day, twenty with a free account, and the file is deleted after the check.
What does the validator check?
| Part | What is checked |
|---|---|
| The PDF | that it is PDF/A-3 and embeds the invoice XML as the format requires |
| The XML | that it is well-formed CII and follows the schema of its profile |
| The rules | the supported profile's rules; low-detail profiles do not satisfy the full EN 16931 model |
| The profile | which profile the file declares, from MINIMUM to EXTENDED |
ZUGFeRD is published by FeRD (FeRD). Version 2 is technically identical to the French Factur-X 1, but passing depends on the file, declared profile and selected rules, not the name alone.
How do I validate a ZUGFeRD file?
- Upload the PDF, or only the XML if that is what you have.
- Read the report. Review the container findings and returned rule findings, with codes, locations and correction guidance where available.
- Correct and check again in the software that made the file, or use Fix for one credit.
Which profile counts as an e-invoice?
In Germany, ZUGFeRD counts as an e-invoice between businesses from version 2.0.1, except the MINIMUM and BASIC WL profiles, which lack invoice lines (BMF FAQ). A MINIMUM file can pass all its own rules and still not be a valid e-invoice for German purposes, so check which profile the report names.
What are common ZUGFeRD errors?
- XML not embedded the right way: the PDF has an XML attachment, but not as PDF/A-3 with the expected name.
- Profile mismatch: the XML declares one profile but contains data only another profile allows.
- Totals that do not add up, as in any EN 16931 invoice.
- Visible PDF and XML disagree. The rules cannot see this; compare the readable page with the ZUGFeRD viewer.
What happens to my file?
It is sent to Klarbon's servers, validated in memory and deleted after the request. Klarbon keeps no copy. See what happens to my files.
What does it cost?
Free: five checks a day without an account, twenty with a free account, up to 2,000 a day on Pro and Bookkeeper. See prices.
Related
Frequently asked questions
How do I validate a ZUGFeRD invoice?
Upload the PDF to Klarbon's ZUGFeRD validator. It checks that the PDF carries the invoice XML correctly, then validates the XML against the selected ZUGFeRD profile rules, and reports returned findings with guidance where available.
Which ZUGFeRD profiles are checked?
The profile the file declares, MINIMUM, BASIC WL, BASIC, EN 16931 or EXTENDED. XRECHNUNG is not a separate supported hybrid-profile checking target. The report names the profile and version it used.
Is a ZUGFeRD MINIMUM file a valid e-invoice in Germany?
No. The Federal Ministry of Finance does not count the MINIMUM and BASIC WL profiles as e-invoices, because they lack the invoice lines.
Can I check just the XML from a ZUGFeRD PDF?
Yes. Upload the XML file on its own and it is checked as CII against its profile. The PDF container checks are then skipped.
Are ZUGFeRD and Factur-X checked the same way?
Yes. ZUGFeRD 2 and Factur-X 1 are technically the same format, so the same checks apply.
Sources
- FeRD, ZUGFeRD ferd-net.de
- German Federal Ministry of Finance, E-Rechnung FAQ bundesfinanzministerium.de
Related
Also as an API: ZUGFeRD and Factur-X API