Gestion des Erreurs

L'API Evalyo utilise les codes de statut HTTP standards associés à un corps d'erreur JSON structuré.

Format des erreurs

Toutes les erreurs retournent un objet JSON avec les champs suivants :

Corps d'erreur type
Le champ code est une constante lisible par machine — idéale pour une gestion programmatique des erreurs dans votre code.

Codes HTTP

CodeDescription
200 OKRequête réussie.
201 CreatedRessource créée avec succès.
400 Bad RequestParamètres manquants ou invalides. Vérifiez le corps de la requête.
401 UnauthorizedClé API absente, invalide ou révoquée.
403 ForbiddenClé API valide mais scope insuffisant pour cette ressource.
404 Not FoundRessource introuvable — vérifiez l'identifiant.
409 ConflictConflit de données (ex. : email déjà utilisé).
422 Unprocessable EntityDonnées sémantiquement invalides (ex. : date passée).
429 Too Many RequestsRate limit atteint. Consultez les en-têtes Retry-After.
500 Internal Server ErrorErreur interne. Réessayez après quelques secondes.

Erreurs métier

Codes spécifiques à Evalyo, retournés dans le champ error.code :

CodeDescription
INSUFFICIENT_CREDITSQuota d'entretiens épuisé. Rechargez depuis la page Facturation.
INTERVIEW_ALREADY_COMPLETEDL'entretien a déjà été complété — impossible de le relancer.
CANDIDATE_NOT_IN_CAMPAIGNLe candidat n'appartient pas à ce processus de recrutement.
TEST_ALREADY_ASSIGNEDCe test est déjà assigné à ce candidat.
JOB_CLOSEDL'offre est clôturée — impossible d'y créer un entretien.

Questions fréquentes

Les erreurs réseau n'ont pas de corps JSON (connexion refusée, timeout). Les erreurs API retournent toujours un objet { error: { code, message } } avec un code HTTP >= 400.

Lisez l'en-tête Retry-After dans la réponse. Il indique le nombre de secondes à attendre avant de réessayer. Implémentez un backoff exponentiel pour les requêtes critiques.

Oui, les erreurs 500/503 sont généralement transitoires. Réessayez avec un backoff exponentiel (ex. : 1s, 2s, 4s). Si l'erreur persiste plus de 5 minutes, contactez le support.

Interceptez le code INSUFFICIENT_CREDITS et redirigez l'utilisateur vers la page de facturation, ou alertez votre équipe pour recharger les crédits.