Skip to main content

Available Scopes

Scopes define what information your application can access and what actions it can perform on behalf of the user.

Understanding Scopes​

Scopes are passed when requesting an access token and determine API permissions.

Scope Types​

Offline Scopes (*_offline)

Purpose: Access user information permanently without requiring access token

How it works:

  • Add _offline suffix to any scope (e.g., balance_offline)
  • User confirms scope during OAuth authorization
  • After confirmation, you can access information using default credentials
  • No need to use access token for subsequent requests

Example: email_offline, balance_offline, statements_offline

Benefits:

  • Get user ID with access token
  • Access information anytime with default credentials
  • No token expiration concerns
Can Be Revoked

Users can revoke offline scopes in their Paysera account. Always handle forbidden errors.

Availability

Offline scopes only available with authorization code grant.


Optional Scopes (*_optional)

Purpose: Request access without forcing immediate user action

How it works:

  • Add _optional suffix (e.g., phone_optional)
  • Can be combined with offline: phone_offline_optional
  • Information accessible only after user meets scope conditions
  • Returns not_found error until conditions met

Example: email_optional, phone_offline_optional

Use case: Gradually request permissions as needed without blocking user flow

Combining Suffixes

When combining offline and optional: scope_offline_optional (offline first, then optional)


Extended Scopes

Purpose: Higher-risk actions requiring special authorization

How it works:

  • Cannot be requested during token request
  • Must be attached during token refresh
  • Requires code parameter (SMS confirmation code)
  • User receives SMS for verification

Example: convert_currency

Process:

  1. Request token without extended scope
  2. User receives SMS with code
  3. Refresh token with code parameter
  4. Extended scope added to token

Complete Scope List​

📋 User Information Scopes (10 scopes)
ScopeDescriptionOfflineOptional
emailGet user's confirmed email address✅✅
phoneGet user's confirmed phone number✅✅
addressGet user's address✅✅
dobGet user's date of birth✅✅
genderGet user's gender✅✅
full_nameGet confirmed name and surname (requires identification)✅✅
identification_levelGet user's identification level✅-
identityGet confirmed name, surname, nationality, and ID code (requires identification)✅✅
identification_dataGet identification information (personal code, documents)✅-
user_infoGet basic user information (locale, preferences)✅-
💰 Wallet & Transaction Scopes (4 scopes)
ScopeDescriptionOfflineOptional
balanceGet balance of user's wallet✅-
check_has_sufficient_balanceCheck if user has sufficient funds--
statementsGet account statements and transaction history✅-
wallet_listGet list of all available wallets for user✅-
💸 Payment & Transfer Scopes (4 scopes)
ScopeDescriptionOfflineOptional
incoming_paymentsAccess incoming pending payments and provide passwords✅-
outgoing_paymentsAccess outgoing pending payments with passwords✅-
initiate_transfersInitiate transfers on user's behalf--
convert_currencyMake currency conversions (Extended scope)--
🔧 Project & Service Scopes (3 scopes)
ScopeDescriptionOfflineOptional
projectsAccess and manage user's administered projects✅-
servicesGet list of enabled services or enable service for user✅-
cardsManage user's cards (create, edit, delete, link with accounts)✅-
➕ Additional Scopes (7 scopes)
ScopeDescriptionOfflineOptional
sent_transaction_requestsAccess initiated transaction requests✅-
received_transaction_requestsAccess received transaction requests✅-
user_positionProvide user's current position✅-
avatarProvide, change, and delete user's avatar✅-
manage_accountChange and delete account descriptions✅-
phone_confirmationSend transaction confirmation FLASH SMS✅-
pepGet user's list of politically exposed persons-✅

Scope Examples​

→ See how to use scopes in OAuth: Implement OAuth

Basic User Information

Request email and phone:

scope=email phone

Offline Access

Request permanent access to balance:

scope=balance_offline

→ Learn more: Understanding Scope Types

Optional Information

Request email but don't require immediate confirmation:

scope=email_optional

Combined

Request offline optional phone:

scope=phone_offline_optional

Multiple Scopes

Request several permissions:

scope=email balance statements wallet_list

→ See API usage: User Resource | Wallet Resource


Choosing Scopes​

→ Quick reference: Complete Scope List

Considerations:

  1. Minimal Permissions: Only request scopes you actually need
  2. User Experience: More scopes may reduce authorization rate
  3. Offline vs Regular: Use offline for long-term access
  4. Optional Strategy: Use for progressive permission requests
💡 Common Scope Combinations

Basic Profile Access

email phone user_info

Payment Application

balance statements incoming_payments outgoing_payments

Full User Profile

email phone address identity identification_level

Financial Dashboard

balance_offline statements_offline wallet_list_offline

Scope Behavior​

User Must Meet Requirements

Some scopes require user action before granting:

ScopeRequirement
phoneUser must add and validate phone number
addressUser must input address
full_nameUser must perform identification
identityUser must perform identification
phone_confirmationUser must add and validate phone number

If requirements not met:

  • Regular scope: User asked to complete during OAuth flow
  • Optional scope: Returns not_found until completed

Testing Scopes​

Production Testing

Wallet API does not have a sandbox environment. Test in production with small amounts and test accounts.

Testing Steps:

  1. Create test user accounts
  2. Request scopes during OAuth (OAuth Guide)
  3. Verify data access with access token
  4. Test offline scopes with default credentials

Verification:

Check scope access:

GET /rest/v1/user/me
Authorization: MAC id="access_token", ...

Response will only include fields for granted scopes.

→ API Authentication: Authentication Guide


Scope Errors​

⚠️ Common Errors & Solutions

invalid_scope

Cause: Requested scope doesn't exist or not available for your client

Solution: Check scope spelling and availability


forbidden

Cause:

  • Offline scope was revoked by user
  • Client doesn't have permission for scope

Solution: Re-request authorization or check client permissions


not_found

Cause: Optional scope not yet fulfilled by user

Solution: Wait for user to complete requirements or handle gracefully


What's Next?​

  1. Implement OAuth - Set up OAuth flow with chosen scopes
  2. Use User Resource - Access user data
  3. Use Wallet Resource - Access wallet information

Need Help?​