Aller au contenu principal

Verser de l'argent (payout)

Un payout envoie de l'argent depuis votre solde MoyaPay vers le compte mobile money d'un bénéficiaire.

POST /payout

Requiert un jeton Bearer.

Corps de la requête​

ChampTypeObligatoireDescription
refercence_clstringouiVotre référence marchand. Doit correspondre au compte du jeton
business_codestringouiCode business fourni par MoyaPay. Doit appartenir à votre compte
country_codestringouiPays de la transaction : CI, SN, BF, CM, BN, RDC, CB, GMB
payment_methodstringouiCode payout du moyen de paiement, voir Moyens de paiement
merchant_transaction_idstringouiVotre identifiant de transaction, unique
amountnumberouiMontant, en nombre JSON. Voir Limites
currencystringouiDevise du pays de la transaction, par exemple XOF. À choisir dans le tableau Devises par pays
telephonestringouiNuméro du bénéficiaire, en chaîne. Voir Limites
successUrlstringouiURL de redirection après un versement réussi (moyens avec redirection, comme Wave)
failedUrlstringouiURL de redirection après un versement échoué
notifyUrlstringouiVotre URL de notification (voir la note de Encaisser)

Exemple​

curl -X POST https://services.moya-pay.com/service/api/v1/payout \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"refercence_cl": "CL-123456",
"business_code": "MYP-000000-ABCDEF",
"country_code": "CI",
"payment_method": "WAVE_CI",
"merchant_transaction_id": "VERSEMENT-2026-000045",
"amount": 5000,
"currency": "XOF",
"telephone": "0505000000",
"successUrl": "https://boutique.example.com/paiement/succes",
"failedUrl": "https://boutique.example.com/paiement/echec",
"notifyUrl": "https://boutique.example.com/api/moyapay/notify"
}'

Réponse​

{
"status": 201,
"success": true,
"code": 200,
"message": "TRANSACTION IS INITIATED SUSSESSFULLY",
"data": {
"status": "PENDING",
"transaction_id": "VERSEMENT-2026-000045"
}
}

La réponse a la même forme que pour un payin : testez success, puis lisez data.status. Le résultat final arrive par callback ou via le statut.

Mêmes précautions qu'un payin

Un merchant_transaction_id doit rester unique, et une transaction identique (même montant, même numéro) encore en cours depuis moins d'une minute est refusée. En cas d'erreur 500, consultez le statut avant de renvoyer.