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 $299.00 USD; request a quote for a scoped proposal.

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.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
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.
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
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 2 to 4 weeks from confirmed scope. You receive the full source and the git repository, so the app is yours to run and extend.
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.
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.
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.
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.
Buy the license on ecosire.com and download the ERPNext France E-Invoicing (Chorus Pro / PPF Réforme 2026) app ZIP from your account dashboard.
Extract the ZIP into your bench's apps folder, or run `bench get-app` with the path to the extracted app.
Run `bench --site SITE_NAME install-app APP_NAME` followed by `bench migrate` to install ERPNext France E-Invoicing (Chorus Pro / PPF Réforme 2026) and apply its schema.
Open the ECOSIRE License settings on your site and activate your license key. Requires the free ecosire_connect and ecosire_license_client apps.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Factur-X / CII generation | Built into Sales Invoice submit as PDF/A-3 with embedded XML | Must be designed and built from scratch in-house | Often template-only or a single fixed format | |
| PA / PDP transmission | Connector layer for your chosen Plateforme Agréée | Bespoke integration you specify and maintain | Usually locked to one vendor's platform | |
| Inbound supplier invoices | Pulled and parsed into draft Purchase Invoices | Separate build, easily deprioritized | Frequently outbound-only | |
| B2B e-reporting flows | Scheduled aggregation and submission of reported data | Additional scope to design correctly | Rarely covered end to end | |
| Upgrade safety (v15/v16) | Standalone app, no core patches | Depends on developer discipline | Varies; some patch core | |
| Fit to your data | Mapping built from your accounts and tax templates | Fully bespoke but slow and costly | Generic defaults you adapt yourself | |
| Delivery and support | 2-4 weeks, UAT, training, support window | Open-ended timeline and cost | Self-serve install, limited support | |
| Source and ownership | Full source and git repo handover | You own it but pay to build it | Often closed or license-gated |
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 2 to 4 weeks from confirmed scope, ending with a UAT pass on staging and a supported go-live.
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.
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.
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.
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.
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.
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.
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.