Le format CFONB 120 expliqué (2026) : structure, enregistrements 01/04/05/07, montants
Le CFONB 120 est le format français de relevé de compte défini par le Comité Français d'Organisation et de Normalisation Bancaires : un fichier texte à largeur fixe, 120 caractères par ligne, où chaque ligne est un enregistrement typé par ses deux premiers caractères : 01 ancien solde, 04 mouvement, 05 complément d'information, 07 nouveau solde. Les montants occupent 14 caractères et leur signe est codé dans le dernier caractère, qui remplace le dernier chiffre : { et A à I pour un montant positif (0 à 9), } et J à R pour un montant négatif (0 à 9). C'est le format livré par les banques via EBICS et lu nativement par Cegid, ACD, Isacompta, MyUnisoft et Sage 100.
Structure générale d'un fichier
Un relevé CFONB 120 couvre un compte et une période. Il s'organise en un enregistrement 01 (ancien solde), une suite d'enregistrements 04 (mouvements) chacun suivi éventuellement d'un ou plusieurs 05 (compléments), puis un enregistrement 07 (nouveau solde). Plusieurs comptes ou plusieurs périodes peuvent se succéder dans le même fichier, chacun encadré par un 01 et un 07. Pas de ligne d'en-tête de fichier, pas de séparateur : la largeur fixe fait office de structure.
Enregistrement 01 : ancien solde
| Positions | Longueur | Contenu |
|---|---|---|
| 1-2 | 2 | Code enregistrement 01 |
| 3-7 | 5 | Code banque |
| 8-11 | 4 | Zone réservée |
| 12-16 | 5 | Code guichet |
| 17-19 | 3 | Code devise (EUR) |
| 20 | 1 | Nombre de décimales (2 pour l'euro) |
| 21 | 1 | Zone réservée |
| 22-32 | 11 | Numéro de compte |
| 33-34 | 2 | Zone réservée |
| 35-40 | 6 | Date de l'ancien solde, JJMMAA |
| 41-90 | 50 | Zone réservée |
| 91-104 | 14 | Montant de l'ancien solde, signe dans le dernier caractère |
| 105-120 | 16 | Zone réservée |
Enregistrement 04 : mouvement
| Positions | Longueur | Contenu |
|---|---|---|
| 1-2 | 2 | Code enregistrement 04 |
| 3-7 | 5 | Code banque |
| 8-11 | 4 | Code opération interne (propre à la banque) |
| 12-16 | 5 | Code guichet |
| 17-19 | 3 | Code devise |
| 20 | 1 | Nombre de décimales |
| 21 | 1 | Zone réservée |
| 22-32 | 11 | Numéro de compte |
| 33-34 | 2 | Code opération interbancaire |
| 35-40 | 6 | Date d'opération (comptabilisation), JJMMAA |
| 41-42 | 2 | Code motif de rejet |
| 43-48 | 6 | Date de valeur, JJMMAA |
| 49-79 | 31 | Libellé |
| 80-81 | 2 | Zone réservée |
| 82-88 | 7 | Numéro d'écriture |
| 89 | 1 | Indice d'exonération de commission |
| 90 | 1 | Indice d'indisponibilité |
| 91-104 | 14 | Montant du mouvement, signe dans le dernier caractère |
| 105-120 | 16 | Zone de référence |
Le libellé est limité à 31 caractères : c'est la raison d'être de l'enregistrement 05.
Enregistrement 05 : complément d'information
Un 05 suit immédiatement le 04 qu'il complète ; plusieurs 05 peuvent se succéder. Les positions 1 à 40 reprennent celles du 04 (code banque, guichet, compte, date). Puis :
| Positions | Longueur | Contenu |
|---|---|---|
| 46-48 | 3 | Qualifiant de la zone complément |
| 49-118 | 70 | Zone complément |
| 119-120 | 2 | Zone réservée |
Qualifiants courants : LIB (libellé complémentaire), NPY (nom du payeur ou bénéficiaire), LCC et LCS (libellés complémentaires, notamment pour les opérations SEPA), MMO (montant en devise d'origine), REF (référence), RCN (référence client). Un prélèvement SEPA peut ainsi porter sur un 04 le libellé court et sur trois 05 le créancier, la référence de mandat et le motif.
Enregistrement 07 : nouveau solde
Même structure que le 01, code 07, avec en positions 35-40 la date du nouveau solde et en 91-104 son montant. Contrôle de cohérence : ancien solde + somme algébrique des 04 = nouveau solde. Tout import sérieux vérifie cette égalité ; c'est le contrôle que les logiciels de cabinet effectuent à la lecture.
L'encodage du signe dans le montant
Le montant occupe 14 caractères sans virgule ni point : les décimales sont implicites (position 20 en indique le nombre). Les 13 premiers caractères sont des chiffres, cadrés à droite avec des zéros à gauche. Le 14e caractère remplace le dernier chiffre et porte le signe :
| Dernier chiffre | Montant positif (crédit) | Montant négatif (débit) |
|---|---|---|
| 0 | { | } |
| 1 | A | J |
| 2 | B | K |
| 3 | C | L |
| 4 | D | M |
| 5 | E | N |
| 6 | F | O |
| 7 | G | P |
| 8 | H | Q |
| 9 | I | R |
Exemples pour 2 décimales : 0000000012345{ = +123,45 € (crédit) ; 0000000012345} = −123,45 € (débit) ; 0000000000450M = −45,04 € (le dernier chiffre 4 est remplacé par M) ; 0000000100000{ = +1 000,00 €.
Cette convention vient des formats IBM à champs zonés. Une erreur courante des convertisseurs est d'écrire un signe « - » en tête ou un chiffre en 14e position : le fichier est alors refusé ou tous les montants sont lus en crédit.
Qui utilise le CFONB 120
| Logiciel | Usage du CFONB 120 |
|---|---|
| Cegid Loop | Seul format d'import de relevé (Trésorerie > Importer un fichier CFONB) |
| Cegid Quadra | Réception par EBICS |
| ACD | Import natif, à côté de l'OFX et du CSV paramétrable |
| Isacompta / Agiris | Import natif, à côté de l'OFX 1.02 SGML |
| MyUnisoft | Intégration bancaire et import CFONB 120 |
| Sage 100 | Import natif |
| Sage Génération Experts | Réception via jedeclare / EBICS |
| EBP Compta | Import natif, à côté de l'OFX et du QIF |
| Inqom | Réception par EBICS |
Les banques françaises le produisent toutes dans le cadre d'un abonnement EBICS. Pour les dossiers sans EBICS, le CFONB 120 est généré à partir d'une autre source : export CSV de la banque, ou relevé PDF. L'outil de conversion Relevé bancaire PDF → Excel, OFX produit un CFONB 120 à partir d'un relevé PDF en renseignant les 01, 04 et 07 et en vérifiant que l'enchaînement des soldes est respecté avant export.
CFONB 120 et OFX : différences
| Critère | CFONB 120 | OFX 1.02 |
|---|---|---|
| Origine | Normalisation bancaire française | Standard américain (Microsoft, Intuit, CheckFree) |
| Syntaxe | Texte à largeur fixe, 120 caractères par ligne | Balises SGML |
| Identification du compte | Code banque, guichet, numéro de compte dans chaque ligne | Bloc BANKACCTFROM une fois par relevé |
| Signe des montants | Dernier caractère zoné ({ A-I / } J-R) | Signe « - » devant le montant |
| Décimales | Implicites, nombre en position 20 | Point décimal explicite |
| Libellé | 31 caractères + compléments 05 | NAME 32 + MEMO 255 |
| Identifiant d'opération | Numéro d'écriture, non garanti unique | FITID, unique attendu |
| Soldes | 01 et 07 obligatoires | LEDGERBAL obligatoire |
| Encodage | ASCII, CRLF | Windows-1252, CRLF, sans BOM |
| Lecteurs principaux | Cegid, ACD, Isacompta, MyUnisoft, Sage 100, EBP, Inqom | Pennylane, Sage 50, EBP, ACD, Isacompta |
Le CFONB 120 est plus rigide et plus ancien ; en contrepartie, il est lu sans paramétrage par tous les logiciels de cabinet français. L'OFX est plus lisible et porte un identifiant unique par opération, mais sa version compte (1.02 SGML attendu, XML souvent refusé).
Contrôler un CFONB 120 avant import
- Chaque ligne fait exactement 120 caractères (ni plus ni moins, espaces de remplissage compris).
- Le fichier commence par un 01 et se termine par un 07 pour chaque compte.
- Code banque, guichet et compte sont identiques sur toutes les lignes d'un même bloc et correspondent au RIB paramétré dans le logiciel.
- Le 14e caractère de chaque montant est l'un de
{,}, A à R ; jamais un chiffre. - Ancien solde + mouvements = nouveau solde.
FAQ
Le CFONB 120 est-il le même que le CFONB 160 ou 240 ? Non. Le 120 est le relevé de compte. Le 160 concerne les virements et prélèvements émis, le 240 les remises de LCR et BOR. Ils ne sont pas interchangeables.
Pourquoi les montants n'ont-ils pas de signe « - » ? Le format vient des traitements de gestion à champs zonés où le signe est fusionné avec le dernier chiffre pour économiser une position. { et } codent le zéro positif et négatif, A à I et J à R les chiffres 1 à 9.
Un fichier CFONB 120 peut-il contenir plusieurs comptes ? Oui, chaque compte est encadré par son 01 et son 07. Certains logiciels préfèrent toutefois un fichier par compte ; vérifiez la documentation de l'éditeur.
Faut-il obligatoirement des enregistrements 05 ? Non, ils sont facultatifs. Sans eux, seul le libellé de 31 caractères du 04 est disponible, ce qui suffit à l'import mais limite le lettrage automatique.
Comment obtenir un CFONB 120 sans abonnement EBICS ? En le générant à partir d'une autre source : export CSV de la banque ou relevé PDF converti, avec contrôle de l'égalité ancien solde + mouvements = nouveau solde.