Structure des erreurs
Toutes les erreurs suivent le même format :Codes HTTP
| Code | Signification | Action |
|---|---|---|
200 | Succès | - |
400 | Requête invalide | Vérifier les paramètres |
401 | Non authentifié | Vérifier la clé API |
403 | Accès refusé | Vérifier les permissions |
404 | Ressource non trouvée | Vérifier l’identifiant |
422 | Erreur métier | Voir le code d’erreur |
429 | Trop de requêtes | Attendre et réessayer |
500 | Erreur serveur | Contacter le support |
Erreurs d’authentification
UNAUTHORIZED
Causes :- Clé API manquante dans l’en-tête
- Clé API invalide ou révoquée
- Format incorrect (clé publique ou secrète manquante)
FORBIDDEN
Causes :- Clé publique utilisée pour une action réservée à la clé secrète
- IP non autorisée (si liste blanche configurée)
- Compte suspendu
Erreurs de validation
VALIDATION_ERROR
Validations communes :| Champ | Règle | Message |
|---|---|---|
amount | Min: 100, Max: 5000000 | ”Le montant doit être entre 100 et 5 000 000” |
currency | XOF ou XAF | ”Devise non supportée” |
customer.phone | Format E.164 | ”Format de numéro invalide” |
payment_method | Valeur valide | ”Méthode de paiement invalide” |
Erreurs de paiement
INSUFFICIENT_BALANCE
INSUFFICIENT_BALANCE
Action : Informer le client de recharger son compte.
ACCOUNT_NOT_FOUND
ACCOUNT_NOT_FOUND
Action : Vérifier le numéro de téléphone.
PAYMENT_CANCELLED
PAYMENT_CANCELLED
Action : Proposer au client de réessayer.
PAYMENT_EXPIRED
PAYMENT_EXPIRED
Action : Initier une nouvelle session de paiement.
PROVIDER_ERROR
PROVIDER_ERROR
Action : Réessayer plus tard ou choisir une autre méthode.
PAYMENT_METHOD_UNAVAILABLE
PAYMENT_METHOD_UNAVAILABLE
Erreurs de limite
RATE_LIMIT_EXCEEDED
Limites par défaut :- 100 requêtes par minute
- 1000 requêtes par heure
DAILY_LIMIT_EXCEEDED
Erreurs de remboursement
REFUND_NOT_ALLOWED
Causes :- Transaction non réussie
- Délai de remboursement dépassé
- Déjà entièrement remboursé
INVALID_REFUND_AMOUNT
Gestion globale des erreurs
- JavaScript / Node.js
- PHP
Messages d’erreur utilisateur
Traduisez les codes d’erreur en messages compréhensibles :Logs et monitoring
Logger les erreurs
Alertes automatiques
Configurez des alertes pour les erreurs critiques :- Taux d’erreur > 5%
- Erreurs
PROVIDER_ERRORrépétées - Erreurs
UNAUTHORIZED(possible compromission de clé)
Erreurs d’intégration courantes
1. Se fier uniquement à la redirection
Problème : Considérer un paiement comme réussi quand le client revient surreturn_url.
Solution : Toujours attendre le webhook payment.success avant de confirmer une commande.
2. Ne pas vérifier la signature webhook
Problème : Accepter les webhooks sans vérification. Risque : Un attaquant peut envoyer de faux webhooks pour simuler des paiements. Solution : Toujours vérifier la signature HMAC-SHA256.3. Exposer la clé secrète côté client
Problème : Utilisersk_* dans du code JavaScript côté navigateur.
Risque : Compromission totale du compte.
Solution : La clé secrète doit rester uniquement côté serveur.
4. Ignorer les statuts intermédiaires
Problème : Ne gérer quesuccess et ignorer pending, processing.
Solution : Implémenter une logique pour tous les statuts :
5. Ne pas stocker le transaction_id
Problème : Ne pas sauvegarder letransaction_id retourné par l’API.
Conséquence : Impossible de lier le webhook à la commande, impossible de vérifier le statut.
Solution : Toujours stocker le transaction_id dans votre base de données.
6. Timeout webhook trop long
Problème : Traitement webhook qui prend plus de 5 secondes. Conséquence : CaurisFlux considère le webhook comme échoué et retente. Solution : Répondre immédiatement et traiter en arrière-plan.7. Mauvais format de numéro de téléphone
Problème : Envoyer771234567 au lieu de +221771234567.
Solution : Toujours utiliser le format E.164 international.
8. Mélanger les environnements
Problème : Utiliser des cléssk_test_* vers l’API de production.
Solution : Vérifier que les clés correspondent à l’environnement :
| Clé | URL |
|---|---|
pk_test_*:sk_test_* | sandbox-api.caurisflux.com |
pk_live_*:sk_live_* | prod-api.caurisflux.com |
Support
Si vous rencontrez des erreurs persistantes :- Email : support@cauris-pay.com
- Status : status.cauris-pay.com
- Le code d’erreur
- Le
transaction_idsi applicable - La date et l’heure
- Les paramètres de la requête (sans les données sensibles)