Automation MCP Server Features Blog Pricing Contact
Factur-X 1.0.8 · PDF/A-3 + embedded CII · 5 profiles

Factur-X API for hybrid PDF/A-3 invoices

A Factur-X invoice is two documents in one file: a PDF anyone can open, and CII XML their software ingests. Tooling that runs one rule set across the whole ladder gets it wrong, failing EXTENDED invoices for using extended fields. InvoiceXML detects the declared profile and validates against that profile's own schema and rules, MINIMUM through EXTENDED, from the official 1.0.8 package. And with the French reform dated September 2026, the rules keep themselves current.

POST /v1/create/facturx · branded, French face
curl -X POST https://api.invoicexml.com/v1/create/facturx \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{ "invoice": { ... },
       "options": { "language": "fr", "brandColor": "#234E52" } }'
200 OK · one file, two layers
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: attachment;
  filename="invoice-facturx-2026-0184.pdf"

# validated CII inside, rendered PDF outside
One file, two readers

A PDF for people, CII for machines

The hybrid's whole point is that nobody has to choose. Your customer's accountant opens an invoice; their ERP parses a data set. You control each layer independently.

The visual layer

Use our rendered invoice face in English, German, or French, with your brand color on headings and accents. Or skip our template entirely: hand us your own PDF via options.pdfUrl (up to 20 MB) and we embed the XML into it. Your design, our compliance.

language: en | de | fr brandColor: #RRGGBB pdfUrl: https://...

The data layer

You post BT-first JSON; we compute totals, VAT breakdowns, and defaults, build the CII XML, and validate it against the full rule set before the file leaves the API. The identifier stamped into the XML is the rule set it survived, so receivers parse with confidence.

totals computed validated before delivery stamp = validation
The profile ladder

Five profiles, each judged by its own rulebook

The ladder runs from header-only MINIMUM to everything-included EXTENDED. Validation reads BT-24 from the embedded XML and applies that profile's XSD and Schematron, so a document is only ever measured against the rules it claims.

Profile What the XML carries Identifier detected (BT-24) What we run
MINIMUM The bare bones to book: parties and totals, no line items urn:factur-x.eu:1p0:minimum The MINIMUM-restricted XSD plus its own rule set (1.0.8)
BASIC WL Richer header data with document-level charges, still no lines urn:factur-x.eu:1p0:basicwl The BASIC WL XSD plus its own rule set
BASIC A complete invoice with line items, an EN 16931 subset ...en16931:2017#compliant#urn:factur-x.eu:1p0:basic The BASIC XSD plus the BASIC rules
EN 16931 The full European core data set urn:cen.eu:en16931:2017 CEN artifacts 1.3.16
EXTENDED Beyond the core: extra structures for complex billing ...en16931:2017#conformant#urn:factur-x.eu:1p0:extended The EXTENDED XSD plus the EXTENDED rules; extended fields are never a failure
Legacy identifiers from the zugferd.de (2p0) family map to the same profiles, exactly as the official 1.0.8 code lists specify. Unknown identifiers get the EN 16931 rules plus a PROFILE-DETECTION warning. Documents declaring XRechnung route to the KoSIT rules instead; that world has its own home on the XRechnung hub.
Reform autopilot

France set the dates. We keep the rules.

Factur-X is published jointly by FNFE-MPE in France and FeRD in Germany, and the French reform made it a core format. We vendor the official 1.0.8 validation package unmodified, per-profile XSD plus Schematron, regression-test it against the publishers' own sample sets, and apply specification updates on their effective dates, server-side. Your integration posts the same JSON the day before and the day after.

Check the versioning policy and the artifacts live today
Mark the calendar
September 2026

Every French business must be able to receive e-invoices; large and mid-size ones must issue. Issuance for everyone follows in September 2027.

facturx language: fr Tracked
Inside the PDF

We open the envelope before judging the letter

Validating a hybrid means finding the XML first. Every attachment name the family uses is recognized, the document is extracted, its profile detected, and only then do rules run. Each finding still carries the layer that objected.

factur-x.xmlThe standard attachment name of the format.
zugferd-invoice.xmlThe legacy name older German systems still produce.
xrechnung.xmlThe XRechnung reference profile, routed to the KoSIT rules.

No XML inside returns a PDF-EMBED finding. UBL inside returns PDF-EMBED-SYNTAX with directions, never a cryptic schema error.

422 · the XML inside failed EN 16931
{
  "valid": false,
  "data": {
    "hasEmbeddedXml": true,
    "profile": "en16931",
    "customizationId": "urn:cen.eu:en16931:2017"
  },
  "errors": [
    {
      "rule": "BR-CO-14",
      "layer": "en16931",
      "message": "The invoice total VAT amount does
        not match the sum of VAT breakdown
        amounts. Check that all VAT
        calculations are consistent.",
      "btCodes": ["BT-110", "BT-117"],
      "fields": ["totals.taxTotalAmount",
                 "vat[].taxAmount"]
    }
  ]
}
Coverage

Built for the French timeline, at home beyond it

The reform routes domestic flows through registered platforms (the PDP ecosystem) with Factur-X as a core format, while B2G stays on Chorus Pro. The same file is equally legal east of the Rhine.

France · B2G today
Chorus Pro receives public-sector invoices; Factur-X is accepted
facturx
France · September 2026
Everyone receives; large and mid-size businesses start issuing
facturx
France · September 2027
Issuance becomes mandatory for every business
facturx
Germany
The same family as ZUGFeRD; e-invoice reception mandatory since 2025
zugferd

B2G submission runs through Chorus Pro, and the European baseline is Directive 2014/55/EU. The country-by-country picture lives on the Mandate Map.

FAQ

Before you build the hybrid pipeline

01Is Factur-X the same as ZUGFeRD?
Technically the formats are aligned: one Franco-German standard, published jointly by FNFE-MPE and FeRD, and the official rules even accept both identifier families. We expose dedicated ZUGFeRD endpoints for the German workflow; this page is the French, hybrid-PDF view of the same engine.
02Which Factur-X profiles do you support?
All five: MINIMUM, BASIC WL, BASIC, EN 16931, and EXTENDED. Each is detected from the embedded XML's BT-24 identifier and validated against its own per-profile XSD and Schematron from the official 1.0.8 package. Legacy zugferd.de identifiers map to the same profiles.
03Can I use my own PDF as the visual layer?
Yes. Pass options.pdfUrl (an absolute URL, up to 20 MB) and we fetch your PDF with SSRF, size, and content-type protections, then embed the validated CII XML into it. The language and brandColor options only affect our rendered template, so they are ignored on this path.
04Do you check PDF/A-3 container conformance?
Hybrids we generate are PDF/A-3 conformant by construction. Validation audits the embedded XML's business layer: schema plus the declared profile's rules. It does not container-audit uploaded PDFs (fonts, ICC profiles, XMP), so pair us with a dedicated PDF/A tool if you need that depth.
05What happens if the PDF has no XML inside, or the wrong kind?
A PDF without an invoice attachment returns a clear PDF-EMBED finding. A PDF carrying UBL instead of CII returns PDF-EMBED-SYNTAX with directions to the UBL validator. Recognized attachment names: factur-x.xml, zugferd-invoice.xml (legacy), and xrechnung.xml (the reference profile).
06Is Factur-X ready for Chorus Pro and the 2026 reform?
Factur-X is a core format of the French reform, and Chorus Pro handles B2G submission. From September 2026 every business must receive e-invoices and large and mid-size ones must issue; from September 2027 issuance applies to everyone. The rules running here update on those effective dates, server-side.
Start free today

Ready to automate your invoices?

Validate, convert and embed compliant e-invoices through one API. Start your 30-day free trial. No credit card required.

GDPR Compliant No credit card required Setup in minutes
Peppol UBL
Factur-X
EN 16931
142 / 142 passed
Compliant
PDF/A-3 embedded