Exchange client credentials or authorisation grants for OAuth 2.0 access tokens. All grant types use POST /oauth/token with basic authentication (your client_id and client_secret).
Depending on the grant type, this endpoint issues either a client credentials token or a user token.
Client credentials token
An application-level token for requests that aren't tied to a specific Wise user, such as generating un-authenticated quotes and subscribing to application webhooks. Valid for 12 hours.
client_credentials— the only grant type for this token.
User token
A token for making API calls on behalf of a specific Wise user, such as creating transfers and managing balances. Access tokens are valid for 12 hours and can be refreshed using a refresh token. Grant types:
registration_code— for partners that create Wise users via API. Exchanges a registration code for a user access token and refresh token.authorization_code— for partners using the OAuth redirect flow. Exchanges an authorisation code for a user access token and refresh token.refresh_token— obtain a new user access token without requiring the user to re-authorise.
Managing token expiration
Access tokens are valid for 12 hours. You can request a new access token whenever it's close to expiring — there is no need to wait for the actual expiration to happen first. Depending on how your application uses the Wise Platform API, requesting a new access token before attempting a series of API calls on behalf of an individual user will avoid issues with expired access tokens.
Exchange credentials or authorisation grants for an OAuth 2.0 access token.
The grant_type field determines which parameters are required and which response fields are returned.
See managing token expiration for guidance on refreshing tokens before they expire.
Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.
- Production Environmenthttps://api.wise.com/2026Q3/oauth/token
- Sandbox Environmenthttps://api.wise-sandbox.com/2026Q3/oauth/token
- client_credentials
- registration_code
- authorization_code
- refresh_token
curl -i -X POST \
-u '<client_id>:<client_secret>' \
https://api.wise.com/2026Q3/oauth/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-d grant_type=client_credentialsToken created successfully.
Echoed back when X-External-Correlation-Id was included in the request. Learn more.
Access token to be used when calling the API. Valid for 12 hours.
Refresh token used to obtain new user access tokens without requiring the user to re-authorise. Valid for up to 20 years.
Only returned for user access token grant types (registration_code, authorization_code, refresh_token).
Refresh token expiry time in seconds.
Only returned for user access token grant types (registration_code, authorization_code, refresh_token).
Refresh token expiration timestamp (UTC).
Only returned for user access token grant types (registration_code, authorization_code, refresh_token).
{ "access_token": "01234567-89ab-cdef-0123-456789abcdef", "token_type": "bearer", "refresh_token": "01234567-89ab-cdef-0123-456789abcdef", "expires_in": 43199, "expires_at": "2025-04-11T03:43:28.148Z", "refresh_token_expires_in": 628639555, "refresh_token_expires_at": "2045-03-12T13:49:23.552Z", "scope": "transfers", "created_at": "2020-01-01T12:33:33.12345Z" }