Référence

Gestion des erreurs

Codes d’erreur normalisés et conduite à tenir.

Toutes les erreurs ont la même forme :

json
{ "success": false, "error": { "code": "LICENSE_EXPIRED", "message": "La licence a expiré." }, "nonce": "…", "server_time": "…" }
CodeHTTPSignification et action
INVALID_APPLICATION403Application inconnue ou archivée : vérifiez application_id.
INVALID_LICENSE403Clé inexistante, d’une autre application ou mal formée (réponses identiques).
LICENSE_EXPIRED403Licence expirée : proposez un renouvellement.
LICENSE_REVOKED403Licence révoquée définitivement.
LICENSE_SUSPENDED403Licence suspendue (réversible).
DEVICE_LIMIT_REACHED409Plus d’appareils disponibles : l’utilisateur doit en libérer un.
ACTIVATION_LIMIT_REACHED409Quota total d’activations consommé.
DEVICE_BLOCKED403Appareil bloqué par l’éditeur.
NOT_ACTIVATED403Licence non activée sur cet appareil (validation par clé).
USER_BANNED403Titulaire banni par l’éditeur.
APPLICATION_DISABLED403Application ou organisation désactivée.
APPLICATION_MAINTENANCE503Maintenance : afficher le message renvoyé.
VERSION_NOT_ALLOWED426Version inférieure au minimum : proposer la mise à jour.
ACTIVATIONS_DISABLED403Nouvelles activations fermées temporairement.
SESSION_EXPIRED401Session expirée ou révoquée : réactiver.
SESSION_LIMIT_REACHED409Trop de sessions simultanées (stratégie « refuser »).
RATE_LIMITED429Trop de requêtes ou trop de clés invalides : respecter Retry-After.
VALIDATION_ERROR400Requête invalide (champ manquant ou mal formé).

Les messages sont génériques par conception : ils ne révèlent jamais l’existence d’une clé ou d’une ressource. Basez la logique de votre logiciel sur code, pas sur message.