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.
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"
}