EBICS (Electronic Banking Internet Communication Standard) est un protocole de communication sécurisé utilisé pour l’échange de données bancaires électroniques entre les banques et les entreprises. Il permet aux utilisateurs de transférer des fichiers depuis ou vers leur banque, de signer électroniquement des documents et d’utiliser des fonctionnalités de chiffrement pour protéger les données sensibles. EBICS est largement utilisé en Europe où il est considéré comme un standard de communication bancaire sécurisé.
Même si EBICS est un protocole de communication ouvert (les spécifications sont disponibles sur le site ebics.org), l’implémentation d’un serveur (logiciel qui reçoit des demandes des clients) ou d’un client EBICS (logiciel qui envoie des demandes aux serveurs) reste complexe. Certaines entreprises en ont fait le cœur de leur métier : fournir des logiciels sur étagère, clé en main, pour communiquer en EBICS. Ces solutions font gagner du temps et permettent de s’affranchir des complexités techniques liées à EBICS.
Nous avons voulu offrir la possibilité à nos clients de se connecter via EBICS à leur compte bancaire Memo Bank, pour établir un relevé de leurs opérations par exemple, ou pour passer des opérations directement depuis leur logiciel comptable. Dans notre contexte, prendre un logiciel sur étagère est un choix lourd de conséquences. Nous voulons maîtriser l’ensemble de notre chaîne de production, en créant le minimum de dépendances possibles avec des outils tiers. S’il y a un bug dans le logiciel « clé en main » que nous avons choisi, nous sommes dépendants de l’éditeur du logiciel et de son planning. Le bug sera-t-il corrigé rapidement ?
Pour nous ménager un maximum d’autonomie, nous avons donc fait le choix de créer notre propre serveur EBICS. Ce choix était risqué : toute spécification offre son lot d’interprétations. Les spécifications propres à EBICS ne font pas exception à cette règle. Cela devient compliqué quand on touche au chiffrement de la donnée. Si nous faisons une mauvaise interprétation des spécifications, les messages chiffrés sont considérés comme invalides, sans plus d’information sur la raison du dysfonctionnement.
Notre plateforme bancaire est réalisée en Kotlin et tourne sur la machine virtuelle Java. Nous avons gardé cette pile technologique pour développer notre implémentation d’EBICS : les algorithmes de chiffrement utilisés par EBICS sont disponibles sur la JVM (Java Virtual Machine) et le support XML existant nous a permis de générer facilement tous les messages supportés par EBICS 2.4, EBICS 2.5 et EBICS 3.0.
Monter en compétence sur ce protocole de communication a été payant : notre serveur EBICS est utilisé en production par nos clients. Ils peuvent télécharger leurs relevés bancaires au format CFONB et passer des ordres de virement ou de prélèvement depuis leurs comptes Memo Bank, sans quitter leurs logiciels comptables.