Winning a French government contract is one thing. Invoicing it without friction is another matter entirely. Public procurement represents a substantial opportunity for private sector suppliers: according to France’s Economic Observatory of Public Procurement (OECP), the country recorded €233.3 billion in public contracts in 2024, including €100.7 billion from local and regional authorities and €72.4 billion from central government bodies.
For a mid-sized services firm or professional services company working regularly with French ministries, hospitals, or local authorities, these contracts often represent 20 to 40% of annual revenue. Yet most ERP systems are not pre-configured for the specific constraints of French public-sector work: mandatory invoicing through Chorus Pro, tender responses in DUME/ESPD format, and payment deadlines that are regulated but vary significantly between buyers. The predictable result is teams manually re-entering data across two separate systems, invoices rejected for a missing service code, and late-payment penalties never claimed.
This guide answers the question that CIOs and CFOs at mid-market contractors ask most often: can my ERP actually handle my contracts with French public bodies?
1. The Legal Obligations Your ERP Must Cover
1.1 Chorus Pro: France’s Mandatory Public-Sector Invoicing Portal
Chorus Pro is the portal managed by AIFE (France’s Agency for Government Financial IT) that centralises all invoices addressed to French public-sector buyers. The submission requirement has been in force since 2017 for large enterprises, 2018 for mid-market companies, and 2020 for SMEs and micro-businesses. There are no exceptions: as soon as a contract is signed with any French public entity, the invoice must flow through Chorus Pro.
The portal accepts four file formats: plain PDF (submitted via the web interface), Factur-X (a PDF enriched with embedded XML data), UBL 2.1, and CII (EDI exchange formats). For low volumes, manual submission is sufficient. Once your B2G invoice count exceeds a few dozen per month, a direct connection from your ERP becomes essential.
Chorus Pro is not the PPF. Since France’s 2026 B2B e-invoicing reform, you will hear about the PPF (Portail Public de Facturation — the new B2B hub operated by the DGFiP tax authority). The two systems coexist but serve different purposes: Chorus Pro handles B2G flows (companies invoicing public-sector buyers), while the PPF handles B2B flows between private companies. If you invoice both private clients and public-sector buyers, your ERP must manage both channels separately.
1.2 The DUME/ESPD: Your ERP Can Pre-Fill 40% of the Form
The DUME (Document Unique de Marché Européen) is the French implementation of the EU’s standardised self-declaration form — the ESPD (European Single Procurement Document) — that any economic operator must submit when responding to a tender above EU thresholds. It replaces the older DC1/DC2 forms for the declarative portion, attesting on honour to your company’s administrative, tax, and social standing.
The online DUME service is hosted at dume.chorus-pro.gouv.fr. It allows you to create, store, and reuse your DUME from one tender to the next. The key opportunity for companies that regularly respond to French tenders is to feed this form directly from ERP data rather than re-typing it manually each time.
Fields your ERP can auto-populate from the company master record include: legal name and corporate form, SIRET registration number, share capital, headcount, revenue for the past three financial years, quality certifications (ISO, professional qualifications), and any declared convictions or insolvency proceedings. In practice, a well-configured ERP covers roughly 40% of DUME fields — the remainder (market-specific declarations of honour, references for similar contracts) still requires manual input.
1.3 Legal Payment Deadlines: Configuring Alerts at the Right Level
France’s Public Procurement Code (Code de la commande publique) sets strict payment deadlines for public buyers, but these vary by entity type:
- 30 days for central government bodies and national public industrial and commercial establishments (EPICs) — Article L.2192-12 of the CPC
- 30 days for local public entities and regional/local authorities (up to 50 days for certain public hospitals)
In practice, observed payment times in 2024 are often well below those ceilings for reliable payers. According to the 2024 report from the Banque de France’s Payment Deadline Observatory, central government averages 14.2 days with 89.3% of payments made within 30 days. Regional and local authorities average 19.7 days in 2024 (down from 20.9 days in 2023). Public health institutions are the exception, exceeding statutory deadlines with an average of 63.4 days.
These wide variations by buyer type make client-specific configuration in your ERP essential: do not apply the same alert threshold to a ministry (which pays in 14 days on average) and a university hospital (which pays in 60 days). Statutory late-payment penalties stand at 3.47% per annum since January 2024 — on a €500,000 contract running 60 days overdue, the figure is significant and worth calculating and claiming automatically.
2. Configuring Your ERP for Chorus Pro
2.1 Direct Connection or a Dematerialisation Operator?
Two architectures exist for connecting your ERP to Chorus Pro:
Direct API connection uses web services provided by AIFE. It lets you submit invoices and track their status (submitted, made available, authorised for payment, rejected) directly from your ERP, without manual intervention. It requires initial technical configuration but provides full traceability.
Connection via a dematerialisation operator (or trusted intermediary) delegates routing and format transformation to a third party such as Sovos, Edifinance, Basware, or Yooz. The ERP sends the invoice in its native format; the operator transforms it and submits it to Chorus Pro. This architecture suits companies that also manage international B2B flows and want a consolidated solution.
2.2 Integration by ERP Platform
SAP S/4HANA and ECC: the reference solution is SAP DRC (Document Reporting and Compliance), SAP’s native e-invoicing module. SAP DRC handles routing to Chorus Pro for B2G invoices and to the PPF for B2B invoices since the 2026 reform. For SAP ECC environments not yet migrating to S/4HANA, third-party connectors from Sovos or Edifinance provide the connection without touching the ERP core.
Microsoft Dynamics 365 Business Central: since the 2024 Wave 2 release, Business Central includes a native e-invoicing framework handling Factur-X format and Chorus Pro connections via configurable deployment profiles. For older implementations or complex scenarios, partners such as Yooz or Basware offer validated connectors.
Sage X3: Chorus Pro integration has been available since version 12 via Sage’s e-invoicing module, with an optional EDI add-on in partnership with Tenor for high volumes. The connection handles UBL and Factur-X formats and enables status tracking from the Sage X3 dashboard.
Odoo: community modules from the OCA (Odoo Community Association) — notably l10n_fr_chorus_pro — allow submitting invoices to Chorus Pro in Factur-X format and tracking their processing. Critical point: these modules are incompatible with Odoo Cloud (Odoo.com). They only work on on-premise or Odoo.sh deployments. Companies on Odoo Enterprise that want this capability must work through an integrator partner who maintains the module.
2.3 Mandatory Public-Procurement Fields
Beyond the company registration number and the invoice amount, Chorus Pro requires public-procurement-specific information that your ERP must know how to store in the customer master:
- The commitment number (numéro d’engagement): the public buyer’s internal identifier linking the invoice to a specific budget line. This is the field whose absence or inaccuracy causes the highest proportion of rejections.
- The settlement service code (code service): the code that routes the invoice to the accounting unit (the service responsible for validating the expenditure) within the public entity. This code is provided in the contract award notification.
- The contract number (numéro de marché): the reference of the signed contract.
These three fields must be mapped in the customer master for each public-sector buyer. Best practice is to create a separate customer record per contract when an authority or ministry runs multiple orders with different commitment numbers — this eliminates routing errors at data entry.
3. Contract Tracking and Public-Sector Reporting from Your ERP
3.1 Structuring the Billing Plan in Your ERP
A public contract is rarely invoiced in a single shot. Common structures include:
- Order-based contracts (marchés à bons de commande): invoicing as orders are issued by the buyer, up to a maximum amount or duration. Each purchase order generates one or more invoices.
- Tranche-based contracts (marchés à tranches): split into firm and conditional tranches with contractually defined billing milestones. The next tranche can only be invoiced once formally notified by the buyer.
- Fixed-price contracts with progress milestones: invoicing tied to deliverables or phases (e.g. 15% on signing, 40% at mid-point, 30% on delivery, 15% on final acceptance).
Your ERP must be able to model this contractual structure — a project or deal management module is often required — and issue invoices automatically linked to the correct contract number, commitment number, and settlement service code.
3.2 Key Metrics for CIOs and CFOs
A minimal public-sector contract dashboard should include:
- Billing rate vs. contract value: how much has been invoiced and collected against the total notified contract amount. A low rate near contract end signals a risk of unbilled revenue.
- Public-sector DSO vs. private-sector DSO: average collection time from public buyers compared to private clients. This differential informs cash flow decisions.
- Chorus Pro rejection tracking: number and reason for rejected invoices, and average time to correction and resubmission.
- Payment deadline alerts: invoices past their statutory due date, with automatic calculation of accrued late-payment penalties.
4. Common Friction Points and How to Resolve Them
4.1 Chorus Pro Rejections: The Three Causes Behind 80% of Cases
Operational data from B2G invoicing operators identifies three fields that account for the vast majority of rejections (source: ma-facture-electronique.org):
1. Missing or incorrect commitment number: this number is communicated in the award notification or service order. Without it, the buyer’s accounting unit cannot match the invoice to its budget. The result is automatic rejection. Prevention requires a process that blocks invoice creation in the ERP until the commitment number has been entered in the order record.
2. Missing settlement service code: large public entities (ministries, major local authorities, university hospitals) have multiple accounting units. If you do not specify the code corresponding to your contract, the invoice is routed to the wrong unit and rejected. This code appears in the contract notification and must be stored in the ERP customer master.
3. Invalid or inactive SIRET: Chorus Pro validates the SIRET in real time against the SIRENE national business register. A data-entry error, using the head office SIRET when a secondary establishment signed the contract, or a recently created public entity whose SIRET is not yet active in SIRENE — all are causes of immediate rejection.
4.2 Multi-Lot and Multi-Entity Contracts for Groups
Groups that respond to public tenders through several subsidiaries face a structural constraint: Chorus Pro invoices by SIRET. If Lot 1 is executed by subsidiary A and Lot 2 by subsidiary B, each subsidiary must maintain its own Chorus Pro account and manage its invoices separately. In a group ERP, this means public-sector contract management must be decentralised by legal entity while still providing a consolidated view at the parent level.
4.3 Managing Declared Subcontracting (Article 135 of the PPC)
When you subcontract part of a public contract, you are legally required to declare the subcontractor to the public buyer and obtain their acceptance. That acceptance conditions direct payment of the subcontractor by the public buyer — a mechanism that protects the subcontractor but complicates your cash-flow management.
In your ERP, this means being able to track, per contract, the declared subcontractors and accepted amounts. Some ERPs can automatically generate the direct payment request for the subcontractor when a progress certificate is issued — a feature worth adding to your requirements list if subcontracting is a regular part of your model.
5. Going Further: Digitalising the Full Tender Response Cycle
Tender Dematerialisation Platforms
Public tender responses in France are now conducted almost entirely on dematerialised platforms: PLACE (the French state’s central procurement platform), Maximilien (Île-de-France regional platform), Marchés Online, and e-Marchés Publics. Some ERPs integrate with these platforms via connectors that pull the tender documentation (DCE — Dossier de Consultation des Entreprises) directly into the CRM or deal management module, eliminating re-entry.
CRM-ERP Connectors for Order-Based Contracts
On order-based contracts, the commercial activity (quotations, follow-up, tracking consumed vs. notified amounts) and the operational activity (orders, invoicing) need to stay in sync. A bidirectional CRM-ERP connector prevents the account manager following the contract from discovering too late that the purchase order budget has been consumed — a situation that causes delivery delays and strained buyer relationships.
Legal Archiving of Contract Documents
The constituent documents of a public contract (contract, technical annexes, service orders, acceptance certificates, invoices) are subject to a 10-year archiving obligation under Article L.2196-1 of the Public Procurement Code. Your ERP or document management system must guarantee the integrity and readability of these documents for the full statutory period, including after a potential migration to a new ERP.
Conclusion
Managing French public-sector contracts from your ERP is not a standalone IT project — it is an exercise in configuration and operational discipline. The key takeaways:
- Chorus Pro and the PPF are not the same thing: configure two separate channels if you invoice both public and private clients.
- The three fields that prevent 80% of rejections are the commitment number, the settlement service code, and the SIRET: build mandatory entry of all three into your order creation process.
- The DUME/ESPD can be 40% pre-filled from your ERP: a half-day configuration investment will save you hours on every tender response.
- Payment timelines vary dramatically: do not set the same alert for a ministry (14-day average) and a university hospital (63-day average). And do not leave late-payment penalties unclaimed — they are legally owed.
To deepen your understanding of the regulatory context, read our overview of France’s first month of mandatory B2B e-invoicing and our complete ERP guide for French local authorities — which gives you the public buyer’s perspective. For the cash-flow implications of payment delays, our article on SEPA Instant Payment and your ERP treasury module is a natural complement.