Skip to main content
Bastion uses a two-tier hierarchy to manage customers and their financial operations: Identities at the top level and Accounts beneath them. This separation provides flexibility for compliance, multi-wallet scenarios, and organizational structures.

Identity

An Identity represents a verified individual or business entity in the Bastion system. It serves as the compliance and regulatory anchor for all financial activity. Key properties of an Identity: Each identity must have a unique email address. Bastion does not allow the same email address to be used across multiple identities for stablecoin conversions.

identity.status values

identity.sub_status values

Every sub-status except RFI_REQUIRED only appears while status is PENDING_ONBOARDING. RFI_REQUIRED can also be set on an ACTIVE or SUSPENDED identity when Compliance requests additional information after onboarding. An ACTIVE identity keeps transacting while the RFI is open, and sub_status clears once it is fulfilled.

How an RFI interacts with other changes

  • During onboarding, Bastion can raise an RFI at any step. When it is fulfilled, sub_status returns to the step the identity was at, or to the step it has reached since, for example IDV_REQUIRED.
  • Bastion accepts resubmitted KYC/KYB data while an RFI is open. sub_status stays RFI_REQUIRED until the RFI is fulfilled, and no identity_status_update webhook fires for the resubmission.
  • Any change of status (approval, rejection, suspension, reinstatement or termination) closes an open RFI and clears RFI_REQUIRED. The exception is a reinstatement that Bastion makes with sub_status RFI_REQUIRED: it keeps an open RFI open, or opens a new one.

Account

An Account belongs to an Identity and is the operational unit for financial activity. This is where balances live, transactions originate, and wallet addresses are managed. Key properties of an Account:

account.status values

How identities and accounts relate

An Identity owns one or more Accounts. Each Account has its own balances, wallet addresses, and transaction history, isolated from other Accounts under the same Identity.
An identity record owns one or more accounts, each with its own balances, wallets, and transactions

Account types

Every account is one of two types. SEGREGATED accounts hold their own on-chain wallet addresses with chain-specific balances. OMNIBUS accounts pool funds in a custody vault, and Bastion tracks each account’s balance on an internal ledger. Both are fully custodial under Bastion’s US regulated licensing, and your platform uses the same APIs either way. See Custody for how each model holds assets and how balances are returned.

Common patterns for multiple accounts

Compliance

An Identity must pass compliance verification (KYC for individuals, KYB for businesses) before accounts can be created or financial operations can begin.
Identity lifecycle: create identity, submit compliance, await approval, create accounts, transact
  • Identity status must be ACTIVE before creating an account.
  • allowed_to_transact_fungibles must be true before submitting crypto transfers.
  • fiat_operations_enabled must be true before initiating on/off-ramp conversions.
  • Compliance requirements vary by jurisdiction and identity type. Business identities typically require more documentation (articles of incorporation, beneficial owner information).
  • Some operations may require additional verification even after initial approval.
For step-by-step onboarding instructions, see Onboard an individual customer or Onboard a business customer.