Convertir CSV en OFX : Le guide définitif
Le CSV (Comma-Separated Values) et l'OFX (Open Financial Exchange) sont deux formats omniprésents dans le monde de la comptabilité et de la finance. Pourtant, ils ne servent pas les memes objectifs et ne sont pas interchangeables. Ce guide complet vous explique en détail les différences entre ces formats, quand privilégier l'un ou l'autre, et surtout comment convertir efficacement du CSV en OFX pour l'import dans votre logiciel comptable.
Comprendre les différences fondamentales entre CSV et OFX
Le format CSV : simple mais limité
Le CSV est un format texte ou les données sont séparées par des virgules (ou des points-virgules en France). C'est le format le plus basique pour stocker des données tabulaires.
Structure typique d'un CSV bancaire francais :
Date;Libellé;Débit;Crédit;Solde
01/03/2026;VIR SALAIRE ENTREPRISE XYZ;;3200,00;8450,50
03/03/2026;PRLV LOYER SCI MARTIN;950,00;;7500,50
05/03/2026;CB CARREFOUR PARIS;87,30;;7413,20
10/03/2026;VIR URSSAF;1250,00;;6163,20
Avantages du CSV :
- Lisible par tout tableur (Excel, Google Sheets, LibreOffice Calc)
- Facile à manipuler et modifier manuellement
- Leger en taille de fichier
- Format universellement supporté
- Ideal pour l'analyse de données dans Excel
- <strong>Aucune structure standardisée</strong> : chaque banque utilise ses propres colonnes, séparateurs et formats de date
- <strong>Pas de métadonnées</strong> : aucune information sur la devise, le numero de compte, la banque émettrice
- <strong>Pas de référence unique</strong> par transaction : impossible de détecter les doublons automatiquement
- <strong>Séparateurs variables</strong> : virgule, point-virgule, tabulation selon les banques et les pays
- <strong>Encodage imprévisible</strong> : UTF-8, ISO-8859-1, Windows-1252 selon la source
Le format OFX : structuré et riche en métadonnées
L'OFX est un format XML standardisé, spécifiquement concu pour l'échange de données financieres entre institutions bancaires et logiciels comptables.
Structure typique d'un OFX :
<OFX>
<BANKMSGSRSV1>
<STMTTRNRS>
<STMTRS>
<CURDEF>EUR</CURDEF>
<BANKACCTFROM>
<BANKID>12345</BANKID>
<ACCTID>FR7612345678901</ACCTID>
</BANKACCTFROM>
<BANKTRANLIST>
<DTSTART>20260301</DTSTART>
<DTEND>20260331</DTEND>
<STMTTRN>
<TRNTYPE>CREDIT</TRNTYPE>
<DTPOSTED>20260301</DTPOSTED>
<TRNAMT>3200.00</TRNAMT>
<FITID>20260301001</FITID>
<NAME>VIR SALAIRE ENTREPRISE XYZ</NAME>
</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>6163.20</BALAMT>
<DTASOF>20260310</DTASOF>
</LEDGERBAL>
</STMTRS>
</STMTTRNRS>
</BANKMSGSRSV1>
</OFX>
Avantages de l'OFX :
- <strong>Structure normalisée</strong> et identique quel que soit la banque d'origine
- <strong>Métadonnées completes</strong> : compte bancaire, code banque, devise, période couverte
- <strong>Référence unique</strong> par transaction (champ FITID) empechant les doublons lors de l'import
- <strong>Type de transaction qualifié</strong> (CREDIT, DEBIT, XFER, CHECK, ATM, etc.)
- <strong>Solde</strong> de début et de fin inclus pour vérification
- <strong>Compatible nativement</strong> avec tous les logiciels comptables modernes (EBP, Sage, Cegid, QuadraCompta)
Quand faut-il convertir du CSV en OFX ?
Cas ou la conversion est indispensable
Quand garder le CSV ?
Le CSV reste pertinent dans certains cas :
- <strong>Analyse dans Excel</strong> : Le CSV s'ouvre directement sans conversion
- <strong>Traitement personnalisé</strong> : Scripts Python, R, ou macros VBA
- <strong>Archivage brut</strong> : Format pérenne et lisible dans 50 ans
- <strong>Échange avec un partenaire</strong> ne supportant pas l'OFX
Méthodes de conversion CSV vers OFX
Méthode 1 : Convertisseur en ligne (recommandé)
La méthode la plus rapide et la plus fiable pour les non-techniciens.
Avec Compta Convert :
Avantages :
- Conversion en moins d'une minute
- Détection automatique du format CSV (séparateur, encodage)
- Validation des données avant conversion (dates, montants)
- Ajout automatique des métadonnées OFX manquantes (FITID, TRNTYPE)
- Hébergement en France, conforme RGPD
Méthode 2 : Script Python pour les développeurs
Pour automatiser des conversions récurrentes :
import csv
from datetime import datetime
def csv_to_ofx(csv_path, ofx_path, bank_id='12345', acct_id='FR76000000'):
transactions = []
with open(csv_path, 'r', encoding='utf-8') as f:
reader = csv.DictReader(f, delimiter=';')
for i, row in enumerate(reader):
date = datetime.strptime(row['Date'], '%d/%m/%Y')
debit = row.get('Débit', '').replace(',', '.').strip()
credit = row.get('Crédit', '').replace(',', '.').strip()
amount = float(credit) if credit else -float(debit)
transactions.append({
'date': date.strftime('%Y%m%d'),
'amount': f'{amount:.2f}',
'name': row['Libellé'],
'fitid': f'{date.strftime("%Y%m%d")}{i:05d}',
'type': 'CREDIT' if amount > 0 else 'DEBIT'
})
# Génération du fichier OFX...
generate_ofx_file(transactions, ofx_path, bank_id, acct_id)
Avantages : Automatisable, personnalisable, gratuit Inconvénients : Nécessite des compétences Python, maintenance du code, pas de validation automatique
Méthode 3 : Macro Excel VBA
Pour ceux qui maitrisent VBA :
Avantages : Gratuit si vous avez Excel, personnalisable Inconvénients : Complexe à mettre en place, fragile, pas de validation automatique des données
Préparer votre fichier CSV avant la conversion
Nettoyage indispensable
Avant toute conversion, nettoyez votre fichier CSV :
Mapping des colonnes CSV vers OFX
| Colonne CSV | Champ OFX | Obligatoire | Format attendu |
| Date | DTPOSTED | Oui | AAAAMMJJ |
| Libellé | NAME | Oui | Texte libre |
| Montant (ou Débit/Crédit) | TRNAMT | Oui | Nombre signé (ex: -125.50) |
| Référence | FITID | Auto-généré | Identifiant unique |
| Type opération | TRNTYPE | Auto-détecté | CREDIT/DEBIT/XFER/etc. |
| Date valeur | DTAVAIL | Non | AAAAMMJJ |
Gestion des montants : le point critique
La conversion des montants est le point le plus délicat :
- <strong>Format CSV francais</strong> : virgule comme séparateur décimal (1 234,56), colonnes Débit/Crédit séparées
- <strong>Format OFX</strong> : point comme séparateur décimal (1234.56), montant signé unique (négatif = débit)
Compatibilité du fichier OFX généré avec les logiciels comptables
Un fichier OFX correctement généré depuis un CSV est compatible avec :
| Logiciel | Import OFX | Rapprochement auto | Notes |
| EBP Comptabilité | Natif | Oui | Toutes versions depuis 2018 |
| Sage 50 | Natif | Oui | Ex Ciel Compta |
| Sage 100 | Natif | Oui | Import batch possible |
| Cegid | Natif | Oui | Via module bancaire |
| QuadraCompta | Natif | Oui | Import direct |
| QuickBooks | Natif | Oui | Format préféré |
| GnuCash | Natif | Partiel | Open source |
Erreurs courantes et solutions
"Format de date non reconnu"
Le format de date du CSV n'est pas celui attendu. Standardisez en JJ/MM/AAAA pour la France. Vérifiez qu'il n'y a pas d'espaces ou de caracteres invisibles.
"Montant invalide"
Probleme de séparateur décimal ou de format. Utilisez le point comme séparateur, supprimez les symboles monétaires et les espaces dans les nombres.
"Colonnes non détectées"
Les en-tetes du CSV ne sont pas reconnus. Vérifiez la premiere ligne, renommez si nécessaire (Date, Libellé, Montant).
"Caracteres accentués corrompus"
Probleme d'encodage. Enregistrez votre CSV en UTF-8 avant la conversion. Dans Excel : Fichier > Enregistrer sous > CSV UTF-8.
Bonnes pratiques pour les conversions récurrentes
Conclusion
La conversion CSV vers OFX est une étape essentielle pour les professionnels de la comptabilité qui utilisent des logiciels comme EBP, Sage ou Cegid. Le format OFX apporte la structure, les métadonnées et la fiabilité nécessaires à un import comptable de qualité. Avec un outil adapté comme Compta Convert, cette conversion ne prend que quelques secondes et élimine les risques d'erreur.
Pret à convertir vos CSV en OFX ? Essayez Compta Convert gratuitement