RelevéPro

Accueil › Les formats

Les formats d’import comptable français, documentés

Quatre formats servent à faire entrer des écritures dans un logiciel de comptabilité français. Trois ont une spécification publique ; le quatrième n’en a plus. Voici ce que chacun transporte, ce qu’il ne transporte pas, et surtout ce qui fait rejeter un fichier — la partie que les documentations d’éditeurs passent sous silence.

Cette page est écrite à partir des textes eux-mêmes, cités à chaque affirmation. Elle n’est pas une brochure : les points incertains y sont signalés comme incertains.

Si vous cherchez lequel de ces formats produire à partir de relevés PDF — reprise d’historique, banque qui ne rejoue plus la période — la question se tranche ailleurs : reconstituer un CFONB 120 ou un OFX plutôt qu’un FEC, et pourquoi ça change la suite du dossier. Cette page-ci ne décrit que les formats, sans dire lequel choisir.

FEC — Fichier des Écritures Comptables

C’est le seul format d’import dont la structure est fixée par un texte réglementaire : Article A. 47 A-1 du Livre des procédures fiscales (arrêté du 29 juillet 2013) (Légifrance). Commentaire administratif : BOI-CF-IOR-60-40-20 — commentaire administratif du FEC (BOFiP-Impôts). C’est ce qui en fait le format à viser en priorité : un éditeur peut refuser un dialecte maison, il ne peut pas ignorer l’arrêté.

Ce que le texte impose

Ce qui fait rejeter un FEC

La DGFiP publie son propre outil de contrôle, Test Compta Demat — outil de contrôle des FEC de la DGFiP, code source publié (CeCILL) (DGFiP), sous licence libre. Son code source dit précisément ce qui passe et ce qui casse — et ce n’est pas toujours ce qu’on croit :

Ce qu’un FEC d’import n’est pas.

Un fichier d’écritures de relevé bancaire n’est pas le FEC à remettre à l’administration : celui-là porte la comptabilité complète et validée d’un exercice. Les deux ont la même structure et un usage différent. Confondre les deux est l’erreur la plus coûteuse qu’on puisse commettre avec ce format.

Ce que le texte ne fixe pas, et qu’il faut donc décider

Point non fixéCe que nous faisonsPourquoi
Longueur de CompteNum 6 caractères, complétés par des zéros à droite (645 → 645100) Convention des plans de comptes français. Non imposée par l’arrêté : à vérifier au premier import réel.
Séparateur décimal Virgule, sans alternative L’outil de la DGFiP rejette le point. Un paramètre existait ; il ne servait qu’à produire un fichier refusé, il a été retiré.
Nomenclature du fichier Respectée seulement si un SIREN est fourni Inventer un SIREN serait pire que ne pas en mettre.

CFONB 120 — relevé de compte sur support informatique

Format historique des banques françaises, toujours servi par les modules de rapprochement bancaire. Source : Relevé de compte sur support informatique — Transfert de fichiers, juillet 2004 (CFONB). Enregistrements de longueur fixe, 120 caractères, de quatre types : 01 ancien solde (obligatoire), 04 mouvement, 05 complément de libellé, 07 nouveau solde (obligatoire).

Les deux pièges du format

  1. Le signe est surimprimé sur le dernier chiffre du montant. Héritage du COBOL : au crédit, { puis A…I pour 0…9 ; au débit, } puis J…R. Un montant de 1 250,00 € au crédit se termine donc par { et non par 0. Un fichier dont le signe est mal codé est rejeté sans explication utile.
  2. Les accents sont interdits. La brochure renvoie à la circulaire FBF 88/327 du 15 septembre 1988 : chiffres, LETTRES MAJUSCULES, * - . / ) ( et l’espace, rien d’autre. DÉCEMBRE doit devenir DECEMBRE — et translittérer, jamais remplacer par un octet faux.

Ce qui fait rejeter un CFONB 120 — mesuré, pas supposé

Trois de ces points nous ont été appris par un lecteur écrit par d’autres, qui a refusé nos propres fichiers. Ils sont ici parce qu’aucune documentation ne les met en avant :

Ce qu’un PDF ne permet pas de reconstituer

Un relevé imprimé ne porte pas tout ce que le format attend. Les zones concernées : code banque, code guichet et numéro de compte (lisibles seulement si un IBAN français complet est imprimé — un IBAN masqué FR76 XXXX… ne compte pas), la date de valeur (souvent confondue avec la date d’opération), et la date de l’ancien solde (jamais imprimée telle quelle ; la veille de la première opération est une approximation assumée, imposée par la règle 3 de la brochure).

OFX 1.0.2

Format international, celui que la plupart des banques proposent en téléchargement direct. Source : Open Financial Exchange Specification 2.0.2, 2 septembre 2003 (consortium OFX) — sections 11.4.1.2, 11.4.3, 11.3.1 et 3.2.8.

Une rupture de continuité, une seule fois, le 27/08/2026. Les identifiants d’opération ont changé de forme ce jour-là. Si vous aviez déjà importé un relevé avant cette date, ne le réimportez pas : il entrerait en double. Les relevés exportés à partir d’aujourd’hui sont stables entre eux.

Aucun schéma stable ne peut naître stable par rapport à un schéma qui ne l’était pas. Ce qui n’était pas inévitable, en revanche, c’est le sens de la casse, et il a été vérifié : un identifiant de la nouvelle forme ne peut jamais coïncider avec un ancien. La migration produit donc des doublons visibles et supprimables, jamais des opérations que votre logiciel croirait déjà importées et passerait sous silence. Un doublon se voit ; une ligne absente, non. C’est désagréable une fois, et c’est le sens le moins coûteux.

Un piège de relecture qui coûte cher, et qui n’est écrit nulle part.

Sur Node.js, new TextDecoder('windows-1252') annonce encoding === 'windows-1252' et décode en réalité du latin-1 : l’octet 0x97 devient U+0097 au lieu du tiret cadratin, sans le moindre avertissement. Qui relit un OFX avec cette fonction pour vérifier son export accusera son propre encodeur d’une faute qu’il ne commet pas. Constaté ici, et corrigé par un décodeur écrit à la main, vérifié en aller-retour sur €, —, « et Œ.

QIF

Intuit ne publie plus de spécification. C’est le seul des quatre formats dont la référence n’est pas normative, et c’est pour cela qu’il vient en dernier. Les descriptions publiques concordantes utilisées ici : Finance::QIF — implémentation de référence, faute de spécification publiée par Intuit (CPAN).

Le piège tient en une phrase : QIF ne transporte aucune indication de langue ni de format de date. La convention d’origine est américaine (MM/JJ/AAAA), l’usage européen est JJ/MM/AAAA. Les logiciels sérieux demandent le format à l’import ; les autres peuvent intervertir jour et mois sans rien signaler. Un relevé de janvier à décembre passe alors inaperçu jusqu’au 13 du mois.

Deuxième piège, celui-là mesuré : une bibliothèque de lecture QIF répandue divise par mille tout montant portant un séparateur de milliers — T-1,000.00 est relu -1, sans erreur ni avertissement. Le format n’y est pour rien ; il n’a simplement pas d’autorité pour trancher.

Les comptes du plan comptable général

Un fichier d’import doit poser un numéro de compte en face de chaque libellé. Les intitulés utilisés ici sont recopiés à l’identique du Plan de comptes de l’article 1121-1 du règlement ANC n° 2014-03 (Autorité des normes comptables).

Deux règles de prudence, appliquées sans exception :

  1. Ce qu’aucune règle ne reconnaît va en 471 — compte d’attente. Jamais dans un compte « à peu près juste ». Un comptable corrige vite un 471 ; il ne voit pas passer une charge rangée dans le mauvais poste.
  2. Aucune règle sur un motif trop général. Pas de règle « VIREMENT », pas de règle « PRÉLÈVEMENT » : elles imputeraient massivement et faussement. Une règle « carburant » a été envisagée puis retirée — le compte 60622 couramment employé par les logiciels ne figure pas dans le plan de comptes de l’ANC, et une enseigne pétrolière vend aussi bien du carburant que de l’électricité.

Les formats que nous avons écartés, et pourquoi

Quadratus / Quadra (ASCII) est très répandu dans les cabinets français, et c’était le candidat n° 1 avant recherche. Il a été écarté faute de spécification publique : aucune des sources consultées ne donne les positions et longueurs de zones. Le seul élément concret trouvé est un exemple d’enregistrement posté sur un forum, dont les espaces ont été normalisés par le forum lui-même — donc inutilisable pour un format positionnel, où une zone décalée d’un caractère fait rejeter le fichier en bloc, ou pire, le fait importer de travers.

Sage, Cegid, Isacompta, ACD : mêmes motifs, documentation non publiée par les éditeurs. Le contournement est meilleur que huit dialectes reconstitués — ces logiciels importent le FEC, qui est spécifié par un texte opposable.

Ce que cette page ne prouve pas.

Respecter une spécification écrite n’est pas la même chose que réussir un import. Un logiciel de comptabilité peut refuser un fichier parfaitement conforme pour un plan de comptes inconnu, un journal non déclaré ou un exercice fermé. Ce que nous mesurons vraiment, et ce que ça ne dit pas →

← Convertir un relevé · Comment nous vérifions nos fichiers