Stripe Connect pour marketplace : le guide complet en Suisse
Stripe Connect est devenu en 2026 la solution de référence pour construire une marketplace en Suisse. Comptes Standard, Express, Custom, splits de paiement, KYC, intégration TWINT : ce sont les points à régler avant de se lancer.
Sommaire
Pourquoi Stripe Connect domine en 2026
Construire une marketplace, c’est manipuler de l’argent qui ne vous appartient pas. Vos vendeurs encaissent via votre plateforme, vous prenez une commission, vous transférez le reste. Cette mécanique simple à décrire est cauchemardesque à implémenter correctement : compliance KYC (Know Your Customer), AML (Anti-Money Laundering), splits automatisés, multi-currencies, gestion des disputes, conformité bancaire dans 30+ juridictions.
Stripe Connect résout ce problème depuis 2014 et domine le marché en 2026. Il fait tourner Lyft, Uber Eats, Shopify, Substack et des milliers de marketplaces moins connues. En Suisse spécifiquement, Stripe Connect est le choix par défaut depuis 2023 quand TWINT est devenu intégrable nativement via leur API.
Quand vous construisez une marketplace en Suisse, trois grandes décisions architecturales se posent : quel type de compte Connect choisir, comment gérer le KYC suisse, comment splitter les paiements proprement. Ce guide s’adresse aux projets marketplace entre CHF 50 000 et CHF 500 000 en phase de scoping technique.
Comprendre les 3 types de comptes Connect
Stripe Connect propose trois types de comptes pour vos vendeurs, du plus simple au plus complexe.
Standard Account
Pour qui : marketplaces où chaque vendeur a une vraie identité business indépendante, qui veut gérer son propre dashboard Stripe.
Comment ça marche : votre vendeur crée son propre compte Stripe (avec son email, sa banque, son business). Votre plateforme l’invite à se connecter via OAuth. Ensuite, les paiements transitent par son compte, vous prenez une commission via application_fee_amount.
Avantages : pas de responsabilité de KYC côté vous, le vendeur gère son dashboard, frais minimaux côté plateforme.
Inconvénients : votre vendeur voit le dashboard Stripe complet (peut compliquer le support), il peut quitter votre marketplace plus facilement, customisation limitée du flow d’onboarding.
Cas type : Airbnb-like où chaque hôte est un vrai business indépendant.
Express Account
Pour qui : marketplaces grand public où les vendeurs sont des particuliers ou très petites structures, qui veulent un onboarding ultra-simple.
Comment ça marche : vous embarquez Stripe-hosted onboarding (formulaire pré-fait par Stripe), Stripe collecte les infos KYC nécessaires, vous gardez le contrôle de l’expérience post-onboarding via votre dashboard custom.
Avantages : onboarding rapide (5 à 10 min côté vendeur), Stripe gère la compliance, expérience cohérente avec votre marque.
Inconvénients : moins de personnalisation que Custom, Stripe gère certains aspects que vous ne voyez pas.
Cas type : DoorDash, Lyft, plateformes de gig economy.
Custom Account
Pour qui : marketplaces qui ont besoin du contrôle total, qui veulent une expérience 100 % white-label, et qui acceptent la responsabilité KYC.
Comment ça marche : votre plateforme collecte toutes les infos KYC elle-même, les soumet à Stripe via API, gère tout le flow d’onboarding sans aucune redirection vers Stripe.
Avantages : expérience entièrement custom, branding pur, contrôle complet.
Inconvénients : responsabilité KYC côté vous (audit possible par Stripe), implémentation 3 à 4 fois plus complexe que Standard.
Cas type : Substack, Shopify Payments, Stripe internalisé.
Recommandation Voren pour la Suisse
Pour 80 % des marketplaces suisses de PME ou scale-up, Express Account est le meilleur compromis : onboarding rapide, compliance gérée par Stripe, expérience suffisamment custom. Choisissez Standard si vos vendeurs sont des businesses établis, et Custom seulement si vous avez un cas spécifique (volume très élevé, contrainte branding extrême, intégration multi-PSP).
KYC en Suisse : ce que Stripe attend
Stripe Connect en Suisse demande des informations spécifiques pour la compliance.
Pour un vendeur particulier (Express) :
- Identité : nom, prénom, date de naissance
- Adresse de résidence en Suisse
- Numéro de téléphone
- Pièce d’identité (CNI ou passeport) en photo
- Coordonnées bancaires (IBAN suisse)
Pour un vendeur entreprise (Standard ou Express) :
- Raison sociale et IDE (numéro d’identification suisse)
- Adresse du siège
- Représentant légal (gérant, directeur)
- Bénéficiaires effectifs si > 25 % de participation
- Coordonnées bancaires d’entreprise
Quand les paiements cumulés dépassent CHF 1 000 par mois, Stripe peut demander des justificatifs additionnels (extraits du registre du commerce, attestations bancaires, bilans annuels).
L’onboarding prend 5 à 10 minutes pour un particulier sur Express, 15 à 30 minutes pour une entreprise sur Standard, et la validation Stripe se fait en 24 à 48 h ouvrables. Pendant la validation, le compte peut encaisser mais ne peut pas être payé out vers la banque.
Erreurs courantes côté Suisse :
- IBAN au format non suisse (Stripe accepte les IBAN UE pour les sociétés multi-pays, mais préférable de demander un IBAN suisse pour les vendeurs suisses)
- Adresse de résidence en France voisine (frontaliers) : Stripe peut bloquer si l’IBAN est suisse mais l’adresse française, à valider au cas par cas
- Pièce d’identité expirée (à vérifier côté front avant d’envoyer à Stripe)
Splitter un paiement en pratique
C’est le cœur technique d’une marketplace, et Stripe Connect propose trois façons de s’y prendre.
Direct Charges
L’acheteur paie directement le compte Stripe du vendeur. Votre plateforme prend une commission via application_fee_amount.
const session = await stripe.checkout.sessions.create({
payment_method_types: ['card', 'twint'],
line_items: [{
price_data: { /* ... */ },
quantity: 1
}],
mode: 'payment',
payment_intent_data: {
application_fee_amount: 1500, // CHF 15.00 commission
transfer_data: {
destination: 'acct_VENDOR_ID',
},
},
success_url: 'https://yourmarketplace.com/success',
cancel_url: 'https://yourmarketplace.com/cancel',
});
Avantages : flux d’argent simple (paiement direct vendeur), comptabilité claire.
Inconvénients : votre plateforme n’est jamais propriétaire des fonds (impact selon votre modèle économique et fiscal).
Destination Charges
L’acheteur paie votre plateforme, qui transfère ensuite au vendeur après déduction de la commission.
const charge = await stripe.charges.create({
amount: 5000, // CHF 50.00 total
currency: 'chf',
source: 'tok_source',
application_fee_amount: 500, // CHF 5.00 commission
transfer_data: {
destination: 'acct_VENDOR_ID',
},
});
Avantages : votre plateforme est propriétaire des fonds temporairement, plus flexible pour le refund et la gestion des disputes.
Inconvénients : implication fiscale plus complexe (vous êtes considéré comme intermédiaire commercial).
Separate Charges and Transfers
Cas le plus avancé : vous chargez l’acheteur, et plus tard vous transférez à un ou plusieurs vendeurs avec votre logique custom (par exemple, retenir les fonds 7 jours avant transfer pour gérer les disputes).
// Étape 1 : charge sur votre compte
const paymentIntent = await stripe.paymentIntents.create({
amount: 5000,
currency: 'chf',
});
// Étape 2 : transfer plus tard
await stripe.transfers.create({
amount: 4500, // CHF 45.00 après commission CHF 5.00
currency: 'chf',
destination: 'acct_VENDOR_ID',
});
Avantages : contrôle maximal sur le timing et la logique de transfer.
Inconvénients : complexité accrue, responsabilité accrue.
Intégrer TWINT avec Stripe Connect
TWINT est natif dans Stripe Connect depuis avril 2023. Configuration :
const session = await stripe.checkout.sessions.create({
payment_method_types: ['card', 'twint'], // ajouter 'twint'
// ...
});
Cette ligne suffit : Stripe gère la redirection vers l’app TWINT du client, la confirmation du paiement et le routing vers le bon compte Connect. Les frais Stripe sont identiques (1,4 % + CHF 0,25 sur cartes européennes, idem pour TWINT).
TWINT en Connect demande que le vendeur ait un compte bancaire suisse. Les vendeurs avec compte UE ne peuvent pas recevoir des paiements TWINT (la limitation vient de TWINT).
Gestion des disputes
Sur une marketplace, les disputes (chargebacks, demandes de remboursement) sont fréquentes. Stripe Connect gère ça avec deux options.
- Option A, responsabilité vendeur : le chargeback impacte le compte du vendeur. Votre plateforme n’est pas responsable financièrement, et les frais Stripe sont chargés au vendeur.
- Option B, responsabilité plateforme : votre plateforme assume le risque chargeback. Vous pouvez prélever cette somme du vendeur via API ou la retenir d’un futur paiement. Cette approche protège davantage le vendeur (incentive à utiliser votre marketplace).
Configuration via le paramètre liability_shift ou via votre dashboard Connect.
Notre recommandation pour la Suisse : option A pour les marketplaces où les vendeurs sont des businesses établis, option B pour les marketplaces grand public (gig economy) où la confiance vendeur est plus fragile.
Tarification
Stripe Connect ajoute des frais en plus des frais standards Stripe sur les paiements.
- Standard et Express : pas de frais additionnels (vous payez seulement les frais de paiement standards). Stripe se rémunère sur le volume.
- Custom : frais additionnels typiquement 0,25 % + CHF 0,02 par paiement sur le volume net. Plus cher mais justifié par le contrôle accru.
Pour une marketplace qui traite CHF 100 000 par mois sur Express, les frais Stripe totaux tournent autour de CHF 1 600 par mois (1,6 % du volume). En Custom, à volume équivalent, il faut ajouter environ CHF 270.
Frais cachés à anticiper :
- Frais de payouts vers les banques (CHF 0,25 par payout)
- Frais de conversion de devises si vendeurs en EUR ou USD (1 % spread)
- Frais Connect platform fee (négociable pour grandes plateformes)
Erreurs courantes en production
- Ne pas tester exhaustivement en mode test. Stripe a un mode test (
pk_test_*etsk_test_*) où vous pouvez créer des comptes Connect fictifs, simuler des paiements, simuler des chargebacks. Utilisez-le agressivement avant de basculer en live. - Sous-estimer la complexité KYC. Le KYC ne s’arrête pas à l’onboarding : Stripe peut demander des justificatifs additionnels en cours de vie du compte (audit aléatoire, augmentation de volume, signal de risque), et votre interface doit gérer ces flows.
- Oublier les disputes. Sur la première année d’une marketplace, vous aurez 1 à 3 % de disputes. Préparez le code, l’UI et les processus pour les gérer.
- Un webhook handling fragile. Stripe envoie des webhooks pour tous les events importants (paiement réussi, payout, dispute, compte mis à jour). Si votre handler webhook plante ou retourne 500, Stripe retry mais vous perdez de l’information : implémentez côté vous un système de retry idempotent.
- Se passer de monitoring. Mettez en place Sentry pour les erreurs côté code et un dashboard Stripe en lecture seule pour visualiser le volume, les disputes, les payouts. À partir d’un certain volume, un dashboard Looker Studio connecté à BigQuery exporté de Stripe est très utile.
Quand ne pas utiliser Connect
Quelques cas où Stripe Connect est surdimensionné :
- Marketplace très petite (< 10 vendeurs) : un compte Stripe simple avec virements manuels peut suffire
- Marketplace 100 % service (pas de paiement transactionnel) : Stripe Connect ne s’applique pas
- Marketplace réglementée banque : si vous exercez une activité bancaire au sens propre, il vous faut un PSP autorisé plutôt que Stripe Connect
Pour 95 % des cas marketplace en Suisse, Stripe Connect Express ou Standard est le bon choix.
Pour aller plus loin
Si vous construisez une marketplace en Suisse et que vous voulez du sparring technique sur l’architecture Stripe Connect :
Voir le service web app : le périmètre en détail.
Demander un audit d’architecture marketplace : analyse de votre projet en 7 jours, recommandations sur Connect, KYC, splits, scaling. Gratuit, sans engagement.
Voir notre service de développement web app : pour comprendre notre approche et nos forfaits.