Un cœur, plusieurs apps : comment fonctionne une plateforme bancaire whitelabel
Une plateforme bancaire whitelabel, c'est un cœur bancaire avec un front end remplaçable. Le cœur est la partie qui doit être juste : un grand livre en partie double, les comptes clients, le KYC et l'onboarding, l'émission et le traitement des cartes, les rails crypto et stablecoins, et la console opérateur qui fait tourner l'ensemble. L'app est la partie que voit le client — son nom, ses couleurs, la forme de ses écrans, le sous-ensemble de fonctionnalités activées. Whitelabel signifie qu'un même cœur peut porter plusieurs visages sans être reconstruit sous chacun. Un cœur, plusieurs apps.
Dit simplement, c'est une affirmation sur l'emplacement des coutures. Tout ce qui touche à l'argent est partagé, audité et rapproché une seule fois ; tout ce qui touche au client est configuré par tenant. Le vrai travail d'ingénierie consiste à tenir cette ligne : laisser le front end différer librement sans jamais forker le cœur sur lequel il repose. Voici un décryptage de la façon dont cette ligne se trace, et de la raison pour laquelle la tracer avec des design tokens vaut mieux que la tracer avec un fork.
Ce qui ne varie jamais : le cœur
Commençons par la moitié à laquelle la créativité est interdite. Un virement s'enregistre de la même manière, que l'app l'appelle envoi, paiement ou versement : deux écritures dans un grand livre en partie double, et rien n'est jamais supprimé — le grand livre ne fait qu'ajouter, si bien qu'un remboursement est une contre-écriture qui référence l'original, pas un effacement. Les comptes, les soldes et les blocages d'autorisation vivent ici. Le KYC et l'onboarding, l'émission et le règlement des cartes, les rails crypto et stablecoins aussi. Derrière, une seule console opérateur où chaque action privilégiée exige un motif et laisse une trace dans un journal d'audit.
Il n'existe qu'un exemplaire de chacun, et c'est tout l'intérêt. Le règlement, le rapprochement et la conformité sont difficiles à réussir et coûteux à rater : on les construit une fois et chaque app en hérite. Lorsqu'un tenant intègre un client, le niveau KYC décidé par le cœur suit ce client dans la console, quelles que soient les écrans de l'app qui ont collecté les documents. Le cœur ignore comment s'appelle l'app qui le surmonte, et cela lui est égal — il voit des comptes et des écritures, pas des marques.
Ce qui varie : langage de design, architecture de l'information, mix fonctionnel
Tout ce qui se trouve au-dessus du cœur est libre de bouger, selon trois axes. Le premier est le langage de design : couleur, typographie, rayon des angles, espacements, animations — la grammaire visuelle de la marque. Le deuxième est l'architecture de l'information : ce qui figure sur l'écran d'accueil, comment les parcours sont nommés et ordonnés, quelle action est à un tap et laquelle en demande trois. Le troisième est le mix fonctionnel : quels modules sont activés. Une app de virements épurée et une super-app dense peuvent tourner sur le même cœur sans partager un seul écran.
La page produit /products/pay présente cinq directions abouties, qui se lisent mieux comme des exemples parmi une infinité que comme un menu de cinq. Halcyon est un exchange épuré — sobre, peu d'écrans, le trade au premier plan. Lumen est une super-app où l'argent circule au sein de la conversation, et où paiements par chat, abonnements et earn se partagent l'écran d'accueil. Fern met les virements en tête — versements groupés et conversion FX par règles d'abord. Volt est une version sombre centrée sur les stablecoins, avec un répartiteur de salaire et des cartes d'équipe. Meridian est multidevise : un compte EUR à côté d'USDC, un solde voyage en GBP, et un compte BTC où atterrissent les récompenses de carte. Cinq marques, cinq architectures de l'information, cinq mix fonctionnels — un seul grand livre, un seul KYC, un seul processeur de cartes en dessous.
Rien de tout cela ne veut dire que le produit représente cinq apps. Ce sont cinq directions que la même chaîne peut prendre ; le nombre qui compte n'est pas cinq, c'est le nombre de tenants que vous intégrez. Chacune prouve que le front end peut différer jusque dans la forme de l'écran d'accueil sans que le cœur en dessous s'en aperçoive.
Le cœur est la partie qu'il est interdit de réinventer ; l'app est la partie qu'il est interdit de contraindre. Une plateforme whitelabel, c'est la discipline qui consiste à maintenir ces deux phrases vraies en même temps.
Pourquoi le theming par tokens vaut mieux qu'un fork du code
Il y a deux façons de faire ressembler un produit à plusieurs. La plus évidente est de forker : copier le code pour chaque client, le restyler, le livrer. Cela fonctionne pour exactement une version. Ensuite, chaque correctif et chaque évolution réglementaire doit être appliqué N fois sur N copies qui divergent, les copies se désynchronisent, et la surface de sécurité à maîtriser se multiplie par le nombre de clients. Forker transforme un système que vous comprenez en une multitude que vous ne comprenez plus.
Le theming par tokens inverse la logique. Il n'y a qu'une base de code. Une marque est un ensemble de valeurs — des tokens de couleur, de typographie, de rayon et d'espacement ; une configuration de composants ; un jeu de feature flags — résolu au build en une app de marque. Changez un token et tous les écrans qui le lisent bougent ensemble, car rien ne code en dur une valeur qui devrait venir d'un token. Un correctif du parcours de virement est livré à tous les tenants d'un coup, puisqu'il n'y a qu'un seul parcours de virement à corriger. Les marques diffèrent par leur configuration, pas par leur source.
Où se situe le design system
Les tokens ne sont pas une idée vague ; ce sont un artefact livré. Le Protocore Design System — /products/pds — compte 144 design tokens et 889 classes utilitaires : le vocabulaire dans lequel chaque app est thémée. Il est pensé dark-first, piloté par les tokens, avec un rayon à zéro par défaut, et le même jeu de tokens est émis pour le web, .NET et le natif, de sorte qu'une couleur définie une fois reste la même couleur dans un écran React, une console desktop et un build mobile natif. La marque d'un tenant s'exprime sous forme de surcharges de ce vocabulaire, c'est pourquoi redesigner une app relève de la configuration et non de la réécriture.
C'est aussi ce qui rend le front end réellement libre, et non libre à l'intérieur d'un gabarit. Comme le langage de design vit dans des tokens et des classes utilitaires plutôt que dans des feuilles de style ponctuelles, un designer peut éloigner un tenant très loin de la version de référence — sa propre palette, sa typographie, sa densité, son rythme — sans toucher au cœur ni forker l'app. La peinture va en profondeur, mais ce n'est que de la peinture ; la plomberie en dessous est partagée.
L'app est une configuration, pas un build
Le mix fonctionnel suit la même règle. Chaque module — paiements par chat, earn, crypto, cartes, abonnements, cartes d'équipe, parrainage — est un interrupteur activé par tenant, et un flag peut être déployé auprès d'une fraction des utilisateurs avant d'être généralisé. Les opérateurs les basculent depuis un panneau de configuration, pas depuis un déploiement. Ainsi, la différence entre une app de virements minimale et une super-app complète n'est pas deux projets ; ce sont deux configurations d'un même projet. L'app de référence dont part chaque tenant est un build neutre aux couleurs de Protocore, avec tout le menu disponible — chaque whitelabel est ce build avec des tokens surchargés et des modules activés ou désactivés.
La frontière, en toute franchise
Un cœur, plusieurs apps ne vaut la mécanique que si vous avez réellement plusieurs apps — ou une app que vous comptez redesigner, réorganiser et recadrer au fil du temps sans reconstruire la banque à chaque fois. Si vous livrez une seule app figée qui ne portera jamais une seconde marque, vous n'avez pas besoin d'une plateforme whitelabel ; vous avez besoin d'une app. Elle justifie sa place dans le cas pour lequel elle a été conçue : une plateforme qui monte des produits bancaires de marque, tenant après tenant, chacun visiblement unique, aucun n'étant un fork. Le décryptage complet — les cinq directions, l'app de référence et la console opérateur derrière — se trouve sur /products/pay, et le design system sous-jacent sur /products/pds.
Un système à construire ?
Décrivez-nous le problème. Nous reviendrons avec une architecture et un plan.