Check a Factur-X, ZUGFeRD or XRechnung invoice against EN 16931. Runs in your browser, so your invoice is never uploaded. Free, no account needed.
Drop a Factur-X PDF or an invoice XML here
or click to choose a file. Up to 15 MB.
Your file is validated in your browser. It is never uploaded.
Drop in a hybrid PDF or a standalone XML invoice and you get back the detected profile, every EN 16931 rule that failed with its rule ID and location, and a plain explanation of what to change. Most validators stop at the rule text. This one tells you what the rule is actually complaining about.
The validation runs in your browser. The rule engine and the CEN rules are downloaded to you, and your invoice never goes the other way. Open the network tab and check.
Factur-X is a hybrid invoice. It is a PDF/A-3 file a person can open and read, with the same invoice embedded inside it as machine-readable XML, named factur-x.xml. Your accounts payable software reads the XML, your supplier reads the page, and there is only one file to keep.
Germany calls the same format family ZUGFeRD. Since ZUGFeRD 2.1 and Factur-X 1.0 they are technically the same thing under two names, which is why this tool accepts both.
EN 16931 is the European standard behind all of it. It defines the semantic model of an invoice, which fields exist and what they mean, and a set of business rules the data must satisfy. Rules are identified as BR-* for business rules and BR-CL-* for code list rules, and those IDs are what you see in the report.
EN 16931 can be expressed in more than one syntax. The two that matter are CII, from UN/CEFACT, which is what Factur-X embeds, and UBL, from OASIS. This tool validates both.
France is phasing in mandatory B2B electronic invoicing on a confirmed timeline:
Accepted formats are UBL, CII and Factur-X, all conforming to EN 16931. If you are working towards either date, the useful question is not whether your file is a PDF but whether the XML inside it passes these rules.
Factur-X defines profiles that carry increasing amounts of data: MINIMUM, BASIC WL, BASIC, EN 16931 (also called COMFORT) and EXTENDED. XRechnung is a German CIUS, a narrowing of EN 16931 rather than a profile on the same scale.
The profile decides which rules apply, so getting it wrong changes the verdict. This tool reads it from BT-24, the specification identifier inside the XML, and shows you the raw URN alongside the friendly name.
A Factur-X file has to be right at three levels, and they fail independently:
Does the XML satisfy the EN 16931 business rules for its profile. This runs here, in your browser, and it is where most real problems are.
Is the XML attached correctly: the right filename, listed in the document catalog, with the right /AFRelationship, and metadata that agrees with the XML about the profile. Also checked here.
Is the PDF itself a conformant PDF/A-3 file. This needs veraPDF, which only exists as a Java library, so it cannot run in your browser. It is an opt-in step you choose to run, and it is the only part of this tool that uploads your file. Until you run it, we call a PDF partly checked rather than valid, because reporting a pass on a check that never ran is exactly the failure a compliance tool cannot afford.
This validator does not reimplement the standard. It runs the official rules, unmodified, and the work below is what makes that possible:
Copyright in each component belongs to its respective authors. Each is used under its own licence and provided without warranty.
Quaterio builds branded, paginated PDFs from your data via a REST API. Compliant Factur-X output is on the roadmap. Sign up free, or try one of the other tools.