Attribuer les revenus avec la Stripe PaymentIntent API
Avant de continuer, confirmez que vous avez connecté votre compte Stripe.
Utilisez ce guide pour les checkouts Stripe personnalisés — le Payment Element, confirmCardPayment ou tout flux où vous créez le PaymentIntent vous-même. Ceux-ci ne produisent jamais de Checkout Session Stripe, il n'y a donc aucun client_reference_id que le script pourrait remplir (cela ne fonctionne que pour les Payment Links). Vous devez transmettre vous-même le cookie du visiteur dans la metadata du PaymentIntent — c'est le seul signal déterministe pour ce flux.
Flowsery traite ces événements de webhook Stripe :
payment_intent.succeeded— émis par les checkouts personnalisés avec PaymentIntentcheckout.session.completedinvoice.payment_succeededcharge.refunded
L'acheminement vers le bon site web est automatique (Flowsery enregistre une URL de webhook dédiée par site) — vous n'avez pas besoin de transmettre websiteId. Pour attribuer le paiement à la source de trafic du visiteur, transmettez les cookies Flowsery (_fs_vid / _fs_sid) en tant que metadata lorsque vous créez le 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 lit fs_visitor_id depuis le webhook payment_intent.succeeded et associe le paiement au parcours de ce visiteur (référent, canal, pays, appareil). Sans cela, le paiement est tout de même enregistré comme revenu mais avec une source « Inconnue ».
Solution de repli si vous ne pouvez pas définir de metadata : appelez identify avec l'e-mail de l'acheteur (window.flowsery('identify', { userId: user.id, email: user.email })). Flowsery associe alors le paiement au visiteur par e-mail.