Ofline
The French e-Invoicing Mandate: A Developer Perspective
France is implementing one of the most ambitious B2B e-invoicing mandates in Europe. By September 2026, all businesses registered for VAT in France will be required to both receive electronic invoices and progressively transmit them through certified platforms known as PDPs (Plateformes de Dématérialisation Partenaires).
Architecture Overview
The French e-invoicing ecosystem has three key components:
1. PPF (Portail Public de Facturation) — the government-operated central hub managed by the DGFIP. All invoice flows pass through or are registered here.
2. PDPs (Plateformes de Dématérialisation Partenaires) — private certified operators that handle invoice transmission, validation and archiving. Companies can choose to use PDPs for full lifecycle management.
3. ODs (Opérateurs de Dématérialisation) — intermediaries that convert invoice data but route through either a PDP or the PPF.
Key Technical Requirements
Invoices must comply with one of three accepted structured formats:
- Factur-X (hybrid PDF/XML, cross-border compatible)
- UBL 2.1 (XML, widely used in European public procurement)
- CII (UN/CEFACT Cross Industry Invoice, XML)
The mandatory data fields extend beyond standard invoice elements to include SIREN numbers, VAT identification, payment terms, and specific buyer routing codes.
Notification and Status Events
A critical difference from traditional invoicing: the e-invoicing platform must emit lifecycle status events (deposited, received, rejected, paid) that are registered with the PPF. Implementing an event listener and status update mechanism is therefore as important as the invoice generation itself.
Код:
# Example: listening to PDP webhook events
@app.route("/pdp-webhook", methods=["POST"])
def handle_invoice_status():
event = request.json
invoice_id = event["invoiceId"]
status = event["lifecycleStatus"] # DEPOSITED, RECEIVED, REJECTED, PAID
update_invoice_status(invoice_id, status)
return jsonify({"received": True}), 200
Testing Environment
The PPF provides a dedicated testing sandbox. Developers should validate:
- Schema conformance for all three accepted formats
- SIREN/SIRET validation against INSEE data
- Status event round-trips in the sandbox
- Archiving compliance (10-year retention required by French tax law)
Resources
For non-technical stakeholders and SMEs navigating the mandate, mafacturation-electronique.fr provides clear guides on platform selection, implementation timelines and frequently asked questions in French.
The September 2026 deadline is firm — organizations that have not yet begun their integration work should prioritize this now.