Le verdict en trois phrases
Le STK Push M-Pesa via l'API Daraja envoie un prompt de paiement directement sur le téléphone du client, avec confirmation en 5 à 15 secondes. Côté marchand, les frais paybill/till vont de 0 à 0,5 %, ce qui en fait l'un des flux les moins chers du continent. L'intégration Django repose sur la validation du ShortCode, les callbacks C2B/B2C et le respect du plafond quotidien applicable.
Le flux STK Push pas-à-pas
Dans Django, vous obtenez un jeton OAuth, vous envoyez la requête STK Push avec le montant et le numéro, puis vous recevez le résultat sur votre URL de callback. Le CheckoutRequestID sert de clé d'idempotence.
| Paramètre | Rôle | Exemple |
|---|---|---|
| BusinessShortCode | Identifiant marchand | Paybill / Till |
| Password | Base64(ShortCode+Passkey+Timestamp) | Sécurité de la requête |
| Amount | Montant à débiter | 1500 |
| PhoneNumber | MSISDN du client | 2547XXXXXXXX |
| CallBackURL | Réception du résultat | HTTPS obligatoire |
| CheckoutRequestID | Clé d'idempotence | Retour Daraja |
Frais, délais et plafonds
M-Pesa se distingue par un coût marchand très bas et une confirmation quasi immédiate, mais avec des plafonds à surveiller.
| Critère | M-Pesa Daraja | Repère mobile money |
|---|---|---|
| Frais marchand | 0 à 0,5 % | 1,5 à 2 % |
| Confirmation | 5 à 15 s | 30 à 120 s |
| Plafond quotidien | 300 000 KES | Variable |
| Callback | C2B / B2C | Webhook |
| Sandbox | Gratuit | Gratuit |
| Idempotence | CheckoutRequestID | Référence unique |
Ces valeurs sont un ordre de grandeur 2026 ; les plafonds évoluent selon la réglementation locale.
Besoin d'un site web professionnel ?
Kolonell crée des sites web qui attirent des clients, optimisés pour le marché sénégalais. Devis gratuit en 2 minutes.
Mini cas pratique
Sarah exploite une plateforme de cours en ligne desservie depuis Kinshasa avec clientèle est-africaine, et encaisse l'équivalent de 6 000 000 FCFA/mois via M-Pesa. À 0,4 % de frais marchand, elle paie ~24 000 FCFA/mois, contre ~102 000 FCFA avec un flux à 1,7 %. La confirmation en moins de 15 s réduit aussi son taux d'abandon au checkout de 8 points.
FAQ
Le CallBackURL doit-il être en HTTPS ? Oui, Daraja exige une URL HTTPS accessible publiquement. En développement, exposez votre serveur Django local via un tunnel sécurisé.
Comment gère-t-on l'idempotence ? Stockez le CheckoutRequestID renvoyé par Daraja avec une contrainte d'unicité. Le callback pouvant arriver plusieurs fois, vous ignorez les doublons.
Que se passe-t-il si le client ne saisit pas son PIN ? Le STK Push expire et Daraja renvoie un code d'échec. Ne validez jamais la commande tant que le callback ne confirme pas le paiement.
Quel est le plafond à surveiller ? Le plafond quotidien standard tourne autour de 300 000 KES par client. Pour des montants élevés, prévoyez un fractionnement ou un moyen de paiement alternatif.
Discutons de votre projet. Nous intégrons M-Pesa Daraja dans votre backend Django avec callbacks fiables et idempotence. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionné par le digital et l'entrepreneuriat en Afrique, Mohamed accompagne les entreprises sénégalaises dans leur transformation digitale depuis 2020. Fondateur de Kolonell, il croit que chaque PME mérite une présence en ligne professionnelle et accessible.

