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

# Codes d'erreur

L'API retourne un code HTTP et un objet JSON contenant généralement un champ `message`. Certains endpoints plus anciens utilisent `errors`.

## Authentification et en-têtes

| HTTP  | Message actuel                            | Correction                                                       |
| ----- | ----------------------------------------- | ---------------------------------------------------------------- |
| `400` | `Bad Request: Missing params`             | Envoyer les quatre en-têtes obligatoires.                        |
| `400` | `Bad Request: Not Allowed Environment`    | Utiliser `sandbox` ou `live`.                                    |
| `400` | `Bad Request: Not Allowed Payment Type`   | Choisir un type pris en charge par le compte et l'environnement. |
| `400` | `Bad Request: Missing Authentication Key` | Utiliser `Authorization: Bearer <cle>`.                          |
| `401` | `Unauthorized: No Valid Key`              | Vérifier la clé et l'environnement associé.                      |
| `403` | `Forbidden: Environment Not Available`    | Vérifier la validation et la disponibilité du compte.            |
| `406` | `Not Acceptable: Invalid Content Type`    | Envoyer exactement `Content-Type: application/json`.             |

## Création d'un paiement

| HTTP  | Message actuel                            | Correction                                                                          |
| ----- | ----------------------------------------- | ----------------------------------------------------------------------------------- |
| `400` | `Bad Request: Missing Body Params`        | Ajouter les champs obligatoires.                                                    |
| `400` | `Bad Request: Country Not Allowed`        | Utiliser `BJ` ou `NE` pour le contrat standard.                                     |
| `400` | `Bad Request: Currency Not Allowed`       | Utiliser `XOF`.                                                                     |
| `400` | `Bad Request: Amount Not Valid`           | Respecter le montant minimum du moyen choisi.                                       |
| `400` | `Bad Request: Incorrect MSISDN`           | Utiliser un numéro au format attendu pour le pays ou un numéro Sandbox.             |
| `400` | `Bad Request: Missing MyNita Account`     | Vérifier le compte MyNita du payeur.                                                |
| `403` | `Contact le support: support@i-pay.money` | Le compte n'est pas actif pour cette opération.                                     |
| `422` | `External Reference Not Valid`            | Générer un `transaction_id` unique pour le compte.                                  |
| `422` | `Unprocessable Entity`                    | Vérifier les validations de la requête et contacter le support avec les références. |

## Consultation

| HTTP  | Message actuel               | Signification                                         |
| ----- | ---------------------------- | ----------------------------------------------------- |
| `404` | `Payment Not Found`          | La référence n'existe pas pour le compte authentifié. |
| `404` | `External payment not found` | Le lien de paiement demandé n'existe pas.             |

## Traitement recommandé

* Ne relancez pas automatiquement une erreur `400`, `401`, `403`, `404`, `406` ou `422` sans corriger la requête.
* Pour une erreur serveur ou réseau, conservez la même référence externe et vérifiez d'abord si le paiement existe avant de retenter une création.
* Journalisez le code HTTP, le message, `transaction_id` et la référence iPayMoney, jamais les clés ni les données de carte.
