Holding + N succursales : pourquoi un seul compte Wave Business ne suffit jamais en 2026
Cas réel auditer en mars 2026 : un groupe de restauration à Dakar (5 enseignes différentes, 1 holding mère, 1 cuisine centrale, 28 employés) utilisait UN seul compte Wave Business pour encaisser sur les 5 points de vente. Conséquences :
- Impossible d'attribuer le CA par enseigne sans recoupement manuel
- KYB Wave fragile : le compte porte la dénomination holding, pas l'enseigne — la BCEAO peut requalifier
- Aucune séparation des trésoreries : un litige sur enseigne A bloque tous les flux
- Audit fiscal impossible : 5 entreprises mais 1 seul journal
L'architecture correcte : 1 compte Wave Business par entité juridique (succursale ou SARL fille), avec consolidation côté plateforme groupe. Voici comment.
H2 : Modèle juridique → modèle Wave (mapping 1:1)
La règle BCEAO sur les comptes de monnaie électronique est claire : 1 compte = 1 personne morale identifiée KYB. Donc votre architecture Wave doit refléter votre structure juridique.
Cas 1 — Holding + filiales SARL distinctes (recommandé)
- 1 compte Wave Business par SARL fille (KYB séparé)
- 1 compte Wave Business holding (encaissements management fees)
- Avantages : trésoreries cloisonnées, fiscalité propre, transparence
- Inconvénients : 5 KYB Wave = 5 dossiers (1-2 semaines par dossier)
Cas 2 — Succursales d'une entité unique
- 1 seul compte Wave (KYB sur l'entité mère)
- Sous-comptes virtuels côté plateforme (étiquettes
shop_id) - Avantages : 1 KYB, démarrage rapide
- Inconvénients : pas de séparation juridique des flux, fragile en cas litige
Cas 3 — Franchise / partenariat
- Chaque franchisé a son propre compte Wave Business (KYB franchisé)
- Plateforme centrale = orchestration paiements, pas custodial
- Avantages : pas de risque agrégateur de paiement
- Inconvénients : reporting plus complexe
Pour 9 holdings / 10 que je conseille en Afrique de l'Ouest, le cas 1 (SARL filles distinctes) reste le plus défendable juridiquement et fiscalement.
H2 : Routing des paiements (orchestration côté plateforme)
L'enjeu : à la création du checkout, comment savoir vers quel compte Wave Business le paiement doit aller ? Réponse : un service de routing côté plateforme qui résout shop_id → wave_account_id → wave_api_key.
`typescript
// Service de routing checkout multi-shop
type ShopRoute = {
shopId: string;
waveAccountId: string;
waveApiKey: string; // chiffré at rest (KMS / Vault)
callbackUrl: string;
};
async function createCheckoutForShop(
shopId: string,
amount: number,
invoiceRef: string
): Promise
const route = await db.shopRoute.findUnique({ where: { shopId } });
if (!route) throw new Error(Unknown shop: ${shopId});
const apiKey = await kms.decrypt(route.waveApiKey);
const checkout = await fetch('https://api.wave.com/v1/checkout/sessions', {
method: 'POST',
headers: {
'Authorization': Bearer ${apiKey},
'Content-Type': 'application/json',
'Idempotency-Key': co_${shopId}_${invoiceRef},
},
body: JSON.stringify({
amount: amount.toString(),
currency: 'XOF',
success_url: https://shop${shopId}.ex/merci,
error_url: https://shop${shopId}.ex/erreur,
client_reference: invoiceRef,
metadata: { shop_id: shopId, account_id: route.waveAccountId },
}),
});
const { wave_launch_url } = await checkout.json();
return wave_launch_url;
}
`
Besoin d'un site web professionnel ?
Kolonell crée des sites web qui attirent des clients, optimisés pour le marché sénégalais. Devis gratuit en 2 minutes.
Points critiques :
- Stocker les API keys Wave par shop chiffrées at rest (AWS KMS, HashiCorp Vault, ou
pgcryptoNeon) - Jamais d'API key en clair en DB ou dans le code applicatif
- Audit trail de chaque appel (qui a déclenché quel checkout vers quel shop)
H2 : Webhooks multi-comptes (1 endpoint, N comptes)
Wave permet de pointer plusieurs comptes Business vers le même endpoint webhook. Le payload contient account_id qui permet le routing côté serveur.
`typescript
// Endpoint webhook unique pour N comptes Wave
export async function POST(req: Request) {
const sig = req.headers.get('Wave-Signature');
const body = await req.text();
const event = JSON.parse(body);
const accountId = event.data?.account_id;
const route = await db.shopRoute.findFirst({
where: { waveAccountId: accountId },
});
if (!route) return new Response('Unknown account', { status: 404 });
const secret = await kms.decrypt(route.webhookSecret);
if (!verifyWaveSignature(body, sig, secret)) {
return new Response('Invalid signature', { status: 401 });
}
// Persist event scoped to shop
await db.payment.create({
data: {
shopId: route.shopId,
waveEventId: event.id,
amount: event.data.amount,
status: event.data.status,
invoiceRef: event.data.client_reference,
},
});
return new Response('OK');
}
`
H2 : Consolidation comptable groupe
Côté reporting holding, vous voulez voir le CA consolidé. Méthode : un ETL nocturne (cron 03:00) qui agrège les paiements de tous les shops vers une vue group_revenue avec attribution par enseigne, par jour, par catégorie.
| Vue groupe | Granularité | Source | Refresh |
|---|---|---|---|
| CA jour par enseigne | jour × shop | payment table | T+1 06:00 |
| CA mois consolidé | mois | agrégation | T+1 06:00 |
| Marge brute par enseigne | mois × shop | payment + cogs | mensuel |
| Cash position groupe | jour | payment + bank_transfer | jour |
| Top 10 clients groupe | mois | customer + payment | hebdo |
H2 : Investissements multi-shop
| Poste | Coût initial | Récurrent mensuel |
|---|---|---|
| KYB Wave Business × N entités | 0 (gratuit) | — |
| Plateforme orchestration multi-shop (Next.js) | 3 500 000 à 6 800 000 FCFA | — |
| Module KMS / Vault (chiffrement API keys) | 380 000 FCFA setup | 25 000 FCFA |
| Dashboard consolidation groupe | 1 800 000 à 3 200 000 FCFA | — |
| Hébergement + monitoring | — | 45 000 à 95 000 FCFA |
| Maintenance dev (4-8 h / mois) | — | 180 000 à 360 000 FCFA |
Investissement initial : 5,7-10,4 M FCFA. Récurrent : 250-480 KFCFA / mois. ROI : pour une holding > 800 M FCFA / an de CA consolidé, break-even en 4-7 mois (gains audit, fiscalité, pilotage).
FAQ
Wave Business autorise-t-il plusieurs comptes pour un même dirigeant ?
Oui, à condition que chaque compte corresponde à une entité juridique distincte (KYB séparé, RCCM différent, NINEA différent). Un même dirigeant peut représenter 5 SARL — il aura 5 comptes Wave Business avec son nom comme représentant légal.
Peut-on faire des transferts entre comptes Wave d'une même holding ?
Oui, via la fonction Wave-to-Wave (gratuit, instantané pour les comptes Business agréés). En comptabilité SYSCOHADA : compte 451 (Comptes courants associés) ou 461 (Comptes courants) selon la nature du transfert (avance, dividende, refacturation).
Risque BCEAO si un compte unique encaisse pour plusieurs entités ?
Oui, c'est un risque de requalification en activité de PSP non agréée. La BCEAO peut sanctionner (amende, suspension du compte) si elle constate qu'un compte de monnaie électronique encaisse pour le compte de tiers non identifiés. Architecture multi-comptes = conformité.
Coût d'un KYB Wave Business par entité ?
Gratuit. Wave Business ne facture pas le KYB. Délai : 5-15 jours ouvrés selon complétude du dossier (RCCM, NINEA, statuts, pièce ID dirigeant, justificatif domicile siège).
Faut-il un compte Wave Business pour la holding même si elle n'encaisse pas de clients ?
Recommandé : pour encaisser les management fees, refacturations intra-groupe, dividendes. Pratique aussi pour les paiements fournisseurs holdings (juridique, comptable, IT mutualisé).
Discutons de votre cas
Si votre holding gère N succursales et veut une architecture Wave Business multi-comptes propre (juridiquement, fiscalement, techniquement), nous pouvons l'architecturer et la déployer en 3-5 semaines. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionné par le digital et l'entrepreneuriat en Afrique, Mohamed accompagne les entreprises sénégalaises dans leur transformation digitale depuis 2020. Fondateur de Kolonell, il croit que chaque PME mérite une présence en ligne professionnelle et accessible.

