Vous encaissez vos abonnements via Stripe. Vous voulez que des partenaires ou ambassadeurs amènent des clients, et les rémunérer uniquement sur le revenu réellement encaissé. C'est le cas d'usage le plus courant de l'affiliation pour un SaaS.
La bonne nouvelle : Stripe est déjà votre source de vérité sur le revenu. Chaque abonnement créé, chaque facture payée, chaque remboursement émis — tout passe par vos événements Stripe. Un programme d'affiliation bien conçu se greffe directement sur cette donnée, sans couche intermédiaire fragile.
Ce guide couvre les étapes concrètes : connexion Stripe, configuration d'une campagne, suivi côté serveur, commissions récurrentes et versement via Stripe Connect. Pour le débat sur l'architecture sous-jacente — natif vs intégration, webhooks vs polling — consultez l'article dédié logiciel d'affiliation Stripe : natif vs intégration.
1. Pourquoi Stripe simplifie l'affiliation pour un SaaS
La plupart des plateformes d'affiliation ont été conçues pour le e-commerce : un clic, une transaction, un cookie. Le SaaS est différent : un essai gratuit peut durer 14 jours, une conversion se traduit par un subscription actif, et le revenu réel s'étale sur des renouvellements mensuels ou annuels.
Quand Stripe est votre couche de facturation, vous avez déjà :
- Un identifiant stable par client (
customer) - Un historique de facturation fiable (
invoice.paid,invoice.payment_failed) - Un signal de résiliation clair (
customer.subscription.deleted) - Un flux de remboursements traçable (
charge.refunded)
L'attribution affilié peut s'ancrer sur ces événements plutôt que sur une session navigateur éphémère. C'est plus fiable, et c'est ce que vos partenaires attendent : être payés sur le revenu réel, pas sur des clics ou des inscriptions.
2. Mettre en place l'affiliation quand on encaisse via Stripe
Connecter Stripe à votre plateforme d'affiliation
La première étape est d'autoriser votre plateforme d'affiliation à lire vos événements Stripe. Deux approches existent : OAuth via Stripe Connect (votre compte Stripe reste central, la plateforme reçoit un accès délégué en lecture) ou une clé API restreinte en lecture seule.
Avec RefCampaign, la connexion se fait via Stripe Connect OAuth. Vous autorisez l'accès depuis votre tableau de bord Stripe, la plateforme écoute vos webhooks invoice.paid sans stocker vos clés secrètes.
Définir votre campagne
Une campagne d'affiliation dans un contexte SaaS comporte au minimum :
| Paramètre | Exemple concret |
|---|---|
| Type de commission | Récurrente (30 % par renouvellement) ou one-time (50 EUR à la première facture payée) |
| Durée de la fenêtre d'attribution | 30 ou 60 jours après le clic |
| Fenêtre de remboursement | 30 jours (commission en attente pendant cette période) |
| Condition de déclenchement | Premier invoice.paid avec statut subscription actif |
La commission récurrente de 30 % est un standard dans le SaaS B2B. Elle aligne l'intérêt de l'affilié sur la rétention : il est payé tant que le client reste, ce qui l'incite à amener des clients qualifiés.
Générer des liens d'affiliation
Chaque affilié reçoit un lien tracké vers votre page d'essai ou de tarification (par exemple https://votre-saas.com?ref=CODE). Le code est enregistré côté serveur au premier clic, associé à l'adresse email ou à l'identifiant de session du visiteur.
Pour en savoir plus sur le tracking d'affiliation Stripe et ses options de configuration avancée, consultez la page fonctionnalité.
3. Tracker la conversion Stripe → attribution affilié
Pourquoi un cookie seul ne suffit pas
Un cookie navigateur est effacé, expiré ou bloqué dans de nombreux cas : navigateur différent entre le clic et l'achat, iOS Safari ITP, navigation privée, délai de 45 jours entre le clic et l'achat. Pour un SaaS avec un cycle de vente long, c'est une perte d'attribution réelle.
La bonne pratique est de capturer le code affilié côté serveur dès le premier clic et de l'associer à une entité durable : adresse email lors de l'inscription à l'essai, ou customer Stripe à la création du compte.
Attacher l'attribution avant le paiement
Le flux recommandé :
- Visiteur clique sur le lien affilié → code capturé en session côté serveur + cookie de secours
- Visiteur s'inscrit à l'essai → code associé à l'email dans votre base
- À la création du
customerStripe, le code affilié est stocké dans les métadonnées :customer.metadata.affiliate_code - Lors du premier
invoice.paid, votre webhook litcustomer.metadata.affiliate_codeet enregistre la conversion
Cette chaîne est solide : même si le cookie disparaît entre l'étape 1 et l'étape 4, l'attribution est préservée via les métadonnées Stripe.
Lire les événements Stripe
Voici les événements à écouter via votre endpoint webhook (documentation officielle Stripe) :
| Événement | Action dans le programme d'affiliation |
|---|---|
invoice.paid | Créer une commission (état : en attente) |
invoice.payment_failed | Ne pas créer de commission |
customer.subscription.deleted | Arrêter les commissions récurrentes futures |
charge.refunded | Annuler la commission si dans la fenêtre de remboursement |
Pour le premier invoice.paid, vérifiez que subscription est présent dans l'objet invoice et que billing_reason est subscription_create. Les renouvellements ont billing_reason: subscription_cycle.
Commissions récurrentes sur les renouvellements
À chaque invoice.paid avec billing_reason: subscription_cycle, une nouvelle commission est générée pour l'affilié d'origine, tant que :
- La fenêtre d'attribution est toujours active (ou indéfinie pour une commission récurrente sans limite)
- L'abonnement n'a pas été annulé
- La commission précédente n'a pas été annulée suite à un remboursement
Pour approfondir les mécanismes de suivi et les pannes courantes, l'article suivi d'affiliation : fonctionnement, pannes et corrections détaille les cas limites.
4. Verser les commissions via Stripe Connect
Le flux de paiement
Stripe Connect permet de transférer des fonds directement depuis votre compte Stripe vers le compte bancaire d'un affilié. L'affilié crée un compte Connect (Express ou Standard), fournit ses informations KYC, et vous pouvez lui envoyer des virements depuis votre tableau de bord ou via l'API.
Le cycle standard en SaaS :
- Commission générée à réception d'
invoice.paid→ état en attente - Fenêtre de remboursement expirée (30 jours) → état due
- Cycle de paiement (NET-30 ou 1er du mois) → état en cours de virement
- Virement Stripe Connect exécuté → état payée
Si un remboursement arrive pendant la fenêtre : commission annulée avant versement.
États d'une commission
| État | Condition |
|---|---|
| En attente | invoice.paid reçu, fenêtre de remboursement non expirée |
| Due | Fenêtre de remboursement expirée, prête à être versée |
| Annulée | Remboursement reçu avant versement, ou abonnement annulé avant première facture |
| Payée | Virement Stripe Connect exécuté |
NET-30 et fenêtre de remboursement
La fenêtre de remboursement sert à protéger votre trésorerie : vous ne versez pas de commission sur une transaction qui pourrait être remboursée 15 jours plus tard. La pratique standard dans le SaaS est d'aligner la fenêtre de remboursement sur votre politique de remboursement client (souvent 14 ou 30 jours), puis d'appliquer NET-30 pour le cycle de paiement.
Cela signifie qu'une commission générée le 1er janvier est versée au plus tôt le 31 janvier (après la fenêtre de 30 jours), lors du cycle de paiement suivant.
Pour comparer les solutions disponibles et voir comment elles gèrent ce cycle, consultez le comparatif des meilleurs logiciels d'affiliation 2026.
5. Pièges courants
Attribuer sur le checkout plutôt que sur la facture payée. Un checkout Stripe initié ne garantit pas un paiement réussi. Attendez toujours invoice.paid — pas checkout.session.completed.
Double-compter les upgrades. Quand un client passe de 49 EUR/mois à 99 EUR/mois, Stripe génère une facture de prorata. Si vous ne filtrez pas billing_reason, vous pouvez créer une seconde commission d'acquisition sur un client déjà acquis. Vérifiez billing_reason: subscription_create pour les commissions one-time.
Verser avant la fenêtre de remboursement. Si vous versez des commissions dès réception d'invoice.paid et qu'un remboursement arrive 10 jours plus tard, vous avez versé une commission sur une transaction annulée. Maintenez toujours un état en attente pendant la fenêtre de remboursement.
S'appuyer uniquement sur les cookies. Comme détaillé en section 3, un cookie peut disparaître entre le clic et l'achat dans un cycle SaaS long. La persistance côté serveur via customer.metadata est indispensable.
Oublier les abonnements annulés. Si un client annule son abonnement après 2 mois, les commissions récurrentes futures s'arrêtent. Écoutez customer.subscription.deleted pour marquer la relation affilié comme inactive sur ce client.
Lancer votre programme d'affiliation
Un programme d'affiliation Stripe bien configuré repose sur trois blocs : une attribution côté serveur fiable, une lecture correcte des événements Stripe (invoice.paid, charge.refunded, customer.subscription.deleted), et un cycle de versement NET-30 via Stripe Connect.
RefCampaign implémente ces trois blocs nativement, sans configuration webhook manuelle ni développement custom. Vous connectez votre compte Stripe, définissez votre campagne, et les conversions sont attribuées automatiquement à chaque renouvellement.
Voir les tarifs — ou contacter l'équipe si vous voulez évaluer le fit avant de vous lancer.
Table des matières
Table des matières disponible bientôt
À lire ensuite
- Découvrir la fonctionnalitéAttribuez le revenu affilié directement depuis Stripe
- ComparerRefCampaign vs Rewardful — Comparatif 2026
- Lire l'articleSuivi d'affiliation : fonctionnement, pannes frequentes et corrections
- Lire l'articleMeilleur logiciel d'affiliation en 2026 : le comparatif honnête pour SaaS