# Multi Currency Accounts

This document provides guidelines for the implementation of multi-currency accounts for all partners.

Wise Platform image
br
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.


Multi Currency Accounts Postman Collection
## Multi-currency account structure 

The structure of a multi-currency account is as follows:

1. A ***User*** has a profile (personal or business).
2. A ***Profile*** has the ability to open a ***Multi-Currency Account***.
3. A ***Multi-Currency Account*** has the ability to have multiple ***Balance Accounts*** in different currencies.
4. A ***Balance Account*** has a specific currency and can contain a set of ***Bank Account Details***.
5. ***Bank Account Details*** are a set of local account details.


The diagram below illustrates the relationships between each of the components highlighted above.

Multi-Currency Accounts Structure Diagram
## Authentication 

For details on authenticating against our API, please see [Authenticating with the Wise API](/guides/developer/auth-and-security).

## Profiles 

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.

## Additional headers 

### 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.