Factur-X & ZUGFeRD Validator

A free Factur-X validator online: upload a Factur-X / ZUGFeRD PDF or its CII XML. We check the PDF and the embedded XML against the official rules of its profile, from MINIMUM to EXTENDED. Instant results, no signup.

Looking for the Peppol Validator for BIS 3.0?

Checks: EN16931 1.3.16 and Peppol BIS Billing 3.0.20 for UBL · EN16931 1.3.16 for CII · XRechnung 3.0.2 (KoSIT schematron 2.6.0) · Factur-X 1.09.2 / ZUGFeRD 2.5.2 · XML Schema UBL 2.1, CII D16B and Factur-X · last updated 20 October 2026

Schemas: Factur-X / ZUGFeRD MINIMUM · Factur-X / ZUGFeRD BASIC WL · Factur-X / ZUGFeRD BASIC · Factur-X / ZUGFeRD EN 16931 · Factur-X / ZUGFeRD EXTENDED · EN 16931 CII (Factur-X / ZUGFeRD XML) · XRechnung 3.0 (CII)

No invoice?

Which rules does ZUGFeRD and Factur-X validation check?

A Factur-X / ZUGFeRD invoice is checked with the official Factur-X 1.09.2 / ZUGFeRD 2.5.2 files of its profile, published by FNFE-MPE and FeRD. The CEN EN16931 schematron does not run separately: the profile schematron already contains the EN16931 rules the profile has.

1

Profile XSD

The XML Schema of the profile, for example FACTUR-X_EXTENDED.xsd. It allows only the profile's elements, in the right order and with the right data types. Each schema error comes with line and column.

2

EN16931 Business Rules

The EN16931 rules the profile has, with the same IDs as the CEN rules: mandatory fields, calculation checks and VAT category logic. Rules prefixed BR-, BR-CO-, BR-DEC-. EXTENDED adds rules for its extra fields, prefixed BR-FXEXT-.

3

Profile Structure and Code Lists

The profile's own rules for its structure and for currency, country, unit and other codes. Rules prefixed FX-SCH-A-. Elements the profile does not use are reported as notes, not errors.

An XRechnung in CII (BT-24 contains urn:xeinkauf.de:kosit:xrechnung_3.0) gets the UN/CEFACT CII D16B schema, the CEN EN16931 rules and the KoSIT rules (BR-DE-) instead. A CII file with any other specification identifier, or standalone XML with the plain urn:cen.eu:en16931:2017, gets CII D16B and the CEN EN16931 rules.

Factur-X / ZUGFeRD profiles

The profile is declared in the specification identifier (BT-24), in ram:GuidelineSpecifiedDocumentContextParameter/ram:ID. ZUGFeRD 2.0 uses urn:zugferd.de:2p0: instead of urn:factur-x.eu:1p0:; both are recognised.

The EN 16931 profile uses the plain EN 16931 identifier urn:cen.eu:en16931:2017. Inside a Factur-X / ZUGFeRD PDF, the XML with this identifier gets the Factur-X EN 16931 rules. Uploaded as XML on its own, the same file is checked as an EN16931 CII invoice: the UN/CEFACT CII D16B schema and the CEN EN16931 rules.

ProfileSpecification identifier (BT-24)Rules
MINIMUMurn:factur-x.eu:1p0:minimumMINIMUM rules
BASIC WLurn:factur-x.eu:1p0:basicwlBASIC WL rules
BASICurn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basicBASIC rules
EN 16931 (COMFORT)urn:cen.eu:en16931:2017EN 16931 (COMFORT) rules
EXTENDEDurn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extendedEXTENDED rules

MINIMUM and BASIC WL are not EN16931 invoices, and in Germany they are not an e-invoice. A file that passes is valid for its profile only. Sample XML per profile: MINIMUM, BASIC WL, BASIC, EN 16931 and EXTENDED.

What the PDF check covers

Upload a Factur-X / ZUGFeRD PDF and we check the PDF first, then the embedded XML with the rules of its profile. Both go into one result.

  • Embedded XML: one invoice XML, named as the standard says (factur-x.xml, xrechnung.xml or zugferd-invoice.xml).
  • File specification: AFRelationship, the entry in the catalog /AF array and the MIME type text/xml.
  • XMP metadata: DocumentType, DocumentFileName, Version and ConformanceLevel. The ConformanceLevel must match the profile of the XML (BT-24).
  • PDF/A-3 (basic check): the PDF/A-3 identification, the PDF/A extension schema, embedded fonts and an output intent for device colours. No encryption.

Not checked: a full PDF/A validation as veraPDF does it, whether the visible PDF text matches the XML, digital signatures, the French EXTENDED-CTC-FR profile with its BR-FR rules, and ZUGFeRD 1.0.

Each finding has a rule ID from PDF-01 to PDF-21; see the ZUGFeRD / Factur-X PDF rules. Sample files: Factur-X EN 16931 PDF, ZUGFeRD 2.0 BASIC PDF and ZUGFeRD XRECHNUNG PDF.

CII vs UBL at a glance

CII (Factur-X)UBL (Peppol)
Root elementCrossIndustryInvoiceInvoice / CreditNote
Standard bodyUN/CEFACTOASIS
EN16931 bindingCII syntax bindingUBL syntax binding
Used byFactur-X, ZUGFeRD, XRechnungPeppol, XRechnung
Namespace prefixrsm: / ram:cac: / cbc:

Questions

What is Factur-X?

Factur-X (also written FacturX or Factur X) is the Franco-German e-invoicing standard based on the Cross-Industry Invoice (CII) XML format. It embeds a structured CII XML file inside a PDF/A-3, making invoices both human-readable and machine-processable. From the BASIC profile up, a Factur-X invoice complies with the European EN16931 standard.

What is the difference between Factur-X and ZUGFeRD?

They are the same standard. ZUGFeRD 2.x (Germany) and Factur-X (France) merged into a single specification. ZUGFeRD 2.0 and later are technically identical to Factur-X. Both use CII XML inside PDF/A-3 and comply with EN16931.

What is CII (Cross-Industry Invoice)?

CII is a UN/CEFACT XML format for electronic invoices, defined under the CrossIndustryInvoice schema. It is one of two syntaxes supported by EN16931 (the other being UBL 2.1). CII uses a different XML namespace and element structure than UBL. For example, seller information is in ram:SellerTradeParty instead of cac:AccountingSupplierParty.

How does CII validation differ from UBL / Peppol validation?

A Factur-X / ZUGFeRD invoice is checked against the XSD and schematron of its profile. The schematron contains the EN16931 business rules (BR-*) with the same IDs as for UBL, CII syntax rules (CII-SR-*) and the profile's own rules (FX-SCH-A-*). XRechnung CII and other CII files, including XML uploaded on its own with the plain EN 16931 identifier urn:cen.eu:en16931:2017, get the CEN EN16931 rules for CII. There is no Peppol BIS layer for CII since Peppol uses UBL exclusively. The business rules are equivalent; only the XML paths differ.

What Factur-X profiles exist?

Factur-X defines five profiles in increasing order of data richness: Minimum, Basic WL (without lines), Basic, Comfort (EN16931), and Extended. The Comfort profile corresponds exactly to the EN16931 semantic model. This validator detects the profile from the specification identifier (BT-24) and checks each file against the official XSD and schematron of its profile (Factur-X 1.09.2 / ZUGFeRD 2.5.2). A Minimum or Basic WL file gets no errors for data its profile leaves out, but it is still not an EN16931 invoice. Extended files are checked including their extra fields (BR-FXEXT-*).

How do I validate ZUGFeRD online or test a Factur-X PDF?

Use this page as a free ZUGFeRD validator online. Upload the Factur-X / ZUGFeRD PDF as it is, or its CII XML. For a PDF, the validator checks the embedded XML (factur-x.xml), the XMP metadata and PDF/A-3 (basic check), then checks the XML against the XSD and schematron of its profile, from MINIMUM to EXTENDED. One result shows both.

Is the PDF/A-3 check a full PDF/A validation?

No. It is a basic check: PDF/A-3 identification, extension schema, embedded fonts and an output intent for device colours. For a full PDF/A validation use veraPDF. The validator does not compare the visible PDF text with the XML.

Is Factur-X mandatory in France?

France is rolling out mandatory B2B e-invoicing in phases starting September 2026 for large enterprises, with full coverage by 2027. Factur-X is one of the accepted formats alongside UBL and the national Chorus Pro platform.

Is ZUGFeRD mandatory in Germany?

Germany made structured e-invoicing mandatory for B2B transactions from January 2025 (receiving) with sending obligations phased in through 2028. ZUGFeRD from version 2.0.1 (profile BASIC or higher) and XRechnung (UBL or CII) are both accepted formats.

What is XRechnung and how does it relate to CII?

XRechnung is Germany's national e-invoicing standard built on EN16931. It supports both UBL 2.1 and CII syntaxes. XRechnung adds German-specific business rules (BR-DE-*) on top of the base EN16931 rules. When a CII file carries the XRechnung identifier (urn:xeinkauf.de:kosit:xrechnung_3.0), this validator also runs the official KoSIT XRechnung rules (BR-DE-*) instead of only EN16931. For a binding check, use the official KoSIT validator.

Validating Peppol UBL invoices instead? Use the free Peppol Validator

Factur-X & ZUGFeRD by country

Factur-X and ZUGFeRD are the same standard under different names. Both embed EN16931-compliant CII XML inside a PDF/A-3 document.

France: Facturation électronique obligatoire 2026

La France impose la facturation électronique B2B à partir de septembre 2026 pour les grandes entreprises, puis en 2027 pour les ETI et PME. Factur-X est l'un des formats acceptés avec UBL 2.1. Les factures doivent être conformes à la norme EN16931. En savoir plus sur la facturation électronique en France

Deutschland: E-Rechnungspflicht ab 2025

Deutschland hat die E-Rechnungspflicht für B2B eingeführt: Empfangspflicht seit Januar 2025, Versandpflicht ab 2027/2028. ZUGFeRD ab Version 2.0.1 (ab Profil BASIC) und XRechnung sind akzeptierte Formate. Mehr zur E-Rechnungspflicht · ZUGFeRD-Leitfaden · ZUGFeRD Validator

Related