Aller au contenu
CashChap CashChap Docs

Codes internes (Exxx)

Les codes Exxx sont les codes internes de CashChap. Vous les rencontrez dans les webhooks (raison d'un échec), dans vos journaux d'API et, entre parenthèses, à côté du code v2 d'un échec (l'API v1, qui les renvoyait directement, est retirée). L'API v2 les traduit en codes lisibles (insufficient_funds…) : la colonne « API v2 » donne l'équivalent. Liste générée depuis le code de la plateforme (relevé du 11 octobre 2026), 89 codes.

Lire un code Exxx

  • Les codes E410 à E429 décrivent un échec constaté après la création de la transaction (refus du client, solde insuffisant…) : ils arrivent avec le statut FAILED. En v2, ils deviennent failure.code de la transaction.
  • Les autres codes refusent la demande à l'entrée : aucune transaction n'est créée.
  • Pour l'API v2, utilisez plutôt la page Erreurs de l'API v2.

E0xx — Service, compte et mode test

CodeHTTPMessage (marchand)API v2
E001 400 Service non reconnu, vérifiez vos autorisations. invalid_api_key
E002 503 Le service est actuellement en maintenance, veuillez contacter l'administrateur. service_maintenance
E003 404 La compagnie liée à ce service n'est pas activée. Veuillez vérifier l'activation via votre compte ou contacter l'administrateur pour plus d'informations. account_not_activated
E004 404 Collaborateur non trouvé. operator_not_found
E005 403 Votre compte est suspendu ou vous n'avez pas accepté l'invitation du marchand, veuillez contacter l'administrateur. operator_suspended
E006 403 Vous n'avez pas les autorisations nécessaires pour cette action. permission_denied
E007 503 Les paiements par Carte Bancaire ne sont pas disponibles pour le moment. card_payments_unavailable
E008 400 La passerelle demandée n'est pas active ou valide. provider_unavailable
E009 400 Devise invalide. currency_not_supported
E010 400 Le numéro de téléphone fourni n'est pas valide pour la passerelle. invalid_phone_number
E011 400 Le numéro de téléphone fourni est bloqué. phone_number_blocked
E012 403 Votre rôle de collaborateur ne vous permet pas d'encaisser des paiements pour ce service. operator_cannot_collect
E013 403 Votre rôle de collaborateur ne vous permet pas d'effectuer des retraits pour ce service. operator_cannot_payout
E030 503 Le mode test (SANDBOX) est momentanément indisponible pour ce service. sandbox_unavailable
E031 429 Limite de transactions de test atteinte. Réessayez dans quelques minutes ou demain. sandbox_rate_limited
E040 503 Ce service est temporairement bloqué par un contrôle de sécurité. Notre équipe est prévenue et vous recontactera. service_temporarily_blocked
E041 503 Les retraits sont momentanément indisponibles. Notre équipe est prévenue ; réessayez plus tard. payouts_temporarily_unavailable
E042 403 Ce bénéficiaire est momentanément indisponible pour un retrait : notre équipe est prévenue. Vous pouvez le supprimer puis l'ajouter de nouveau dans vos comptes de retrait autorisés. recipient_unavailable

E1xx — Traitement de la demande

CodeHTTPMessage (marchand)API v2
E100 500 Une erreur s'est produite lors du traitement de la demande. internal_error
E101 400 La transaction ID est déjà utilisée pour une autre transaction. idempotency_conflict
E102 403 La méthode '{$method}' n'est pas autorisée. unsupported_payment_method

E3xx — Validation des champs, compte et tarification

CodeHTTPMessage (marchand)API v2
E300 400 Le champ "montant" est requis, doit être un nombre entier et supérieur à 0. invalid_amount
E301 400 La passerelle est requise. provider_required
E302 400 La monnaie est requise. currency_required
E303 400 Le code CVV est requis. card_cvv_required
E304 400 La date d'expiration est requise. card_expiry_required
E305 400 Le numéro de carte est requis. card_number_required
E306 400 Le numéro de téléphone est requis. phone_required
E307 400 Les informations du client sont requises. customer_required
E308 400 Le prénom est requis. customer_name_required
E309 400 L'adresse email est requise et doit être valide. invalid_email
E310 400 L'external_id n'est pas valide. invalid_reference
E311 400 La clé API Publique est manquante. Veuillez fournir une clé API valide. missing_api_key
E312 400 L'identifiant de transaction est manquant. Veuillez fournir un identifiant de référence valide. idempotency_key_required
E313 400 Une erreur s'est produite.Veuillez patienter et réessayer. —
E314 422 Le numéro de téléphone doit être au format international, indicatif du pays compris (exemple pour le Bénin : 2290166000000). phone_international_required
E315 422 Le pays indiqué (country) ne correspond pas à l'indicatif du numéro de téléphone : le pays est déduit de l'indicatif. phone_country_mismatch
E350 400 Le compte associé à ce service n'existe pas. Veuillez contacter l'administrateur pour plus d'informations. account_unavailable
E351 400 Le compte associé à ce service n'est pas activé. Veuillez contacter l'administrateur pour plus d'informations. account_inactive
E352 400 Le compte associé à ce service est suspendu. Veuillez contacter l'administrateur pour plus d'informations. account_suspended
E356 403 Accès interdit. Vous n'êtes pas autorisé à utiliser cette passerelle de transaction. provider_not_allowed
E357 400 Le montant minimal à prélever est de {$amount}. amount_too_small
E358 400 Le montant maximal à prélever est de {$amount}. amount_too_large
E360 400 Le service n'existe pas ou a été désactivé. Veuillez vérifier vos autorisations ou contacter l'administrateur pour plus d'informations. service_inactive
E370 400 Le taux de change de la devise {$method} est indisponible pour le moment. Veuillez réessayer plus tard ou utiliser une autre devise. exchange_rate_unavailable
E371 409 Le montant à payer a changé : il est maintenant de {$amount}. Veuillez confirmer le nouveau montant. amount_changed
E372 400 Le montant ({$amount}) est inférieur ou égal aux frais : aucun crédit ne resterait pour ce service. amount_below_fees
E373 400 Les retraits en {$method} ne sont pas disponibles pour le moment : seuls les retraits en XOF sont acceptés. payout_currency_not_supported
E374 400 Le montant comporte trop de décimales pour la devise {$method}. amount_too_many_decimals
E375 400 Le montant minimal de retrait est de {$amount}. payout_amount_too_small
E376 400 Le montant maximal de retrait est de {$amount}. payout_amount_too_large

E4xx — Opérateurs, retraits, virements, antifraude et choix de l'opérateur

CodeHTTPMessage (marchand)API v2
E410 402 Le client a refusé ou annulé le paiement sur son téléphone. customer_declined
E411 402 Le client n'a pas validé le paiement à temps sur son téléphone. customer_timeout
E412 402 Le solde Mobile Money du client est insuffisant. insufficient_funds
E413 402 Le compte Mobile Money du client a atteint son plafond de transactions. customer_limit_reached
E414 402 Le numéro du client n'est pas inscrit au Mobile Money. customer_not_registered
E415 402 Opération non autorisée sur le compte Mobile Money du client. operation_not_allowed
E416 402 Montant non autorisé pour le compte Mobile Money du client. amount_not_allowed
E419 502 L'opérateur n'a pas pu effectuer le paiement. provider_error
E420 402 Le numéro bénéficiaire n'est pas inscrit au Mobile Money. recipient_not_registered
E421 402 Le numéro bénéficiaire ne peut pas recevoir ce retrait (compte bloqué, inactif ou non autorisé). recipient_not_allowed
E422 402 Le compte bénéficiaire ne peut pas recevoir ce montant (plafond atteint ou montant non autorisé). recipient_limit_reached
E423 503 Retrait momentanément indisponible. Veuillez réessayer plus tard. payouts_temporarily_unavailable
E429 502 L'opérateur n'a pas pu effectuer le retrait. Veuillez réessayer ultérieurement. provider_error
E430 403 Ce compte bancaire n'est pas autorisé pour ce service, est inactif ou appartient à une autre banque. bank_account_not_allowed
E431 401 La clé secrète est absente ou invalide. secret_key_required
E432 400 Montant hors limites pour un retrait bancaire : {$amount}. payout_amount_out_of_range
E433 429 Trop de demandes de retrait bancaire en attente pour ce service. Attendez leur traitement avant d'en faire une nouvelle. too_many_pending_payouts
E434 400 Plusieurs comptes bancaires autorisés correspondent : indiquez l'identifiant du compte à utiliser. bank_account_ambiguous
E435 404 Demande de retrait introuvable. transaction_not_found
E436 409 Annulation impossible : la demande est déjà prise en charge ou traitée par l'équipe CashChap. cannot_cancel
E437 400 Le solde disponible est insuffisant pour ce retrait. insufficient_balance
E438 503 Les retraits vers un compte bancaire sont momentanément indisponibles. bank_payouts_unavailable
E439 400 L'identifiant de transaction (X-Transaction-Id) doit être un UUID valide. invalid_idempotency_key
E440 409 Cette demande a déjà été traitée. —
E441 409 Cette demande est prise en charge par un autre agent. —
E442 403 Vous n'avez pas la permission d'effectuer cette action sur les retraits bancaires. —
E443 409 Cette référence de virement est déjà utilisée pour une autre demande de la même banque. —
E444 422 Données invalides. —
E445 409 La demande doit d'abord être prise en charge. —
E446 403 Seuls le titulaire du service et les collaborateurs Administrateurs peuvent demander ou annuler un retrait bancaire. payout_owner_only
E470 429 Trop de demandes de paiement pour ce marchand en peu de temps (ou trop de retraits pour ce service). Réessayez dans quelques minutes. rate_limited
E472 429 Trop de demandes de paiement vers ce numéro en peu de temps. Réessayez dans quelques minutes. too_many_pending_for_phone
E477 503 Le retrait est momentanément indisponible. Réessayez dans quelques minutes ; rien n'a été débité. payouts_temporarily_unavailable
E480 422 Aucun opérateur ne correspond à ce numéro : vérifiez le numéro ou précisez l'opérateur (champ provider). provider_required
E481 422 Plusieurs opérateurs correspondent à ce numéro : précisez l'opérateur (champ provider). provider_required
E490 403 Ce numéro (ou ce compte bancaire) a été ajouté il y a moins de 24 h : pour votre sécurité, le premier retrait vers lui sera possible après ce délai (heure indiquée dans le message et dans disponible_le). recipient_cooling_off
E491 400 Une partie de votre solde provient d'un crédit manuel récent : elle sera retirable 24 h après son application. Un montant plus petit peut être retiré tout de suite. balance_not_yet_withdrawable

E9xx — Erreur inconnue

CodeHTTPMessage (marchand)API v2
E999 500 Une erreur inconnue est survenue. Veuillez réessayer plus tard. internal_error

Correspondance avec les raisons des opérateurs

Les motifs bruts renvoyés par MTN ou Moov ne sont jamais transmis tels quels : ils sont traduits en codes E41x (encaissement) ou E42x (retrait). Une raison inconnue prend le code générique de l'opération : E419 ou E429 (provider_error en v2).

Mise à jour de cette liste

La liste est une copie contrôlée des fichiers de référence de la plateforme, régénérée à chaque évolution des codes. Un code sans équivalent v2 (—) ne peut pas être renvoyé par l'API v2.