> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kemypay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Erreurs

> Chaque erreur a un code, un message et des détails

Les erreurs utilisent toujours la même enveloppe :

```json theme={null}
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Some fields of the payment are missing or invalid.",
    "details": {
      "phone_number": "Required: the mobile money number with the country code, digits only, for example 237670000000.",
      "amount": "Whole amounts only for this operator (decimals: 0)."
    }
  },
  "meta": { "request_id": "a4f8e2c1b3d97056", "timestamp": "2026-10-29T10:00:00+00:00", "mode": "live" }
}
```

`details` explique **chaque** champ refusé : montrez-le à vos développeurs, reliez-le à votre propre formulaire. Les messages de l'API sont en anglais.

| HTTP | `code` | Quand | Que faire |
| - | - | - | - |
| `401` | `AUTHENTICATION_REQUIRED` / `AUTHENTICATION_FAILED` | Clé absente / mauvaise clé | Vérifiez l'en-tête `Authorization` et le mode de la clé |
| `403` | `IP_NOT_ALLOWED` | L'appel ne vient pas d'une adresse IP autorisée | Ajoutez l'IP de votre serveur dans votre tableau de bord |
| `403` | `ACCOUNT_RESTRICTED` | Votre compte est restreint | Contactez le support |
| `403` | `FORBIDDEN` | Le service n'est pas `active` (en production) | Attendez la validation, ou réactivez le service |
| `404` | `RESOURCE_NOT_FOUND` | Code de service ou de paiement inconnu | Vérifiez le code et le mode de la clé (test ou production) |
| `422` | `VALIDATION_ERROR` | Un champ manque ou est invalide | Lisez `details` |
| `422` | `COUNTRY_NOT_SUPPORTED` | Le pays n'est pas disponible pour votre compte | Proposez un autre moyen de paiement |
| `429` | `RATE_LIMIT_EXCEEDED` | Trop de requêtes | Ralentissez, mettez les pays en cache |
| `503` | `OPERATION_FAILED` | L'opérateur est fermé aux encaissements (`details.failure_code: operator_unavailable`) | Proposez un autre opérateur |

Gardez le `meta.request_id` d'un appel en échec : notre support le retrouve en quelques secondes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.