Aller au contenu principal

Paiements Mobile Money

Le mobile money est la méthode de paiement principale en Afrique de l’Ouest et centrale. Ikawaari prend en charge tous les principaux opérateurs.

Ce guide utilise la famille de routes payment_intents déjà implémentée pour les premiers flux de paiement.

Opérateurs pris en charge

OpérateurPaysDeviseCode opérateur
Orange MoneyCôte d'Ivoire, Sénégal, Mali, Burkina Faso, Guinée, CamerounXOF, XAF, GNForange_ci, orange_sn, orange_ml, orange_bf, orange_gn, orange_cm
MTN MoMoCôte d'Ivoire, Cameroun, RDCXOF, XAF, CDFmtn_ci, mtn_cm, mtn_cd
WaveCôte d'Ivoire, SénégalXOFwave_ci, wave_sn
Moov MoneyCôte d'Ivoire, Burkina FasoXOFmoov_ci, moov_bf
Free MoneySénégalXOFfree_sn

Comment cela fonctionne

  1. Vous créez un PaymentIntent avec mobile_money comme type de méthode de paiement
  2. Le client fournit son numéro de téléphone
  3. Ikawaari envoie une requête USSD sur le téléphone du client
  4. Le client saisit son PIN pour confirmer
  5. Vous recevez un webhook payment_intent.succeeded

Créer un paiement mobile money

curl -X POST https://api.ikawaari.com/payment_intents \
-H "Authorization: Bearer ik_test_your_key" \
-H "Content-Type: application/json" \
-d '{
"amount": 5000,
"currency": "XOF",
"payment_method_types": ["mobile_money"],
"payment_method_data": {
"type": "mobile_money",
"mobile_money": {
"phone": "+2250700000000",
"operator": "orange_ci"
}
},
"confirm": true
}'

Réponse

{
"id": "pi_abc123",
"status": "processing",
"next_action": {
"type": "mobile_money_ussd",
"mobile_money_ussd": {
"message": "A USSD prompt has been sent to +225 07 00 00 00 00. Please ask the customer to confirm."
}
}
}

Format du numéro de téléphone

Utilisez toujours le format E.164 : +{country_code}{number}

PaysFormatExemple
Côte d'Ivoire+225XXXXXXXXXX+2250700000000
Sénégal+221XXXXXXXXX+221770000000
Mali+223XXXXXXXX+22370000000
Cameroun+237XXXXXXXXX+237670000000

Timeouts

Les paiements mobile money ont un délai de confirmation (généralement 2 à 5 minutes). Si le client ne confirme pas à temps, le statut du paiement passe à failed avec la raison payment_timeout.

astuce

Affichez toujours un message clair au client : "Veuillez vérifier votre téléphone et saisir votre PIN pour confirmer le paiement."

Tests

En mode sandbox, utilisez ces numéros de téléphone de test :

TéléphoneComportement
+2250700000001Le paiement réussit immédiatement
+2250700000002Le paiement échoue (fonds insuffisants)
+2250700000003Le paiement expire

Voir Tester le Mobile Money pour plus de détails.