Overview
The Blaaiz Platform API uses OAuth 2.0 client credentials for external API access. After API Services are enabled for your account, generate your OAuth credentials from the Blaaiz Dashboard, exchange them for a short-lived access token, and send that token as a Bearer token on every API request. For older integrations, Blaaiz may still accept the legacyx-blaaiz-api-key header temporarily. That path is deprecated. New integrations should use OAuth only, and existing integrations should switch as soon as possible.
Accessing your OAuth credentials
- Sign in to the correct dashboard for your environment:
- Development: business-dev.blaaiz.com
- Production: business.blaaiz.com
- Open API & Webhooks from the dashboard menu.
- Create your OAuth credentials from that page if none exist yet.
- Copy the displayed
client_idandclient_secretand store them securely.
Your
client_secret should be treated as a one-time-visible secret. Store it
securely when it is shown. If you lose it later, rotate the OAuth
credentials from API & Webhooks and update your integration.Getting an access token
Exchange your OAuth credentials for a short-lived access token. Use the scopes that were assigned when you created your credentials:scope parameter must be a space-separated list of scopes that were assigned to your credentials. You can request all of them or a subset. The credential creation response includes the full list of available scopes in the scopes field.
The access token returned from /oauth/token is short-lived. Request a new one when it expires.
Client credentials tokens do not use refresh tokens. When the current token expires, request a new access token from /oauth/token.
Scopes
When creating OAuth credentials, you can choose which API capabilities to grant. Scopes control what your access token is allowed to do.Scope bundles
For convenience, Blaaiz provides pre-built bundles that group related scopes:| Bundle | Description |
|---|---|
full-access | All available scopes (default if none specified) |
read-only | Read access to wallets, currencies, customers, transactions, fees, and webhooks |
collections | Create collections, manage customers, and read transactions |
payouts | Create payouts, read wallets, banks, beneficiaries, and fees |
virtual-accounts | Create and manage virtual accounts and customers |
customers | Manage customers, beneficiaries, and file uploads |
Individual scopes
You can also select scopes individually for fine-grained control:| Scope | Description |
|---|---|
wallet:read | Read business wallets |
currency:read | Read supported currencies |
bank:read | Read bank and bank account lookup data |
customer:read | Read customers |
customer:write | Create, update, and upload customer KYC data |
beneficiary:read | Read customer beneficiaries |
virtual-account:read | Read virtual accounts and identification types |
virtual-account:create | Create virtual accounts |
virtual-account:close | Close virtual accounts |
collection:create | Initiate fiat collections and attach customers |
collection:crypto:create | Read crypto networks and initiate crypto collections |
collection:interac:accept | Accept Interac money requests |
payout:create | Initiate payouts |
swap:create | Initiate swaps |
transaction:read | Read business transactions |
fees:read | Read fee breakdowns |
file:upload | Generate presigned file upload URLs |
webhook:read | Read webhook configuration |
webhook:write | Create and update webhook configuration |
webhook:replay | Replay webhook deliveries |
mock:webhook:trigger | Trigger mock webhook simulations |
full-access is assigned by default.
Scopes are set when credentials are created or rotated. To change scopes,
rotate your credentials and specify the new scope set.
Rotating credentials
If yourclient_secret is compromised, or you need to change scopes, rotate your credentials from the dashboard:
- Go to API & Webhooks in your Blaaiz Dashboard.
- Click Rotate on your existing OAuth credentials.
- Optionally select a new scope bundle or individual scopes.
- Copy the new
client_secretimmediately — it is only shown once. - Update your integration to use the new credentials.
client_secret and all access tokens issued from it. Your integration will need to request a new token using the new credentials.
Using the access token
Include the access token in theAuthorization header of every external API request:
Legacy API keys
If you still have an older API-key-based integration, plan the switch to client credentials as urgent work. Legacy requests use the API key header instead of a Bearer token:Important notes
- Every external API request must use a valid Bearer access token.
- Development and production use different dashboard accounts and different OAuth credentials.
- Use the same environment for your dashboard, token request, and API base URL.
- Keep your
client_secretserver-side only.
Authentication errors
Blaaiz Platform API provides specific error messages for authentication issues:401 Unauthorized
- The Bearer token is missing.
- The Bearer token is expired, malformed, or invalid.
Ensure that you first exchanged your credentials at
/oauth/token, then send
the access token as Authorization: Bearer <token>.403 Access Denied
This error occurs in the following cases:- Your business no longer has access to API Services.
- Your request scope is insufficient for the endpoint being called.
- Your request is blocked by another policy such as IP whitelisting in production.

