Dokmatiq DOKMATIQ

France e-invoicing mandate 2026/2027: the Y-model and Factur-X

From 1 September 2026, France introduces mandatory B2B e-invoicing. Large and mid-sized companies must send; every VAT-registered company must receive — via certified platforms (PDPs) under the so-called Y-model.

Affects: All VAT-registered companies in France engaged in B2B

In a nutshell

France introduces mandatory electronic B2B invoicing in phases starting 1 September 2026. The legal basis is the Loi de finances 2024 and decree 2024-266. France’s approach differs structurally from Germany’s: no direct point-to-point delivery — instead a Y-model with certified platforms in the middle.

The new mandate complements the existing B2G obligation via Chorus Pro, in force since 2017.

Timeline

DateWhat applies
since 2017Chorus Pro for B2G invoices to the French state
01 Sep 2026Receiving obligation for every VAT-registered company
01 Sep 2026Sending obligation for large (> 5,000 employees or > €1.5 B revenue) and mid-sized companies (> 250 employees or > €50 M revenue)
01 Sep 2027Sending obligation for small and micro companies (PME/TPE)
from 01 Sep 2026Parallel e-reporting obligation for B2C and cross-border transactions

After two postponements since 2023 the dates are now stable — another shift is politically possible, but 2026 and 2027 form the legally binding framework.

The Y-model

Unlike Germany’s “sender to recipient” approach (Peppol, email), every French B2B invoice passes through a certified system:

Sender (Emetteur)


PDP (Plateforme de Dématérialisation Partenaire)
   │           │
   │           └────▶  PPF (Portail Public de Facturation)
   │                   — flow control, tax reporting

Receiver PDP


Recipient (Destinataire)

PDPs (Partner Dematerialization Platforms) are service providers certified by the DGFiP (French tax administration) that transport invoices between sender and recipient. In parallel, all relevant invoice data is forwarded to the PPF — the state portal that handles VAT control and e-reporting.

The earlier idea of a free PPF option for SMEs was dropped at the end of 2023 in favour of a pure PDP ecosystem. Every company from 2026 onward needs a contract with at least one certified PDP.

Accepted formats

The so-called Socle Commun (common core) defines three mandatory formats every PDP must receive and send:

  • Factur-X — technically identical to ZUGFeRD 2.x in profile EN16931 or BASIC
  • UBL Invoice 2.1 — EN 16931-compliant, identical to the Peppol standard
  • UN/CEFACT CII — the XML syntax from ZUGFeRD/Factur-X without the PDF wrapper

Every PDP may offer additional formats, but must support the three core formats bidirectionally. For cross-border invoicing, UBL via Peppol is the usual choice.

Mandatory fields

In addition to the standard invoice fields under French VAT law, the decree requires:

  • SIREN / SIRET of sender and recipient (BT-30-L2 / BT-47-L2)
  • Operation type (goods, services, mixed)
  • Payment terms with a payment-method code (LCR, chèque, virement …)
  • Currency (if different from EUR)
  • TVA sur les débits option (if the VAT point differs from the default)

The German B2G Leitweg-ID is not applicable — the French recipient is addressed by SIRET.

e-reporting — the second pillar

Alongside the e-invoicing mandate, e-reporting takes effect: companies report VAT-relevant data from transactions that do not pass as a B2B invoice:

  • B2C (end customers) — aggregated sales data
  • Cross-border B2B (inside EU, outside EU) — where the recipient does not use a French PDP
  • Payment notifications for services taxed on payment receipt

Reporting happens via the same PDPs but with a different payload (no invoice XML, only aggregated figures).

Implementing with the Dokmatiq API

The API produces Factur-X and UBL-compliant invoices. Delivery to a PDP is handled by a PDP provider through its own interface — Dokmatiq outputs the document in Socle-compliant form:

# Produce Factur-X (profile EN 16931, FR-specific fields)
curl -X POST https://api.dokmatiq.com/v1/einvoice/factur-x \
  -H "Authorization: Bearer $DOKMATIQ_KEY" \
  -d '{
    "profile": "EN16931",
    "invoice": {
      "id": "2026-FR-0042",
      "issueDate": "2026-09-15",
      "seller": { "name": "Example SAS", "vatId": "FR12345678901", "siret": "12345678901234" },
      "buyer":  { "name": "Client SARL", "vatId": "FR98765432109", "siret": "98765432101234" },
      "lines": [{ "description": "Consulting", "quantity": 8, "unitPrice": 120.0 }]
    }
  }'

# Validate against Socle Commun
curl -X POST https://api.dokmatiq.com/v1/einvoice/validate \
  -H "Authorization: Bearer $DOKMATIQ_KEY" \
  -H "X-Validation-Profile: FR-Socle-2026" \
  --data-binary "@invoice.pdf"

The FR validation checks both the EN 16931 rules and the additional French business rules (mandatory SIRET, payment code values, TVA option).

France vs. Germany

FranceGermany
TransportY-model via PDPspoint-to-point (Peppol, email)
State roleDGFiP / PPF with data accessno central data hub
Receiving obligation01 Sep 202601 Jan 2025
Recipient IDSIRETLeitweg-ID (B2G only)
FormatsSocle Commun (Factur-X, UBL, CII)XRechnung, ZUGFeRD, Peppol BIS
Reportinge-reporting for B2C and cross-border

Practical consequence: anyone selling into France needs a PDP connection from September 2026 (or an AP that interoperates with a PDP). Anyone invoicing from France into German customers continues to produce Factur-X/UBL — these EN 16931-compliant documents also arrive correctly in Germany.

Common pitfalls

  1. “We already use Chorus Pro” — Chorus Pro is B2G. For B2B you additionally need a PDP from 2026.
  2. PPF instead of PDP planned — the PPF no longer offers operator services to companies; that option was dropped at the end of 2023.
  3. Missing SIRET — many German ERPs capture only VAT IDs; for French customers the SIRET must be added to the master data.
  4. Factur-X vs. Factur-X — France only accepts Factur-X 1.0.07 or higher in profile EN 16931; older ZUGFeRD variants (MINIMUM, BASIC WL) are not Socle-compliant.

Ready to comply, technically

With the Dokmatiq API every required format is covered in a few API calls — including validation and archiving.