Skip to main content
Objectif : dès qu’un paiement est confirmé, votre système agit (CRM, facture, message au client, préparation d’un colis) une seule fois, même si l’événement arrive en double.

Le récepteur complet

Cet exemple Node.js réunit les trois règles d’or : vérifier la signature, répondre vite, ne traiter qu’une fois.

Aller plus loin

L’événement contient déjà la vente, mais pour une action sensible (expédition, remise d’un accès), relisez-la avec GET /sales/{id} et vérifiez payment_status === "completed". Vous êtes ainsi certain de l’état actuel, même si l’événement est arrivé en retard.
Une fois votre livraison faite, appelez POST /sales/{id}/fulfill avec une Idempotency-Key dérivée de l’identifiant de la vente. Votre tableau de bord reflète alors la réalité.
Créez un Pulse par famille de produits avec product_ids : une boutique qui vend des formations et des logiciels envoie chaque vente au bon système.
Après une panne longue de votre serveur, listez les ventes manquées avec GET /sales?from=…&to=…&per_page=100 et traitez-les avec la même logique dédoublonnée. Les Pulses relancent pendant environ 2 heures ; au-delà, c’est l’API qui comble le trou.