Revocation
How users and partners revoke OAuth grants.
User-initiated revoke
Users can revoke your app from Settings → Connected apps in the Better i18n dashboard. The cascade:
- Grant marked
revokedAt - Latest installation token disabled immediately
- Refresh tokens deleted — no silent re-mint
Partner-initiated revoke
Your app can revoke its own grant when uninstalling:
curl -X DELETE \
https://api.better-i18n.com/api/oauth-client/installations/<grant_id> \
-H "Authorization: Bearer <access_token>"Same cascade applies. Useful when the user disconnects on your side and you want their tokens cleaned up immediately.
What happens to in-flight tokens
When a grant is revoked, the latest installation token is disabled instantly. Any cached bi_oat_ token in your application will start returning:
HTTP/1.1 410 Gone
{ "error": "grant_revoked" }The next refresh_token exchange will also fail with invalid_grant.
After a revoke
The user must re-authorize from scratch to reconnect:
- New consent flow
- New
grant_id - New tokens
Your integration should:
- Mark the connection as
disconnectedin your database - Surface a "Reconnect" prompt in your UI
- Never retry silently — it won't work