Stripe-Connector

Stripe-Connector

Verbinde deinen Stripe-Account mit Brevo über Tajo für eine vollständige Synchronisation von Zahlungsdaten, Management des Abonnement-Lifecycles und umsatzgetriebene Marketing-Automation.

Überblick

EigenschaftWert
PlattformStripe
KategorieE-Commerce
EinrichtungsaufwandEinfach
Offizielle IntegrationJa
Synchronisierte DatenKund:innen, Zahlungen, Abonnements, Rechnungen, Events
API-Base-URLhttps://api.stripe.com/v1

Funktionen

  • Kundendaten-Synchronisation – Synchronisiere Stripe-Kund:innen mit Brevo-Kontakten inklusive Metadaten
  • Zahlungsverfolgung – Verfolge erfolgreiche Zahlungen, Rückerstattungen und fehlgeschlagene Charges
  • Abonnement-Management – Synchronisiere Lifecycle-Events für Retention-Kampagnen
  • Rechnungsdaten – Synchronisiere Rechnungsdetails für Post-Purchase- und Renewal-Automation
  • Umsatzzuordnung – Ordne Lifetime Value und MRR Brevo-Attributen zu
  • Webhook-Events – Echtzeit-Benachrichtigungen für alle Zahlungsvorgänge
  • Multi-Currency-Unterstützung – Verarbeite Zahlungen in verschiedenen Währungen
  • Checkout-Session-Tracking – Verfolge Stripe Checkout für die Recovery abgebrochener Zahlungen

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

  1. Einen Stripe-Account mit API-Zugang
  2. Stripe-API-Schlüssel (Publishable und Secret Key)
  3. Einen Brevo-Account mit API-Zugang
  4. Einen Tajo-Account

Authentifizierung

API-Key-Authentifizierung

Stripe nutzt Bearer-Token-Authentifizierung mit deinem Secret API Key.

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

Sicherheit von API-Schlüsseln

Gib deinen Secret Key niemals im Client-Code preis. Verwende den Publishable Key für Frontend-Operationen und den Secret Key ausschließlich auf deinem Server.

Restricted API Keys

Erstelle Restricted Keys mit spezifischen Berechtigungen für erhöhte Sicherheit:

  1. Gehe ins Stripe Dashboard > Developers > API Keys
  2. Klicke auf „Create restricted key”
  3. Gewähre nur die Berechtigungen, die Tajo benötigt

Erforderliche Berechtigungen

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

Konfiguration

Grundlegende Einrichtung

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

Feld-Mapping

Mappe Stripe-Kundendaten auf Brevo-Kontaktattribute:

Standard-Mappings

Parameter Type Description
email required
string

E-Mail-Adresse der Kund:in (eindeutiger Identifier)

name optional
string

Vollständiger Name, aufgeteilt in FIRSTNAME/LASTNAME

phone optional
string

Mappt auf das SMS-Attribut für WhatsApp/SMS

currency optional
string

Standardwährung der Kund:in

created optional
timestamp

Erstellungsdatum der Kund:in in Stripe

metadata optional
object

Benutzerdefinierte Key-Value-Metadaten aus Stripe

subscriptions optional
array

Details aktiver Abonnements

balance optional
integer

Kontostand der Kund:in in Cent

Mapping benutzerdefinierter Attribute

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

MethodeEndpointBeschreibung
GET/v1/customersAlle Kund:innen auflisten
POST/v1/customersKund:in anlegen
GET/v1/customers/{id}Kund:in abrufen
POST/v1/customers/{id}Kund:in aktualisieren
GET/v1/chargesAlle Charges auflisten
GET/v1/payment_intentsPayment Intents auflisten

Abonnement-Endpoints

MethodeEndpointBeschreibung
GET/v1/subscriptionsAbonnements auflisten
GET/v1/subscriptions/{id}Abonnement abrufen
GET/v1/invoicesRechnungen auflisten
GET/v1/invoices/upcomingAnstehende Rechnung abrufen
GET/v1/productsProdukte auflisten
GET/v1/pricesPreise auflisten

Event-Endpoints

MethodeEndpointBeschreibung
GET/v1/eventsEvents auflisten
GET/v1/events/{id}Event abrufen

Events

Zahlungs-Events

EventTriggerAnwendungsfall
payment_intent.succeededZahlung abgeschlossenBestellbestätigung
payment_intent.payment_failedZahlung fehlgeschlagenRecovery-E-Mail
charge.refundedRückerstattung verarbeitetRückerstattungs-Benachrichtigung
charge.dispute.createdChargeback eröffnetDispute-Handling

Abonnement-Events

EventTriggerAnwendungsfall
customer.subscription.createdNeues AbonnementOnboarding-Flow
customer.subscription.updatedPlan geändertUpgrade-/Downgrade-Flow
customer.subscription.deletedAbonnement gekündigtChurn-Prevention
customer.subscription.trial_will_endTestphase endet in 3 TagenTrial-Conversion-Kampagne
invoice.payment_failedAbonnement-Zahlung fehlgeschlagenDunning-E-Mail-Sequenz

Kunden-Events

EventTriggerAnwendungsfall
customer.createdNeue Kund:in angelegtWelcome-E-Mail
customer.updatedKundendaten geändertAttribut-Synchronisation
customer.deletedKund:in entferntCleanup

Code-Beispiele

Connector initialisieren

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

Kundendaten-Synchronisation ausführen

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

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

Rate Limits

Stripe erzwingt folgende Rate Limits:

TypLimitDetails
Live-Modus100 Read-Requests/SekundePro Secret Key
Live-Modus100 Write-Requests/SekundePro Secret Key
Test-Modus25 Requests/SekundePro Secret Key
Webhook-Zustellung100.000 Events/TagPro Endpoint

Umgang mit Rate Limits

Stripe gibt bei Überschreitung der Limits einen 429 Too Many Requests-Response zurück. Implementiere Exponential Backoff. Nutze List-Endpoints mit Auto-Pagination für den Massenabruf von Daten.

Fehlerbehebung

Häufige Probleme

ProblemUrsacheLösung
401 UnauthorizedUngültiger API-SchlüsselSecret Key im Stripe Dashboard prüfen
Webhook-Signatur fehlgeschlagenFalsches Webhook-SecretWebhook Signing Secret im Dashboard erneut kopieren
Kund:in nicht synchronisiertKeine E-Mail am Stripe-KundendatensatzStelle sicher, dass in Stripe-Kundendatensätzen eine E-Mail hinterlegt ist
Fehlende AbonnementdatenUnzureichende BerechtigungenBerechtigungen des Restricted Keys aktualisieren
Doppelte EventsWebhook-Retry-ZustellungIdempotenz mit Event-IDs implementieren

Debug-Modus

Ausführliches Logging aktivieren:

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

Verbindung testen

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

Best Practices

  1. Restricted API Keys verwenden – Erstelle Keys mit den minimal erforderlichen Berechtigungen
  2. Webhook-Signaturen immer verifizieren – Verhindere gefälschte Webhook-Events
  3. Idempotenz handhaben – Nutze Stripe-Event-IDs, um doppelte Verarbeitung zu vermeiden
  4. Kunden-Metadaten synchronisieren – Speichere marketingrelevante Daten in Stripe-Metadatenfeldern
  5. Webhook-Zustellung überwachen – Prüfe das Stripe-Dashboard auf fehlgeschlagene Zustellungen
  6. Zuerst den Test-Modus nutzen – Validiere deine Integration mit Stripe-Test-Modus und Test Clocks

Sicherheit

  • API-Key-Authentifizierung – Zugriff via Secret Key mit Unterstützung für Restricted Keys
  • Webhook-Signatur-Verifizierung – Validierung mit HMAC SHA-256
  • TLS-Verschlüsselung – Gesamte API-Kommunikation über HTTPS verschlüsselt
  • PCI-Compliance – Stripe verantwortet die PCI-DSS-Compliance für Zahlungsdaten
  • IP-Whitelisting – Optionale IP-Einschränkungen für den API-Zugriff

Verwandte Ressourcen

Subscribe to updates

developer-docs

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

AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.

Kostenlos mit Brevo starten