# 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 that allow the account holder, or their customer, to receive funds like a local in that country's currency (for example, an IBAN + BIC for EUR, or account number + sort code for GBP).


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

Multi-Currency Accounts Structure Diagram
Bank account details
Account details for a specific currency balance account are optional and not issued by default when opening a balance. Go to the [Bank account details guide](/guides/product/accounts/bank-account-details) to learn about creating, viewing, and managing bank account details.

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