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éfautmerchant. - 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-Signatureau formatsha256=<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.