ZUGFeRD validator: check e-invoices online

This demo shows the Facturexa.ZugferdValidator.dll in action.

Upload an invoice PDF or a ZUGFeRD XML file. For a PDF, the embedded XML is extracted and the PDF container is checked as well (PDF/A-3 + Factur-X); for an XML file the PDF check is skipped. The XML is then validated against the official rule sets.

🔒 Uploaded files are only validated in memory and are not stored (Privacy policy).

What the validator checks

  • ZUGFeRD and Factur-X: all profiles from MINIMUM to EXTENDED plus the XRechnung profile
  • XRechnung in CII and UBL syntax according to the KoSIT rules
  • XML schema (XSD) for CII invoices and the official Schematron: EN 16931, XRechnung and the ZUGFeRD profile rules
  • For PDF invoices, also the PDF container: PDF/A-3, XML embedding, file name and XMP metadata

Each finding states the rule ID, the message and – where available – the affected invoice field (BT number according to EN 16931).

Frequently asked questions about the online validation

Which files can I validate?

A ZUGFeRD or Factur-X PDF with embedded XML, or an XML file: ZUGFeRD/Factur-X or XRechnung in CII or UBL syntax, up to 15 MB each.

Are my invoices stored?

No. The file is only validated in the server’s memory and discarded afterwards. For testing, it is still best to use anonymised invoices or sample files.

What do error codes such as BR-CO-10 or BR-DE-15 mean?

These are the identifiers of the business rules: BR-… and BR-CO-… come from the European standard EN 16931, BR-DE-… from the national XRechnung rules. An error means the invoice is not compliant; warnings point out anomalies without affecting validity.

Which Schematron rules does the validator use?

The validator detects the invoice profile and selects the official Schematron rules accordingly. For XRechnung 3.0 and 1.2 these are the validation rules of KoSIT (the German Coordination Office for IT Standards), the same ones used by the KoSIT validator. They run in two stages: EN16931-CII-validation.xsl followed by XRechnung-CII-validation.xsl (for UBL, EN16931-UBL-validation.xsl and XRechnung-UBL-validation.xsl). The ZUGFeRD/Factur-X profiles use the rules from ZUGFeRD 2.5.2 / Factur-X 1.09.2: FACTUR-X_EN16931.xslt (EN 16931/Comfort), FACTUR-X_EXTENDED.xslt, FACTUR-X_BASIC.xslt, FACTUR-X_BASIC-WL.xslt and FACTUR-X_MINIMUM.xslt. Before the Schematron, the XML is checked against the official XML schema, and for ZUGFeRD PDFs the PDF container is checked as well (PDF/A-3, embedded XML, XMP metadata).

Can I integrate the validation into my own software?

Yes. The Facturexa Validator is a .NET library (NuGet package for .NET 10, .NET 8 and .NET Framework 4.8) and validates exactly like this page – fully offline, without uploading to a server.

More about the library: ZUGFeRD validator for .NET · Documentation