Workflow complet d’un paiement, de la création server-side jusqu’à la confirmation webhook.

1. Installer le SDK

2. Initialiser le client

3. Créer le payment intent

Côté backend, créez le PaymentIntent au moment du checkout, puis redirigez le client.
Idempotency : si vous appelez create() deux fois avec le même idempotencyKey (auto-généré par le SDK ou passé explicitement), vous récupérez le même intent, pas de doublon.

4. Le client paye

Le client est sur la page de paiement (intent.paymentUrl) :
  1. Sélectionne sa crypto + le réseau
  2. Saisit prénom, nom, email (obligatoires) + adresse de remboursement (facultatif)
  3. Voit l’adresse de dépôt + le QR code + le montant exact à envoyer + un timer
  4. Envoie les fonds depuis son wallet
À la première confirmation on-chain, l’intent passe en confirming. Dès que le réseau confirme la transaction, il passe en completed (ou en irregular si le montant est hors plage configurée).

5. Recevoir le webhook

Quand l’intent atteint completed, IzichangePay envoie un POST signé à votre endpoint.

6. Tester de bout en bout

  1. Côté dashboard, Développeurs → Webhooks → ⋯ → Envoyer un événement test. Vérifiez que votre endpoint répond 200 et que validateWebhook() ne lance pas.
  2. En mode test, créez un intent depuis un client REST (curl ou Postman) et payez depuis un wallet sur le testnet de la crypto choisie.
  3. Vérifiez les logs côté serveur ET côté dashboard (chaque appel webhook est tracé : statut HTTP, durée, body de réponse).

Erreurs courantes

Prochaine étape