ClearBank.MultiCurrency.Accounts (ClearBank v1.0.0)

Copy Markdown View Source

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

create(client, params)

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

create_virtual(client, account_id, params)

@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

get(client, account_id)

Returns a specific multi-currency account.

get_virtual(client, account_id, virtual_account_id)

@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")

list(client, opts \\ [])

Returns all multi-currency accounts.

Options

  • :page_number, :page_size
  • :currency - filter by ISO 4217 currency code

list_transactions(client, account_id, opts \\ [])

@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

list_virtual(client, account_id, opts \\ [])

@spec list_virtual(ClearBank.Client.t(), String.t(), keyword()) ::
  ClearBank.HTTP.result()

Returns all virtual accounts under a multi-currency real account.

update(client, account_id, params)

Amends a multi-currency account.

update_virtual(client, account_id, virtual_account_id, params)

@spec update_virtual(ClearBank.Client.t(), String.t(), String.t(), keyword()) ::
  ClearBank.HTTP.result()

Amends a virtual multi-currency account.