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 500 / 503 — Erreurs serveur

CodeDescription
OPERATOR_TIMEOUTTimeout côté opérateur Orange. La transaction reste PENDING.
OPERATOR_UNAVAILABLEOpérateur Orange non joignable. Réessayer plus tard.
INTERNAL_ERRORErreur interne. Contacter le support avec le request_id.