Statuts des intentions de paiement
Une intention de paiement passe par plusieurs statuts au cours de son cycle de vie :| Statut | Description | Prochaines étapes |
|---|---|---|
pending | Intention créée, en attente de confirmation | Confirmer le paiement avec les détails du client |
processing | Paiement en cours de traitement par le fournisseur Mobile Money | Attendre la fin |
succeeded | Paiement effectué avec succès | Exécuter la commande |
failed | Paiement échoué | Vérifier la raison de l’erreur, permettre de réessayer |
Flux des statuts
Statuts des sessions de paiement
| Statut | Description |
|---|---|
pending | Session créée, en attente de paiement |
complete | Paiement effectué avec succès |
expired | Session expirée sans paiement |
canceled | Session annulée |
Statuts des décaissements
Les décaissements (versements aux clients) ont les statuts suivants :| Statut | Description |
|---|---|
pending | Décaissement créé, en file d’attente pour traitement |
processing | En cours d’envoi au destinataire |
succeeded | Argent envoyé avec succès au destinataire |
failed | Décaissement échoué |
Statuts des transferts
Les transferts (remittances) suivent le même schéma :| Statut | Description |
|---|---|
pending | Transfert en file d’attente |
processing | Transfert en cours |
succeeded | Transfert terminé |
failed | Transfert échoué |
Gérer les différents statuts
Paiements réussis
Lorsqu’un paiement atteintsucceeded :
Paiements échoués
Lorsqu’un paiement échoue, vérifiez lefailure_message :
Paiements en cours
Pendant qu’un paiement est enprocessing :
Messages d’échec
Lorsqu’un paiement échoue, le champfailure_message fournit des détails :
| Message | Description | Action recommandée |
|---|---|---|
INTERNAL_PROCESSING_ERROR | Erreur système | Réessayer plus tard |
APPROVAL_REJECTED | Le client a rejeté | Demander de réessayer |
EXPIRED | Demande expirée | Créer une nouvelle intention |
TIMEOUT | Pas de réponse du client | Demander de réessayer |
PAYEE_NOT_FOUND | Numéro de téléphone invalide | Vérifier le numéro |
PAYEE_NOT_ALLOWED_TO_RECEIVE | Le destinataire ne peut pas recevoir | Contacter le support |
NOT_ALLOWED | Transaction bloquée | Contacter le support |
LOW_BALANCE_OR_PAYEE_LIMIT_REACHED_OR_NOT_ALLOWED | Fonds insuffisants, limite de transaction atteinte, ou transaction non autorisée | Le client doit recharger ou contacter son opérateur |
Événements Webhook par statut
| Statut | Événement Webhook |
|---|---|
succeeded | intent.completed |
succeeded (décaissement) | disbursement.completed |
Bonnes pratiques
- Gérez toujours tous les statuts - Ne supposez pas que les paiements réussiront toujours
- Utilisez les webhooks pour la fiabilité - Ne vous fiez pas uniquement aux réponses synchrones
- Journalisez les changements de statut - Gardez un historique pour le débogage et le support
- Affichez des messages clairs - Aidez les utilisateurs à comprendre ce qui s’est passé et quoi faire ensuite
- Implémentez une logique de nouvelle tentative - Permettez aux clients de réessayer les paiements échoués
Pour tester différents statuts, utilisez les numéros de test dans l’environnement sandbox.