Le verdict en trois phrases
Un paiement mobile money lent n'est pas un paiement perdu : le timeout USSD de Moov Bénin tourne autour de 90 secondes, et aux heures de pointe le taux d'échec transitoire monte à 4-8 %. La solution n'est pas de réessayer immédiatement — c'est un backoff exponentiel (5 s, 15 s, 45 s) couplé à une dead-letter queue pour les cas irrécupérables. Chaque retry doit rester idempotent pour ne pas doubler l'encaissement.
Distinguer échec transitoire et échec définitif
Un échec transitoire (réseau, opérateur saturé, timeout USSD) se rejoue. Un échec définitif (solde insuffisant, PIN erroné, plafond dépassé) ne se rejoue jamais — vous perdriez du temps et risqueriez des doublons. Classez d'abord, réessayez ensuite.
| Type d'erreur | Rejouable ? | Action |
|---|---|---|
| Timeout USSD (~90 s) | Oui | Retry backoff |
| Opérateur indisponible | Oui | Retry backoff |
| Solde insuffisant | Non | Notifier client |
| PIN erroné | Non | Notifier client |
| Plafond dépassé | Non | Proposer fractionnement |
| Signature invalide | Non | Alerter dev |
Le backoff exponentiel en pratique
Au lieu de marteler l'API, espacez les tentatives selon 2^n. Cela laisse le temps à l'opérateur de se rétablir et évite de vous faire limiter.
| Tentative | Délai avant retry | Cumul écoulé |
|---|---|---|
| 1 | immédiat | 0 s |
| 2 | 5 s | 5 s |
| 3 | 15 s | 20 s |
| 4 | 45 s | 65 s |
| 5 | 135 s | 200 s |
| Échec final | → dead-letter queue | — |
Après 4 à 5 tentatives infructueuses, l'événement part en dead-letter queue pour traitement manuel ou différé. Rien n'est perdu silencieusement.
File d'attente et idempotence
La file d'attente (type SQS ou équivalent) découple la réception du traitement : vous accusez réception vite, puis rejouez à votre rythme. Chaque message porte une clé d'idempotence ; ainsi, même si un paiement finit par aboutir après trois retries, il n'est crédité qu'une fois.
Mini cas pratique
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.
Fatou, gérante d'une épicerie en ligne à Cotonou, traite 1 100 paiements Moov Money par mois. Aux heures de pointe (18 h-21 h), 6 % échouent de façon transitoire, soit 66 paiements. Sans retry, elle perd ces ventes : à 7 800 FCFA de panier moyen, c'est 514 800 FCFA de chiffre par mois. Avec un backoff exponentiel qui récupère 80 % de ces échecs transitoires, elle sauve 411 840 FCFA mensuels, soit près de 4 942 000 FCFA par an. La file d'attente a coûté 1,5 jour de dev.
FAQ
Pourquoi ne pas réessayer immédiatement un paiement échoué ?
Un retry immédiat retombe souvent sur la même saturation et peut vous faire limiter par l'opérateur. Le backoff exponentiel (5 s, 15 s, 45 s) laisse le système se rétablir et augmente le taux de succès des tentatives suivantes.
Qu'est-ce qu'une dead-letter queue ?
C'est une file secondaire où atterrissent les paiements après 4-5 échecs. Ils y sont conservés pour analyse ou traitement manuel, au lieu d'être perdus silencieusement.
Quel est le timeout typique d'un paiement USSD Moov Bénin ?
En 2026, l'ordre de grandeur est d'environ 90 secondes avant que la session USSD n'expire. Votre logique de retry doit tenir compte de cette latence avant de déclarer un échec.
Le retry risque-t-il de créditer deux fois ?
Pas si chaque tentative porte une clé d'idempotence et que vous vérifiez une table de déduplication avant de créditer. C'est la condition indispensable pour rejouer sans danger.
Discutons de votre projet. Nous concevons vos files d'attente de paiement avec backoff, dead-letter queue et idempotence testées. 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.
