Direct Payment avec FedaPay — Ash-Wallet
📱 Qu'est-ce qu'un Direct Payment ?
Le Direct Payment (Paiement direct USSD) permet de déclencher immédiatement une invite de paiement sur le téléphone portable du client final (saisie du code PIN mobile money), sans qu'il n'ait besoin de saisir ses coordonnées de carte ou d'être redirigé vers une page web externe.
🚀 Fonctionnement en 5 étapes
- Création de la transaction via le SDK FedaPay sur le backend.
- Génération du token de paiement sécurisé.
- Envoi immédiat via la méthode
sendNowWithToken()qui pousse le prompt USSD directement sur le mobile. - Sauvegarde de la transaction avec le statut
pendingen base de données MongoDB. - Notification Webhook envoyée par FedaPay dès que l'utilisateur valide la saisie de son code PIN.
📡 Endpoints de l'API
1. Initier un paiement direct
- Méthode :
POST - Path :
/fedapay/direct-payment - Auth : Requis (Bearer Token valide)
Request Body (JSON) :
json
{
"description": "Abonnement premium mois de décembre",
"amount": 5000,
"payment_method": "mtn_ci",
"phone_number": {
"number": "+2250701020304",
"country": "ci"
},
"firstname": "Jean",
"lastname": "Dupont",
"email": "jean.dupont@example.com",
"callback_url": "https://votre-app.com/app/fedapay/webhook"
}Liste des Opérateurs Supportés (payment_method) :
- Bénin (bj) :
mtn_open,moov,sbin - Côte d'Ivoire (ci) :
mtn_ci,moov,orange - Togo (tg) :
moov_tg,togocel - Sénégal (sn) :
free_sn,wave - Niger (ne) :
airtel_ne - Guinée (gn) :
mtn_open_gn
Response Success (200 OK) :
json
{
"ok": true,
"transactionId": 123456,
"status": "pending",
"description": "Abonnement premium mois de décembre",
"amount": 5000
}2. Vérifier le statut d'une transaction
- Méthode :
GET - Path :
/fedapay/transaction/:id/status
Response JSON :
json
{
"transactionId": 123456,
"status": "approved",
"amount": 5000,
"currency": {
"iso": "XOF"
},
"approved_at": "2026-05-26T18:00:00Z",
"description": "Abonnement premium mois de décembre"
}3. Webhook de Réception (Public)
- Méthode :
POST - Path :
/fedapay/webhook - Auth : Aucune (Authentifié par signature HMAC FedaPay)
Lors de la réception de l'événement transaction.approved, le backend met à jour le statut du paiement en base de données et génère la facture PDF.