Passer au contenu principal

Enveloppe de réponse

Chaque réponse de style action suit une forme cohérente. En cas de succès :
{ "success": true, "data": { /* … */ } }
En cas d’échec :
{
  "success": false,
  "error": "Variant is required",        // lisible par l'homme, pour vos logs
  "errorCode": "VARIANT_REQUIRED",        // stable, se brancher sur ceci
  "fieldErrors": [                          // présent pour la validation d'entrée
    { "field": "variantId", "code": "VARIANT_REQUIRED" }
  ]
}
Les réponses peuvent aussi porter businessRuleWarnings (quand une règle a alerté mais autorisé l’action) et approvalRequested (quand une politique d’approbation a intercepté une validation). Toujours se brancher sur errorCode, pas sur le texte error — le texte est pour les logs et peut changer ou être localisé ; le code est stable.

Mappage du statut HTTP

Les erreurs sont catégorisées et la catégorie détermine le statut HTTP (avec quelques remplacements par code) :
CatégorieHTTPExemples
Validation400VALIDATION_ERROR, MISSING_REQUIRED_FIELD, VARIANT_REQUIRED
Auth401UNAUTHORIZED, FORBIDDEN
Non trouvé404RECORD_NOT_FOUND, PLAN_NOT_FOUND
Métier422BUSINESS_RULE_VIOLATION, INSUFFICIENT_STOCK
Limite de débit429RATE_LIMIT_EXCEEDED
Externe502EXTERNAL_SERVICE_ERROR, EXTERNAL_SERVICE_TIMEOUT
Base de données / Configuration / Inconnu500DATABASE_ERROR, UNKNOWN_ERROR
Un remplacement notable : PLAN_ALREADY_VALIDATED retourne 409 Conflict plutôt que 422.

Codes d’erreur courants

CodeSignificationQue faire
UNAUTHORIZEDToken manquant, invalide, révoqué ou expiréRé-authentifiez-vous / émettez un nouveau token
FORBIDDENToken manque la permission requiseAccordez la permission sur le token ; ne réessayez pas tel quel
VALIDATION_ERRORL’entrée a échoué la validationInspectez fieldErrors ; corrigez la charge utile
RECORD_NOT_FOUND / PLAN_NOT_FOUNDLa ressource n’existe pas (ou pas dans votre org)Vérifiez l’id ; ne réessayez pas
BUSINESS_RULE_VIOLATIONUne règle métier a bloqué l’actionLisez le message / avertissements ; ajustez la requête
PLAN_ALREADY_VALIDATEDLe plan est au-delà de l’état sur lequel vous agissezRe-récupérez le statut actuel du plan
RATE_LIMIT_EXCEEDEDTrop de requêtes (si appliqué en amont)Retournez-vous et réessayez
DATABASE_ERROR / UNKNOWN_ERRORErreur serveur inattendueRéessayez une fois ; escaladez si persistant
Il y a plus d’une centaine de codes spécifiques (validation, opérations plan/article, téléchargement de fichier, tokens API, …). Chaque endpoint documente ceux qu’il peut retourner dans l’onglet Référence API.

Messages localisés

Les codes d’erreur sont découplés du texte d’affichage pour que les messages puissent être affichés dans la langue de l’utilisateur. Dans l’application web, les codes sont traduits en anglais ou en français ; les intégrateurs doivent se fier au code et rendre leur propre message si nécessaire.