DIAGNOSTICS
Une erreur.
Une piste concrète.
L’enveloppe utilise un code OAuth dans error et un diagnostic précis dans error_code. Le request_id correspond à une ligne du journal.
invalid_request
La requête est incomplète ou invalide.
Vérifiez state (16 caractères minimum), les paramètres et le format JSON.
invalid_client
Le client est inconnu, désactivé ou ses identifiants sont invalides.
Vérifiez le client_id, son état actif et le secret côté serveur.
invalid_grant
Le code ne correspond pas à cette requête.
Relancez le parcours depuis l’application. Le code doit appartenir au même client.
access_denied
Authentification refusée.
Recommencez vous-même la connexion. En sandbox, le numéro 22300000099 simule ce refus.
expired_code
Le code a expiré. Les codes sont valables 60 secondes.
Échangez le code côté serveur dès le retour du navigateur.
already_used
Ce code a déjà été utilisé.
N’échangez le code qu’une seule fois. Évitez les doubles appels du callback.
invalid_verifier
Le vérificateur PKCE ne correspond pas au challenge.
Utilisez le code_verifier conservé au démarrage, sans le modifier.
redirect_uri_mismatch
Cette URL de retour ne correspond pas à celle autorisée.
Utilisez exactement la même URL autorisée au démarrage et à l’échange.
key_not_activated
La clé doit être activée depuis votre navigateur.
Appelez activate depuis le clic avant d’envoyer le message.
key_expired
La clé a expiré. Recommencez la connexion.
Recommencez la connexion. Le délai de 90 secondes ne peut pas être prolongé.
rate_limited
Trop de tentatives. Réessayez dans une minute.
Attendez le délai Retry-After avant de recommencer.
session_mismatch
Reprenez la connexion dans le navigateur d’origine.
Conservez le cookie et le navigateur d’origine. Ne transférez pas le lien.
invalid_signature
La signature du message est invalide.
Côté SMSV, signez les octets JSON envoyés avec le secret partagé.
stale_message
Le message est trop ancien.
Synchronisez les horloges. timestamp est un Unix timestamp en millisecondes.