Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Compliance
  3. France E-Invoicing Connector for Odoo 19 v 19.0
  4. Sales Conditions FAQ

France E-Invoicing Connector for Odoo 19

by FlexigoTech https://flexigotech.com
Odoo

$ 115.27

v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Invoicing (account)
Lines of code 5969
Technical Name flexigo_france_pdp
LicenseOPL-1
Websitehttps://flexigotech.com
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Invoicing (account)
Lines of code 5969
Technical Name flexigo_france_pdp
LicenseOPL-1
Websitehttps://flexigotech.com
  • Description
  • License

France E-Invoicing Connector for Odoo 19

Connect Odoo to a certified Plateforme Agrée, route B2B structured invoices, track the full DGFiP lifecycle, and file CGI Art. 290 e-reporting — all from inside Odoo.

Odoo 19.0 Community & Enterprise Free — LGPL-3 Sep 2026 Mandate Multi-PA Support
France E-Invoicing Connector for Odoo 19 — route invoices via certified Plateformes Agrées

Is your Odoo ready for France mandatory B2B e-invoicing?

Two hard deadlines you cannot miss:
  • 1 September 2026 — Large companies and ETI must issue and receive structured e-invoices via a certified Plateforme Agrée.
  • 1 September 2027 — SMEs and micro-enterprises follow. Every French B2B business must comply.
Legal basis: French Law No. 2023-1322, Art. 91; CGI Art. 289 bis and Art. 290.

Standard Odoo 19 gives you the accounting backbone — but it does not include a connector to the DGFiP-mandated Plateforme Agrée infrastructure. Without one, your customers cannot legally issue or receive B2B invoices in France after the mandate kicks in.

  • Manual invoice submission to PA portals: lost time, missed deadlines, reconciliation nightmares.
  • No lifecycle visibility in Odoo: accountants must log into each PA portal separately to check acceptance status.
  • E-reporting obligations (B2C, cross-border, reverse-charge) managed in spreadsheets outside Odoo.
  • Credentials for PA APIs stored in plain text, creating security and GDPR exposure.
  • No evidence archive ready for DGFiP inspection: assembling audit packs takes days.

How France E-Invoicing Connector solves it

This module embeds a complete PA connectivity layer directly into Odoo 19. From invoice confirmation to DGFiP acceptance, every step happens inside Odoo — no external dashboards, no manual re-entry.

  • One-click PA routing: configure your Plateforme Agrée once per company; invoices route automatically on confirmation in UBL 2.1, UN/CEFACT CII, or Factur-X.
  • Full lifecycle in Odoo: the Invoice Status Board shows all six DGFiP states (Submitted, Sent, Received, Rejected, Accepted, Cancelled) with colour coding and stall alerts.
  • Three e-reporting types covered: B2C 10-day periods, cross-border monthly, and domestic reverse-charge monthly — all per CGI Art. 290, with 48-hour deadline reminders.
  • Evidence archive on demand: one wizard packages all submission logs and e-reporting XML into a ZIP for DGFiP inspection, with 10-year retention enforced by the module itself.

What you get

Multi-PA Connectivity

  • Built-in adapters: Basware, Sovos, Tradeshift, EDICOM, Docaposte
  • Generic REST adapter for any DGFiP-certified PA
  • Extensible adapter interface (FR-058) — add new PAs without modifying core files
  • Per-company and per-partner PA routing
  • mTLS certificate lifecycle management
  • Webhook + polling reception, HMAC-SHA256 signature verification

Invoice Issuance & Reception

  • Auto-submission on invoice confirmation
  • Factur-X (all profiles: Minimum to Extended), UBL 2.1, UN/CEFACT CII
  • EN 16931 pre-flight validation with BR-error codes before submission
  • Credit note routing with correct document type code
  • Inbound invoice parsing to draft vendor bills
  • PO matching with confidence score and duplicate deduplication

Lifecycle & Status Board

  • All 6 DGFiP lifecycle states with colour badges
  • Invoice Status Board: list, pivot, and graph views
  • Immutable status history log per submission
  • Stall alerts for long-pending submissions
  • Live counter refresh every 60 seconds on the compliance dashboard

E-Reporting (CGI Art. 290)

  • B2C: 10-day calendar periods per DGFiP schedule
  • Cross-border: monthly periods with ECB rate integration for non-EUR
  • Reverse-charge: domestic monthly periods
  • 48-hour deadline reminders via Odoo mail
  • XML generation and PA submission in one action

Security & Encryption

  • Fernet-encrypted PA credentials (AES-128-CBC) — never stored in plain text
  • Credentials key in environment variable, not in Odoo DB
  • 10-year retention enforcement (Code de Commerce)
  • GDPR Art. 6(1)(c) legal basis documented
  • Multi-company record isolation via Odoo record rules
  • Immutable API call log, restricted to compliance admins

SIRENE & Partner Data

  • INSEE SIRENE API for SIRET validation and lookup
  • 24-hour cache to respect INSEE rate limits
  • Bulk SIRET completion wizard for 500+ existing contacts
  • EU VAT format validation per country (Luhn-style check digit for SIRET)
  • Automatic SIRET propagation from SIRENE to partner record

Video walkthrough

A seven-minute narrated tour of every feature, captured from a live Odoo 19 environment with real invoice data. Expand the language you prefer.

English — 7-minute walkthrough Your browser does not support the embedded video. Download the English walkthrough →
Español — recorrido de 7 minutos Tu navegador no admite vídeos. Descargar el walkthrough en español →
Deutsch — 7-Minuten-Rundgang Ihr Browser unterstützt das Video nicht. Walkthrough auf Deutsch herunterladen →
7-minute walkthrough with native Piper TTS narration and black-text subtitles — expand the language you prefer.

See it in action

All screenshots captured from a live Odoo 19 instance with the module installed and realistic seed data (Acme Industries S.L., professional invoice data). No mockups, no AI-generated screens.

PA Setup & Configuration

PA providers catalog showing Basware, Sovos, Tradeshift, EDICOM, Docaposte with format flags
1 · PA Providers Catalog — Six DGFiP-certified Plateformes Agrées shown (Basware, Sovos, Tradeshift, EDICOM, Docaposte, Chorus Pro) with supported invoice formats (Factur-X, UBL 2.1, CII) and PEPPOL/webhook capability flags. Registry refreshable without a module upgrade (FR-056).
PA providers list view with registration numbers, API endpoints, and active status
2 · PA Providers List — Searchable catalog of all certified Plateformes Agrées with DGFiP registration numbers, website links, and capability flags. Records update from DGFiP export via the registry_import action — no code change required when the DGFiP updates its accredited PA list.
PA setup wizard step 1 showing six certified PA radio buttons and credential entry form
3 · PA Setup Wizard — Step-by-step guided configuration: select your certified Plateforme Agrée from the catalog, enter API credentials (encrypted at save via Fernet AES-128-CBC, FR-004), and run a live connectivity test. The wizard validates your PA configuration against the PA's capability endpoint before saving.

Invoice Management & Lifecycle

Invoice status board list view with PA status, submission reference, and PA routing columns
4 · Invoice Status Board — All outgoing B2B invoices listed with dedicated PA Status, Submission Ref, and PA Routing columns. Six DGFiP lifecycle states colour-coded for at-a-glance compliance monitoring. Accountants see every invoice's PA journey without leaving Odoo.
Invoice status board QA-verified showing nine invoices with all PA status columns populated
5 · Invoice Status Board (QA-verified) — Nine invoices with PA Status, Submission Ref, and PA Routing columns all populated. States visible: Sent, Accepted, and Queued. Pivot and graph views available for monthly reporting. Captured from the QA verification pass on the live Docker installation.
Odoo invoice form with E-Invoicing tab showing PA submission panel, status, and reference number
6 · Invoice PA Panel — E-Invoicing tab embedded on the standard Odoo account.move form, showing PA submission status, reference number, lifecycle history, and Factur-X profile selector. No separate interface needed — accountants manage PA routing from the invoice they are already working on (FR-013, AC-054).
PA submissions list showing accepted, submitted, and rejected state badges with timestamps
7 · PA Submissions List — All invoice routing records with state badges (Submitted, Accepted, Rejected, Queued), submission reference numbers, PA names, and timestamps. The immutable status history log provides a full audit trail for DGFiP inspections. Rejection error codes are visible inline.
PA submissions QA-verified with twelve records spanning all lifecycle states
8 · PA Submissions Detail (QA-verified) — Twelve submission records across all DGFiP lifecycle states (Submitted, Sent, Accepted, Rejected, Queued). FA-prefixed submission reference numbers and precise timestamps visible. Captured from the QA verification pass — confirms the module handles all states correctly in a live Odoo 19 environment.

Compliance Dashboard

Compliance dashboard showing September 2026 deadline countdown and PA health status per company
9 · Compliance Dashboard — Company-level regulatory timeline showing September 2026 deadline for large companies and ETI, and September 2027 for SMEs, with per-PA health status indicators. Live counters refresh every 60 seconds. Compliance officers see at a glance which companies are at risk.
Compliance overview with monthly submission statistics and rejection analysis by error code
10 · Compliance Overview — Monthly submission statistics with success and rejection breakdown by error code, PA health checks, and Sep 2026/2027 mandate countdown. Rejection analysis identifies the most frequent PA error codes so accountants can fix systemic invoice data issues proactively (FR-049–FR-053).
Compliance dashboard QA-verified showing September 2026 and 2027 dates per company with PA health
11 · Compliance Dashboard (QA-verified) — September 2026 and September 2027 mandate dates displayed per company, PA connectivity health, and live submission counters. Captured from the QA iteration 3 verification pass on the live Docker Odoo 19 environment with Acme Industries S.L. seed data.

E-Reporting (CGI Art. 290)

B2C e-reporting periods list with calendar 10-day boundaries, states Due Submitted Accepted
12 · B2C E-Reporting Periods — Calendar-based 10-day periods per CGI Art. 290, with state management (Due, Submitted, Accepted, Accepted—Corrected). ECB exchange rate integration handles non-EUR transactions automatically. 48-hour deadline reminders sent via Odoo mail before each period closes.
E-reporting B2C detail showing period date range, aggregate VAT amounts, and submission state
13 · B2C E-Reporting Detail — Period breakdown with start/end dates, aggregate VAT amounts by rate, and current submission state. XML preview and one-click submission to the PA. Cross-border and domestic reverse-charge periods follow the same data structure (FR-036–FR-043), differing only in period length and tax selection logic.
E-reporting period form with line counts, VAT breakdown, and XML preview for DGFiP submission
14 · E-Reporting Period Form — Detailed view of a B2C reporting period: line counts, VAT breakdown by tax code, and XML preview before submission. One button submits the XML to the PA and updates the period state. All data retained for the mandatory 10-year archive (Code de Commerce).
B2C e-reporting six periods QA-verified: Due times three, Submitted, Accepted, Accepted corrected
15 · B2C E-Reporting Overview (QA-verified) — Six periods across multiple states: Due × 3, Submitted × 1, Accepted × 1, Accepted—Corrected × 1. Period boundaries precisely follow the DGFiP calendar. Captured from QA iteration 3 confirming all six state transitions work correctly in a live Odoo 19 environment.

Audit & Evidence

Compliance evidence export wizard packaging submission logs and e-reporting XML for DGFiP inspection
16 · Compliance Evidence Export — Archive wizard packages submission logs, e-reporting XML records, and API call history into a downloadable ZIP for DGFiP and URSSAF inspections (FR-052). Retention enforced for 10 years per Code de Commerce. Date range filter allows exporting only the period under audit.
API call log showing immutable log entries with endpoint, HTTP status, timestamp, access restricted to admins
17 · API Call Log — Immutable log of every PA API call with endpoint URL, HTTP status code, request timestamp, and response summary. Access restricted to compliance administrators (FR-008, AC-051). Immutability notice displayed — no record can be deleted or modified, preserving chain of custody for DGFiP audit readiness.

Built for

  • French companies (>50 employees) that must comply with the September 2026 large-company mandate and need a PA connector for their Odoo installation.
  • SMEs and micro-enterprises preparing ahead of the September 2027 deadline to avoid last-minute scramble and PA integration risk.
  • Odoo partners and integrators who manage Odoo deployments for French clients and need a production-ready compliance layer they can install and configure in a day.
  • Accountants and compliance officers in French companies who want full invoice lifecycle visibility inside Odoo without switching to external PA portals.
  • CFOs and finance directors who need a single source of truth for B2B invoice acceptance rates, e-reporting compliance, and audit evidence export.
Also works for: Public-sector suppliers routing invoices to Chorus Pro (B2G) when the optional l10n_fr_chorus_pro module is installed. The connector gracefully degrades if Chorus Pro is not present.

Compatibility

ItemValue
Odoo version19.0 (Community and Enterprise)
LicenseLGPL-3 (free and open source)
Required Odoo modulesaccount, account_edi_ubl_cii, l10n_fr, base_setup, mail, base
Required Python packagescryptography, requests, lxml
Required environment variableFLEXIGO_FERNET_KEY — base64 Fernet key for PA credential encryption
Optional modulesl10n_fr_chorus_pro (B2G routing), l10n_fr_pa (co-existence), purchase (PO matching)
Multi-companyYes — per-company PA configuration with full data isolation
Multi-currencyYes — ECB rate integration for non-EUR e-reporting periods
Community editionYes — no Enterprise dependency; PA holds DGFiP accreditation, not the ERP
Environment variable required: Generate a Fernet key once per Odoo instance: python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" — then set FLEXIGO_FERNET_KEY=<value> in your server environment. Without it, PA credential saving is blocked (credentials are never stored in plain text).

Optional module integrations

  • l10n_fr_chorus_pro — enables B2G invoice routing to Chorus Pro for public-sector buyers
  • l10n_fr_pa — coexists with Odoo's native PA module, no view conflicts
  • purchase — enables automatic PO matching for received inbound invoices with confidence score

Known limitations

  • AFNOR XP Z12-013 e-reporting schema: the full standard is behind the AFNOR paywall. The submit_ereport() method uses best-effort field mapping. Contact FlexigoTech if your deployment requires the certified AFNOR schema validator.
  • PA adapter coverage: built-in adapters for Basware, Sovos, Tradeshift, EDICOM, and Docaposte. For other certified PAs, use the Generic REST adapter with custom endpoint configuration.
  • Webhook signature verification (FR-054): requires your PA to send an HMAC-SHA256 signature header. Verify your PA's webhook contract before enabling signature verification in production.

Pricing

France E-Invoicing Connector
Free
LGPL-3 — open source
  • No per-database fee
  • No annual subscription
  • Full source code on GitHub
  • Community support via GitHub Issues
  • Professional support and integration services: flexigotech.com

Need a managed deployment, custom PA adapter, or SLA support? Contact us at comercial@flexigotech.com.

Frequently asked questions

Does FlexigoTech act as a Plateforme Agrée itself?

No. This module is a connector: it routes invoices from Odoo to an external DGFiP-certified Plateforme Agrée that your company has contracted with (Basware, Sovos, Tradeshift, EDICOM, Docaposte, or another via the Generic REST adapter). FlexigoTech does not hold DGFiP accreditation and does not process invoice data on its infrastructure. Your data flows directly from Odoo to your chosen PA via their published API.

Is this module compatible with Odoo Community edition?

Yes. The module is designed for Odoo 19 Community and Enterprise. It has no hard dependency on Enterprise-only modules. The PA holds DGFiP accreditation — the ERP connector does not require Enterprise. We recommend verifying compatibility requirements with your chosen PA provider and a French tax specialist before production deployment.

What is the FLEXIGO_FERNET_KEY environment variable and why is it required?

PA API credentials (API keys, OAuth2 tokens, mTLS private keys) are stored Fernet-encrypted in the Odoo database. The Fernet key is stored outside the database in a server environment variable — so even if the DB is leaked, credentials cannot be decrypted without the key. Generate a key with: python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())". Store it in your server's environment manager (Vault, Doppler, AWS Secrets Manager) and set FLEXIGO_FERNET_KEY=<value> before starting Odoo. If the variable is absent, credential saving is blocked — the module will never silently store credentials in plain text.

Which Plateformes Agrées are supported out of the box?

Built-in adapters ship for: Basware, Sovos, Tradeshift, EDICOM, and Docaposte. A Generic REST adapter covers any other DGFiP-certified PA that exposes a standard REST API. The adapter interface (FR-058) is published so Odoo partners can add new PA adapters as companion modules without modifying this module's core files. The PA catalog is refreshable from a DGFiP export JSON/CSV without a module upgrade (FR-056).

Does this module handle both B2B invoice issuance and B2C e-reporting?

Yes. The module covers the full compliance scope: B2B invoice issuance and reception (both structured formats and lifecycle tracking), and all three CGI Art. 290 e-reporting obligation types: B2C (10-day periods), cross-border (monthly), and domestic reverse-charge (monthly). Each e-reporting type can be enabled independently per company. E-reporting periods auto-populate from posted invoices; the accountant reviews, then submits to the PA in one click.

What happens if the Plateforme Agrée API is unavailable?

Invoice submissions are queued in Odoo and retried by a background cron job. The PA health status dashboard shows which PAs are unreachable so compliance officers can act before invoices go stale. Stall alerts fire on submissions pending beyond a configurable threshold. The API call log records every attempt with HTTP status code and response, giving a full history for debugging and DGFiP audit purposes.

Is the module ready for multi-company Odoo deployments?

Yes. Each Odoo company has its own independent PA configuration (including separate encrypted credentials, invoice format preferences, and primary issuance/reception flags). Odoo record rules enforce strict data isolation — users from Company A cannot see PA configurations, submission records, or e-reporting periods belonging to Company B. The compliance dashboard aggregates data per company, making multi-entity compliance management straightforward.

Ready to get compliant before September 2026?

Install France E-Invoicing Connector from the Odoo Apps Store. Configure your Plateforme Agrée in minutes with the guided setup wizard.

Support and integration services: comercial@flexigotech.com

flexigotech.com — FlexigoTech Odoo modules

This module supports your compliance workflows under French Law No. 2023-1322, CGI Art. 289 bis, and CGI Art. 290. It does not constitute legal advice. Consult your legal counsel and a French tax specialist for binding interpretation of the mandatory e-invoicing requirements applicable to your company.

Regulatory references: Legifrance — Loi No. 2023-1322 · DGFiP — Facturation électronique

© 2026 FlexigoTech · flexigotech.com · License: LGPL-3

Legal basis for data processing: GDPR Art. 6(1)(c) — French tax law obligation.

Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with