How to detect what was granted
Thescopes field in the token response tells you exactly what the user approved:
wallet:read wallet:send wallet:withdraw but the user only approved wallet:read and profile:read, the response will only contain those two.
Check and store granted scopes
Always inspect thescopes field immediately after token exchange and store it:
Show users what they can do
Don’t silently break features. Show users clearly what is available based on what they granted:Re-request a specific scope
If a user tries to use a feature that requires a scope they didn’t grant, you can send them through the authorization flow again requesting only the missing scope. Monei will show just the new scope on the consent screen. Scopes already granted are not shown again.What to do when a critical scope is missing
If your app cannot function at all without a scope the user declined:- Don’t throw an error silently
- Explain which feature is unavailable and why it needs that permission
- Offer a clear path to re-authorize link to your
/enable-[feature]route - Never call an endpoint the user hasn’t granted access to. It returns
403and erodes trust
Scopes Reference
Full table of every scope and what it unlocks
Token Management
Refresh, store, and revoke access tokens

