Paiements

Paiement mobile money

Débiter directement le portefeuille d'un client.

Le client reçoit une demande de validation sur son téléphone. Vous fournissez son opérateur et son numéro.

curl -X POST https://api.secure.payment.loov-solutions.com/v2/payments \
  -H "Authorization: Bearer $LOOV_API_KEY" \
  -H "Idempotency-Key: 6f1c2b9e-order-42" \
  -H "Content-Type: application/json" \
  -d '{
  "amount": 5000,
  "currency": "XAF",
  "operator": "mtn-cm",
  "phone_number": "237650000000",
  "customer": {
    "name": "Awa Diop",
    "email": "awa@example.com"
  },
  "callback_url": "https://example.com/webhooks/loov",
  "merchant_reference": "order-42"
}'
ChampTypeDescription
amountintegerMontant dans la plus petite unité. Minimum 200 pour XAF et XOF.
currencystringXAF, XOF, UGX, KES, GHS, RWF, TZS, ZMW…
operatorstringCode de l'opérateur, voir Opérateurs.
phone_numberstringNuméro au format international sans +, du pays de l'opérateur.
customerobjectname et email obligatoires, phone facultatif.
providerstringFacultatif. Choisit le prestataire quand l'opérateur en a plusieurs ; sinon celui par défaut est utilisé.
callback_urlstringFacultatif. Adresse HTTPS publique notifiée du résultat ; à défaut, celle de l'application.
otpstringRequis uniquement pour Orange Money Côte d'Ivoire et Burkina Faso via PayDunya : le code à usage unique que le client génère sur son téléphone avant de payer. Sans lui, la requête est refusée avec l'erreur 422 otp_required.
merchant_referencestringFacultatif. Votre propre identifiant de commande. Il doit être unique : une seconde transaction (paiement ou transfert) portant le même identifiant est refusée avec l'erreur 409 duplicate_merchant_reference.
metadataobjectFacultatif. Jusqu'à 20 paires clé/valeur renvoyées telles quelles.

Réponse

{
  "reference": "PAYHBN2MJVPY32K7MSZXXN9",
  "type": "payin",
  "status": "processing",
  "livemode": false,
  "currency": "XAF",
  "amount": 5000,
  "fee": 150,
  "customer_fee": 0,
  "counterparty_amount": 5000,
  "merchant_amount": 4850,
  "method": "mobile_money",
  "operator": "mtn-cm",
  "phone_number": "237650000000",
  "checkout_url": null,
  "merchant_reference": "order-42",
  "failure": null,
  "created_at": "2026-10-04T10:12:00+00:00",
  "completed_at": null
}

Le paiement reste en processing jusqu'à ce que le client valide ou refuse. Vous êtes prévenu par webhook, ou en interrogeant le paiement.