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
| Test | Live |
|---|
| Préfixe clé | sk_test_… | sk_live_… |
| URL API | api.sandbox-pay.izichange.com | api.pay.izichange.com |
| Cryptos | Testnets (TRON Shasta, XRP Testnet, Bitcoin Testnet3, BSC Testnet, Solana Devnet…) | Mainnets |
| Settlement provider | Provider sandbox | Provider production |
| Webhooks | Endpoint séparé recommandé | Endpoint production |
| KYB requis | Non | Oui (approuvé) |
Checklist avant passage en production
- KYB approuvé : le compte doit afficher
kybStatus: approved ou les endpoints live retourneront 403.
- Clés API live générées dans Développeurs → Clés API (séparées des clés test).
- Webhook endpoint live configuré avec son propre secret.
- 2FA active sur tous les membres ayant accès aux clés / payouts.
- Compte de settlement par défaut configuré.
- Mode whitelist activé si vous voulez restreindre les payouts (recommandé).
- Tarif vérifié dans Paramètres → Tarifs : les frais peuvent différer entre test et live.
- Tests de bout en bout sur un environnement de staging utilisant les clés test.
- 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.