Gestion des erreurs (Error Handling)
L'API Partenaire utilise les codes de statut HTTP standards et retourne des reponses d'erreur JSON coherentes.
Format des reponses d'erreur
Toutes les erreurs suivent cette structure :
{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}
Codes de statut
| Code | Erreur | Description |
|---|---|---|
400 | Bad Request | Corps de requete invalide, champs obligatoires manquants ou echec de validation |
401 | Unauthorized | Identifiants d'authentification manquants, invalides ou expires |
403 | Forbidden | Identifiants valides mais permissions insuffisantes pour cette action |
404 | Not Found | La ressource demandee n'existe pas |
409 | Conflict | Requete en doublon detectee (par ex., cle d'idempotence en doublon avec une charge utile differente) |
429 | Too Many Requests | Limite de debit depassee |
500 | Internal Server Error | Une erreur inattendue s'est produite sur le serveur |
Erreurs de validation
Pour les erreurs 400 causees par la validation de la requete, le champ message peut contenir des details sur les champs ayant echoue a la validation :
{
"statusCode": 400,
"message": [
"products.0.productId must be a UUID",
"products.0.startAt must be a valid ISO 8601 date",
"payment.type must be one of: CARD, GOOGLE_PAY, APPLE_PAY, IDEAL, REVOLUT, BANCONTACT"
],
"error": "Bad Request"
}
Bonnes pratiques
- Verifiez toujours le champ
statusCodepour determiner la categorie de l'erreur. - Pour les erreurs
401, verifiez votre cle API, la fraicheur de l'horodatage (dans les 5 minutes), l'unicite du nonce et le calcul de la signature. - Pour les erreurs
409lors de la creation de commande, la commande originale a deja ete traitee. Recuperez-la en utilisant la cle d'idempotence ou la reference externe. - Pour les erreurs
500, reessayez avec un backoff exponentiel (exponential backoff). Si l'erreur persiste, contactez le support.