Free Factur-X & ZUGFeRD Validator (PDF + CII XML)

Validate Factur-X and ZUGFeRD 2.x PDF/A-3 invoices and their embedded CII XML against the official 1.08 schematron — all five profiles (MINIMUM, BASIC-WL, BASIC, EN 16931, EXTENDED). Upload the PDF directly. Free, no signup, instant report.

How the Factur-X / ZUGFeRD validator works

1

Upload the PDF (or raw CII XML)

Drop the Factur-X / ZUGFeRD PDF/A-3 file in. The server extracts the embedded factur-x.xml / ZUGFeRD-invoice.xml attachment automatically. If you only have the raw CII XML, you can upload that too.

2

Auto-detect profile, run profile rules

The validator reads the CustomizationID URN, identifies the profile (MINIMUM, BASIC-WL, BASIC, EN 16931 or EXTENDED) and applies the matching official Factur-X 1.08 schematron — including codelist enumerations (ISO 4217 currency, ISO 3166 country, UNCL codes).

3

Read the report and view extracted XML

See the profile name, rule IDs with their plain-English descriptions, and the extracted CII XML so you can inspect the actual invoice content embedded in the PDF. Re-upload after fixing — the validator runs again instantly.

What the Factur-X validator covers

All 5 conformance profiles

MINIMUM (header info only, no line items), BASIC-WL (without line items), BASIC (EN 16931 subset), EN 16931 (full European core, also called COMFORT), and EXTENDED (superset with additional UN/CEFACT structures). Each profile has its own schematron — the validator applies the right one based on the declared URN.

PDF extraction (PDFBox-powered)

The server uses Apache PDFBox to locate the embedded XML attachment in the PDF's /Names EmbeddedFiles tree or the /AF associated-files array (the PDF/A-3 way). Filename matching is case-insensitive and accepts factur-x.xml, ZUGFeRD-invoice.xml and xrechnung.xml.

Codelist enumerations

ISO 4217 currency codes, ISO 3166-1 alpha-2 country codes and UN/EDIFACT (UNCL) code lists for payment means, units of measure, document types and VAT categories — all validated against the official enumerations inlined in the compiled schematron.

Calculation and VAT logic

Line totals, tax breakdowns by category, charges, allowances, prepaid amounts and the final payable amount are all recalculated and cross-checked. VAT category logic (S, Z, E, AE, K, G, O) is validated per the EN 16931 BR-S-*, BR-Z-* etc. rules.

Factur-X vs ZUGFeRD — what's the difference?

Practically nothing. Factur-X 1.x and ZUGFeRD 2.x are the same format, defined jointly by France's FNFE-MPE and Germany's FeRD. Both use UN/CEFACT Cross Industry Invoice (CII) XML embedded in a PDF/A-3 wrapper. They share the same XML schema, the same five profiles and the same schematron rules. The only differences are branding and the specific code-list versions referenced by each profile. Any tool validating one validates the other — including aiDoks.

Factur-X is the mandated B2G format in France via Chorus Pro and becomes mandatory for B2B exchanges between French companies progressively from 2026. ZUGFeRD has been the dominant German hybrid format alongside XRechnung for almost a decade. If you exchange invoices in either market, your invoice must pass the validation rules — non-compliant invoices are rejected at the portal and never reach the buyer.

Common Factur-X validation errors

  • BR-01 — Mandatory field missing. Each profile has its own mandatory-field list; MINIMUM is the shortest, EXTENDED the longest. The error message names the missing element.
  • BR-CL-01 — Code-list value not in the official enumeration. Common offender: a currency code that does not exist in ISO 4217, or a UN/ECE Rec 20 unit code that has been retired.
  • BR-CO-13 — Tax total amount mismatch. Sum of tax-category subtotals must equal the document-level TaxTotalAmount.
  • BR-DEC-XX — Wrong number of decimal places. CII amounts must use 2 decimals for monetary totals, 4 for unit prices.
  • FX-SCH-A-XX — Profile-specific Factur-X schematron error. The error message names which profile rule fired and what value was expected.

Validating PDFs from any tool

Whether the PDF was generated by Mustangproject, akretion's factur-x library, SAP Document Compliance, DATEV, Lexware, Sage, Quadient AP, or your own PDFBox-based pipeline — if the PDF/A-3 contains an embedded CII XML attachment with a recognised filename, the aiDoks validator extracts and validates it. Useful for QA-ing your own Factur-X output before sending, and for verifying supplier invoices before importing them into accounting.

Factur-X / ZUGFeRD validator: FAQ

Was ist Factur-X und wie hängt es mit ZUGFeRD zusammen?

Factur-X ist der deutsch-französische Hybrid-E-Rechnungsstandard: eine PDF/A-3-Datei mit einem menschenlesbaren Rechnungslayout UND einer maschinenlesbaren CII-XML-Rechnung darin eingebettet. ZUGFeRD 2.x und Factur-X 1.x sind technisch identisch – selbe XML, selbe Profile. Factur-X ist B2G-Pflicht in Frankreich (Chorus Pro) und B2B-Pflicht ab 2026; ZUGFeRD wird in Deutschland neben XRechnung weit verbreitet eingesetzt. Laden Sie die PDF hoch und der Validator extrahiert die eingebettete XML automatisch.

Welche Factur-X-Profile werden validiert?

Alle fünf Konformitätsprofile: MINIMUM, BASIC-WL (ohne Positionen), BASIC, EN 16931 (auch COMFORT genannt) und EXTENDED. Der Validator erkennt das deklarierte Profil und wendet den korrekten Regelsatz an – eine MINIMUM-Rechnung wird nur gegen MINIMUM-Regeln geprüft, eine EXTENDED-Rechnung erhält den vollständigen EN 16931-Basissatz plus EXTENDED-Ergänzungen.

Kann ich das PDF direkt hochladen oder muss ich die XML selbst extrahieren?

PDF direkt hochladen. Der Server verwendet Apache PDFBox, um die eingebettete factur-x.xml / ZUGFeRD-invoice.xml-Anlage zu finden, extrahiert die CII-XML und validiert sie gegen das passende Profil-Schematron. Die extrahierte XML wird in der Antwort ebenfalls zurückgegeben, falls Sie sie inspizieren möchten.

Funktioniert der Validator für ZUGFeRD 1.x oder nur Factur-X / ZUGFeRD 2.x?

Factur-X 1.x und ZUGFeRD 2.x (das gleiche Format) werden vollständig unterstützt. ZUGFeRD 1.x ist ein älteres Format mit einem anderen XML-Namespace und wird derzeit nicht validiert – die meisten deutschen Produzenten sind bereits auf 2.x / Factur-X migriert.

Ist der Factur-X-Validator kostenlos?

Ja, kostenlos und ohne Konto. Laden Sie eine Factur-X / ZUGFeRD-PDF hoch und erhalten Sie sofort den vollständigen Validierungsbericht mit Profilname, Regel-IDs und verständlichen Fehlerbeschreibungen.

Welcher Regelsatz treibt die Validierung an?

Der Validator lädt die offiziellen Factur-X 1.08-Schematron-Dateien (eine pro Profil: MINIMUM, BASIC-WL, BASIC, EN 16931, EXTENDED) plus die EN 16931 CII-Basis. Codelisten-Aufzählungen (Währungscodes, Ländercodes, UNCL-Codes) werden ebenfalls geprüft. Derselbe Regelsatz wie bei den offiziellen FNFE-MPE- und ZUGFeRD-Validatoren.

Validate your Factur-X PDF in seconds

Free, anonymous, all 5 profiles and full codelist enumeration checks.