Skip to main content
Scopes are permissions your app requests from the user. Each scope unlocks a specific group of API endpoints. Request only what your app genuinely needs, users are more likely to approve a minimal, specific request than a broad one.

Scope reference

Sensitive scopes move or convert real money. Monei displays an extra warning to users when a sensitive scope is requested. If your app only needs to read data, stick to non-sensitive scopes, you’ll see significantly higher approval rates.

Endpoints unlocked per scope

profile:read

kyc:read

wallet:read

wallet:deposit

wallet:send

wallet:withdraw

swap:execute

bills:pay

offramp:execute

escrow:create

escrow:release

escrow:refund

escrow:dispute

Resolving a dispute (POST /api/v1/escrow/:id/resolve) is not included, that endpoint is admin-only and isn’t reachable via any Connect scope. See Escrow → Disputes.

escrow:read


Requesting scopes

Pass scopes as a space-separated string in the authorization URL:

Scope best practices

Ask for the minimum. Only request scopes your app needs right now. You can always request additional scopes later by sending the user through the authorization flow again. Monei will show only the new scopes being requested. Group related scopes. If your app reads balances and pays bills, request wallet:read and bills:pay together. Don’t request wallet:withdraw unless withdrawal is a core feature. Explain sensitive scopes. If you need wallet:withdraw or swap:execute, tell users why in your app’s UI before redirecting to Monei. Informed users approve more. Handle partial grants. Even with minimal scope requests, users may decline individual scopes. See Partial Grants for how to handle this.

Partial Grants →

Users can approve fewer scopes than you request. Here’s how to handle that gracefully.

Escrow →

Deep dive into the escrow scopes, hold funds and release them on your own confirmation logic.