Skip to main content

Vue d’ensemble

Les transferts peuvent échouer pour diverses raisons. Ce guide vous aide à comprendre les erreurs courantes et comment les gérer dans votre application.

Statuts de transfert

Les transferts peuvent avoir les statuts suivants :
  • pending : Le transfert est en cours de traitement
  • success : Le transfert a été effectué avec succès
  • error : Le transfert a échoué

Erreurs communes

Solde insuffisant (400 Bad Request)

Erreur : insufficient_balance Message : “Insufficient balance” Cause : Le magasin ne dispose pas de fonds suffisants pour effectuer le transfert (montant + frais). Solution :
  • Vérifiez le solde du magasin avant de créer le transfert
  • Assurez-vous que le solde couvre le montant du transfert plus les frais
  • Provisionnez le compte du magasin si nécessaire
Exemple de réponse :

Transfert échoué (400 Bad Request)

Erreur : transfer_failed Message : “Transfer failed to finish” Cause : Le traitement du transfert a échoué côté opérateur (Mobile Money ou banque). Solution :
  • Vérifiez que les informations du contact bénéficiaire sont correctes
  • Vérifiez que le numéro de téléphone ou le compte bancaire est actif
  • Réessayez le transfert après un court délai
  • Contactez le support si le problème persiste
Exemple de réponse :

Contact non trouvé (404 Not Found)

Erreur : contact_not_found Message : “Contact not found” Cause : Le contactId fourni n’existe pas ou n’appartient pas à votre entreprise. Solution :
  • Vérifiez que le contactId est correct
  • Assurez-vous que le contact a été créé avant d’effectuer le transfert
  • Utilisez l’endpoint /partner_api/contacts pour lister vos contacts
Exemple de réponse :

Magasin non trouvé (404 Not Found)

Erreur : store_not_found Message : “Store not found” Cause : Le storeId fourni n’existe pas ou n’appartient pas à votre entreprise. Solution :
  • Vérifiez que le storeId est correct
  • Utilisez l’endpoint /partner_api/stores pour lister vos magasins
  • Assurez-vous que le magasin existe et est actif
Exemple de réponse :

Erreur de validation (422 Unprocessable Entity)

Erreur : validation_error Message : “Validation error” Cause : Les données fournies ne respectent pas les règles de validation (montant minimum, format de devise, etc.). Solution :
  • Vérifiez que le montant respecte le minimum (500 centimes = 5 XOF)
  • Vérifiez que la devise est au format ISO 4217 (3 caractères)
  • Vérifiez que tous les champs requis sont présents et valides
  • Vérifiez que la description ne dépasse pas 255 caractères
Exemples de problèmes de validation :
  • Montant inférieur à 500 centimes
  • Code devise invalide (doit être “XOF” ou autre code ISO 4217 valide)
  • Champs requis manquants

Clé API invalide (401 Unauthorized)

Erreur : unauthorized Message : “Unauthorized” Cause : Les clés API sont invalides, manquantes ou expirées. Solution :
  • Vérifiez que les en-têtes X-API-KEY et X-API-KEY-ID sont présents
  • Vérifiez que les clés API sont correctes
  • Régénérez vos clés API depuis le Jeko Cockpit si nécessaire

Accès interdit (403 Forbidden)

Erreur : forbidden Message : “Forbidden” Cause : La clé API n’a pas la permission d’accéder à cette ressource ou d’effectuer cette action. Solution :
  • Vérifiez les permissions de votre clé API
  • Contactez le support pour vérifier les permissions de votre compte

Gestion des erreurs dans votre application

Vérification préventive

Avant de créer un transfert, effectuez ces vérifications :
  1. Vérifier l’existence du contact :
  1. Vérifier le solde du magasin :
  1. Valider les données :
    • Montant superieur ou égale 500 centimes
    • Code devise valide (ISO 4217)
    • Description inferieur ou égale 255 caractères

Gestion des erreurs dans le code

Utilisation des webhooks pour le suivi

Configurez des webhooks pour être notifié automatiquement des changements de statut des transferts. Cela vous permet de :
  • Suivre les transferts en temps réel
  • Gérer les échecs automatiquement
  • Mettre à jour votre système lorsque le statut change
Consultez la documentation Webhooks pour plus d’informations.

Bonnes pratiques

  1. Vérifications préventives : Toujours vérifier le solde et l’existence du contact avant de créer un transfert
  2. Gestion d’erreurs robuste : Implémentez une gestion d’erreurs complète pour tous les cas d’échec
  3. Logging : Enregistrez toutes les erreurs pour le débogage et l’analyse
  4. Retry logic : Pour les erreurs temporaires (comme transfer_failed), implémentez une logique de réessai avec backoff exponentiel
  5. Notifications utilisateur : Informez l’utilisateur des erreurs de manière claire et actionnable
  6. Monitoring : Surveillez les taux d’échec pour identifier les problèmes récurrents

Support

Si vous rencontrez des erreurs persistantes ou des problèmes non documentés, contactez le support JEKO à hello@jeko.africa.