Codes d'erreur

Production
Codes d'erreur
Référence des erreurs renvoyées par l'API Neka Paie.

Format générique d'erreur

JSON{
  "error": "Description lisible de l'erreur",
  "code": "ERROR_CODE_SYMBOLIC"
}

HTTP 400 — Bad Request

CodeDescription
INVALID_JSONLe body n'est pas un JSON valide.
MALFORMED_REQUESTStructure de la requête incorrecte.

HTTP 401 — Unauthorized

CodeDescription
AUTH_FAILEDHeaders d'authentification absents ou clé inconnue.
SIGNATURE_INVALIDSignature HMAC ne correspond pas.
TIMESTAMP_OUT_OF_RANGETimestamp hors fenêtre de ±300 sec.
API_KEY_REVOKEDClé API révoquée ou expirée.

HTTP 403 — Forbidden

CodeDescription
MERCHANT_SUSPENDEDCompte marchand suspendu.
MERCHANT_PENDING_KYCKYC pas encore validé.
CASHOUT_APPROVAL_REQUIREDMontant > seuil d'approbation, validation back-office requise.
FEATURE_NOT_AVAILABLEFonctionnalité non activée pour ce marchand.

HTTP 404 — Not Found

CodeDescription
TRANSACTION_NOT_FOUNDL'ID de transaction n'existe pas ou n'appartient pas au marchand.
RESOURCE_NOT_FOUNDRessource demandée introuvable.

HTTP 409 — Conflict

Conflit d'idempotence : un merchant_order_id identique a déjà été utilisé. Le système renvoie la transaction d'origine sans en créer une nouvelle. Aucune action requise.

HTTP 422 — Unprocessable Entity

CodeDescription
MISSING_REQUIRED_FIELDChamp obligatoire absent.
INVALID_AMOUNTMontant ≤ 0 ou type incorrect.
INVALID_MSISDNFormat MSISDN invalide.
UNKNOWN_COUNTRYPréfixe MSISDN ne correspond à aucune filiale.
INSUFFICIENT_BALANCESolde marchand insuffisant pour Cash-Out.
REFUND_EXCEEDS_AMOUNTMontant de remboursement supérieur à l'original.
TRANSACTION_NOT_REFUNDABLESeules les transactions SUCCESS sont remboursables.

HTTP 429 — Too Many Requests

CodeDescription
RATE_LIMITEDLimite de débit atteinte. Header Retry-After indique le délai à respecter.

HTTP 501 — Not Implemented

Le décaissement (POST /payments/cashout) répond 501 : le contrat d'interface Orange Money AskPayment V2 ne couvre que l'encaissement. Aucun solde n'est débité. L'endpoint se réactive dès qu'Orange fournit le webservice correspondant et qu'il est configuré côté agrégateur.

HTTP 500 / 503 — Erreurs serveur

CodeDescription
OPERATOR_TIMEOUTTimeout côté opérateur Orange. La transaction reste PENDING : le push a pu être délivré malgré tout.
OPERATOR_UNAVAILABLEOpérateur Orange non joignable. Réessayer plus tard.
INTERNAL_ERRORErreur interne. Contacter le support avec le request_id.

Codes Orange Money (provider_txn_status)

Sur un échec, failure_reason reprend le code renvoyé par Orange Money et sa signification. Ces codes proviennent du contrat d'interface V2 ; ils sont utiles au support pour expliquer un refus au client final.

CodeSignification
null Avec provider_state = canceled : le client n'a pas validé le paiement sur son téléphone.
200Demande reçue et acquittée par Orange Money.
500Système d'information Orange indisponible — statut ambigu, à re-interroger.
54321Échec du paiement — détail disponible via le statut par ID de session.
60019Solde insuffisant sur le compte Orange Money du client.
00017Code secret incorrect.
Seuils du compte client (100004 → 100090)

Ces codes signalent que le client a atteint une limite de son profil Orange Money (par transaction, par jour, par semaine ou par mois). Le client doit contacter Orange : aucune action côté marchand ne peut lever la limite.

CodeSignification
100004Le montant est supérieur au montant par transaction en tant que payeur.
100006Nombre maximum de transactions par jour en tant que payeur atteint.
100008Nombre maximum de transactions par semaine en tant que payeur atteint.
100010Nombre maximum de transactions par mois en tant que payeur atteint.
100012Le nombre maximum de transactions par jour en tant que payeur a été atteint.
100014Le nombre maximum de transactions par semaine en tant que payeur a été atteint.
100016Le nombre maximum de transactions par mois en tant que payeur a été atteint.
100018Le nombre maximum cumulé de transactions par jour en tant que payeur a été atteint.
100020Le nombre maximum cumulé de transactions par semaine en tant que payeur a été atteint.
100022Le nombre maximum cumulé de transactions par mois en tant que payeur a été atteint.
100024Le montant maximum cumulé de transactions par jour en tant que payeur a été atteint.
100026Le montant maximum cumulé de transactions par semaine en tant que payeur a été atteint.
100028Le montant maximum cumulé de transactions par mois en tant que payeur a été atteint.
100032Le montant de la transaction est supérieur au montant maximum par transaction en tant que payeur.
100052Le montant maximum journalier est atteint pour le payeur.
100054Le montant est supérieur au maximum autorisé par jour pour le payeur.
100058Le montant est supérieur au maximum autorisé par transaction pour le payeur.
100060Le nombre maximum cumulé de transactions par jour en tant que payeur est atteint.
100062Le nombre maximum cumulé de transactions par semaine en tant que payeur est atteint.
100064Le nombre maximum cumulé de transactions par mois en tant que payeur est atteint.
100080Le nombre maximum de transactions par jour en tant que payeur a été atteint.
100082Le nombre maximum de transactions par semaine en tant que payeur a été atteint.
100084Le nombre maximum de transactions par mois en tant que payeur a été atteint.
100086Le montant maximum cumulé de transactions par jour en tant que payeur a été atteint.
100088Le montant maximum cumulé de transactions par semaine en tant que payeur a été atteint.
100090Le montant maximum cumulé de transactions par mois en tant que payeur a été atteint.

Codes de retour de la notification Orange

Codes que Neka Paie renvoie à Orange lorsqu'il reçoit une notification de paiement (§2.3 du contrat d'interface). Ils n'apparaissent pas dans l'API marchand.

CodeSignification
200Notification reçue dans le bon format.
00075Numéro client non renseigné.