Profil : boutique vendant des produits physiques ou digitaux, base prix en XOF / EUR / USD, veut accepter crypto sans s’exposer à la volatilité.

Démo live — IziShop

Exactement ce cas d’usage : une boutique de démonstration (Tron testnet, TRX / USDT) avec catalogue, panier et checkout crypto en modale via embed.js. Essayez le parcours d’achat de bout en bout.

Stack recommandée

  • Backend : Node.js / Python avec le SDK officiel
  • Auto-conversion activée (cryptos reçues → XOF sur compte mobile money)
  • Auto-settlement à 100% sur chaque PaymentIntent complété
  • Mode whitelist sur les payouts manuels (sécurité)
  • disputeManager = platform (IzichangePay gère les paiements hors plage)

Flow

Code minimal

1. Checkout

2. Webhook

3. Page de confirmation

returnUrl peut servir un état provisoire : le client voit “Confirmation en cours”. Côté front, écoutez l’événement réel via SSE ou re-fetch périodique de /api/orders/:id/status qui lit votre DB (mise à jour par le webhook).

Configurations dashboard

  • Paramètres → Cryptos : activez USDT.TRC20, USDT.BEP20, USDC.BEP20
  • Paramètres → Frais : porteur de frais customer (le payeur règle le montant de base + les frais, vous recevez le montant de base). L’enum vaut {merchant, customer}, défaut merchant.
  • Paramètres → Dispute : disputeManager = platform (vous ne voulez pas gérer)
  • Paramètres → Retraits : whitelist_only + ajoutez vos adresses cold wallet
  • Settlement account : votre numéro Wave / OM principal
  • Automation rule : on_payment_intent_success → settlement 100% sur les 3 cryptos vers ce compte

Anti-fraud

  • KYB obligatoire : pas de paiements live sans compte vérifié
  • Webhooks signés HMAC-SHA256 (header X-IziPay-Signature au format sha256=<hex>) + tolérance anti-replay 300s (5 min) par défaut
  • Idempotency-Key par commande → impossible de payer deux fois la même

Frais

Les frais (payin, settlement) sont configurés côté plateforme et visibles dans le dashboard (Paramètres → Frais). Le porteur de frais (merchant ou customer) détermine qui les absorbe.