Stripe-koppling
Stripe-koppling
Anslut ditt Stripe-konto till Brevo via Tajo för komplett synkronisering av betalningsdata, hantering av prenumerationers livscykel och intäktsdriven marknadsautomation.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | Stripe |
| Kategori | E-handel |
| Installationskomplexitet | Enkel |
| Officiell integration | Ja |
| Data som synkas | Kunder, betalningar, prenumerationer, fakturor, händelser |
| Bas-URL för API | https://api.stripe.com/v1 |
Funktioner
- Kundsynk - Synka Stripe-kunder med Brevo-kontakter inklusive metadata
- Betalningsspårning - Spåra genomförda betalningar, återbetalningar och misslyckade debiteringar
- Prenumerationshantering - Synka händelser i prenumerationens livscykel för retentionskampanjer
- Fakturadata - Synka fakturadetaljer för automation efter köp och förnyelse
- Intäktsattribution - Mappa livstidsvärde och MRR till Brevo-attribut
- Webhook-händelser - Händelsesaviseringar i realtid för alla betalningsaktiviteter
- Stöd för flera valutor - Hantera betalningar i flera valutor
- Spårning av checkout-sessioner - Spåra Stripe Checkout för återvinning av övergivna betalningar
Förutsättningar
Innan du börjar, se till att du har:
- Ett Stripe-konto med API-åtkomst
- Stripe API-nycklar (publishable och secret keys)
- Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto
Autentisering
API-nyckelautentisering
Stripe använder bearer token-autentisering med din hemliga API-nyckel.
curl https://api.stripe.com/v1/customers \ -u sk_live_YOUR_SECRET_KEY:Säkerhet för API-nycklar
Exponera aldrig din hemliga nyckel i klientkod. Använd den publika nyckeln för frontend-operationer och den hemliga nyckeln endast på servern.
Begränsade API-nycklar
Skapa begränsade nycklar med specifika behörigheter för ökad säkerhet:
- Gå till Stripe Dashboard > Developers > API Keys
- Klicka på “Create restricted key”
- Ge endast de behörigheter som Tajo behöver
Nödvändiga behörigheter
customers: readcharges: readpayment_intents: readsubscriptions: readinvoices: readevents: readproducts: readprices: readKonfiguration
Grundläggande konfiguration
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: 22Fältmappning
Mappa Stripe-kunddata till Brevos kontaktattribut:
Standardmappningar
| Parameter | Type | Description |
|---|---|---|
email required | string | Kundens e-postadress (unik identifierare) |
name optional | string | Kundens fullständiga namn, delat upp i FIRSTNAME/LASTNAME |
phone optional | string | Mappas till SMS-attributet för WhatsApp/SMS |
currency optional | string | Standardvaluta för kunden |
created optional | timestamp | Datum då kunden skapades i Stripe |
metadata optional | object | Anpassad nyckel-värde-metadata från Stripe |
subscriptions optional | array | Detaljer om aktiva prenumerationer |
balance optional | integer | Kundens kontosaldo i cent |
Anpassad attributmappning
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_SOURCEAPI-ändpunkter
Huvudändpunkter
| Metod | Ändpunkt | Beskrivning |
|---|---|---|
GET | /v1/customers | Lista alla kunder |
POST | /v1/customers | Skapa en kund |
GET | /v1/customers/{id} | Hämta en kund |
POST | /v1/customers/{id} | Uppdatera en kund |
GET | /v1/charges | Lista alla debiteringar |
GET | /v1/payment_intents | Lista payment intents |
Prenumerationsändpunkter
| Metod | Ändpunkt | Beskrivning |
|---|---|---|
GET | /v1/subscriptions | Lista prenumerationer |
GET | /v1/subscriptions/{id} | Hämta en prenumeration |
GET | /v1/invoices | Lista fakturor |
GET | /v1/invoices/upcoming | Hämta kommande faktura |
GET | /v1/products | Lista produkter |
GET | /v1/prices | Lista priser |
Händelseändpunkter
| Metod | Ändpunkt | Beskrivning |
|---|---|---|
GET | /v1/events | Lista händelser |
GET | /v1/events/{id} | Hämta en händelse |
Händelser
Betalningshändelser
| Händelse | Utlösare | Användningsfall |
|---|---|---|
payment_intent.succeeded | Betalning genomförd | Orderbekräftelse |
payment_intent.payment_failed | Betalning misslyckades | Återvinningsmejl |
charge.refunded | Återbetalning hanterad | Avisering om återbetalning |
charge.dispute.created | Chargeback initierad | Hantering av tvister |
Prenumerationshändelser
| Händelse | Utlösare | Användningsfall |
|---|---|---|
customer.subscription.created | Ny prenumeration | Onboardingflöde |
customer.subscription.updated | Plan ändrad | Flöde för uppgradering/nedgradering |
customer.subscription.deleted | Prenumeration avbruten | Churn-förebyggande |
customer.subscription.trial_will_end | Testperiod slutar om 3 dagar | Kampanj för testkonvertering |
invoice.payment_failed | Prenumerationsbetalning misslyckades | Sekvens av påminnelsemejl |
Kundhändelser
| Händelse | Utlösare | Användningsfall |
|---|---|---|
customer.created | Ny kund tillagd | Välkomstmejl |
customer.updated | Kunddata ändrad | Attributsynk |
customer.deleted | Kund borttagen | Uppstädning |
Kodexempel
Initiera kopplingen
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});Kör kundsynk
// 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// }Hantera Stripe-webhooks
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 });});API-gränser
Stripe tillämpar följande API-gränser:
| Typ | Gräns | Detaljer |
|---|---|---|
| Live-läge | 100 läsförfrågningar/sekund | Per hemlig nyckel |
| Live-läge | 100 skrivförfrågningar/sekund | Per hemlig nyckel |
| Test-läge | 25 förfrågningar/sekund | Per hemlig nyckel |
| Webhook-leverans | 100 000 händelser/dag | Per ändpunkt |
Hantering av rate limits
Stripe returnerar svaret 429 Too Many Requests när gränserna överskrids. Implementera exponentiell backoff. Använd list-ändpunkter med automatisk paginering för massuthämtning av data.
Felsökning
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
| 401 Unauthorized | Ogiltig API-nyckel | Kontrollera den hemliga nyckeln i Stripe Dashboard |
| Webhook-signaturen misslyckas | Felaktig webhook secret | Kopiera webhook signing secret igen från Dashboard |
| Kunden synkas inte | Ingen e-post på Stripe-kunden | Se till att e-post är angiven på Stripe-kundposterna |
| Prenumerationsdata saknas | Otillräckliga behörigheter | Uppdatera behörigheterna för den begränsade nyckeln |
| Dubbletter av händelser | Omförsök av webhook-leverans | Implementera idempotens med händelse-ID:n |
Debug-läge
Aktivera utförlig loggning:
connectors: stripe: debug: true log_level: verbose log_webhooks: trueTesta anslutningen
tajo connectors test stripe# ✓ API connection successful# ✓ Customers readable# ✓ Subscriptions readable# ✓ Payments readable# ✓ Webhook endpoint verifiedBästa praxis
- Använd begränsade API-nycklar - Skapa nycklar med minsta nödvändiga behörigheter
- Verifiera alltid webhook-signaturer - Förhindra förfalskade webhook-händelser
- Hantera idempotens - Använd Stripe-händelse-ID:n för att undvika dubbel bearbetning
- Synka kundmetadata - Lagra marknadsföringsrelevant data i Stripe metadata-fält
- Övervaka webhook-leverans - Kontrollera Stripe Dashboard för misslyckade leveranser
- Använd testläge först - Validera din integration med Stripe test-läge och test clocks
Säkerhet
- API-nyckelautentisering - Åtkomst med hemlig nyckel och stöd för begränsade nycklar
- Verifiering av webhook-signatur - Validering med HMAC SHA-256-signatur
- TLS-kryptering - All API-kommunikation krypteras via HTTPS
- PCI-efterlevnad - Stripe hanterar PCI DSS-efterlevnad för betalningsdata
- IP-whitelist - Valbara IP-begränsningar för API-åtkomst