All compliance tools
Factur-X / ZUGFeRD Free, no account

Factur-X Validator

Upload a PDF or XML file to check whether it complies with the Factur-X (French) or ZUGFeRD (German) e-invoicing standard. The validator detects the profile automatically and reports every rule violation.

Generate a validator-passing invoice

SealDoc generates an EN 16931-compliant Factur-X invoice and validates it instantly. Download the PDF/A-3B and inspect the embedded CII XML.

No account required. Not persisted. Rate-limited per IP.

or validate your own file

Drop a Factur-X PDF or CII XML here

PDF or XML, up to 10 MB. Drag and drop or click to choose.

No account required. Files are auto-deleted within 24 hours. Only a hashed IP is stored for rate-limiting.

What is Factur-X?

Factur-X is the French national e-invoicing standard, technically identical to the German ZUGFeRD 2.x. Both are hybrid invoice formats: a human-readable PDF/A-3 file with a machine-readable CII XML file embedded inside.

The embedded XML follows the EN 16931 European invoice standard (CEN/TC 434). This means a valid Factur-X invoice is also a valid cross-border EU e-invoice.

France mandates Factur-X for B2B invoicing from 1 September 2026 (receive) and phases in the send obligation through 2027. Germany accepts ZUGFeRD as an alternative to XRechnung for B2B from 2025.

Common validation errors

  • PDF is not PDF/A-3 conformant (required for embedding)
  • Missing BT-9 (payment due date) in BASIC and above
  • Seller VAT number absent or wrong format
  • Tax category code missing from line items
  • Invoice total does not match sum of line items
  • Attachment not named "factur-x.xml" (FR) / "zugferd-invoice.xml" (DE)

Factur-X profiles

Each profile is a strict superset of the one below it. The validator detects which profile a document claims and checks it against the rules for that exact profile.

Profile Detail level Typical use
MINIMUM Lowest Legally required fields only. No line-level detail. Suitable for simple invoices with a single tax rate.
BASIC WL Low All header-level data, no line items. Common for services billed as a lump sum.
BASIC Medium Line items included. The most common profile for standard B2B invoices.
EN 16931 High Full EN 16931 implementation. Required for many government buyers and Peppol submissions.
EXTENDED Highest All EN 16931 fields plus Factur-X-specific extensions. Used for complex multi-party invoicing.

Automate Factur-X generation and validation via API

The SealDoc API generates valid Factur-X PDF/A-3 invoices from JSON in one call. The embedded CII XML is generated, validated, and stamped with an RFC 3161 timestamp from an EU-qualified TSA before the document is sealed.

  • POST /api/invoices/generate — JSON in, sealed Factur-X PDF/A-3 out
  • POST /api/public/validate — validate any Factur-X or ZUGFeRD file
  • GET /api/documents/{id}/evidence — download the full Legal Evidence Pack
POST /api/invoices/generate
{
  "seller": {
    "name": "Acme B.V.",
    "vat": "NL123456789B01"
  },
  "buyer": {
    "name": "Client S.A.",
    "vat": "FR12345678901"
  },
  "lines": [
    {
      "description": "Consulting Q2 2026",
      "quantity": 1,
      "unitPrice": 5000.00,
      "vatRate": 21
    }
  ],
  "profile": "EN16931",
  "retentionPolicy": "BUSINESS_7Y"
}