user_id est obligatoire dans chaque JSON et doit correspondre au propriétaire de la clé Bearer. Il ne peut pas servir à sélectionner un autre profil. Les retraits Direct API sont autorisés par la clé Bearer et cette correspondance; aucun PIN de transaction n’est demandé. Gardez la clé uniquement sur votre serveur marchand, jamais dans le navigateur.
Les payouts Direct API sont désactivés par défaut. Un administrateur doit les autoriser séparément pour chaque marchand dans la gestion des marchands. L’activation de l’API générale ne suffit pas.
Payout Mobile Money
Les numéros fictifs de la page Sandbox simulent uniquement les dépôts via
/v1/collect. Ils ne simulent pas un retrait et ne doivent pas être utilisés comme numéros de bénéficiaire d’un payout.- Récupérez les pays et opérateurs actifs pour les retraits avec
GET /v1/countries?operation=payout. Copiez le champcoderetourné (par exempleCM,GAouCG) danscountry_code; n’envoyez pas le nom du pays. Transmettez le nom d’opérateur de retrait renvoyé pour ce pays. - Le wallet débité est résolu côté serveur à partir de
country_code(CM→XAF,GA→XAFG,CG→XAFC, etc.). Vous n’avez pas à connaître ni à envoyer le code interne du wallet. AshTech Pay ne convertit jamais automatiquement un autre wallet pour couvrir le payout. referenceest obligatoire et idempotente. Réutilisez-la uniquement pour rejouer la même demande; une référence réutilisée avec des paramètres différents renvoie409 reference_conflict.phonedoit être une chaîne de chiffres avec l’indicatif pays. Les lettres ne sont pas acceptées.237000000000est un exemple fictif à remplacer par le vrai numéro du bénéficiaire; ce n’est pas un numéro de test et ne doit pas être utilisé pour envoyer un payout.fee_bearervautsender(frais ajoutés au débit) ourecipient(frais retranchés au montant envoyé). La valeur par défaut estsender.notify_urlest facultative et doit être une URL HTTPS publique.
409 insufficient_balance avant l’envoi de la demande. Un payout accepté renvoie 202 avec status: "pending". Si le résultat initial est incertain, le statut peut être pending_manual; le montant reste réservé, sans nouvel envoi automatique. N’envoyez pas une autre demande pour contourner cet état : vérifiez la transaction ou contactez l’équipe AshTech Pay.
Payout USDT
Le payout crypto utilise le réseau indiqué parasset_code et le wallet USDT. Consultez GET /v1/crypto/assets pour choisir un réseau actif; renseignez un memo/tag lorsque le réseau l’exige.
202 peut indiquer pending, completed, failed ou pending_manual. Un résultat incertain conserve le débit en attente de rapprochement; ne répétez pas le payout avec une nouvelle référence.
Lire le statut d’un payout
Utilisez l’identifianttransaction_id renvoyé par la création :
notify_url sous forme d’événement payout.completed ou payout.failed. Vérifiez toujours la signature du webhook avant de mettre à jour votre commande.
