Stripe-connector

Stripe-connector

Verbind je Stripe-account met Brevo via Tajo voor volledige synchronisatie van betaaldata, beheer van de abonnementslevenscyclus en omzetgedreven marketingautomatisering.

Overzicht

EigenschapWaarde
PlatformStripe
CategorieE-commerce
SetupcomplexiteitEenvoudig
Officiële integratieJa
Gesynchroniseerde dataKlanten, Betalingen, Abonnementen, Facturen, Events
API base URLhttps://api.stripe.com/v1

Functies

  • Klantsynchronisatie - Synchroniseer Stripe-klanten met Brevo-contacten inclusief metadata
  • Betalingstracking - Volg succesvolle betalingen, terugbetalingen en mislukte charges
  • Abonnementsbeheer - Synchroniseer abonnements-lifecycle-events voor retentiecampagnes
  • Factuurdata - Synchroniseer factuurdetails voor post-purchase- en verlengingsautomatisering
  • Omzet-attributie - Koppel lifetime value en MRR aan Brevo-attributen
  • Webhook-events - Realtime-eventnotificaties voor alle betaalactiviteiten
  • Multi-currency-ondersteuning - Verwerk betalingen in meerdere valuta’s
  • Checkout-sessie-tracking - Volg Stripe Checkout voor herstel van verlaten betalingen

Vereisten

Voordat je begint, zorg dat je beschikt over:

  1. Een Stripe-account met API-toegang
  2. Stripe API-sleutels (publishable en secret key)
  3. Een Brevo-account met API-toegang
  4. Een Tajo-account

Authenticatie

API-sleutel-authenticatie

Stripe gebruikt bearer-token-authenticatie met je secret API key.

Terminal window
curl https://api.stripe.com/v1/customers \
-u sk_live_YOUR_SECRET_KEY:

API-sleutelbeveiliging

Plaats je secret key nooit in client-side code. Gebruik de publishable key voor frontendoperaties en de secret key alleen op je server.

Restricted API keys

Maak restricted keys met specifieke rechten voor extra beveiliging:

  1. Ga naar Stripe Dashboard > Developers > API Keys
  2. Klik op “Create restricted key”
  3. Geef alleen de rechten die Tajo nodig heeft

Vereiste rechten

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

Configuratie

Basisopzet

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

Veldmapping

Koppel Stripe-klantdata aan Brevo-contactattributen:

Standaard-mappings

Parameter Type Description
email required
string

E-mailadres klant (unieke identifier)

name optional
string

Volledige naam klant, opgesplitst in FIRSTNAME/LASTNAME

phone optional
string

Koppelt aan SMS-attribuut voor WhatsApp/sms

currency optional
string

Standaardvaluta van de klant

created optional
timestamp

Aanmaakdatum van de klant in Stripe

metadata optional
object

Custom key-value-metadata uit Stripe

subscriptions optional
array

Details van actieve abonnementen

balance optional
integer

Saldo van klantaccount in centen

Custom attribuutmapping

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

API-endpoints

Kern-endpoints

MethodeEndpointBeschrijving
GET/v1/customersAlle klanten opvragen
POST/v1/customersKlant aanmaken
GET/v1/customers/{id}Klant ophalen
POST/v1/customers/{id}Klant bijwerken
GET/v1/chargesAlle charges opvragen
GET/v1/payment_intentsPayment intents opvragen

Abonnements-endpoints

MethodeEndpointBeschrijving
GET/v1/subscriptionsAbonnementen opvragen
GET/v1/subscriptions/{id}Abonnement ophalen
GET/v1/invoicesFacturen opvragen
GET/v1/invoices/upcomingAankomende factuur ophalen
GET/v1/productsProducten opvragen
GET/v1/pricesPrijzen opvragen

Event-endpoints

MethodeEndpointBeschrijving
GET/v1/eventsEvents opvragen
GET/v1/events/{id}Event ophalen

Events

Betaal-events

EventTriggerUse case
payment_intent.succeededBetaling afgerondOrderbevestiging
payment_intent.payment_failedBetaling misluktRecovery-e-mail
charge.refundedTerugbetaling verwerktTerugbetalingsnotificatie
charge.dispute.createdChargeback gestartGeschilafhandeling

Abonnements-events

EventTriggerUse case
customer.subscription.createdNieuw abonnementOnboardingsflow
customer.subscription.updatedPlan gewijzigdUpgrade-/downgradeflow
customer.subscription.deletedAbonnement opgezegdChurn-preventie
customer.subscription.trial_will_endTrial eindigt over 3 dagenTrialconversie-campagne
invoice.payment_failedAbonnementsbetaling misluktDunning-e-mailserie

Klant-events

EventTriggerUse case
customer.createdNieuwe klant toegevoegdWelkomstmail
customer.updatedKlantdata gewijzigdAttribuutsync
customer.deletedKlant verwijderdOpschonen

Codevoorbeelden

Connector initialiseren

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
});

Klantsynchronisatie uitvoeren

// 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
// }

Stripe-webhooks afhandelen

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 });
});

Ratelimits

Stripe hanteert de volgende ratelimits:

TypeLimietDetails
Live mode100 read requests/secondePer secret key
Live mode100 write requests/secondePer secret key
Test mode25 requests/secondePer secret key
Webhook-levering100.000 events/dagPer endpoint

Ratelimit-afhandeling

Stripe geeft een 429 Too Many Requests-response wanneer limieten worden overschreden. Implementeer exponentiële backoff. Gebruik list-endpoints met auto-paginatie voor bulkdata-ophaling.

Probleemoplossing

Veelvoorkomende problemen

ProbleemOorzaakOplossing
401 UnauthorizedOngeldige API-sleutelControleer de secret key in het Stripe Dashboard
Webhook-signature faaltVerkeerde webhook-secretKopieer de webhook signing secret opnieuw uit het Dashboard
Klant niet gesynchroniseerdGeen e-mail op Stripe-klantZorg dat e-mailadressen zijn ingesteld op Stripe-klantrecords
Abonnementsdata ontbreektOnvoldoende rechtenWerk de rechten van de restricted key bij
Dubbele eventsWebhook-retry-leveringImplementeer idempotency met event-ID’s

Debugmodus

Activeer uitgebreide logging:

connectors:
stripe:
debug: true
log_level: verbose
log_webhooks: true

Verbinding testen

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

Best practices

  1. Gebruik restricted API keys - Maak keys aan met alleen de minimaal benodigde rechten
  2. Verifieer altijd webhook-signatures - Voorkom vervalste webhook-events
  3. Regel idempotency - Gebruik Stripe-event-ID’s om duplicaatverwerking te voorkomen
  4. Synchroniseer klant-metadata - Sla marketingrelevante data op in Stripe-metadata-velden
  5. Monitor webhook-levering - Bekijk het Stripe Dashboard voor mislukte leveringen
  6. Gebruik eerst test mode - Valideer je integratie met Stripe test mode en test clocks

Beveiliging

  • API-sleutel-authenticatie - Toegang op basis van secret key met ondersteuning voor restricted keys
  • Webhook-signatureverificatie - HMAC SHA-256-handtekeningvalidatie
  • TLS-encryptie - Alle API-communicatie versleuteld via HTTPS
  • PCI-compliance - Stripe regelt PCI DSS-compliance voor betaaldata
  • IP-whitelisting - Optionele IP-beperkingen voor API-toegang

Gerelateerde resources

Subscribe to updates

developer-docs

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

AI-assistent

Hallo! Stel me vragen over de documentatie.

Start gratis met Brevo