6. Encaisser et envoyer
Les appels sont identiques à ceux du particulier (encaisser, suivre, annuler, rembourser) : POST /transactions, GET /transactions, GET /transactions/{uuid}, POST /transactions/{uuid}/cancel, POST /transactions/{uuid}/refund, avec Authorization: Bearer sk_live_… et X-Application-ID: {id}.
Spécificités entreprise
X-Application-IDest indispensable : choisissez l'application à laquelle rattacher l'opération.- Tant que le KYC n'est pas validé, un paiement avec une clé live est refusé en 422 (erreur
kyc). - Envoi d'argent depuis le solde :
POST /transactionsavec"type": "disbursement". En production, le montant est retenu sur le solde avant l'appel au réseau ; solde insuffisant = 422INSUFFICIENT_BALANCE, rien n'est créé. En test, aucun solde n'est requis. - Filtres de liste :
status,type,provider,date_from,date_to,amount_min,amount_max,application_id,per_page. Réponse :data.items+data.pagination. - Depuis le dashboard (sans clé API) :
GET /merchant/transactionsetGET /merchant/transactions/{uuid}avec le jeton de session. - Export CSV asynchrone :
POST /transactions/export, puisGET /transactions/exports/{uuid}jusqu'à « prêt », et téléchargement par le lien reçu par e-mail. - Carte bancaire : utilisez
provider: "mastercard"pour Mastercard comme pour Visa, sansphone_number; la création renvoie uncheckout_urlsécurisé. Le KYC de l'entreprise doit être validé avant les paiements live.
Corps, réponses et erreurs : Marchand particulier, étapes 5, 6 et 9.
Envoyer de l'argent (disbursement)
POST/transactionsClé API + X-Application-ID
Envoie un montant depuis le solde de l'application vers le portefeuille Mobile Money du bénéficiaire. phone_number est requis, sans indicatif pays, et doit correspondre au pays de provider. En production, le montant est réservé avant l'appel au réseau ; un solde insuffisant renvoie 422 INSUFFICIENT_BALANCE. Utilisez une idempotency_key unique et conservez l'uuid de la réponse.
{
"type": "disbursement",
"provider": "mtn_momo_cm",
"amount": 2000,
"currency": "XAF",
"phone_number": "677895412",
"idempotency_key": "paiement-fournisseur-42"
}{
"success": true,
"data": {
"uuid": "018f1a2b-3c4d-7e5f-a6b7-c8d9e0f1a2b4",
"type": "disbursement",
"provider": "mtn_momo",
"status": "pending",
"amount": "2000.00",
"currency": "XAF",
"reference": "MP240101.1235.B12345",
"phone_number": "677895412",
"created_at": "2026-11-02T08:05:00Z",
"updated_at": "2026-11-02T08:05:00Z"
},
"meta": {
"request_id": "...",
"timestamp": "..."
}
}| Code | Quand |
|---|---|
| 422 | INSUFFICIENT_BALANCE, montant/devise invalide, réseau indisponible ou numéro non conforme au pays de l'opérateur. |
| 401 | Clé API invalide, inactive ou d'un autre environnement. |
- Le statut initial est généralement
pending. Attendez le webhooktransaction.successoutransaction.failed, ou consultezGET /transactions/{uuid}; ne déduisez pas le succès de la seule réponse de création. - En test (
sk_test_), aucun solde réel n'est requis et aucun fonds ne bouge.