Connecteur Stripe
Connecteur Stripe
Connectez votre compte Stripe à Brevo via Tajo pour une synchronisation complète des données de paiement, la gestion du cycle de vie des abonnements et l’automatisation marketing basée sur les revenus.
Vue d’ensemble
| Propriété | Valeur |
|---|---|
| Plateforme | Stripe |
| Catégorie | E-commerce |
| Complexité d’installation | Facile |
| Intégration officielle | Oui |
| Données synchronisées | Clients, paiements, abonnements, factures, événements |
| URL de base de l’API | https://api.stripe.com/v1 |
Fonctionnalités
- Synchronisation des clients, Synchronisez les clients Stripe avec les contacts Brevo, métadonnées incluses
- Suivi des paiements, Suivez les paiements réussis, les remboursements et les paiements échoués
- Gestion des abonnements, Synchronisez les événements du cycle de vie des abonnements pour les campagnes de rétention
- Données de facture, Synchronisez les détails de facturation pour l’automatisation post-achat et de renouvellement
- Attribution des revenus, Mappez la valeur vie et le MRR vers des attributs Brevo
- Événements webhook, Notifications d’événements en temps réel pour toutes les activités de paiement
- Prise en charge multi-devises, Gérez les paiements dans plusieurs devises
- Suivi des sessions de paiement, Suivez Stripe Checkout pour la récupération des paiements abandonnés
Prérequis
Avant de commencer, assurez-vous de disposer de :
- Un compte Stripe avec accès API
- Des clés API Stripe (clés publishable et secret)
- Un compte Brevo avec accès API
- Un compte Tajo
Authentification
Authentification par clé API
Stripe utilise une authentification bearer token avec votre clé API secrète.
curl https://api.stripe.com/v1/customers \ -u sk_live_YOUR_SECRET_KEY:Sécurité des clés API
N’exposez jamais votre clé secrète dans du code côté client. Utilisez la clé publishable pour les opérations frontend et la clé secrète uniquement côté serveur.
Clés API restreintes
Créez des clés restreintes avec des permissions spécifiques pour une sécurité renforcée :
- Accédez à Stripe Dashboard > Developers > API Keys
- Cliquez sur « Create restricted key »
- N’accordez que les permissions requises par Tajo
Permissions requises
customers: readcharges: readpayment_intents: readsubscriptions: readinvoices: readevents: readproducts: readprices: readConfiguration
Configuration de base
connectors: stripe: enabled: true secret_key: "${STRIPE_SECRET_KEY}" webhook_secret: "${STRIPE_WEBHOOK_SECRET}"
# Data sync options sync: customers: true payments: true subscriptions: true invoices: true products: true
# Brevo list assignment lists: all_customers: 20 subscribers: 21 churned: 22Mappage des champs
Mappez les données client Stripe vers les attributs de contact Brevo :
Mappages par défaut
| Parameter | Type | Description |
|---|---|---|
email required | string | Adresse e-mail du client (identifiant unique) |
name optional | string | Nom complet du client, divisé en FIRSTNAME/LASTNAME |
phone optional | string | Mappé vers l'attribut SMS pour WhatsApp/SMS |
currency optional | string | Devise par défaut pour le client |
created optional | timestamp | Date de création du client dans Stripe |
metadata optional | object | Métadonnées clé-valeur personnalisées de Stripe |
subscriptions optional | array | Détails des abonnements actifs |
balance optional | integer | Solde du compte client en centimes |
Mappage d’attributs personnalisés
field_mapping: # Standard fields email: email name: FULLNAME phone: SMS
# Payment metrics total_spent: TOTAL_SPENT payment_count: PAYMENT_COUNT last_payment_date: LAST_PAYMENT_DATE average_order_value: AOV
# Subscription fields subscription_status: SUB_STATUS plan_name: PLAN_NAME mrr: MONTHLY_REVENUE subscription_start: SUB_START_DATE
# Custom metadata metadata.customer_tier: VIP_TIER metadata.referral_source: REFERRAL_SOURCEEndpoints API
Endpoints principaux
| Méthode | Endpoint | Description |
|---|---|---|
GET | /v1/customers | Lister tous les clients |
POST | /v1/customers | Créer un client |
GET | /v1/customers/{id} | Récupérer un client |
POST | /v1/customers/{id} | Mettre à jour un client |
GET | /v1/charges | Lister tous les charges |
GET | /v1/payment_intents | Lister les payment intents |
Endpoints d’abonnement
| Méthode | Endpoint | Description |
|---|---|---|
GET | /v1/subscriptions | Lister les abonnements |
GET | /v1/subscriptions/{id} | Récupérer un abonnement |
GET | /v1/invoices | Lister les factures |
GET | /v1/invoices/upcoming | Récupérer la prochaine facture |
GET | /v1/products | Lister les produits |
GET | /v1/prices | Lister les prix |
Endpoints d’événements
| Méthode | Endpoint | Description |
|---|---|---|
GET | /v1/events | Lister les événements |
GET | /v1/events/{id} | Récupérer un événement |
Événements
Événements de paiement
| Événement | Déclencheur | Cas d’usage |
|---|---|---|
payment_intent.succeeded | Paiement finalisé | Confirmation de commande |
payment_intent.payment_failed | Paiement échoué | E-mail de récupération |
charge.refunded | Remboursement traité | Notification de remboursement |
charge.dispute.created | Contestation initiée | Gestion des litiges |
Événements d’abonnement
| Événement | Déclencheur | Cas d’usage |
|---|---|---|
customer.subscription.created | Nouvel abonnement | Workflow d’onboarding |
customer.subscription.updated | Plan modifié | Workflow d’upgrade/downgrade |
customer.subscription.deleted | Abonnement annulé | Prévention du churn |
customer.subscription.trial_will_end | Essai expirant dans 3 jours | Campagne de conversion d’essai |
invoice.payment_failed | Paiement d’abonnement échoué | Séquence d’e-mails de relance |
Événements client
| Événement | Déclencheur | Cas d’usage |
|---|---|---|
customer.created | Nouveau client ajouté | E-mail de bienvenue |
customer.updated | Données client modifiées | Synchronisation des attributs |
customer.deleted | Client supprimé | Nettoyage |
Exemples de code
Initialiser le connecteur
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Stripeawait tajo.connectors.connect('stripe', { secretKey: process.env.STRIPE_SECRET_KEY, webhookSecret: process.env.STRIPE_WEBHOOK_SECRET});Lancer une synchronisation des clients
// Full historical syncawait tajo.connectors.sync('stripe', { type: 'full', resources: ['customers', 'subscriptions', 'payments'], since: '2023-01-01'});
// Check sync statusconst status = await tajo.connectors.status('stripe');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// customersSynced: 12500,// subscriptionsSynced: 8200,// paymentsSynced: 45000// }Gérer les webhooks Stripe
import Stripe from 'stripe';
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
app.post('/webhooks/stripe', async (req, res) => { const sig = req.headers['stripe-signature'];
let event; try { event = stripe.webhooks.constructEvent( req.body, sig, process.env.STRIPE_WEBHOOK_SECRET ); } catch (err) { return res.status(400).send(`Webhook Error: ${err.message}`); }
// Forward to Tajo for Brevo sync await tajo.connectors.handleWebhook('stripe', { type: event.type, data: event.data.object });
res.status(200).json({ received: true });});Limites de débit
Stripe applique les limites de débit suivantes :
| Type | Limite | Détails |
|---|---|---|
| Mode Live | 100 requêtes de lecture/seconde | Par clé secrète |
| Mode Live | 100 requêtes d’écriture/seconde | Par clé secrète |
| Mode Test | 25 requêtes/seconde | Par clé secrète |
| Livraison de webhooks | 100 000 événements/jour | Par endpoint |
Gestion des limites de débit
Stripe renvoie une réponse 429 Too Many Requests lorsque les limites sont dépassées. Implémentez un backoff exponentiel. Utilisez les endpoints de liste avec pagination automatique pour récupérer des données en masse.
Dépannage
Problèmes courants
| Problème | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Clé API invalide | Vérifiez la clé secrète dans le Stripe Dashboard |
| Échec de signature webhook | Secret webhook incorrect | Recopiez le secret de signature webhook depuis le Dashboard |
| Client non synchronisé | Pas d’e-mail sur le client Stripe | Assurez-vous que l’e-mail est renseigné sur les fiches client Stripe |
| Données d’abonnement manquantes | Permissions insuffisantes | Mettez à jour les permissions de la clé restreinte |
| Événements dupliqués | Nouvelle tentative de livraison du webhook | Implémentez l’idempotence avec les IDs d’événements |
Mode débogage
Activez la journalisation détaillée :
connectors: stripe: debug: true log_level: verbose log_webhooks: trueTester la connexion
tajo connectors test stripe# ✓ API connection successful# ✓ Customers readable# ✓ Subscriptions readable# ✓ Payments readable# ✓ Webhook endpoint verifiedBonnes pratiques
- Utilisez des clés API restreintes, Créez des clés avec les permissions minimales requises
- Vérifiez toujours les signatures de webhook, Empêchez les événements webhook falsifiés
- Gérez l’idempotence, Utilisez les IDs d’événements Stripe pour éviter le traitement en double
- Synchronisez les métadonnées client, Stockez les données marketing pertinentes dans les champs metadata de Stripe
- Surveillez la livraison des webhooks, Consultez le Stripe Dashboard pour les livraisons échouées
- Utilisez d’abord le mode test, Validez votre intégration avec le mode test Stripe et les test clocks
Sécurité
- Authentification par clé API, Accès basé sur une clé secrète avec prise en charge des clés restreintes
- Vérification des signatures webhook, Validation de signature HMAC SHA-256
- Chiffrement TLS, Toutes les communications API chiffrées via HTTPS
- Conformité PCI, Stripe gère la conformité PCI DSS pour les données de paiement
- Whitelisting d’IP, Restrictions d’IP optionnelles pour l’accès API