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

¿Qué es Factur-X y cómo se relaciona con ZUGFeRD?

Factur-X es el estándar híbrido de factura electrónica franco-alemán: un archivo PDF/A-3 con un diseño de factura legible por humanos Y una factura XML CII legible por máquina incrustada dentro. ZUGFeRD 2.x y Factur-X 1.x son técnicamente idénticos — el mismo XML, los mismos perfiles. Suba el PDF y el validador extraerá el XML incrustado automáticamente.

¿Qué perfiles Factur-X se validan?

Los cinco perfiles de conformidad: MINIMUM, BASIC-WL (sin líneas), BASIC, EN 16931 (también llamado COMFORT) y EXTENDED. El validador detecta el perfil declarado y aplica el conjunto de reglas correcto para ese nivel.

¿Puedo subir el PDF directamente o necesito extraer el XML yo mismo?

Suba el PDF directamente. El servidor usa Apache PDFBox para encontrar el adjunto incrustado factur-x.xml / ZUGFeRD-invoice.xml, extrae el XML CII y lo valida contra el Schematron del perfil correspondiente.

¿El validador funciona para ZUGFeRD 1.x o solo Factur-X / ZUGFeRD 2.x?

Factur-X 1.x y ZUGFeRD 2.x (que son el mismo formato) son totalmente compatibles. ZUGFeRD 1.x es un formato antiguo con un espacio de nombres XML diferente y actualmente no se valida.

¿El validador Factur-X es gratuito?

Sí, gratuito y sin cuenta. Suba un PDF Factur-X / ZUGFeRD y obtenga al instante el informe de validación completo con el nombre del perfil, los IDs de las reglas y descripciones de errores comprensibles.

¿Qué conjunto de reglas impulsa la validación?

El validador carga los archivos Schematron oficiales de Factur-X 1.08 (uno por perfil: MINIMUM, BASIC-WL, BASIC, EN 16931, EXTENDED) más la base CII de EN 16931. También se comprueban las listas de códigos (códigos de moneda, de país, UNCL).

Validate your Factur-X PDF in seconds

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