E-commerce12 min de lecture

Stripe Connect marketplace multi-vendeurs : architecture + déploiement 2026

Mohamed Bah·Fondateur, Kolonell
13 mai 2026
Partager :
Stripe Connect marketplace multi-vendeurs : architecture + déploiement 2026

Stripe Connect marketplace multi-vendeurs : architecture + déploiement 2026

E-commerce

Une marketplace (place de marché qui agrège vendeurs tiers — pensez Jumia, Glovo Marketplace, Etsy modèle) implique des complexités juridiques et techniques que les passerelles classiques ne résolvent pas : KYC vendeur, prélèvement automatique de commission, payouts, conformité PSD2. Stripe Connect résout 95 % de ces problèmes — voici l'implémentation pour 2026.

TL;DR

- Stripe Connect = produit Stripe pour marketplace multi-vendeurs.

- 3 modes : Express (recommandé), Standard, Custom.

- Coût : Stripe standard + 0.25 % surcharge marketplace.

- Fonctionne pour vendeurs UE, US, UK + extension Africa via Paystack Connect.

Modèles Stripe Connect

ModeOnboarding vendeurKYCCompte Stripe propreCas
ExpressStripe-hosted formStripe gèreOui mais limitéRecommandé 90 %
StandardStripe completVendeur autonomeOui completVendeurs experts
CustomVous codez toutVous gérezCustomTrès grosses marketplaces

Architecture marketplace Connect

`

[Acheteur paie 100 EUR]

[Stripe charge 100 EUR sur le compte plateforme]

[Application_fee 15 EUR pour la plateforme]

[85 EUR transférés au compte vendeur connecté]

[Payout T+2 sur compte bancaire vendeur]

`

Étape 1 — onboarding vendeur Express

`ts

// app/api/seller/onboard/route.ts

import Stripe from 'stripe';

const stripe = new Stripe(process.env.STRIPE_SECRET!);

export async function POST(req: Request) {

const { sellerEmail, sellerCountry } = await req.json();

// 1. Créer un Connected Account

const account = await stripe.accounts.create({

type: 'express',

country: sellerCountry, // 'FR', 'CI', 'NG', 'KE', etc.

email: sellerEmail,

capabilities: {

card_payments: { requested: true },

transfers: { requested: true },

},

business_type: 'individual', // ou 'company'

});

// 2. Stocker en DB

await prisma.seller.update({

where: { email: sellerEmail },

data: { stripeAccountId: account.id },

});

// 3. Générer un lien d'onboarding

const accountLink = await stripe.accountLinks.create({

account: account.id,

refresh_url: 'https://kolonell.com/seller/onboard?status=refresh',

return_url: 'https://kolonell.com/seller/dashboard',

type: 'account_onboarding',

});

return Response.json({ onboardingUrl: accountLink.url });

}

`

Le vendeur clique → onboarding Stripe → renseigne pièce identité, RIB, etc. Stripe valide en 1-3 jours ouvrés.

Étape 2 — paiement avec destination

`ts

// app/api/checkout/create-intent/route.ts

export async function POST(req: Request) {

const { items, totalCents, sellerStripeAccountId } = await req.json();

const APPLICATION_FEE_PERCENT = 15; // 15 % marketplace fee

const applicationFee = Math.round(totalCents * APPLICATION_FEE_PERCENT / 100);

const intent = await stripe.paymentIntents.create({

amount: totalCents,

currency: 'eur',

application_fee_amount: applicationFee,

transfer_data: {

destination: sellerStripeAccountId,

},

payment_method_types: ['card'],

metadata: {

order_id: 'ord_abc123',

seller_id: sellerStripeAccountId,

},

});

return Response.json({ clientSecret: intent.client_secret });

}

`

application_fee_amount = ce que la plateforme garde. destination = vendeur reçoit le reste.

Étape 3 — multi-vendeurs dans 1 panier

Si l'acheteur achète chez 3 vendeurs en 1 panier, vous DEVEZ créer 3 paiements séparés (Stripe ne supporte pas un PaymentIntent multi-destination natif).

`ts

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.

async function checkoutMultiSeller(cart: CartItem[]) {

// Grouper par vendeur

const bySellerMap = cart.reduce((acc, item) => {

if (!acc[item.sellerId]) acc[item.sellerId] = [];

acc[item.sellerId].push(item);

return acc;

}, {} as Record);

// Créer N PaymentIntents

const intents = await Promise.all(

Object.entries(bySellerMap).map(async ([sellerId, items]) => {

const total = items.reduce((s, i) => s + i.unitPriceCents * i.quantity, 0);

const fee = Math.round(total * 0.15);

const seller = await prisma.seller.findUnique({ where: { id: sellerId } });

return stripe.paymentIntents.create({

amount: total,

currency: 'eur',

application_fee_amount: fee,

transfer_data: { destination: seller!.stripeAccountId },

metadata: { sellerId, items: JSON.stringify(items.map(i => i.id)) },

});

})

);

return intents;

}

`

UX : afficher "Votre commande sera traitée par X vendeurs" pour clarifier.

Étape 4 — webhooks Connect

`ts

// app/api/webhooks/stripe/connect/route.ts

export async function POST(req: Request) {

const body = await req.text();

const sig = (await headers()).get('stripe-signature')!;

const event = stripe.webhooks.constructEvent(body, sig, process.env.STRIPE_CONNECT_WEBHOOK!);

switch (event.type) {

case 'account.updated':

// Vendeur a complété ou modifié son compte

const account = event.data.object as Stripe.Account;

await prisma.seller.update({

where: { stripeAccountId: account.id },

data: {

chargesEnabled: account.charges_enabled,

payoutsEnabled: account.payouts_enabled,

onboardingComplete: account.details_submitted,

},

});

break;

case 'payout.paid':

// Payout vendeur effectué

await notifySellerPayout(event.data.object);

break;

case 'payment_intent.succeeded':

const intent = event.data.object as Stripe.PaymentIntent;

await markOrderPaid(intent.metadata.order_id);

break;

}

return Response.json({ received: true });

}

`

Étape 5 — coûts Stripe Connect

ItemCoût
Stripe paiement carte EU1.4 % + 0.25 EUR
Stripe paiement carte non-EU2.9 % + 0.25 EUR
Marketplace fee surcharge0.25 %
Payout en EUR vers IBAN UEGratuit
Payout en USD/autres devises1 $ + spread fx
Compte Express vendeurGratuit

Sur transaction 100 EUR EU :

  • Stripe : 1.65 EUR
  • Marketplace : 15 EUR (votre app fee)
  • Vendeur reçoit : 83.35 EUR

Cas réel — marketplace artisans Sénégal-Diaspora

Profile : marketplace 80 artisans SN/CI vendant à diaspora UE/US, 1 200 commandes/mois, ticket moyen 75 EUR.

MétriqueValeur
GMV mensuel90 000 EUR
Frais marketplace 12 %10 800 EUR
Frais Stripe (~2 %)1 800 EUR
Net plateforme9 000 EUR
Payouts vendeurs (T+2)79 200 EUR

Onboarding vendeur Stripe Express : ~95 % completion rate. Vendeurs reçoivent leur premier payout < 7 jours.

Pièges fréquents

  • Compte Custom prématurément — Custom requiert KYC en interne complexe. Express suffit pour 90 % des cas.
  • Sous-estimer la conformité — KYC + AML obligations marketplace. Stripe gère mais lire les docs.
  • Pas de SLA sur payout — vendeurs anxieux. Toujours afficher "T+2 ouvré standard, T+7 démarrage".
  • Currency mismatch — vendeur en USD vs payment EUR génère conversions et pertes. Aligner devises.
  • Disputes — Stripe Connect, le merchant of record est généralement le vendeur. Bien clarifier dans CGV.

FAQ

Q : Vendeurs SN peuvent-ils être onboardés Stripe Express ?

R : Pas en mai 2026 directement. Solutions : passer par Paystack Africa (Stripe acquisition) qui supporte SN, NG, GH, KE. Ou demander au vendeur de s'incorporer en CI / Maurice si volume justifie.

Q : Marketplace = MoR (Merchant of Record) ?

R : Avec Connect Express, c'est le compte connecté (vendeur) qui est MoR. Avec Custom, c'est vous (plus de complexité fiscale).

Q : Combien Stripe prend de commission max ?

R : Pas de plafond explicite. Mais Stripe peut suspendre une marketplace si app_fee > 30-50 % systématique (perçu comme abusif).

Conclusion

Stripe Connect est l'infrastructure marketplace de référence en 2026. Express mode est suffisant pour 95 % des marketplaces africaines avec vendeurs CI / Maurice / EU / US. L'investissement dev initial est 3-6 semaines, mais permet de scaler sans ré-architecturer pour les premières années. Pour vendeurs purement africains hors CI : combiner avec Paystack Connect.

Tags :#Stripe Connect#Marketplace#Multi-Vendeurs#Architecture#API#Afrique
Partager :

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.