La plateforme facturation et comptabilité d'IMS-BCV, livrée en 35 jours
IMS-BCV, enseigne Open-Bar pilote le back-office du premier réseau national français d'installateurs professionnels indépendants en équipements CHR. Adhérents, factures fournisseurs et exports bancaires devaient se rapprocher dans des tableurs. Nous leur avons construit un système self-hosted de facturation et comptabilité — parsing CSV bancaire français, OCR double moteur, intégration Microsoft 365 et relances de paiement structurées — livré en 35 jours ouvrés à périmètre fixe.
Le projet en un coup d’œil
Périmètre
CSV bancaire, OCR double moteur, M365, relances, export comptable, import grand livre, recherche, RBAC
Durée
35 jours ouvrés, périmètre et prix fixes
Stack
NestJS, Fastify, MySQL/TypeORM, Meilisearch, PM2 sur serveur privé
Statut
En production ; équipe formée dans le cadre de la livraison
Le contexte
IMS-BCV, enseigne Open-Bar, est le premier réseau national français d'installateurs professionnels indépendants spécialisés en tirage pression (systèmes de distribution de boissons à la pression) et autres équipements d'espace bar — machines à café, froid, matériel de back-bar et mobilier CHR (Café-Hôtellerie-Restauration). Fondé en juin 2015, le réseau fédère des entreprises installatrices indépendantes sous une charte qualité commune. Couverture nationale ; chaque adhérent est une entreprise à part entière, pas une succursale d'un opérateur unique.
Le système que nous avons construit sert le back-office propre d'IMS-BCV — pas un restaurant ni un bar. Les opérations financières couvrent les adhérents du réseau en tant que clients et des fournisseurs d'équipements comme LENNE CRÉATION. Factures, paiements et rapprochements avaient dépassé les outils qui les portaient.
Trois problèmes concrets en découlent.
Le rapprochement était rétrospectif. Les exports bancaires arrivent en CSV français à entrées multi-lignes, délimiteur point-virgule et dates au format jj/MM/aaaa. Quelqu'un devait classer les types de transaction et faire correspondre les libellés de paiement aux références de facture à la main — un travail qui n'avait lieu que lors de la mise à jour d'un tableur, plusieurs jours après qu'un paiement soit entré ou sorti.
Les données de facture étaient ressaisies. Les factures fournisseurs arrivaient en PDF par email et sur disque. Montants, échéances et références étaient tapés dans des feuilles de suivi — lent, et propice aux erreurs de frappe jusqu'à la clôture du mois.
Personne ne possédait le calendrier de relance. Les factures clients en retard n'avaient pas de parcours de relance structuré rattaché au grand livre. Échéances, relances à +20 et +30 jours, et drapeaux de suivi téléphonique vivaient dans les têtes ou des listes séparées — pas dans un système qui se nettoie quand un paiement est enregistré.
Ce n'était pas un échec comptable, mais un écart d'outillage : un réseau fédéré d'installateurs avait dépassé ce que des tableurs et un connecteur ERP générique pouvaient honnêtement relier — exports bancaires, boîtes Outlook, archives SharePoint et le processus réel de relance du réseau.
Pourquoi ni Sage, ni Cegid, ni un stack no-code
Le premier réflexe évident, c'est un ERP du marché ou un câblage d'outils SaaS. Pour beaucoup de problèmes finance, c'est la bonne réponse — nous construisons régulièrement sur n8n et Make pour nos clients quand le fit est là. Pour IMS-BCV, ce n'était pas le cas, pour des raisons qui valent autant pour les ERP type Sage que pour Make/Airtable/Zapier.
Parsing CSV bancaire français intégré. Les ERP génériques exigent un mapping manuel ou des connecteurs payants pour les flux bancaires. Les exports d'IMS-BCV utilisent le format CSV français multi-lignes — point-virgule, dates jj/MM/aaaa, motifs comme « DE », « POUR », « VIR RECU » et « FRAIS » qui encodent paiements clients vs fournisseurs. Ce système parse ce format nativement et rapproche automatiquement les paiements aux factures depuis le libellé. Pas d'abonnement connecteur.
Microsoft 365 sans module GED. L'intégration Outlook/SharePoint dans un ERP générique est limitée ou coûteuse. Ici, Microsoft Graph interroge la boîte Outlook du réseau toutes les dix minutes pour les pièces jointes de factures (OAuth2 avec renouvellement automatique des jetons) et classe les documents traités sur SharePoint par année fiscale et mois en français — sans système de gestion documentaire séparé à maintenir.
OCR double moteur en standard. L'OCR en ERP est en général un module payant en option. Ici, Mindee API v2 est le moteur principal, avec un repli OpenAI pour les mises en page que Mindee gère mal — découpage et fusion de PDF multi-pages sur les deux chemins.
Relances calées sur le processus du réseau. Les outils génériques proposent des règles de relance configurables mais rigides. Ici, des contrôles planifiés toutes les douze heures : échéance, +20 jours, +30 jours, puis drapeau de suivi téléphonique — avec effacement automatique dès qu'une facture est marquée payée.
Coût et maîtrise. Licence ERP par utilisateur vs développement ponctuel sur une infrastructure que le réseau contrôle déjà. Les données financières restent sur un serveur privé dans l'hébergement choisi — pas sur la politique de rétention d'un SaaS tiers.
Ce que nous avons construit
Le brief était une application web sur mesure pour les opérations facturation et comptabilité — pas un tableur de plus avec de l'automatisation branchée dessus. Neuf modules livrés dans le même engagement de 35 jours.
Traitement des relevés bancaires français
Parse les exports CSV bancaires français — entrées multi-lignes, délimiteur point-virgule, format de date jj/MM/aaaa — classifie les types de transaction et extrait les références de facture depuis les libellés (motifs « DE » pour client, « POUR » pour fournisseur, « VIR RECU », « FRAIS ») pour rapprocher automatiquement les paiements à la bonne facture.
OCR de factures double moteur
Mindee API v2 comme moteur OCR principal (schéma enqueue-and-poll), avec un repli basé sur OpenAI pour les mises en page que Mindee gère mal. Découpage et fusion de PDF multi-pages sur les deux chemins.
Intégration native Microsoft 365
Interroge la boîte Outlook du réseau toutes les dix minutes pour les pièces jointes de factures (OAuth2 avec renouvellement automatique via Microsoft Graph), et dépose les documents traités sur SharePoint organisés par année fiscale et dossiers au nom du mois en français — sans système de gestion documentaire séparé à maintenir.
Workflow de recouvrement structuré
Contrôles planifiés toutes les douze heures pour les factures en retard, avec relances à l'échéance, +20 jours et +30 jours, escalade automatique vers un drapeau de suivi téléphonique après 30 jours. Effacement automatique des relances dès qu'une facture est marquée payée.
Export comptable
Génère des exports Excel formatés pour le logiciel comptable externe du réseau, en appliquant automatiquement les préfixes de code client et les codes de type de paiement (chèque/espèces/virement), et en traçant ce qui a déjà été exporté pour ne rien envoyer deux fois.
Import du grand livre
Importe des fichiers Excel de grand livre client, crée ou met à jour les fiches clients et factures, et les rapproche des transactions existantes.
Recherche à l'échelle du réseau
Recherche Meilisearch sur clients, factures, fournisseurs, transactions et frais en une seule requête — full-text et tolérante aux fautes, y compris correspondance floue sur les numéros de facture. Index séparés par entité avec resynchronisation complète horaire et mises à jour incrémentales en temps réel.
Contrôle d'accès par rôles
Permissions CRUD granulaires par module (créer/lire/modifier/supprimer), pour que les différents rôles du back-office du réseau ne voient que ce qui les concerne.
Traitement asynchrone des tâches lourdes
Les travaux longs — imports de grand livre, lots OCR de factures — sont mis en file d'attente et traités en arrière-plan avec suivi de statut et notifications de fin, pour que les gros uploads de fichiers ne fassent pas expirer la requête.
Architecture et sécurité
Backend : NestJS 11, TypeScript 5.7, Fastify 5 (via @nestjs/platform-fastify, avec support upload multipart 50 Mo pour les PDF de factures). Base de données : MySQL via TypeORM 0.3, schéma géré en externe (synchronize: false). Auth : JWT avec bcrypt et AuthMiddleware custom. Recherche : Meilisearch avec index séparés par entité. Déploiement : PM2 en mode cluster (trois instances), production liée à 127.0.0.1. Une application frontend séparée consomme l'API REST du backend.
Les données vivent sur un serveur privé, pour que les enregistrements financiers restent sous le contrôle du client. Même famille de développement d'applications web sur mesure que nous livrons quand les opérations dépassent plugins et tableurs.
La conception est délibérément modulaire : ingestion CSV bancaire, OCR factures, sync Microsoft 365, relances, exports et recherche sont des préoccupations séparées reliées par des interfaces définies. L'accès est limité par rôle au niveau module ; la logique de relance est rattachée à l'état des factures plutôt qu'à un produit d'alerting séparé.
Le déroulé du projet
| Phase | Durée |
|---|---|
| Analyse des besoins et conception système | 5 jours |
| Développement backend (CSV bancaire, OCR, M365, API cœur) | 12 jours |
| Développement frontend (application séparée) | 8 jours |
| Workflows, exports, recherche et jobs asynchrones | 5 jours |
| Tests unitaires et validation | 3 jours |
| Déploiement et formation de l'équipe | 2 jours |
| Total | 35 jours ouvrés |
Périmètre fixe, prix fixe, paiements échelonnés. La formation faisait partie du build plutôt qu'un après-coup — un outil interne que personne n'a jamais pris en main, c'est un tableur avec des étapes en plus. La passation comprenait la configuration des rôles, des relances et un court runbook pour les deux chemins d'exception les plus fréquents (ligne bancaire non rapprochée et écart de facture fournisseur).
Résultats
Cette section repose sur un retour client qualitatif, pas sur un tableau de métriques. IMS-BCV a confirmé des résultats en usage courant plutôt que des chiffres avant/après audités. Contrairement à d’autres études de cas de ce site où des données dures sont publiables — l’engagement ROAS Meca Express, par exemple — il n’existe ici ni volume d’heures, ni pourcentages, ni effectifs utilisateurs, et nous n’en inventerons pas.
Trois points ressortent clairement de leurs retours. L’import et le rapprochement du grand livre fonctionnent exactement comme ils le souhaitaient — les fiches clients se recoupent avec les données bancaires et de facturation comme leur back-office l’attendait. Le workflow de relance automatique repère de façon fiable chaque adhérent qui n’a pas réglé à l’échéance, avec l’escalade prévue dans le parcours de relance intégré à la plateforme ; ils le décrivent comme parfaitement opérationnel. Globalement, le réseau a gagné du temps et les opérations finance sont structurées là où elles étaient auparavant éclatées entre tableurs, exports manuels et relances au cas par cas.
Ce retour est en régime de croisière — usage continu depuis la mise en production, sans fenêtre de mesure figée. Aucune citation client n’est publiée sur cette page.
Ce que l'architecture permet ensuite
Modules séparables : la plateforme grandit sans reconstruction. Gestion fournisseurs et partenaires, processus métier additionnels, reporting KPI, intégrations CRM ou facturation, gestion de contrats — chaque brique s'ajoute au code existant plutôt qu'à un nouvel outil et un nouveau silo. Le réseau peut prioriser par douleur opérationnelle, pas par la roadmap d'un éditeur ERP.
Questions
fréquentes
Plus cher au départ, en général moins cher sur trois ans. Les ERP facturent par utilisateur et font payer connecteurs bancaires, modules OCR et add-ons M365. Les plateformes no-code facturent à l'opération. Une application sur mesure a un coût de build et un coût d'hébergement sur une infrastructure que vous contrôlez déjà. Le point de croisement dépend du volume — nous le modélisons honnêtement avec vous avant tout engagement, et si le standard gagne, nous vous le dirons.
Ce build ingère des exports CSV bancaires français — le format multi-lignes à point-virgule que la plupart des comptes professionnels français proposent au téléchargement. Il parse nativement les types de transaction et les motifs de paiement et rapproche automatiquement les lignes aux factures. Si vous avez besoin d'un flux API PSD2 en direct, c'est un périmètre d'intégration différent que nous pouvons évaluer séparément.
Suffisante pour supprimer la resaisie, pas pour tourner sans supervision — d'où l'étape de confirmation humaine dans le workflow. Mindee API v2 gère la plupart des mises en page ; un repli OpenAI couvre les factures que Mindee peine à traiter. La qualité dépend de la mise en page ; les fournisseurs récurrents aux modèles stables donnent des résultats quasi parfaits.
Sur une infrastructure que vous choisissez et contrôlez — un serveur privé ou votre propre compte cloud. Nous ne détenons pas vos données financières, et aucun sous-traitant SaaS tiers ne s'intercale au milieu.
Ce build a duré 35 jours ouvrés de bout en bout. Un périmètre plus serré peut aller plus vite ; davantage d'intégrations ou de sources de données atypiques ralentiront. Nous cadrons avant de chiffrer.
Un processus qui a dépassé son tableur ?
Réservez une courte conversation de cadrage. Nous vous dirons si un build sur mesure, un ERP, un stack no-code, ou ni l'un ni l'autre, est la bonne prochaine étape.
Pas prêt à tout écrire ? Réserver un appel de découverte de 15 minutes →
Parlez-nous de votre configuration. Nous répondons sous 24 heures.
