Documentation10 min de lecture

Importer ses relevés bancaires dans Odoo Community : CAMT et OFX

Odoo a retiré l'import de relevés bancaires de son édition Community à partir de la version 14 : les 3 modules OCA `account_statement_import_file` (18.0.1.0.3, LGPL-3), `_camt` et `_ofx` le rétablissent, avec la détection des transactions déjà importées. Comment ils s'articulent, ce que CAMT apporte de plus qu'OFX, et le piège du fichier sans IBAN.

Relevé bancaire et suivi des opérations sur un bureau

C'est l'une des amputations les plus concrètes de l'édition Community : depuis Odoo 14, le module standard d'import de relevés bancaires a été retiré au profit de l'édition Enterprise. Sans lui, un comptable ressaisit son relevé ligne par ligne.

La communauté a reconstruit le dispositif en trois pièces : un socle qui fournit l'assistant, et un module par format qui vient s'y enregistrer. Le socle seul ne lit rien — c'est le même principe que l'import de factures fournisseurs.

Résumé

Odoo a retiré l'import de relevés de son édition Community en version 14. Trois modules communautaires le rétablissent : un socle qui fournit l'assistant, puis un module par format — CAMT et OFX — avec détection des transactions déjà importées.

Deux conséquences pratiques : le socle ne lit aucun format seul, et il faut préférer le CAMT quand la banque le propose — il gère les archives ZIP et remplit la Narration avec les références SEPA, les identifiants techniques et le motif de retour d'un rejet.

L'essentiel

  • Trois modules : le socle account_statement_import_file, puis _camt (SEPA ISO 20022) et _ofx.
  • Le socle ne lit aucun format : sans module de format, la liste « Supported formats » reste vide.
  • Pas de doublons : les transactions déjà importées sont détectées par leur identifiant unique et ignorées, avec un récapitulatif.
  • Le fichier source est joint au premier relevé créé — précieux pour diagnostiquer un import douteux six mois plus tard.
  • CAMT accepte les archives ZIP multi-fichiers, et remplit le champ Narration avec les références SEPA.
  • Un fichier sans IBAN doit être importé depuis le bon journal, sinon l'import échoue.

Ce que les trois modules ajoutent à l'instance

Relevé sur une instance Odoo 18 Community, module par module.

_file (socle)_camt_ofx
Modèles créés000
Modèles étendus232
Champs ajoutés864
Menus100
Vues211
Version18.0.1.0.318.0.1.0.118.0.1.0.0
LicenceLGPL-3AGPL-3AGPL-3

Aucun des trois ne crée de modèle : ils enrichissent le journal comptable et l'assistant d'import. Les deux modules de format n'ajoutent aucun menu — ils se contentent de s'enregistrer sur le socle, et leur présence se constate dans la liste des formats de l'assistant.

C'est le bon diagnostic à retenir : si un fichier n'est pas reconnu, ce n'est jamais le socle qui est en cause, c'est le module de format qui manque.

Où le trouver dans Odoo

Point d'entréeQuand l'utiliser
Tableau de bord, carte du journal bancaire : Import (OCA)Le cas normal — le journal est déjà connu
Facturation ▸ Comptabilité ▸ Importation d'un relevéQuand on importe plusieurs comptes d'un coup

La différence entre les deux n'est pas cosmétique. Depuis le menu, Odoo retrouve le journal à partir du numéro de compte contenu dans le fichier — ce que font la plupart des formats. Mais certains fichiers ne portent pas d'IBAN : l'import échoue alors avec un message invitant à relancer depuis le journal bancaire concerné.

D'où la règle pratique : passez par la carte du journal par défaut, et réservez le menu aux fichiers multi-comptes.

Cas d'usage

Importer un relevé depuis le tableau de bord

  1. Ouvrir le tableau de bord Facturation / Comptabilité.
  2. Sur la carte du journal bancaire, cliquer sur Import (OCA).
  3. Dans l'assistant Upload a bank statement file, vérifier la liste Supported formats — c'est le diagnostic à faire avant tout le reste.
  4. Déposer le fichier téléchargé depuis le portail de la banque.
  5. Cliquer sur Import and View : Odoo crée le ou les relevés et ouvre la liste.

Si une notification d'avertissement apparaît, lisez-la : elle indique combien de lignes ont été ignorées parce qu'elles étaient déjà importées. C'est une bonne nouvelle — le dispositif vous a protégé d'un doublon — mais c'est aussi le signe que le fichier recouvre une période déjà traitée.

Importer une archive ZIP de plusieurs fichiers CAMT

Beaucoup de banques livrent une archive mensuelle plutôt que des fichiers séparés. Le module CAMT la traite sans décompression.

  1. Ouvrir l'assistant d'import.
  2. Déposer directement le fichier .zip fourni par la banque.
  3. Cliquer sur Import and View : le module détecte l'archive, traite chaque fichier CAMT qu'elle contient, et crée un relevé par compte ou par fichier détecté.

Retrouver le détail d'une transaction ambiguë

C'est l'apport de CAMT que l'on découvre au moment d'un rapprochement difficile, et il justifie à lui seul de préférer ce format quand la banque le propose.

  1. Ouvrir le relevé créé, puis une de ses lignes.
  2. Consulter le champ Narration : il contient les informations extraites du XML, sous forme de paires clé/valeur.

Le module y reporte, quand elles sont présentes dans le fichier : le nom et les coordonnées bancaires de la contrepartie (IBAN, BIC), la référence de paiement, le libellé structuré SEPA (RmtInf), les identifiants techniques (MsgId, EndToEndId, AcctSvcrRef, InstrId, TxId), le numéro de mandat, le numéro de chèque, et le motif de retour en cas de rejet de paiement.

Ce dernier point est celui qui fait gagner le plus de temps : un prélèvement rejeté arrive avec son motif, au lieu d'un simple montant négatif qu'il faut aller élucider auprès de la banque.

CAMT ou OFX : lequel demander à sa banque

CAMT (ISO 20022)OFX
OrigineNorme SEPA européenneFormat historique (Money, Quicken)
Variantes géréesCAMT.053 (relevé) et CAMT.054 (avis de mouvement).ofx
Archives ZIPOuiNon
Multi-comptes dans un fichierOuiOui
Références SEPA structuréesOui, dans NarrationNon
Motif de retour d'un rejetOuiNon
Richesse des donnéesÉlevéePartielle — seules les lignes utiles sont retenues

La recommandation est donc simple : demandez du CAMT si votre banque le propose. L'OFX reste utile pour les établissements qui ne diffusent pas d'ISO 20022, et pour certains acteurs français qui l'utilisent encore.

Le format que vous recevez a un effet direct sur l'étape suivante : plus la Narration est riche, plus les règles de rapprochement automatique sont précises. Voir la fiche du lettrage bancaire.

Configuration

  1. Installer account_statement_import_file — sa dépendance account_statement_import_base s'installe automatiquement.
  2. Installer au moins un module de format : account_statement_import_camt, account_statement_import_ofx, ou les deux. Sans cela, la liste « Supported formats » reste vide et aucun fichier n'est reconnu.
  3. Vérifier que le journal bancaire porte le bon compte bancaire : c'est par l'IBAN que les formats qui le contiennent retrouvent le journal.
  4. Donner aux utilisateurs concernés le groupe comptable standard account.group_account_user, qui porte les droits sur l'assistant d'import.

Aucune configuration n'est nécessaire sur les modules de format eux-mêmes : installés, ils apparaissent dans la liste de l'assistant. C'est l'une des rares chaînes OCA où l'installation suffit.

Limites connues

Les dépôts ne répertorient pas de défaut sur ces trois modules. Trois limites sont en revanche structurelles et se rencontrent dès les premiers imports.

  • Le socle ne lit aucun format. C'est la cause de la quasi-totalité des « le fichier n'est pas reconnu ».
  • Un fichier sans IBAN ne peut pas être importé depuis le menu général : il faut passer par la carte du journal. Le message d'erreur le dit, mais après l'échec.
  • L'OFX ne retient qu'un sous-ensemble des informations du fichier d'origine : seules les lignes nécessaires à la création des écritures sont conservées. Si vous comptiez sur un champ précis pour vos règles de rapprochement, vérifiez qu'il arrive.

Une quatrième, d'ordre bancaire plutôt que logiciel : certaines banques changent leur gabarit de fichier sans préavis. Le fichier source étant joint au premier relevé créé, vous disposez toujours de la pièce pour comparer — c'est précisément ce à quoi sert cette pièce jointe.

Identité technique

ModuleVersionLicenceDépend de
account_statement_import_file18.0.1.0.3LGPL-3account_statement_import_base
account_statement_import_camt18.0.1.0.1AGPL-3account_statement_import_file
account_statement_import_ofx18.0.1.0.0AGPL-3account_statement_import_file

Les trois viennent du dépôt OCA bank-statement-import, branche 18.0, et font partie de notre socle commun.

Note historique utile : account_statement_import_file est le successeur de account_bank_statement_import, retiré de l'édition Community à partir d'Odoo 14. Si vous trouvez de la documentation mentionnant l'ancien nom, elle concerne une version antérieure.

Questions fréquentes

Pourquoi Odoo Community ne sait-il plus importer de relevés bancaires ?

Parce que le module standard account_bank_statement_import a été retiré de l'édition Community à partir de la version 14, au profit de l'édition Enterprise. Les modules OCA du dépôt bank-statement-import rétablissent la fonction, avec la détection des transactions déjà importées.

Mon fichier n'est pas reconnu, que vérifier ?

La liste Supported formats affichée dans l'assistant d'import. Si elle est vide ou si votre format n'y figure pas, c'est que le module de format correspondant n'est pas installé — le socle ne lit aucun format par lui-même.

Que se passe-t-il si j'importe deux fois le même relevé ?

Rien de grave : les transactions déjà importées sont détectées par leur identifiant unique et ignorées. Une notification récapitule combien de lignes ont été écartées. C'est une protection, mais c'est aussi le signe que le fichier recouvre une période déjà traitée.

Faut-il préférer CAMT ou OFX ?

CAMT si votre banque le propose : il gère les archives ZIP, et il remplit le champ Narration avec les références SEPA structurées, les identifiants techniques et le motif de retour en cas de rejet de paiement. L'OFX reste utile pour les établissements qui ne diffusent pas d'ISO 20022.

Pourquoi l'import échoue-t-il depuis le menu alors qu'il marche depuis le journal ?

Parce que le fichier ne contient pas d'IBAN. Depuis le menu, Odoo retrouve le journal grâce au numéro de compte présent dans le fichier ; quand il est absent, il faut relancer l'import depuis la carte du journal bancaire concerné.

Se faire accompagner

L'import n'est que la moitié du travail : ce qui fait gagner du temps, ce sont les règles de rapprochement écrites sur vos propres relevés — frais bancaires récurrents, prélèvements d'abonnement, écarts habituels. Bien posées, elles traitent la moitié d'un relevé automatiquement.

C'est un travail court et mesurable, que nous menons sur vos fichiers réels, avec le choix du format à demander à votre banque. Voir les prestations d'Atalios Consulting ou demander un rappel.

Pour aller plus loin

En résumé

Un socle plus un module par format : c'est toute l'architecture, et c'est aussi l'explication de 90 % des échecs d'import. Demandez du CAMT à votre banque, passez par la carte du journal, et lisez l'avertissement des lignes ignorées. Parlons de vos règles de rapprochement.

Documentation OCAComptabilitéTrésorerie

Partager

Fiches connexes

Relevés bancaires et pièces comptables sur un bureau
Relevé sur une instance Odoo 18 Community, le module OCA `account_reconcile_oca` (dépôt `account-reconcile`, version 18.0.1.1.14, licence AGPL-3) ajoute 2 modèles, 87 champs et 17 vues : il remplace le lettrage limité de la Community par deux écrans dédiés, bancaire et par compte. Ce qu'il ajoute à l'instance, où le trouver, ses quatre cas d'usage et ses limites connues.
Lire la suite
Documentation OCA, Comptabilité
Socle technique et briques logicielles assemblées
Chaque instance Odoo 18 Community hébergée par Atalios reçoit un socle de 57 modules, identique quel que soit le pack métier choisi : 17 pour la comptabilité, 5 pour la conformité française, 5 pour la sécurité des accès, 7 pour le confort d'usage, le reste pour les contrats, les contacts et les rapports. Voici lesquels, pourquoi chacun est là, et ce que le socle ne contient délibérément pas.
Lire la suite
Documentation OCA, Odoo