Multi-currency account management.
On multi-currency onboarding, ClearBank provisions:
- An institution master account — superset of all others
- An institution operating account
These are separate from your GBP accounts. You can create additional operational, safeguarded, and client money accounts, plus virtual accounts under general/segregated account types.
Supported currencies
Currency support depends on your agreement with ClearBank. Common currencies include EUR, USD, and others. Contact your ClearBank relationship manager.
Examples
{:ok, accounts} = ClearBank.MultiCurrency.Accounts.list(client)
{:ok, account} = ClearBank.MultiCurrency.Accounts.create(client,
account_name: "EUR Operating",
account_type: :your_funds,
currency: "EUR"
)
Summary
Functions
Creates a multi-currency real account.
Creates a virtual multi-currency account under a real account.
Returns a specific multi-currency account.
Returns a specific virtual multi-currency account.
Returns all multi-currency accounts.
Returns transactions for a multi-currency account.
Returns all virtual accounts under a multi-currency real account.
Amends a multi-currency account.
Amends a virtual multi-currency account.
Functions
@spec create( ClearBank.Client.t(), keyword() ) :: ClearBank.HTTP.result()
Creates a multi-currency real account.
Required params
:account_name- display name:account_type- account type atom (see module docs):currency- ISO 4217 code, e.g."EUR"
Optional params
:owner- owner reference:minimum_balance- minimum balance enforcement
@spec create_virtual(ClearBank.Client.t(), String.t(), keyword()) :: ClearBank.HTTP.result()
Creates a virtual multi-currency account under a real account.
Required params
:account_name- display name
Optional params
:owner- owner reference string
@spec get(ClearBank.Client.t(), String.t()) :: ClearBank.HTTP.result()
Returns a specific multi-currency account.
@spec get_virtual(ClearBank.Client.t(), String.t(), String.t()) :: ClearBank.HTTP.result()
Returns a specific virtual multi-currency account.
Examples
{:ok, virtual} = ClearBank.MultiCurrency.Accounts.get_virtual(client, "acct-uuid", "virt-uuid")
@spec list( ClearBank.Client.t(), keyword() ) :: ClearBank.HTTP.result()
Returns all multi-currency accounts.
Options
:page_number,:page_size:currency- filter by ISO 4217 currency code
@spec list_transactions(ClearBank.Client.t(), String.t(), keyword()) :: ClearBank.HTTP.result()
Returns transactions for a multi-currency account.
Options
:page_number,:page_size,:start_date,:end_date
@spec list_virtual(ClearBank.Client.t(), String.t(), keyword()) :: ClearBank.HTTP.result()
Returns all virtual accounts under a multi-currency real account.
@spec update(ClearBank.Client.t(), String.t(), keyword()) :: ClearBank.HTTP.result()
Amends a multi-currency account.
@spec update_virtual(ClearBank.Client.t(), String.t(), String.t(), keyword()) :: ClearBank.HTTP.result()
Amends a virtual multi-currency account.