Skip to main content
Lors d’un payout (sortie d’argent vers un wallet client ou un compte mobile money), LigdiCash envoie deux requêtes POST à votre callback_url — une en application/json, une en application/x-www-form-urlencoded. Les deux contiennent les mêmes données. Cette page détaille la structure JSON et les différences avec le payload payin.

Exemple complet

Champs principaux

string
Code de résultat. "00" = succès. Toute autre valeur indique une erreur.
string
Statut du payout : "completed", "pending" ou "notcompleted". Basez votre logique métier sur ce champ — voir Codes de réponse et statuts.
string
Jeton JWT lié à ce callback payout. Ne vous y fiez pas pour identifier la transaction — utilisez le token stocké à la création du payout pour appeler Vérifier le statut.
string
Montant du payout en XOF, encodé en chaîne de caractères (ex : "100").
string
Identique à amount. Les deux champs coexistent dans toutes les réponses LigdiCash.
string
Identifiant racine du payout. Égal à l’external_id que vous avez fourni à la création — utilisez-le pour rapprocher le callback de votre transaction métier.
string
Identifiant fourni par le marchand à la création du payout. Reflète la valeur que vous avez passée dans le corps de la requête /withdrawal/create ou /straight/payout.
integer
Identifiant numérique de l’opérateur destinataire du payout (ex : 12 pour Moov Africa Burkina).
string
Nom de l’opérateur destinataire (ex : "MOOV AFRICA BURKINA"). Pour un payout vers wallet LigdiCash, ce champ est préfixé par "LigdiCash " (ex : "LigdiCash ORANGE BURKINA").
string
URL de votre callback_url qui reçoit ce payload. LigdiCash y inscrit l’URL de destination — utile pour les diagnostics.
string
Méthode HTTP utilisée pour la livraison du callback. Généralement vide.
string
Libellé textuel du résultat. Vide en cas de succès.
array
Données personnalisées du payout. Souvent vide ([]) — voir la section suivante. Si peuplé, suit la même structure que dans le payin : tableau d’objets { keyof_customdata, valueof_customdata, datecreation_customdata }.

Le champ custom_data en payout

Contrairement au payin, le custom_data du payout est souvent vide ([]). Vous ne devez donc pas vous appuyer dessus pour rapprocher le callback de votre transaction métier — utilisez transaction_id ou external_id à la racine du payload.
Si vous avez fourni un custom_data à la création du payout, il sera renvoyé sous la forme d’un tableau peuplé d’objets { keyof_customdata, valueof_customdata, datecreation_customdata }, exactement comme pour le payin. Voir Parser custom_data.

Différences avec le payload payin

Le format des champs amount, montant et operator_id diffère entre payin et payout. Si vous parsez le payload avec un schéma typé, prévoyez ces différences ou caster les valeurs côté serveur.

Statuts possibles

Pages associées