Multi Currency Accounts
This document provides guidelines for the implementation of multi-currency accounts for all partners. It's broken down into key areas and describes the logic to:
- Determine a user's eligibility for multi-currency accounts.
- Determine which balance account currencies are supported.
- Create balance accounts for personal and business profiles.
- Add bank account details to eligible balance accounts.
- Top up a balance account from an external source.
- Send money from a balance account.
- Convert funds between two balances in different currencies.
- View the transaction history for a balance account.
We've created a postman collection that follows along the same flows as documented below. Please use this to test your integrations. Host environment variable is https://api.sandbox.transferwise.tech
In the collection, we have done a few things to make life a bit easier:
- Included our sandbox environment, where you can fully test your integration.
- Included a set of the common calls required to create new users and profiles.
- Included tests that automatically copy details from previous calls to environment variables.
- Examples of successful call results for quick reference.
All of these additions should allow you to easily test through the entire flow with minimal efforts.
We recommend as well that you fork the collection. This allows you to receive updates and bug fixes as they become available.
Fork in PostmanThe structure of a multi-currency account is as follows:
- A User has a profile (personal or business).
- A Profile has the ability to open a Multi-Currency Account.
- A Multi-Currency Account has the ability to have multiple Balance Accounts in different currencies.
- A Balance Account has a specific currency and can contain a set of Bank Account Details.
- Bank Account Details are a set of local account details.
The diagram below illustrates the relationships between each of the components highlighted above.
For details on authenticating against our API, please see Authenticating with the Wise API.
Most endpoints included in this guide require a profile ID and/or a balance ID as part of the path. These are denoted with {{profileId}}
and {{balanceId}}
throughout the guide, and are obtained from previous requests to endpoints as outlined.
Accept-Language
Each endpoint accepts an additional header of Accept-Language
. This should include an ISO 639-1 language code. This will default to en
if it is not passed as part of the request. The examples in this guide include the header for those calls that return translated strings.
Content-Type
Endpoints that include a body require a Content-Type: application/json
header to be included. This is included in the examples where required.