Créez et testez dans le bac à sable MTN, gardez chaque clé sur le serveur, et marquez une commande comme payée seulement après que votre serveur a confirmé le statut auprès de MTN. Airtel Money nécessite sa propre intégration ou un prestataire qui combine les deux.
Ce qui se passe quand un client paie
- Le client choisit MTN MoMo au paiement et saisit son numéro MTN.
- Le serveur de votre site envoie à MTN une demande pour payer le montant de la commande, avec une référence unique.
- Le client reçoit une demande sur son téléphone et l’approuve avec son code secret MoMo. Votre site ne voit jamais le code secret.
- MTN met à jour le paiement en SUCCESSFUL ou FAILED.
- Votre serveur confirme ce résultat auprès de MTN, puis marque la commande comme payée et envoie la confirmation.
Dans la documentation développeur de MTN, cela correspond au produit Collections et à son opération request to pay. Tout dans ce guide découle d’une règle : la commande est payée quand MTN le dit, et non quand le navigateur du client revient sur une page de remerciement.
Ce qu’il vous faut avant d’écrire le code
| Il vous faut | D’où cela vient |
|---|---|
| Un compte développeur | |
| Un abonnement au produit | Abonnez-vous au produit Collections. Le portail vous donne une clé d’abonnement principale et une clé secondaire. |
| Un utilisateur API sandbox et une clé API | Créés avec l’API de provisioning du sandbox, pour les tests uniquement. |
| Des identifiants de production | Émis une fois que MTN a intégré l’entreprise pour les paiements en production. Demandez à MTN Rwanda ce que l’entreprise doit fournir. |
| Une adresse de callback | Une page sur votre propre domaine, servie en HTTPS, qui reçoit les résultats de paiement. |
Testez d’abord dans le sandbox
Le sandbox vous permet de tester tout le processus sans argent réel. La documentation de MTN précise trois points utiles avant de commencer :
L’environnement cible pour les tests est sandbox. Les paiements en production utilisent l’environnement que MTN vous fournit pour le Rwanda. - La devise du sandbox est l’EUR. Les paiements en production au Rwanda se font en francs rwandais (RWF), donc assurez-vous que la devise soit un paramètre, et non une valeur codée en dur.
- MTN publie des numéros de test qui renvoient des échecs précis, comme un compte introuvable ou un service indisponible. Tout autre numéro renvoie un succès.
Ce dernier point est important. Si vous testez seulement avec votre propre numéro, tous les paiements réussiront et les parcours d’échec ne seront jamais exécutés. Utilisez les numéros de test de MTN pour vérifier ce que le client voit quand un paiement échoue, et ce qui arrive à la commande.
Callbacks et vérifications de statut
Il existe deux façons de connaître le résultat d’un paiement. Votre serveur peut demander à MTN le statut d’une requête, ou MTN peut appeler votre adresse de callback lorsque le statut change. Pour recevoir un callback, la requête inclut votre URL de callback, et cette URL doit utiliser HTTPS.
La documentation de MTN est claire : le callback est envoyé une seule fois, sans nouvelle tentative si votre serveur le manque, et recommande de vérifier le statut comme solution de secours. Il faut donc construire les deux :
- Écoutez le callback, mais considérez-le comme un signal de vérification, pas comme une preuve.
- Demandez à MTN l’état du paiement avant de marquer la commande comme payée, et vérifiez que le montant et la référence correspondent à la commande.
- Vérifiez les paiements qui restent en attente après quelques minutes, pour qu’un callback manqué ne laisse jamais un client payé attendre.
- Traitez chaque référence une seule fois. Un callback répété ne doit pas créer une deuxième commande ni une deuxième livraison.
Restez en sécurité
- Conservez la clé API et la clé d’abonnement sur le serveur. Ne les mettez jamais dans le code du navigateur, dans un fichier de thème que tout le monde peut télécharger, ni dans un dépôt de code public.
- Créez une nouvelle référence pour chaque tentative de paiement et enregistrez-la avec la commande.
- Vérifiez le numéro de téléphone avant d’envoyer la requête. Les numéros MTN Rwanda commencent par 078 ou 079.
- Journalisez chaque requête et chaque résultat sans stocker plus de données personnelles que nécessaire.
- Affichez au client un message clair pendant que le paiement est en attente, ainsi qu’une option pour réessayer en cas d’échec.
Où Airtel Money s’intègre
L’intégrer dans WordPress
Pour aller plus loin
Documentation officielle derrière les conseils techniques de cet article.



