Skip to main content
Toutes les routes de ce groupe nécessitent le header Authorization: Bearer sk_... et un scope de clé API PAYOUT ou BOTH.

Vue d’ensemble

Un payout est l’inverse d’un paiement : au lieu d’encaisser un client, vous envoyez des fonds depuis votre solde marchand vers un bénéficiaire (recipient) désigné par son numéro mobile money.
Pour l’historique, les filtres et l’export, voir Transactions — un payout produit une Transaction classique avec flow_direction: "OUTBOUND" et transaction_type: "RETRAIT".
Whitelist IP obligatoire. Contrairement à toutes les autres routes de cette documentation, POST /payouts/initialize/ exige que l’IP de votre serveur soit whitelistée pour votre marchand quand vous appelez avec une clé API. Sans IP whitelistée, la requête échoue avec 403 ip_not_whitelisted, même si votre clé API est valide et correctement scopée. Ce prérequis ne s’applique pas à un appel authentifié depuis le tableau de bord (JWT dashboard, pas d’IP serveur fixe à whitelister de la même façon). La whitelist elle-même se gère depuis votre tableau de bord ou l’API de gestion du marchand.

Devise et pays : strict, pas de conversion automatique

Contrairement à l’encaissement (payin), où un mismatch entre currency et country est désormais auto-converti au taux de change courant, un payout rejette ce mismatch (currency_country_mismatch, 422). Fournissez toujours une devise cohérente avec le pays du bénéficiaire (ex. XOF + BJ, XAF + CM).

Cycle de vie d’un payout

Un payout ne peut pas être relancé via /payments/{payment_id}/retry/ — cet endpoint est réservé aux paiements entrants (flow_direction: "INBOUND"). Pour un payout échoué, initiez une nouvelle requête POST /payouts/initialize/ avec une nouvelle Idempotency-Key.