Aller au contenu

Liste de contrôle avant la mise en production

Parcourez cette liste avant de passer votre boutique sur une clé sk_live_. Chaque ligne renvoie vers le détail.

  • Votre compte est active. D’ici là, les requêtes en production renvoient 403 merchant_not_active : demandez à Xaalis de terminer l’examen de votre compte.
  • Vous avez une clé secrète de production (sk_live_…), conservée dans le coffre à secrets de votre serveur, jamais dans du code exécuté par le navigateur, une application mobile, un dépôt Git ou un journal.
  • Votre secret de webhook est conservé de la même façon.
  • Chaque POST /v1/payments et POST /v1/payouts (où elle est obligatoire) envoie une Idempotency-Key liée à votre commande ou à votre retrait — et, tant que B-4 n’est pas corrigé, préfixée avec le mode (live:order-1042). → Idempotence
  • Vous ne livrez une commande que sur réception du webhook payment.succeeded signé (ou d’un GET /v1/payments/{id} fait depuis votre serveur), jamais parce que le client est arrivé sur success_url. → Paiements
  • Votre point de terminaison de webhook est en https://, vérifie Xaalis-Signature sur le corps brut, rejette les horodatages de plus de 5 minutes, répond par un 2xx en moins de 10 s et dédoublonne sur l’id de l’événement. → Webhooks
  • Il vérifie livemode: true avant d’expédier : les événements de test et de production partagent une même URL.
  • Vous comparez l’amount et le client_reference du webhook avec votre commande avant de la livrer.
  • Les montants sont des XOF entiers partout dans votre code (pas de 1500.00, pas de nombres à virgule).
  • Les erreurs sont traitées selon leur code (insufficient_funds, idempotency_conflict…), pas selon leur message. → Erreurs
  • success_url et cancel_url sont des pages https:// de votre propre site.
  • Un paiement qui réussit, un qui échoue et un qui expire mènent chacun la commande au bon état.
  • Un webhook reçu en double (rejouez le même événement) n’entraîne pas deux expéditions.
  • Un webhook avec une mauvaise signature est rejeté avec un 400.
  • Un versement qui échoue (bénéficiaire se terminant par 0000) est bien géré. → Mode test
  • Remplacez sk_test_ par sk_live_ dans la configuration de votre serveur : rien d’autre ne change.
  • Faites vous-même un petit paiement réel (par exemple 100 F CFA) avec Wave et un autre avec Orange Money, et regardez le webhook arriver.
  • Surveillez GET /v1/webhook-deliveries pendant les premiers jours pour repérer les échecs.