France
Factur-X e-invoicing requirements for France, with Beliq configuration examples.
France commonly uses Factur-X. It is a hybrid PDF format (technically aligned with ZUGFeRD) that embeds CII D22B XML in a PDF/A-3 document. Beliq targets Factur-X 1.08 (the version in force since January 2026, jointly published with ZUGFeRD 2.x).
Factur-X is jointly maintained by the FNFE-MPE (France) and FeRD (Germany) and is fully aligned with EN 16931.
Factur-X 1.08 profiles
| Profile | Beliq value | Description | Status in Beliq |
|---|---|---|---|
| Minimum | minimum |
Minimal structured data — invoice number, date, and totals only | Supported (via Mustangproject — see secondary-source note below) |
| Basic WL | basicwl |
Header-level data without individual line items | Supported |
| Basic | basic |
Full header and line items | Supported (via Mustangproject — see secondary-source note below) |
| EN 16931 (Comfort) | en16931 |
Full EN 16931 compliance — recommended | Supported |
| Extended | extended |
Additional fields beyond EN 16931, with optional sub-line nesting | Supported |
| EXTENDED-CTC-FR | extended-ctc-fr |
EXTENDED + the French B2B reform CTC overlay (BR-FR-CTC + EXTENDED-CTC-FR Schematron) | Supported |
minimum and basicwl are reduced profiles (header-only, and without individual line items) and are not complete EN 16931 invoices. Pick them only when the receiver specifically expects that profile; see the format reference for the per-profile compliance breakdown.
For most use cases, en16931 is the recommended profile. Pick extended-ctc-fr when the receiver requires the French B2B reform CTC overlay.
MINIMUM and BASIC — secondary source
The FNFE-MPE / FeRD joint pack distributes the BASIC_WL, EN 16931 and EXTENDED Schematron and XSDs via direct download. The MINIMUM and BASIC profile artifacts are gated behind an email-request information package on the FNFE-MPE side. Beliq sources MINIMUM and BASIC Schematron and per-profile XSDs from Mustangproject core-2.22.0 (Apache-2.0) — Mustangproject is listed by FNFE-MPE itself as a recommended downstream consumer and re-publishes the same artifacts at matching upstream tags. The Mustangproject provenance is recorded with SHA-pinned per-file paths.
All five Factur-X 1.08 profiles run through the same XSD + Schematron pipeline; documents arriving with a MINIMUM, BASIC, BASIC_WL, EN16931, or EXTENDED CustomizationID are validated against the matching profile rules without operator intervention.
Promotion of any Factur-X profile to fully-verified in Beliq’s status taxonomy still requires a public negative unit-test corpus from FNFE-MPE — that gap is tracked as an upstream gap and reviewed quarterly. The current supported status reflects positive-corpus coverage plus T3 spec-derived, cross-validated negative fixtures.
Generating Factur-X invoices
Use standard: "facturx" with output: "pdf":
curl -X POST https://api.beliq.eu/v1/generate \
-H "Authorization: Bearer blq_live_abc123..." \
-H "Content-Type: application/json" \
-d '{
"standard": "facturx",
"profile": "en16931",
"output": "pdf",
"invoice": {
"number": "FA-2026-0123",
"issueDate": "2026-04-13",
"dueDate": "2026-05-13",
"currencyCode": "EUR",
"seller": {
"name": "Exemple SARL",
"vatId": "FR12345678901",
"email": "facturation@exemple.example",
"address": {
"street": "12 Rue de la Paix",
"city": "Paris",
"postalCode": "75002",
"countryCode": "FR"
}
},
"buyer": {
"name": "Client SAS",
"vatId": "FR98765432109",
"address": {
"street": "8 Avenue des Champs-Élysées",
"city": "Paris",
"postalCode": "75008",
"countryCode": "FR"
}
},
"lines": [
{
"description": "Prestation de conseil — Avril 2026",
"quantity": 5,
"unitCode": "DAY",
"unitPrice": 800.00,
"lineTotal": 4000.00,
"vatRate": 20,
"vatCategoryCode": "S"
}
],
"paymentMeans": {
"typeCode": "30",
"iban": "FR7630006000011234567890189",
"bic": "BNPAFRPPXXX"
},
"paymentTerms": "Net 30 jours",
"totalNetAmount": 4000.00,
"totalTaxAmount": 800.00,
"totalGrossAmount": 4800.00
}
}' --output facture.pdfXML output
To generate just the CII XML without the PDF wrapper:
curl -X POST https://api.beliq.eu/v1/generate \
-H "Authorization: Bearer blq_live_abc123..." \
-H "Content-Type: application/json" \
-d '{
"standard": "facturx",
"profile": "en16931",
"output": "xml",
"invoice": { ... }
}'French B2B reform (CTC) readiness
France’s B2B e-invoicing reform replaces unstructured invoices with EN 16931-compliant Factur-X documents transported through certified Plateformes Agréées (PA). The current legal timeline (DGFiP / AIFE) is:
| Date | What changes |
|---|---|
| 1 September 2026 | All businesses must be able to receive; large enterprises and mid-caps (ETI) must issue and e-report. |
| 1 September 2027 | Small and medium enterprises (PME) and micro-enterprises (TPE) must issue and e-report. |
The 1 September 2026 and 2027 calendar was reconfirmed in April 2025; a further delay was rejected. Dates can still move by decree, so re-confirm against DGFiP before relying on them.
Last verified against DGFiP / AIFE and the European Commission eInvoicing country page on 9 July 2026. Official source.
Always check the official impots.gouv.fr e-invoicing portal for the latest dates and the B2B “Spécifications externes” v3.2 for the full technical requirements.
What Beliq covers today
For the French B2B reform, Beliq generates Factur-X 1.08 documents that pass the FNFE-MPE BR-FR-CTC Flux 2 Schematron. Concretely:
- We emit Factur-X 1.08 / D22B documents (and PDF/A-3 hybrids) that satisfy the EN 16931 baseline.
- We validate against FNFE-MPE’s BR-FR-CTC Flux 2 Schematron (
france_ctc_schematron, currently 1.3.0) whenever the document carries an AFNOR XP Z12-012 Flux 2 BusinessProcess code (S8,B8,M8) or you opt in by sendingfranceCtc=true. - We additionally apply the EXTENDED-CTC-FR overlay when the document is in the EXTENDED profile and the CTC mode is on.
- The FR-specific structural fields (SIREN / SIRET on seller and buyer, French VAT codes, Flux 2 process codes, line-level legal IDs and parent-line linkage) are recognised by both the builder and the validator, with rule IDs surfaced in the validation result.
# Opt in to the BR-FR-CTC overlay when validating an existing document
curl -X POST 'https://api.beliq.eu/v1/validate?franceCtc=true' \
-H 'Authorization: Bearer blq_live_abc123...' \
-H 'Content-Type: application/xml' \
--data-binary @facture.xml// Generate a CTC-enabled invoice
{
"standard": "facturx",
"facturxProfile": "extended-ctc-fr",
"output": "pdf",
"invoice": {
/* …seller / buyer with SIREN/SIRET and FR VAT IDs, lines, totals… */
"franceCtc": true,
"businessProcessId": "B8"
}
}What Beliq does not do (transmission / Annuaire / e-reporting)
Beliq is not a Plateforme Agréée (PA) immatriculée operator and does not (yet) intermediate transmission through the AIFE network. Specifically, the following are out of scope of this release:
- Plateforme Agréée (PA) immatriculation with AIFE (a separate regulatory and operational program).
- Operating the AIFE Annuaire (recipient lookup) interface.
- The CDAR (Cross-Domain Acknowledgement and Response) message envelope used between Plateformes Agréées.
- E-reporting flows (Flux 8 / 9 / 10) used for transaction reporting to DGFiP.
If your workflow requires a registered Plateforme Agréée (PA) today, please pair Beliq’s compliant Factur-X output with a partner PA for transmission. Reach out if you would like us to track your PA requirements as we expand this work.
French VAT specifics
| VAT rate | Category code | Description |
|---|---|---|
| 20% | S |
Standard rate |
| 10% | S |
Intermediate rate |
| 5.5% | S |
Reduced rate |
| 2.1% | S |
Super-reduced rate |
| 0% | Z |
Zero-rated (e.g. intra-community supplies) |
| 0% | AE |
Reverse charge |
| 0% | E |
Exempt |
Use the appropriate vatRate and vatCategoryCode combination on each invoice line.
Parsing Factur-X invoices
Upload a Factur-X PDF to extract the embedded data:
curl -X POST https://api.beliq.eu/v1/parse \
-H "Authorization: Bearer blq_live_abc123..." \
-H "Content-Type: application/octet-stream" \
--data-binary @facture.pdfThe engine extracts the factur-x.xml attachment from the PDF and returns the normalized JSON invoice data.
Validation
Beliq validates Factur-X 1.08 invoices against:
- CII D22B XSD schema (the per-profile XSD subset is used when the document declares a Factur-X CustomizationID).
- EN 16931 core Schematron rules (currently v1.3.16).
- The Factur-X 1.08 profile-specific Schematron (BASIC_WL / EN16931 / EXTENDED), vendored from FNFE-MPE / FeRD.
- The FNFE-MPE BR-FR-CTC Flux 2 overlay when a Flux 2 BusinessProcess code (S8 / B8 / M8) is present or
franceCtc=trueis requested. - The FNFE-MPE EXTENDED-CTC-FR overlay on top of (4) when the document is in the EXTENDED profile.
See validation artifacts for the exact versions in use.
Resources
- Factur-X specification — official FNFE-MPE documentation
- DGFiP e-invoicing reform portal (impots.gouv.fr)
- EN 16931 business rules — CEN/TC 434 Schematron rules