IzichangePay isole strictement les environnements : une clé test (sk_test_…) ne peut pas voir ni toucher des données live, et une clé live (sk_live_…) ne peut pas toucher des données test. Le mode est déterminé par le préfixe de la clé, pas par un paramètre séparé.

Différences fonctionnelles

TestLive
Préfixe clésk_test_…sk_live_…
URL APIapi.sandbox-pay.izichange.comapi.pay.izichange.com
CryptosTestnets (TRON Shasta, XRP Testnet, Bitcoin Testnet3, BSC Testnet, Solana Devnet…)Mainnets
Settlement providerProvider sandboxProvider production
WebhooksEndpoint séparé recommandéEndpoint production
KYB requisNonOui (approuvé)

Checklist avant passage en production

  1. KYB approuvé : le compte doit afficher kybStatus: approved ou les endpoints live retourneront 403.
  2. Clés API live générées dans Développeurs → Clés API (séparées des clés test).
  3. Webhook endpoint live configuré avec son propre secret.
  4. 2FA active sur tous les membres ayant accès aux clés / payouts.
  5. Compte de settlement par défaut configuré.
  6. Mode whitelist activé si vous voulez restreindre les payouts (recommandé).
  7. Tarif vérifié dans Paramètres → Tarifs : les frais peuvent différer entre test et live.
  8. Tests de bout en bout sur un environnement de staging utilisant les clés test.
  9. Monitoring : alertes sur les payout.failed, settlement.failed, webhooks failing.
Ne mélangez jamais clés test et live dans le même process Node : vos webhooks risquent d’être vérifiés avec le mauvais secret, ce qui fera échouer la vérification de signature. Utilisez deux variables d’environnement distinctes (IZIPAY_API_KEY_TEST vs IZIPAY_API_KEY_LIVE).

Pattern recommandé : ENV-based switch

// lib/izipay.ts
import { IziPayClient } from 'izichangepay-sdk';

const isProduction = process.env.NODE_ENV === 'production';

const apiKey = isProduction
  ? process.env.IZIPAY_API_KEY_LIVE
  : process.env.IZIPAY_API_KEY_TEST;

const webhookSecret = isProduction
  ? process.env.IZIPAY_WEBHOOK_SECRET_LIVE
  : process.env.IZIPAY_WEBHOOK_SECRET_TEST;

if (!apiKey || !webhookSecret) {
  throw new Error(`Missing IzichangePay env for ${isProduction ? 'live' : 'test'}`);
}

export const izipay = new IziPayClient({ apiKey });
export { webhookSecret };

Données de test

Pour obtenir des fonds de test (faucets) et configurer les wallets adaptés à chaque réseau — TronLink Pro pour TRON Shasta, Xaman pour XRP Testnet, UniSat pour Bitcoin Testnet3 — consultez la page dédiée : Faucets & wallets de test. Le dashboard affiche un badge Mode test en permanence pour éviter toute confusion.