Publicité
ERP IMPLEMENTATION
🇫🇷 Lire en français →

ERP and the French FEC: Guide to DGFiP-Compliant Accounting Audit Files 2026

Practical guide for any organisation operating in France: configure your ERP to generate a compliant FEC — 18 mandatory fields, 5 critical errors, and export procedures for SAP, Sage, Odoo, and Dynamics.

ERP and the French FEC: Guide to DGFiP-Compliant Accounting Audit Files 2026

The Fichier des Ecritures Comptables — or FEC — is one of the least well-understood legal obligations facing IT and finance leaders in organisations with French operations. Since 2014, any company that maintains its accounting records electronically in France must be able to produce a FEC from the very first day of a DGFiP (French tax authority) audit. If your ERP fails to generate a file that meets the 18 mandatory fields defined by the decree of 29 July 2013, the company is exposed to a €5,000 fine under Article 1729 D of the French Tax Code (Code général des impôts), and in the worst case, the entire bookkeeping may be rejected and reconstructed by the administration.

This guide explains what the FEC is, the five ERP configuration errors that make it invalid, and the export procedures for the leading ERP vendors operating in France.

What the FEC Is and Why Your ERP Owns It

The FEC is defined by Article A. 47 A-1 of the French Book of Tax Procedures (Livre des procédures fiscales, LPF), introduced by the ministerial order of 29 July 2013. It applies to every company that holds computerised accounting records in France — in practice, virtually all SMEs and mid-market companies for more than a decade.

During a tax audit (Article L. 13 LPF) or a remote accounting review (Article L. 47 AA LPF), the auditor may request the FEC on the very first day of the examination. The file must contain every accounting entry for the audited period, exported from the ERP in a standardised format.

Two penalties are provided under Article 1729 D of the French Tax Code (Légifrance, art. 1729 D CGI):

  • A flat fine of €5,000 per audited period if the FEC is not produced or does not meet regulatory requirements.
  • Where an additional tax assessment is issued, a 10% surcharge on the tax reassessed, if that amount exceeds €5,000.

France’s Conseil d’État upheld the constitutionality of this fine in a January 2026 ruling (legifiscal.fr). A January 2026 BOFIP guidance note clarified that the penalty applies once per audit, regardless of the number of periods under review.

The 18 Mandatory Fields of the FEC

The FEC is a tab- or pipe-delimited (|) text file, encoded in UTF-8 or ISO-8859-15. It must contain exactly 18 columns per accounting line, in the exact order defined in the annex to Article A. 47 A-1 LPF. The reference documentation is the BOFIP technical sheet BOI-CF-IOR-60-40-20.

#FieldDescription
1JournalCodeJournal code (e.g. VT for sales, AC for purchases)
2JournalLibJournal label
3EcritureNumSequential and continuous entry number
4EcritureDateEntry date in YYYYMMDD format
5CompteNumAccount number (Plan Comptable Général — France’s chart of accounts — minimum 8 digits)
6CompteLibAccount label
7CompAuxNumAuxiliary account number (counterparty code)
8CompAuxLibAuxiliary account label
9PieceRefSource document reference
10PieceDateSource document date in YYYYMMDD format
11EcritureLibEntry description
12DebitDebit amount in 0.00 format (decimal point mandatory)
13CreditCredit amount in 0.00 format
14EcritureLetEntry matching/lettrage code
15DateLetMatching date in YYYYMMDD format
16ValidDateAccounting validation date in YYYYMMDD format
17MontantdeviseAmount in original currency (blank for EUR transactions)
18IdeviseISO 4217 currency code (e.g. USD, GBP)

An empty field is permitted only where the specific field rule allows it (CompAuxNum may be blank for non-third-party accounts; Montantdevise may be blank for euro-denominated entries).

What the Auditor Checks During a Tax Inspection

The auditor does not review your FEC manually. Automated tools developed by the DGFiP are used — including the Test Compta Demat application. First-level checks cover:

  • Presence of all 18 columns in the correct order.
  • Sequential EcritureNum numbering with no gaps or duplicates within each journal.
  • Debit/credit balance across the full period and journal by journal.
  • Date consistency (EcritureDate must be on or before ValidDate).
  • Absence of prohibited characters in text fields (line breaks, unescaped quotes or pipe symbols).

Advanced checks then cross-reference FEC data against VAT returns, annual tax filings, and bank statement flows.

The 5 ERP Configuration Errors That Make Your FEC Invalid

Error 1: Non-Sequential Entry Numbering

The EcritureNum field must form a continuous sequence with no gaps, journal by journal. Two common sources of failure: logical deletion of entries in the ERP (which leaves holes in the sequence) and numbering that resets to zero at a new financial year or after a migration.

Fix: enable sequential locking of accounting entries in your ERP and prohibit any deletion after posting. For migrations, require a mapping table between old and new entry numbers.

Error 2: Missing Auxiliary Account Data

The CompAuxNum and CompAuxLib fields are mandatory for all entries on third-party accounts (PCG class 4: payables and receivables). Many ERPs leave these blank when the counterparty master is not synchronised with the chart of accounts.

Fix: configure the mapping between the counterparty reference data (CRM, supplier file) and the ERP chart of accounts. Verify that every 401 (payables) and 411 (receivables) account is consistently linked to a non-blank auxiliary code.

Error 3: EcritureDate/ValidDate Inconsistency

ValidDate represents the date on which an entry was irrevocably posted in the books. If your ERP allows entries to be modified after posting, or if ValidDate is automatically set to the input date without period-lock enforcement, the DGFiP may conclude that the accounting is non-probative.

Fix: lock closed periods in the ERP. No entry belonging to financial year N should be modifiable after the validated closing date approved by the head of accounting.

Reversals must be linked to the original entry via the EcritureLet field. An ERP that generates counter-entries through manual input — without an automated matching link — produces a FEC with unexplained movements.

Fix: use only the ERP’s native reversal function, which automatically maintains the lettrage link to the source entry.

Error 5: Foreign-Currency Entries Without Correct Conversion Data

For any entry involving a foreign currency, Montantdevise (column 17) and Idevise (column 18) must be populated with the original-currency amount and the ISO 4217 currency code. A blank field or a non-standard currency code is sufficient to invalidate every line affected.

Fix: activate multi-currency management in your ERP and verify that the currency conversion module systematically populates both fields for every non-euro transaction.

Exporting a Compliant FEC from the Leading ERP Vendors

SAP S/4HANA and SAP ECC

SAP uses the DART (Data Retention Tool) to generate the FEC. The recommended version is DART 2.7, compatible with S/4HANA and the legacy ECC platform (SAP Community). The FEC is configured through a dedicated selection view labelled “France FEC”.

Key point for S/4HANA migrations: always test FEC generation on the historical data carried over, since entry numbering rules may have changed during migration. Configuration documentation is available on the SAP Help Portal.

Sage 100 Comptabilité and Sage X3

The FEC is natively supported in Sage 100 Comptabilité. Procedure: menu Traitements > Vérification comptable DGFiP > Export FEC (Sage Knowledge Base). Select the closed financial year, choose the output directory, and run the export. The file is named according to the required convention: SirenFECYYYYMMDD.txt.

For Sage X3 (Sage Enterprise Management), the France module includes a native FEC export accessible from accounting close functions. Verify that the installed version incorporates the latest DGFiP regulatory updates.

Dynamics 365 Finance

Microsoft Dynamics 365 Finance provides a France localisation with a native FEC export via the Electronic Reporting module, documented on Microsoft Learn.

Important note: this documentation covers Dynamics 365 Finance (the ERP for mid-market and enterprise). For Dynamics 365 Business Central, the availability of a native FEC export depends on the version and installed modules — confirm with your Microsoft partner before any French deployment.

Cegid XRP Flex

Cegid XRP Flex natively integrates French regulatory requirements, including the FEC. The export is accessible from the accounting close functions, and Cegid maintains compliance through continuous regulatory updates. When migrating to XRP Flex from a previous version, verify that the historical accounting data carried over is fully accessible to the FEC export function.

Odoo 18

Odoo includes FEC export in its standard French localisation via the l10n_fr_fec module. Procedure: Accounting > Reporting > FEC (Odoo 18 documentation). Select the fiscal year and download the file. The OCA (Odoo Community Association) also provides an alternative l10n_fr_fec_oca module for deployments on Odoo Community Edition.

EBP Compta

EBP Compta has included a native DGFiP FEC export since the versions compliant with the 2013 legislation. Generation is available from the year-end close functions. As EBP is frequently used by small businesses and SMEs relying on an external accountant, verify that the installed version incorporates the latest regulatory updates.

FEC Pre-Audit Validation Checklist (12 Points)

Before submitting a FEC to the tax authority or closing a financial year, systematically verify these 12 points:

  1. No sequence gaps: EcritureNum forms a continuous series per journal, with no missing numbers.
  2. No duplicates: no EcritureNum value appears twice within the same journal.
  3. Debit/credit balance: total Debits equal total Credits across the full period and journal by journal.
  4. CompAuxNum populated: all third-party accounts (PCG class 4) have a non-blank auxiliary code.
  5. Consistent dates: EcritureDate is on or before ValidDate for every line.
  6. Correct date format: all dates are in YYYYMMDD format (eight digits, no separator).
  7. No special characters: no line breaks, unescaped quotes, or pipe symbols in text fields.
  8. Uniform delimiter: the file uses exclusively tabs or exclusively pipe characters — never mixed.
  9. Consistent encoding: the file is entirely in UTF-8 or entirely in ISO-8859-15, with no mixed encodings.
  10. Normalised filename: SirenFECYYYYMMDD.txt (nine-digit SIREN, “FEC”, financial year closing date).
  11. Opening balances present: carry-forward entries (journal AN) appear at the head of the file.
  12. Montantdevise and Idevise populated: for every foreign-currency entry, both fields are non-blank and ISO 4217-compliant.

The DGFiP provides the Test Compta Demat application, available for free download at impots.gouv.fr. This tool replicates the consistency checks applied by the auditor at the start of an engagement. It is strongly recommended to run it after every year-end close, without waiting for an audit notice.

What to Do if Your ERP Cannot Generate a Native FEC

Manual Extraction and ETL

Some ERPs that are not localised for France — North American or Asian-origin solutions, or legacy bespoke systems — do not produce a FEC natively. The only legal path is to build an ETL extraction that reconstructs the 18 fields from the ERP’s accounting tables.

This approach carries two significant risks. First, a reconstructed file is difficult to defend before an auditor: how do you prove that the extracted data corresponds exactly to the entries as they were recorded at the time? Second, the absence of native sequential numbering forces you to reconstruct EcritureNum, which is a documentary weak point.

An ERP that cannot generate a compliant FEC exposes the company to the €5,000 fine under Article 1729 D of the French Tax Code, even if the underlying bookkeeping is irreproachable. This must be addressed before any migration or ERP change: require contractually that the new ERP generates a native, compliant FEC; test it on a full financial year before go-live; and never defer this verification until an actual audit occurs.

FEC vs. Reliable Audit Trail (PAF): What Is the Difference?

The FEC and the piste d’audit fiable (PAF, or “reliable audit trail”) are two complementary obligations that are often confused.

The FEC is an accounting file: it covers validated entries in the general ledger for a closed financial year. The PAF is a documentary traceability obligation, imposed by Article 289 VII of the French Tax Code: it requires being able to link any invoice to the corresponding payment, from start to finish, with preservation of all supporting documents. It applies to the procure-to-pay and order-to-cash chains within the ERP, not only to the general ledger.

In practice, an ERP that generates a compliant FEC does not necessarily satisfy the PAF, and vice versa. These are two distinct layers of French tax compliance that must be verified independently.


To go further on ERP fiscal and documentary compliance, see our guide on ERP data archiving and legal retention periods and our article on SoD controls to implement before the annual audit.

To validate the FEC compliance of your current ERP, the most effective approach is a targeted four-to-eight-week audit: extract a FEC for the current financial year, test it with the DGFiP Test Compta Demat tool, and identify any configuration gaps. Typical budget: €8,000 to €15,000 depending on ERP complexity. Output: a prioritised list of fixes to implement before a real audit takes place.