Skip to main content
ERPNext France E-Invoicing (Chorus Pro / PPF Réforme 2026) — A build-to-order ERPNext app that makes your Sales and Purchase  — 1/1Illustrative preview

A build-to-order ERPNext app that makes your Sales and Purchase flows compliant with France's 2026 B2B

e-invoicing and e-reporting reform, generating Factur-X invoices and routing them through a Plateforme Agréée.

ECOSIRE scopes, builds, installs and supports it on your instance.

What is ERPNext France E-Invoicing (Chorus Pro / PPF Réforme 2026)?

A build-to-order ERPNext app that makes your Sales and Purchase flows compliant with France's 2026 B2B e-invoicing and e-reporting reform, generating Factur-X invoices and routing them through a Plateforme Agréée. ECOSIRE scopes, builds, installs and supports it on your instance. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Dedicated Frappe app `france_einvoicing` with its own module — zero patches to `erpnext` core, so bench upgrades stay clean
Factur-X / EN 16931 generation: PDF/A-3 with embedded CII XML, mapped from ERPNext Sales Invoice, party, tax and item data
`E-Invoice Transmission` DocType tracks per-document lifecycle (generated, submitted, accepted, rejected, paid-status-reported) with the PA message id
`hooks.py` `on_submit` doc event on Sales Invoice triggers whitelisted server-side generation — no manual export step
Pluggable `PA Connector` DocType + Python transport class per Plateforme Agréée / PDP selected during scoping
Inbound channel: supplier invoices pulled from the PA and parsed into draft Purchase Invoices with XML mapped to ERPNext fields
B2B e-reporting and e-reporting flows (payment status, B2C and cross-border transactions) aggregated and submitted on the required cadence
September 2026 receive-all readiness: structured inbound parsing wired before the issuance mandate reaches you
`scheduler_events` cron jobs push outbound invoices and poll acknowledgements back asynchronously — no user waiting on a submit
Frappe REST API endpoints and whitelisted methods so external systems can trigger generation and read transmission status
Role profiles and DocType permission rules (e-invoicing operator vs. approver vs. auditor) with field-level control
`client scripts` add status badges, resend and view-XML buttons directly on the Sales and Purchase Invoice forms
SIREN/SIRET and intra-community VAT validation on party masters before an invoice can transmit
Error and rejection handling: failed transmissions logged, surfaced in a workspace report, and re-submittable without duplicating the document

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

French B2B e-invoicing stops being optional in 2026. From September 2026 every established company must be able to receive structured electronic invoices, and issuance plus e-reporting obligations phase in behind it, all routed through a Plateforme Agréée (PA) now that the state PPF has pivoted to a directory-and-concentrator role. ERPNext ships a solid Sales Invoice and Purchase Invoice, but it has no concept of a Factur-X hybrid PDF, no lifecycle statuses tied to a PA, no e-reporting extract for B2C and cross-border transactions, and no inbound channel for supplier invoices arriving as structured data. Teams end up bridging that gap with spreadsheets and a portal login, which does not scale and does not survive an audit.

This app closes that gap inside ERPNext itself. We build a proper Frappe app (france_einvoicing) with its own module, so nothing is patched into erpnext core and upgrades stay clean. On submit of a Sales Invoice, a hooks.py on_submit doc event calls a whitelisted server-side method that assembles a Factur-X / EN 16931 compliant document: a human-readable PDF/A-3 with the structured CII XML embedded, mapped from your ERPNext party, tax, and item data. A new E-Invoice Transmission DocType tracks each document's lifecycle (generated, submitted, accepted, rejected, paid-status-reported), stores the PA message id, and links back to the source invoice so your finance team never leaves ERPNext.

Transmission is handled by a pluggable connector layer. Rather than hard-wire one vendor, we implement a PA Connector DocType plus a Python transport class per provider, so the same routing logic serves whichever Plateforme Agréée or PDP you select during scoping. Outbound invoices are pushed and their acknowledgements polled back via a scheduler_events cron; inbound supplier invoices are pulled and parsed into draft Purchase Invoices with the embedded XML mapped to ERPNext fields for your AP team to review. E-reporting flows (payment status, B2C and international transactions that are reported but not invoiced through a PA) are aggregated on schedule and submitted in the required cadence. Everything is exposed over the Frappe REST API and guarded by dedicated role profiles and permission rules, with client scripts adding the status badges and action buttons your users see on the invoice form.

Because this is build-to-order, we start from your actual chart of accounts, tax templates, party masters and chosen PA, not a generic template. After a scoping call we confirm the exact CII field mapping, the connector, and your v15 or v16 target, then deliver working software, a UAT pass on a staging bench, and a supported go-live. Typical delivery is one working week from confirmed scope. You receive the full source and the git repository, so the app is yours to run and extend.

What you get

  • Installable source code for your version of the `france_einvoicing` Frappe app
  • Installation and configuration on your bench (v15 or v16), including PA connector credentials and CII field mapping
  • Technical documentation: DocType reference, hooks, scheduler events, connector interface and REST endpoints
  • User guide plus a live training session for your finance and AP teams
  • UAT on a staging bench with a documented test-invoice pass and a rollback plan
  • Post-go-live support window for defect fixes and configuration adjustments
  • Full git repository handover so the app is yours to run, audit and extend
  • Field-mapping workbook confirming how each EN 16931 element maps to your ERPNext data

Who this is for

French SME finance director on ERPNext

Runs an established company that must receive structured invoices from September 2026 and issue Factur-X soon after. Needs compliance handled inside ERPNext rather than through a separate PA portal and manual re-keying.

Group controller with multi-entity operations

Consolidates several French legal entities on one ERPNext instance. Needs consistent Factur-X generation, per-entity SIREN handling, and one e-reporting pipeline that a stretched team can actually operate.

ERPNext systems integrator / IT lead

Owns the bench and worries about upgrade safety. Wants a clean standalone Frappe app with documented hooks, DocTypes and a git repo — not core patches — so v15/v16 upgrades don't break at year-end.

Accounting firm serving French clients

Manages compliance for multiple clients and needs a repeatable, connector-agnostic e-invoicing setup on ERPNext that can be pointed at whichever Plateforme Agréée each client chooses.

How ERPNext France E-Invoicing (Chorus Pro / PPF Réforme 2026) Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
Factur-X / CII generationBuilt into Sales Invoice submit as PDF/A-3 with embedded XMLMust be designed and built from scratch in-houseOften template-only or a single fixed formatNo Factur-X concept at all
PA / PDP transmissionConnector layer for your chosen Plateforme AgrééeBespoke integration you specify and maintainUsually locked to one vendor's platformNone — manual portal upload
Inbound supplier invoicesPulled and parsed into draft Purchase InvoicesSeparate build, easily deprioritizedFrequently outbound-onlyNot supported
B2B e-reporting flowsScheduled aggregation and submission of reported dataAdditional scope to design correctlyRarely covered end to endAbsent
Upgrade safety (v15/v16)Standalone app, no core patchesDepends on developer disciplineVaries; some patch coreN/A
Fit to your dataMapping built from your accounts and tax templatesFully bespoke but slow and costlyGeneric defaults you adapt yourselfNone
Delivery and supportone working week, UAT, training, support windowOpen-ended timeline and costSelf-serve install, limited supportYou configure everything alone
Source and ownershipFull source and git repo handoverYou own it but pay to build itOften closed or license-gatedN/A

Frequently Asked Questions about ERPNext France E-Invoicing

How long until it is live on our ERPNext instance?

This is build-to-order, not an instant download. After a short scoping call to confirm your chart of accounts, tax templates, chosen Plateforme Agréée and target version, typical delivery is one working week from confirmed scope, ending with a UAT pass on staging and a supported go-live.

Which Plateforme Agréée (PA/PDP) do you support?

The transmission layer is connector-based: a `PA Connector` DocType plus one Python transport class per provider. We build and configure the connector for the PA or PDP you select during scoping, so the same routing and lifecycle logic works regardless of which platform you register with.

Does this work with ERPNext v15 and v16?

Yes. We build against Frappe/ERPNext v15 and v16 and confirm your exact target during scoping. It ships as a standalone Frappe app with its own module, so nothing is patched into `erpnext` core and your bench upgrades remain clean.

Will we be ready for the September 2026 receive mandate?

Yes — that is a core goal. The inbound channel pulls structured supplier invoices from the PA and parses the embedded XML into draft Purchase Invoices, so your ability to receive is in place before issuance and e-reporting obligations reach your size band.

What about ongoing support and updates?

Every build includes a post-go-live support window for defect fixes and configuration changes. Because you receive the full source and git repository, you can run and extend it yourself, or engage ECOSIRE for a maintenance retainer to track regulatory and PA-specification changes.

Is it really Factur-X compliant, or just a PDF?

It generates a genuine Factur-X hybrid: a PDF/A-3 with the EN 16931 CII XML embedded, built from your ERPNext party, tax and item data. The structured XML is what the PA and your trading partners consume; the readable PDF is for humans.

Do we get the source code?

Yes. You receive installable source for your version of the `france_einvoicing` app and a full git repository handover. There is no per-seat lock-in and no obfuscation — the app is yours to audit, run and extend.

Request a quote

ERPNext France E-Invoicing

A build-to-order ERPNext app that makes your Sales and Purchase flows compliant with France's 2026 B2B e-invoicing and e-reporting reform, generating Factur-X invoices and routing them through a Plateforme Agréée. ECOSIRE scopes, builds, installs and supports it on your instance.

  • Dedicated Frappe app `france_einvoicing` with its own module — zero patches to `erpnext` core, so bench upgrades stay clean
  • Factur-X / EN 16931 generation: PDF/A-3 with embedded CII XML, mapped from ERPNext Sales Invoice, party, tax and item data
  • `E-Invoice Transmission` DocType tracks per-document lifecycle (generated, submitted, accepted, rejected, paid-status-reported) with the PA message id
  • `hooks.py` `on_submit` doc event on Sales Invoice triggers whitelisted server-side generation — no manual export step

Request a Quotation

Tell us about your ERPNext France E-Invoicing requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.