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
PlateformeStripe
CatégorieE-commerce
Complexité d’installationFacile
Intégration officielleOui
Données synchroniséesClients, paiements, abonnements, factures, événements
URL de base de l’APIhttps://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 :

  1. Un compte Stripe avec accès API
  2. Des clés API Stripe (clés publishable et secret)
  3. Un compte Brevo avec accès API
  4. Un compte Tajo

Authentification

Authentification par clé API

Stripe utilise une authentification bearer token avec votre clé API secrète.

Terminal window
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 :

  1. Accédez à Stripe Dashboard > Developers > API Keys
  2. Cliquez sur « Create restricted key »
  3. N’accordez que les permissions requises par Tajo

Permissions requises

customers: read
charges: read
payment_intents: read
subscriptions: read
invoices: read
events: read
products: read
prices: read

Configuration

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: 22

Mappage 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_SOURCE

Endpoints API

Endpoints principaux

MéthodeEndpointDescription
GET/v1/customersLister tous les clients
POST/v1/customersCréer un client
GET/v1/customers/{id}Récupérer un client
POST/v1/customers/{id}Mettre à jour un client
GET/v1/chargesLister tous les charges
GET/v1/payment_intentsLister les payment intents

Endpoints d’abonnement

MéthodeEndpointDescription
GET/v1/subscriptionsLister les abonnements
GET/v1/subscriptions/{id}Récupérer un abonnement
GET/v1/invoicesLister les factures
GET/v1/invoices/upcomingRécupérer la prochaine facture
GET/v1/productsLister les produits
GET/v1/pricesLister les prix

Endpoints d’événements

MéthodeEndpointDescription
GET/v1/eventsLister les événements
GET/v1/events/{id}Récupérer un événement

Événements

Événements de paiement

ÉvénementDéclencheurCas d’usage
payment_intent.succeededPaiement finaliséConfirmation de commande
payment_intent.payment_failedPaiement échouéE-mail de récupération
charge.refundedRemboursement traitéNotification de remboursement
charge.dispute.createdContestation initiéeGestion des litiges

Événements d’abonnement

ÉvénementDéclencheurCas d’usage
customer.subscription.createdNouvel abonnementWorkflow d’onboarding
customer.subscription.updatedPlan modifiéWorkflow d’upgrade/downgrade
customer.subscription.deletedAbonnement annuléPrévention du churn
customer.subscription.trial_will_endEssai expirant dans 3 joursCampagne de conversion d’essai
invoice.payment_failedPaiement d’abonnement échouéSéquence d’e-mails de relance

Événements client

ÉvénementDéclencheurCas d’usage
customer.createdNouveau client ajoutéE-mail de bienvenue
customer.updatedDonnées client modifiéesSynchronisation des attributs
customer.deletedClient 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 Stripe
await tajo.connectors.connect('stripe', {
secretKey: process.env.STRIPE_SECRET_KEY,
webhookSecret: process.env.STRIPE_WEBHOOK_SECRET
});

Lancer une synchronisation des clients

// Full historical sync
await tajo.connectors.sync('stripe', {
type: 'full',
resources: ['customers', 'subscriptions', 'payments'],
since: '2023-01-01'
});
// Check sync status
const 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 :

TypeLimiteDétails
Mode Live100 requêtes de lecture/secondePar clé secrète
Mode Live100 requêtes d’écriture/secondePar clé secrète
Mode Test25 requêtes/secondePar clé secrète
Livraison de webhooks100 000 événements/jourPar 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èmeCauseSolution
401 UnauthorizedClé API invalideVérifiez la clé secrète dans le Stripe Dashboard
Échec de signature webhookSecret webhook incorrectRecopiez le secret de signature webhook depuis le Dashboard
Client non synchroniséPas d’e-mail sur le client StripeAssurez-vous que l’e-mail est renseigné sur les fiches client Stripe
Données d’abonnement manquantesPermissions insuffisantesMettez à jour les permissions de la clé restreinte
Événements dupliquésNouvelle tentative de livraison du webhookImplé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: true

Tester la connexion

Terminal window
tajo connectors test stripe
# ✓ API connection successful
# ✓ Customers readable
# ✓ Subscriptions readable
# ✓ Payments readable
# ✓ Webhook endpoint verified

Bonnes pratiques

  1. Utilisez des clés API restreintes, Créez des clés avec les permissions minimales requises
  2. Vérifiez toujours les signatures de webhook, Empêchez les événements webhook falsifiés
  3. Gérez l’idempotence, Utilisez les IDs d’événements Stripe pour éviter le traitement en double
  4. Synchronisez les métadonnées client, Stockez les données marketing pertinentes dans les champs metadata de Stripe
  5. Surveillez la livraison des webhooks, Consultez le Stripe Dashboard pour les livraisons échouées
  6. 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

Ressources associées

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.

Commencez gratuitement avec Brevo