Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.busha.io/llms.txt

Use this file to discover all available pages before exploring further.

Scopes define exactly what your app can do on a user’s behalf. Busha has a flat allowlist of 12 scopes. Anything outside this list is rejected at registration with invalid_scope. Request only what your integration needs. Users see your scope list on the consent screen — asking for more depresses conversion. Users can only Approve or Cancel the full bundle; they cannot cherry-pick individual scopes. Admin approves your partner client overall (not per scope). After approval, approved_scopes = requested_scopes.

Identity scopes

These are protocol-level scopes. Busha hides them from the consent screen, but they control whether you receive an id_token and a refresh_token. Request them if you want those tokens.
ScopeWhat it grants
openidOIDC marker. Required for id_token issuance.
offline_accessRequired for refresh_token issuance. Without it, the access token expires after one hour with no way to renew the session.

Wallets and balances

ScopeWhat it grants
balances:readList the user’s wallets and their current balances.
transactions:readRead the user’s transaction history.

Trading

ScopeWhat it grants
quotes:readRead price quotes. No rate commitment.
quotes:writeLock a price quote. This commits the partner to the rate — treat as money movement.

Transfers

ScopeWhat it grants
transfers:readRead the user’s transfer history.
transfers:writeInitiate outgoing transfers on the user’s behalf. Real money movement.

Wallet addresses

ScopeWhat it grants
addresses:readRead the user’s existing wallet deposit addresses.
addresses:writeGenerate new deposit addresses for the user.

Recipients

ScopeWhat it grants
recipients:readRead the user’s saved transfer recipients.
recipients:writeAdd, update, or delete saved recipients on the user’s behalf.

Common combinations

Integration typeRecommended scopes
Read-only portfolio dashboardopenid offline_access balances:read transactions:read
Deposit flowopenid offline_access balances:read addresses:read addresses:write
Outbound transfersopenid offline_access balances:read transactions:read recipients:read recipients:write transfers:read transfers:write
FX / trading widgetopenid offline_access balances:read quotes:read quotes:write
Always include openid and offline_access in production integrations unless you deliberately want a single-session, one-hour token with no refresh capability.