Connettore Stripe

Connettore Stripe

Collega il tuo account Stripe a Brevo tramite Tajo per una sincronizzazione completa dei dati di pagamento, la gestione del ciclo di vita degli abbonamenti e l’automazione marketing basata sui ricavi.

Panoramica

ProprietàValore
PiattaformaStripe
CategoriaE-commerce
Complessità di setupFacile
Integrazione ufficiale
Dati sincronizzatiClienti, Pagamenti, Abbonamenti, Fatture, Eventi
API Base URLhttps://api.stripe.com/v1

Funzionalità

  • Sincronizzazione clienti - Sincronizza i clienti Stripe con i contatti Brevo inclusi i metadati
  • Tracciamento pagamenti - Traccia pagamenti riusciti, rimborsi e addebiti falliti
  • Gestione abbonamenti - Sincronizza gli eventi del ciclo di vita degli abbonamenti per campagne di retention
  • Dati delle fatture - Sincronizza i dettagli delle fatture per automazioni post-acquisto e di rinnovo
  • Attribuzione dei ricavi - Mappa lifetime value e MRR agli attributi Brevo
  • Eventi webhook - Notifiche in tempo reale per tutte le attività di pagamento
  • Supporto multi-valuta - Gestisci pagamenti in più valute
  • Tracciamento sessioni di checkout - Traccia Stripe Checkout per il recupero dei pagamenti abbandonati

Prerequisiti

Prima di iniziare, assicurati di avere:

  1. Un account Stripe con accesso API
  2. Chiavi API Stripe (chiavi publishable e secret)
  3. Un account Brevo con accesso API
  4. Un account Tajo

Autenticazione

Autenticazione tramite API Key

Stripe utilizza l’autenticazione bearer token con la tua chiave API secret.

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

Sicurezza delle API Key

Non esporre mai la tua chiave secret nel codice lato client. Usa la chiave publishable per le operazioni frontend e la chiave secret solo sul tuo server.

API Key con restrizioni

Crea chiavi con restrizioni e permessi specifici per maggiore sicurezza:

  1. Vai nella Stripe Dashboard > Developers > API Keys
  2. Clicca su “Create restricted key”
  3. Concedi solo i permessi che Tajo richiede

Permessi richiesti

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

Configurazione

Setup di 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

Mappatura dei campi

Mappa i dati cliente Stripe agli attributi di contatto Brevo:

Mappature predefinite

Parameter Type Description
email required
string

Indirizzo email del cliente (identificatore univoco)

name optional
string

Nome completo del cliente, suddiviso in FIRSTNAME/LASTNAME

phone optional
string

Mappato all'attributo SMS per WhatsApp/SMS

currency optional
string

Valuta predefinita per il cliente

created optional
timestamp

Data di creazione del cliente in Stripe

metadata optional
object

Metadati personalizzati chiave-valore da Stripe

subscriptions optional
array

Dettagli degli abbonamenti attivi

balance optional
integer

Saldo dell'account cliente in centesimi

Mappatura attributi personalizzati

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

Endpoint API

Endpoint principali

MetodoEndpointDescrizione
GET/v1/customersElenca tutti i clienti
POST/v1/customersCrea un cliente
GET/v1/customers/{id}Recupera un cliente
POST/v1/customers/{id}Aggiorna un cliente
GET/v1/chargesElenca tutti gli addebiti
GET/v1/payment_intentsElenca i payment intent

Endpoint abbonamenti

MetodoEndpointDescrizione
GET/v1/subscriptionsElenca gli abbonamenti
GET/v1/subscriptions/{id}Recupera un abbonamento
GET/v1/invoicesElenca le fatture
GET/v1/invoices/upcomingRecupera la prossima fattura
GET/v1/productsElenca i prodotti
GET/v1/pricesElenca i prezzi

Endpoint eventi

MetodoEndpointDescrizione
GET/v1/eventsElenca gli eventi
GET/v1/events/{id}Recupera un evento

Eventi

Eventi di pagamento

EventoTriggerCaso d’uso
payment_intent.succeededPagamento completatoConferma d’ordine
payment_intent.payment_failedPagamento fallitoEmail di recupero
charge.refundedRimborso elaboratoNotifica di rimborso
charge.dispute.createdChargeback avviatoGestione controversie

Eventi di abbonamento

EventoTriggerCaso d’uso
customer.subscription.createdNuovo abbonamentoFlusso di onboarding
customer.subscription.updatedPiano modificatoFlusso di upgrade/downgrade
customer.subscription.deletedAbbonamento annullatoPrevenzione churn
customer.subscription.trial_will_endTrial in scadenza tra 3 giorniCampagna di conversione trial
invoice.payment_failedPagamento abbonamento fallitoSequenza email di dunning

Eventi cliente

EventoTriggerCaso d’uso
customer.createdNuovo cliente aggiuntoEmail di benvenuto
customer.updatedDati cliente modificatiSincronizzazione attributi
customer.deletedCliente rimossoPulizia

Esempi di codice

Inizializza il connettore

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

Esegui sincronizzazione clienti

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

Gestisci i webhook di 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 });
});

Limiti di velocità

Stripe applica i seguenti limiti di velocità:

TipoLimiteDettagli
Modalità live100 richieste di lettura/secondoPer secret key
Modalità live100 richieste di scrittura/secondoPer secret key
Modalità test25 richieste/secondoPer secret key
Consegna webhook100.000 eventi/giornoPer endpoint

Gestione dei limiti di velocità

Stripe restituisce una risposta 429 Too Many Requests quando i limiti vengono superati. Implementa un backoff esponenziale. Usa gli endpoint di elenco con auto-paginazione per il recupero dati in blocco.

Risoluzione dei problemi

Problemi comuni

ProblemaCausaSoluzione
401 UnauthorizedChiave API non validaControlla la secret key nella Stripe Dashboard
Firma webhook fallitaWebhook secret erratoRicopia il webhook signing secret dalla Dashboard
Cliente non sincronizzatoNessuna email sul cliente StripeAssicurati che l’email sia impostata nei record cliente Stripe
Dati abbonamento mancantiPermessi insufficientiAggiorna i permessi della chiave con restrizioni
Eventi duplicatiNuovo tentativo di consegna webhookImplementa idempotenza con gli ID evento

Modalità debug

Abilita il logging dettagliato:

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

Testa la connessione

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

Best practice

  1. Usa chiavi API con restrizioni - Crea chiavi con i permessi minimi richiesti
  2. Verifica sempre le firme dei webhook - Previeni eventi webhook falsificati
  3. Gestisci l’idempotenza - Usa gli ID degli eventi Stripe per prevenire elaborazioni duplicate
  4. Sincronizza i metadati cliente - Archivia dati rilevanti per il marketing nei campi metadata di Stripe
  5. Monitora la consegna dei webhook - Controlla la Stripe Dashboard per consegne fallite
  6. Usa prima la modalità test - Convalida la tua integrazione con la modalità test di Stripe e i test clock

Sicurezza

  • Autenticazione API Key - Accesso basato su secret key con supporto per chiavi con restrizioni
  • Verifica firma webhook - Validazione firma HMAC SHA-256
  • Cifratura TLS - Tutte le comunicazioni API cifrate tramite HTTPS
  • Conformità PCI - Stripe gestisce la conformità PCI DSS per i dati di pagamento
  • IP whitelisting - Restrizioni IP opzionali per l’accesso API

Risorse correlate

Subscribe to updates

developer-docs

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

Assistente AI

Ciao! Chiedimi qualsiasi cosa sulla documentazione.

Inizia gratis con Brevo