Conector de Stripe

Conector de Stripe

Conecta tu cuenta de Stripe con Brevo a través de Tajo para una sincronización completa de los datos de pago, la gestión del ciclo de vida de las suscripciones y la automatización del marketing basada en ingresos.

Resumen

PropiedadValor
PlataformaStripe
CategoríaEcommerce
Complejidad de configuraciónFácil
Integración oficial
Datos sincronizadosClientes, Pagos, Suscripciones, Facturas, Eventos
URL base de la APIhttps://api.stripe.com/v1

Funcionalidades

  • Sincronización de clientes - Sincroniza los clientes de Stripe con los contactos de Brevo, incluidos sus metadatos
  • Seguimiento de pagos - Rastrea pagos exitosos, reembolsos y cargos fallidos
  • Gestión de suscripciones - Sincroniza eventos del ciclo de vida de la suscripción para campañas de retención
  • Datos de facturas - Sincroniza los detalles de las facturas para automatizar mensajes post-compra y renovaciones
  • Atribución de ingresos - Asocia el valor de vida y el MRR a atributos de Brevo
  • Eventos de webhook - Notificaciones de eventos en tiempo real para todas las actividades de pago
  • Soporte multi-moneda - Gestiona pagos en varias monedas
  • Seguimiento de Checkout sessions - Rastrea Stripe Checkout para recuperar pagos abandonados

Requisitos previos

Antes de empezar, asegúrate de tener:

  1. Una cuenta de Stripe con acceso a la API
  2. Las claves API de Stripe (publishable key y secret key)
  3. Una cuenta de Brevo con acceso a la API
  4. Una cuenta de Tajo

Autenticación

Autenticación por clave API

Stripe usa autenticación bearer con tu secret key.

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

Seguridad de la clave API

Nunca expongas tu secret key en código del lado del cliente. Usa la publishable key para operaciones de frontend y la secret key solo en tu servidor.

Claves API restringidas

Crea claves restringidas con permisos específicos para una seguridad mayor:

  1. Ve a Stripe Dashboard > Developers > API Keys
  2. Haz clic en “Create restricted key”
  3. Concede solo los permisos que Tajo necesita

Permisos requeridos

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

Configuración

Configuración básica

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

Asignación de campos

Asocia los datos de cliente de Stripe con los atributos de contacto de Brevo:

Default Mappings

Parameter Type Description
email required
string

Dirección de email del cliente (identificador único)

name optional
string

Nombre completo del cliente, dividido en FIRSTNAME/LASTNAME

phone optional
string

Se asocia al atributo SMS para WhatsApp/SMS

currency optional
string

Moneda por defecto del cliente

created optional
timestamp

Fecha de creación del cliente en Stripe

metadata optional
object

Metadatos clave-valor personalizados desde Stripe

subscriptions optional
array

Detalles de las suscripciones activas

balance optional
integer

Saldo de la cuenta del cliente en céntimos

Asignación de atributos personalizados

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 de la API

Endpoints principales

MétodoEndpointDescripción
GET/v1/customersListar todos los clientes
POST/v1/customersCrear un cliente
GET/v1/customers/{id}Obtener un cliente
POST/v1/customers/{id}Actualizar un cliente
GET/v1/chargesListar todos los cargos
GET/v1/payment_intentsListar payment intents

Endpoints de suscripción

MétodoEndpointDescripción
GET/v1/subscriptionsListar suscripciones
GET/v1/subscriptions/{id}Obtener una suscripción
GET/v1/invoicesListar facturas
GET/v1/invoices/upcomingObtener la próxima factura
GET/v1/productsListar productos
GET/v1/pricesListar precios

Endpoints de eventos

MétodoEndpointDescripción
GET/v1/eventsListar eventos
GET/v1/events/{id}Obtener un evento

Eventos

Eventos de pago

EventoDisparadorCaso de uso
payment_intent.succeededPago completadoConfirmación de pedido
payment_intent.payment_failedPago fallidoEmail de recuperación
charge.refundedReembolso procesadoNotificación de reembolso
charge.dispute.createdContracargo iniciadoGestión de disputas

Eventos de suscripción

EventoDisparadorCaso de uso
customer.subscription.createdNueva suscripciónFlujo de onboarding
customer.subscription.updatedCambio de planFlujo de upgrade/downgrade
customer.subscription.deletedSuscripción canceladaPrevención de churn
customer.subscription.trial_will_endPrueba termina en 3 díasCampaña de conversión de prueba
invoice.payment_failedPago de suscripción fallidoSecuencia de dunning

Eventos de cliente

EventoDisparadorCaso de uso
customer.createdNuevo cliente añadidoEmail de bienvenida
customer.updatedCambio en datos del clienteSincronización de atributos
customer.deletedCliente eliminadoLimpieza

Ejemplos de código

Inicializar el conector

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

Ejecutar la sincronización de clientes

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

Gestionar webhooks de 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 });
});

Límites de velocidad

Stripe aplica los siguientes límites de velocidad:

TipoLímiteDetalles
Modo live100 peticiones de lectura/segundoPor secret key
Modo live100 peticiones de escritura/segundoPor secret key
Modo test25 peticiones/segundoPor secret key
Entrega de webhooks100.000 eventos/díaPor endpoint

Gestión del rate limit

Stripe devuelve una respuesta 429 Too Many Requests cuando se superan los límites. Implementa backoff exponencial. Usa los endpoints de listado con auto-paginación para obtener datos en bloque.

Resolución de problemas

Problemas habituales

ProblemaCausaSolución
401 UnauthorizedClave API no válidaComprueba la secret key en el Stripe Dashboard
Fallo de firma de webhookWebhook secret incorrectoVuelve a copiar el signing secret del Dashboard
Cliente no sincronizadoCliente de Stripe sin emailAsegúrate de que el email está definido en los registros de cliente de Stripe
Faltan datos de suscripciónPermisos insuficientesActualiza los permisos de la clave restringida
Eventos duplicadosReentrega de webhookImplementa idempotencia usando los IDs de evento

Modo depuración

Habilita el logging detallado:

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

Probar la conexión

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

Buenas prácticas

  1. Usa claves API restringidas - Crea claves con los permisos mínimos necesarios
  2. Verifica siempre las firmas de los webhooks - Evita eventos de webhook falsificados
  3. Gestiona la idempotencia - Usa los IDs de evento de Stripe para evitar procesamiento duplicado
  4. Sincroniza los metadatos del cliente - Guarda los datos útiles para marketing en los metadata fields de Stripe
  5. Monitoriza la entrega de webhooks - Revisa el Stripe Dashboard para entregas fallidas
  6. Prueba primero en modo test - Valida tu integración con el modo test de Stripe y los test clocks

Seguridad

  • Autenticación por clave API - Acceso basado en secret key con soporte para claves restringidas
  • Verificación de firma de webhook - Validación de firma HMAC SHA-256
  • Cifrado TLS - Toda la comunicación con la API se cifra vía HTTPS
  • Cumplimiento PCI - Stripe gestiona el cumplimiento de PCI DSS para los datos de pago
  • Whitelisting de IPs - Restricciones opcionales de IP para el acceso a la API

Recursos relacionados

Subscribe to updates

developer-docs

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

Asistente AI

¡Hola! Pregúntame lo que quieras sobre la documentación.

Empieza gratis con Brevo