Gestion des erreurs
Format de réponse d'erreur, codes de statut et dépannage
3 min de lecture
Sur cette page
Format de réponse d'erreur
Toutes les erreurs API suivent une structure JSON cohérente :
{
"statusCode": 422,
"message": "La validation a échoué",
"error": "Unprocessable Entity",
"details": [
{
"field": "price",
"message": "Le prix doit être un nombre positif"
},
{
"field": "sku",
"message": "Le SKU existe déjà"
}
]
}
| Champ | Type | Description |
|---|---|---|
statusCode | number | Code de statut HTTP |
message | string | Description d'erreur lisible |
error | string | Texte de statut HTTP |
details | array (optionnel) | Erreurs de validation par champ |
Codes de statut HTTP
Erreurs client (4xx)
| Code | Nom | Quand cela se produit |
|---|---|---|
400 | Bad Request | JSON mal formé, paramètres de requête invalides ou champs obligatoires manquants |
401 | Unauthorized | Clé API ou token JWT manquant ou invalide |
403 | Forbidden | Identifiants valides mais permissions insuffisantes (mauvais scope) |
404 | Not Found | La ressource n'existe pas ou a été supprimée |
409 | Conflict | Ressource en double (ex : SKU déjà existant) |
422 | Unprocessable Entity | Erreurs de validation dans le corps de la requête |
429 | Too Many Requests | Limite de débit dépassée — voir Limites de débit |
Erreurs serveur (5xx)
| Code | Nom | Quand cela se produit |
|---|---|---|
500 | Internal Server Error | Erreur serveur inattendue — contactez le support si persistant |
502 | Bad Gateway | Problème temporaire en amont — réessayez après un court délai |
503 | Service Unavailable | Maintenance planifiée ou surcharge — vérifiez la page de statut |
Erreurs courantes et solutions
401 — Clé API invalide
{
"statusCode": 401,
"message": "Clé API invalide",
"error": "Unauthorized"
}
Solutions :
- Vérifiez que la clé API est correcte et n'a pas été révoquée
- Vérifiez que le nom de l'en-tête est
X-API-Key(sensible à la casse) - Assurez-vous que la clé est pour le bon environnement (live vs test)
403 — Scope insuffisant
{
"statusCode": 403,
"message": "La clé API n'a pas le scope requis : products:write",
"error": "Forbidden"
}
Solution : Générez une nouvelle clé API avec les scopes requis depuis Paramètres → Intégrations.
422 — Erreurs de validation
{
"statusCode": 422,
"message": "La validation a échoué",
"error": "Unprocessable Entity",
"details": [
{ "field": "name", "message": "Le nom est obligatoire" },
{ "field": "price", "message": "Le prix doit être >= 0" }
]
}
Solution : Vérifiez le tableau details pour les erreurs spécifiques par champ et corrigez votre corps de requête.
429 — Limite de débit dépassée
Solution : Attendez la durée indiquée par l'en-tête Retry-After, puis réessayez. Voir Limites de débit pour les bonnes pratiques.
Bonnes pratiques de gestion des erreurs
- Vérifiez toujours le code de statut avant d'analyser le corps de la réponse
- Journalisez les réponses d'erreur avec l'URL de la requête et les en-têtes (en excluant les clés API) pour le débogage
- Implémentez une logique de nouvelle tentative pour les erreurs 429 et 5xx avec un backoff exponentiel
- N'exposez jamais les erreurs API brutes aux utilisateurs finaux — mappez-les vers des messages conviviaux
- Utilisez le tableau
detailspour les erreurs 422 pour afficher des messages de validation par champ
Besoin d'aide ? Si vous rencontrez des erreurs 500 persistantes, contactez-nous à support@kataio.com avec l'URL de la requête, l'horodatage et la réponse d'erreur.