Aller au contenu principal

Erreurs

Lire une réponse​

  1. Regardez le statut HTTP. 2xx : requête acceptée. 4xx : problème dans votre requête. 5xx : problème côté MoyaPay ou chez l'opérateur.
  2. Dans une réponse 200, testez toujours le champ success.
  3. Lisez ensuite le détail de l'erreur : champ description (erreurs métier) ou message (erreurs de validation et d'authentification).

Les réponses d'erreur existent sous quatre formes, selon l'étape où la requête est refusée.

1. Erreur métier​

Refus décidé après la validation du corps (compte, moyen de paiement, doublon, échec opérateur...). Le statut HTTP est repris dans code. Le motif précis est dans description ; message est un texte générique.

{
"status": "error",
"description": "Marchand not have provider",
"success": false,
"code": 400,
"message": "Invalid request parameters"
}

2. Erreur de validation du corps​

Champ manquant ou invalide. Le motif est dans err.message.

{
"err": {
"status": "error",
"message": "You must add telephone to your body",
"code": 400
}
}

Pour quelques champs (business_code, country_code, merchant_transaction_id) et pour /login, la même erreur est renvoyée sans l'enveloppe err :

{
"status": "error",
"message": "You must add business_code to your body",
"code": 400
}

3. Erreur d'authentification​

Jeton absent, invalide ou expiré (HTTP 401). Le texte exact de message varie selon la route ; seuls le statut HTTP et success: false sont stables.

{
"success": false,
"message": "No Bearer Token Provided",
"code": 401
}
{
"success": false,
"message": "Token Signature could not be verified.",
"code": 401,
"error": "jwt expired"
}

4. Solde insuffisant (payout)​

Un payout refusé faute de solde suffisant renvoie un 400 : le champ status vaut FAILED, message précise la raison et la réponse rappelle votre merchant_transaction_id. Aucune transaction n'est créée : vous pouvez réessayer avec le même identifiant après avoir rechargé votre solde.

Erreurs courantes​

HTTPOù lire le motifMotifQue faire
400err.messageYou must add <champ> to your bodyAjouter le champ manquant
400err.messagePAYMENT_METHOD_NOT_EXISTUtiliser un code de Moyens de paiement
400err.messageAmount must be ...Respecter les Limites
400err.messageAmount must be a numberEnvoyer amount en nombre, pas en chaîne
400err.messageInvalid payment_method add OTP fieldAjouter otp_code (obligatoire pour OM_CI)
400err.messageCURRENCY_NOT_EXISTUtiliser une devise du tableau Devises par pays
400descriptionCurrency not valid for this country, expected XOFcurrency ne correspond pas au pays de la transaction : envoyer la devise indiquée, voir Devises par pays
400descriptionPhone number not validCorriger le numéro, voir Limites
400descriptionMarchand not have providerMoyen de paiement non activé sur votre compte : contacter MoyaPay
400descriptionBusiness not exist for this merchant contact administratorbusiness_code inconnu ou n'appartenant pas à votre compte
400descriptionThe merchant does not have any operator configured.Aucun moyen de paiement activé : contacter MoyaPay
400descriptionAn identical transaction is already in progress. Please wait.Attendre la fin de la transaction identique
400descriptionTransaction ID ... allready existemerchant_transaction_id déjà utilisé : en choisir un nouveau
400messageSolde insuffisant (payout)Recharger le solde
401messageJeton absent, invalide ou expiréSe reconnecter via /login
401messageMarchand not found for this userrefercence_cl inconnu. Le champ code du corps peut valoir 404 alors que le statut HTTP est 401
401messageYou are not authorized to perform this action for this marchand ...refercence_cl ne correspond pas à votre compte
401descriptionMarchand disabledCompte désactivé : contacter MoyaPay
500descriptionImpossible to make the transactionÉchec chez l'opérateur. Vérifier le statut avant de renvoyer
500descriptionImpossible to get transactionSur /check-status : transaction introuvable
astuce

Ne basez pas votre logique sur le texte exact des messages : ils peuvent être reformulés. Appuyez-vous sur le statut HTTP, sur success et sur les statuts de transaction (SUCCESS, FAILED...).