LCL ne respecte pas la norme OFX

Il y a quelques jours, un client d'Akretion nous a contacté car il ne parvenait pas à importer un fichier de relevé de compte OFX dans Odoo. Après investigation technique, nous avons pu apporter la preuve que le problème était causé par le fait que le fichier de relevé de compte au format OFX généré par la banque LCL n'était pas conforme à la norme OFX.

La norme OFX spécifie un format de fichier pour décrire un relevé de compte bancaire et d'autres types d'informations utiles pour les échanges entre une banque et son client. Il est souvent désigné sous le nom de format Quicken ou format Microsoft Money. Les spécifications de la norme OFX sont librement téléchargeables sur le site https://financialdataexchange.org/ofx.

En France, ce format est souvent proposé par les banques pour permettre de récupérer un relevé de compte dans un format standardisé lisible par la plupart des logiciels de comptabilité et de gestion de trésorerie. Cette fonctionnalité est généralement proposée gratuitement à la fois pour les clients particuliers et professionnels dans l'espace client de la banque.

Quand un client télécharge un relevé de compte sous forme de fichier OFX (ou tout autre format) sur le site Internet de sa banque, il récupère une liste de transactions bancaires entre deux dates. Pour chaque transaction bancaire, il récupère au minimum :

  • la date,
  • le montant,
  • le libellé de la transaction.

Le plus souvent, un client récupère des transactions entre une date passée et la date du jour. Avec la modernisation des systèmes informatiques des banques et le déploiement du virement instantané, il arrive souvent que de nouvelles transactions bancaires apparaissent en cours de journée.

Prenons un exemple ! Nous sommes aujourd'hui le 16 mai 2023. La semaine dernière, le 9 mai 2023, j'avais téléchargé sur l'espace client de ma banque un fichier OFX pour la période allant du 2 mai jusqu'à 9 mai inclus. Aujourd'hui, je dois de nouveau mettre à jour ma comptabilité et pour cela je dois récupérer toutes les transactions depuis la dernière fois. Si je télécharge un fichier OFX pour la période allant du 10 mai au 16 mai 2023, je risque de rater les transactions du 9 mai qui ont été ajoutée après l'heure où j'ai récupérer le fichier le 9 mai dernier. Pour éviter cet écueil, je vais donc télécharger un fichier OFX allant du 9 mai jusqu'à aujourd'hui. Mais ce fichier contiendra les transactions du 9 mai antérieures à l'heure où j'ai téléchargé le fichier OFX ce jour là, qui sont des transactions qui sont déjà présentes dans mon logiciel comptable. Mon logiciel comptable devra donc, lors de l'import du nouveau fichier OFX, identifier les transactions qui ont déjà été importées. Pour cela, la norme OFX a prévu, pour chaque transaction, une balise dénommée FITID qui signifie Financial Institution Transaction ID qui permet au logiciel comptable de détecter les transactions qui ont déjà été importées. La norme OFX décrit très clairement le rôle de cette balise :

A Financial Institution assigns an <FITID> to uniquely identify a financial transaction that can appear in an account statement. Its primary purpose is to allow a client to detect duplicate responses. Open
Financial Exchange intends <FITID> for use in statement download applications, where every transaction requires a unique ID. [...] FITIDs must be unique within the scope of an account but need not be sequential or even increasing.

Voici un exemple de la balise FITID contenu dans un fichier OFX généré par la banque LCL, pour une transaction correspondant à un paiement CB de 12,75 euros en date du 20 avril 2023 :

948 200423 -1275

En analysant la balise FITID d'autres transactions du même fichier OFX, on comprend rapidement que :

  1. le chiffre 948 est utilisé pour les paiements CB (826 pour les virements émis, 172 pour les virements reçus, 834 pour les prélèvements SEPA, etc...)
  2. il est suivi de la date au format JJMMAA
  3. il est suivi du montant en centimes exprimé en positif pour les encaissements et en négatif pour les débits.

Par conséquent, si on fait 2 paiements CB du même montant le même jour, on se retrouve avec 2 transactions différentes qui ont la même balise FITID, ce qui est une violation flagrante de la norme OFX, puisque la balise ne permet pas d'identifier de façon unique une transaction donnée !

Ce non respect de la norme OFX provoque un message d'erreur bloquant dans Odoo au moment où l'utilisateur tente d'importer son relevé de compte.

Nous avions déjà noté ce défaut dans les fichiers OFX du LCL en 2016 chez un autre client. A l'époque, notre client avait informé la banque de ce défaut en fournissant tous les détails techniques sur le problème. Devant l'absence de réaction de la banque et gêné par les bugs provoqués par cette violation de la norme OFX, notre client avait finit par changer de banque. Force est de constater que, 7 ans plus tard, le bug est toujours présent. Nous espérons que le LCL corrigera rapidement ce défaut pour éviter de perdre de nouveau un de ses clients !

Akretion France se tient à la disposition des équipes informatiques du LCL pour toute question ou précision sur ce bug. Nous pouvons leur fournir plusieurs fichiers OFX originaux d'un compte bancaire LCL contenant des paiements CB du même montant débités à la même date et qui ont la même balise FITID.

Lumière sur l'auteur

Founder
Alexis de Lattre
Founder - France
Specialist in Odoo and free software
Alexis de Lattre is a co-founder of the French company Anevia, where he held the positions of Managing Director and Financial Director of Production and Logistics and Director of Computer Services. Anevia is a company with 40 employees and specializes in the development and sale of video server...

Esse site usa cookies para melhorar a sua experiência de navegação