Atribuir ingresos con la Stripe PaymentIntent API
Antes de continuar, confirma que has vinculado tu cuenta de Stripe.
Usa esta guía para checkouts personalizados de Stripe — el Payment Element, confirmCardPayment o cualquier flujo en el que crees el PaymentIntent tú mismo. Estos nunca generan una Checkout Session de Stripe, por lo que no hay ningún client_reference_id que el script pueda rellenar (eso solo funciona con los Payment Links). Debes reenviar tú mismo la cookie del visitante a la metadata del PaymentIntent — es la única señal determinista para este flujo.
Flowsery procesa estos eventos de webhook de Stripe:
payment_intent.succeeded— emitido por los checkouts personalizados con PaymentIntentcheckout.session.completedinvoice.payment_succeededcharge.refunded
El enrutamiento al sitio web correcto es automático (Flowsery registra una URL de webhook dedicada por sitio) — no necesitas pasar websiteId. Para atribuir el pago a la fuente de tráfico del visitante, reenvía las cookies de Flowsery (_fs_vid / _fs_sid) como metadata cuando crees el PaymentIntent:
const paymentIntent = await stripe.paymentIntents.create({
amount: 2000,
currency: 'usd',
metadata: {
fs_visitor_id: req.cookies['_fs_vid'],
fs_session_id: req.cookies['_fs_sid'],
},
});Flowsery lee fs_visitor_id del webhook payment_intent.succeeded y vincula el pago con el recorrido de ese visitante (referente, canal, país, dispositivo). Sin él, el pago se registra igualmente como ingreso pero con una fuente «Desconocida».
Alternativa si no puedes establecer metadata: llama a identify con el correo electrónico del comprador (window.flowsery('identify', { userId: user.id, email: user.email })). Flowsery asociará entonces el pago al visitante por correo electrónico.