Validate a ZUGFeRD or Factur-X invoice
Check a ZUGFeRD or Factur-X PDF in three parts: the PDF/A, the embedded invoice and its metadata, and the invoice XML against the official ZUGFeRD 2.5.2 profile rules. Or check the XML on its own.
- Free to use
- No signup required
- Invoice not stored
or drop your invoice here
PDF or XMLPDF up to 20 MiBXML up to 5 MiB
No file to hand? Try a fictional sample:
The samples are fictional ZUGFeRD 2.5 invoices: every party, identifier and account in them is invented. Invoice PDF, EN 16931, Invoice PDF with two mistakes, Invoice XML only, EN 16931
It goes from your browser to Ironfang's servers in the UK, where it is processed and not stored. The result is shown here and not kept.
How your file is handled
- Your PDF or XML is sent only when you choose to validate it, or to download the XML it embeds. A sample sends only that sample.
- It goes from your browser to Ironfang's servers in the UK, where it is processed and not stored. The result is shown here and not kept.
- Content-free request and security metadata, including your IP address, may be kept for up to 90 days.
- Anonymous rate limits apply. The largest PDF accepted is 20 MiB, the largest XML 5 MiB.
- See the privacy policy.
Need automated checks? Validate ZUGFeRD and Factur-X in your application
A concrete example
The PDF with two mistakes is our EN 16931 sample with one error in the PDF and one in the XML. Its metadata names the profile EN16931, but Factur-X writes it EN 16931, so the attachment check reports FW-HYB-010. Its grand total is 10.00 too high, so the profile rules report BR-CO-15.
What is checked
The PDF/A
The PDF is checked with veraPDF against the PDF/A conformance it declares. A hybrid invoice must declare PDF/A-3, or PDF/A-4f.
The attachment and its metadata
FeRD's rules for the hybrid container: the invoice is an associated file with a permitted relationship, name and media type, and the Factur-X metadata declares the XML's own profile, the embedded file's name, the document type INVOICE and a Factur-X version.
The invoice XML
The embedded XML is read, checked against the schema of its profile, and then against the official ZUGFeRD 2.5.2 Schematron for that profile, including the EN 16931 business rules the profile applies.
Supported versions and profiles
- ZUGFeRD 2.5.2, the same standard as Factur-X 1.09.2, in UN/CEFACT CII D22B.
- The MINIMUM, BASIC WL, BASIC, EN 16931 and EXTENDED profiles, read from the specification identifier in the XML.
- Invoices and credit notes, as a PDF with the invoice embedded or as the XML on its own.
- The XRECHNUNG profile is recognised and reported as not supported yet, never checked as something else.
What a pass does not cover
- Whether the visible PDF shows the same invoice as its XML. The XML is the invoice data; what the page shows is not compared with it.
- Digital signatures on the PDF.
- For MINIMUM and BASIC WL, the full EN 16931 content: those profiles do not carry a complete invoice.
- For XML sent on its own, anything about a PDF.
Reading the invoice
To read a ZUGFeRD or Factur-X invoice as a document, with its parties, lines and totals, download its embedded XML from the result and open it in the XRechnung viewer, which reads the CII XML of ZUGFeRD and Factur-X too.
Open the XRechnung viewerIronfang Finance API
Validate ZUGFeRD and Factur-X in your application
Run the same checks through the Ironfang Finance API, on PDFs or XML, and handle the findings in your own workflow.
- The same outcome, check groups and findings as JSON, with the exact release and both engines that checked the document.
- Signed-in results are kept for 30 days, and an Idempotency-Key makes a retry return the same result without charging again.
- XRechnung and Peppol BIS Billing 3 validation are available through the same API.
Questions
- Which invoices can I check?
- A ZUGFeRD or Factur-X invoice or credit note in the MINIMUM, BASIC WL, BASIC, EN 16931 or EXTENDED profile of ZUGFeRD 2.5.2 (Factur-X 1.09.2): as a PDF with its XML embedded, up to 20 MiB, or as the XML on its own, up to 5 MiB. One document at a time.
- Do I need an account?
- No. The validator on this page is free to use without signing up, within anonymous rate limits. An account is only needed to run the same checks through the API.
- What happens to my file?
- It is sent to Ironfang's servers in the UK only when you choose to validate it, or to download the XML it embeds, processed there and not stored. Content-free request and security metadata, including your IP address, may be kept for up to 90 days.
- What does a pass mean?
- That the automated checks of the named release found no error: in the PDF/A, the attachment and its metadata, and the XML for a PDF, or in the XML alone. It does not compare what the PDF shows with its XML, does not check signatures, does not certify the invoice and does not send it anywhere.
- What is the difference between ZUGFeRD and Factur-X?
- None in the invoice itself: ZUGFeRD 2.5.2 and Factur-X 1.09.2 are the same German-French standard, published by FeRD and FNFE-MPE. A ZUGFeRD PDF and a Factur-X PDF are checked in exactly the same way.
- Can I check an XRechnung?
- An XRechnung in UBL or CII is checked by the XRechnung validator. A ZUGFeRD PDF using the XRECHNUNG profile is recognised here and reported as not supported yet.
- Can I get the XML out of the PDF?
- Yes. After a PDF is validated, Download the embedded XML takes the invoice XML out of the PDF byte for byte, the same XML that was checked.
Related
- ZUGFeRD guideThe profiles, the PDF checks, the V2 API for PDFs and XML, and reading the result.
- XRechnung validatorCheck an XRechnung in UBL or CII against the official XRechnung rules.
- XRechnung viewerOpen CII or UBL invoice XML, including the XML of a ZUGFeRD PDF, as a readable document.
- Ironfang Finance APIValidation as JSON, results kept for 30 days, plans and pricing.
