Sub Accounts

Overview

Sub-accounts allow you to create segregated accounts under your main institution account. This enables you to manage funds for different purposes or customers while maintaining them under your primary account structure. Sub-accounts are particularly useful for:

  • Creating virtual accounts for specific customers
  • Segregating funds for different business purposes
  • Managing funds on behalf of customers
  • Tracking balances and transactions separately

There are two main types of sub-accounts:

  • Institution sub-accounts - For your business purposes
  • Customer sub-accounts - For managing funds on behalf of your customers

Sub-accounts share the same currency as their parent account and can be configured to settle deposits to a separate main account (typically the parent main account).


The SubAccount Object

PropertyTypeRequiredDescription
idstring (UUID)Unique identifier for the sub-account.
stateenumCurrent state of the sub-account (ACTIVE, FROZEN, CLOSED).
created_datestring (datetime)Date and time when the sub-account was created.
updated_datestring (datetime)Date and time when the sub-account was last updated.
currencystringCurrency code of the sub-account (ISO 4217).
currency_precisionnumberPrecision of the account currency, e.g. 2 for USD, meaning a balance value of 10000 is $100.00.
typeenumType of the sub-account (VIRTUAL_EXTERNAL).
namestringName of the sub-account holder.
balanceobjectCurrent balance information for the sub-account.
balance.availablenumberAvailable balance in minor units (cents/pence).
balance.pendingnumberTotal value of pending transactions in minor units (cents/pence)
deposit_addressesarrayList of payment methods or deposit addresses associated with this sub-account.
settlement_account_idstring (UUID)ID of the settlement account associated with this sub-account.
parent_account_idstring (UUID)ID of the parent VIRTUAL_MASTER tracking account associated with this sub-account.
customerobjectCustomer associated with this sub-account (only present for customer sub-accounts).
customer.idstring (UUID)ID of the customer associated with this sub-account.
customer.namestringName of the customer associated with this sub-account.
customer.typeenumType of the customer associated with this sub-account (INDIVIDUAL, BUSINESS).
customer.client_referencestringClient reference of the customer associated with this sub-account.
client_referencestringYour custom reference identifier for this sub-account.

📘

Account states:

  • PENDING_DEPOSIT_ADDRESS: We're still processing deposit details generation
  • ACTIVE: Account is fully operational
  • CLOSED: Account has been closed
  • FROZEN: Account is temporarily suspended

🚧

Note on PENDING_DEPOSIT_ADDRESS state

This state can occur when we cannot generate details instantly (e.g., due to bank service failures) and will transition to ACTIVE when complete. You should use the banking.sub-account.activated event as this guarantees the account is created and ready for use