Skip to main content

Introduction

Account numbers issued through Lead’s platform are standard bank account numbers assigned to your end customers. From the customer’s perspective, they function like any other checking account number and can be used to send and receive funds.

Each account number is associated with an account that can store a balance and process funds.
Example Acme Inc Customer FBO:  └── Account     ├── Account Number → End Customer ABC     ├── Account Number → End Customer XYZ     └── Account Number → End Customer 123

Account Structure

Depending on your program structure, end customer funds may be held in one of two models:
  • Pooled (omnibus) account
  • Individual demand deposit account (DDA)
Account numbers can be provisioned under either model. Even when end-customer funds are held in a pooled account, unique account numbers can still be assigned to individual customers. In these cases, the end customer owns their assigned account numbers, and transactions initiated through those account numbers correspond to that customer’s funds. In most situations, the underlying account structure does not materially change how account numbers operate.
The primary difference is who maintains the ledger of individual customer balances. When a pooled account holds the funds, you are responsible for maintaining this ledger.

Pooled Accounts

A pooled account — structured as a For Benefit Of (FBO) account — is a single account that Lead Bank holds, aggregating funds belonging to multiple end customers. While Lead maintains the ledger (balance and transaction history) of the pooled account, you are responsible for maintaining the ledger for individual end-customers and reporting this information to Lead daily. Key characteristics:
  • One pooled account holds funds for many customers.
  • You (or a third-party ledger provider) must maintain the ledger of individual customer balances that collectively make up the pooled funds.
  • You can still assign individual account numbers to each customer.
This model centralizes funds at Lead while program-level systems maintain customer-level accounting. 
Depending on your program design, a daily reconciliation process may be required to ensure your ledger balances match the pooled account balance held at Lead.

Demand Deposit Accounts (DDAs)

A demand deposit account (DDA) is an individual bank account opened in the name of the owner. Most commonly structured as checking accounts, DDAs allow customers to access funds on demand without advance notice. Key characteristics:
  • Funds are not pooled with other customers at the account level.
  • No program-level pooled ledger is required to represent ownership of funds.

Considerations

From the perspective of Lead’s API and account number functionality, there are minimal differences between issuing account numbers backed by:
  • Pooled (omnibus) accounts
  • Individual demand deposit account (DDA)
The primary operational distinction is ledger ownership.  In a pooled structure, you are responsible for maintaining (directly or via a third-party provider) the ledger of individual customer balances that comprise the pooled account. Pooled accounts can also provide significant scaling and pricing advantages compared to opening individual DDAs for each end customer.

Relationship Between Account & Account Number Objects

On Lead’s platform, account objects represent bank accounts on Lead’s core system. Each account object is identified by an account_id and is created with a default account number, represented by an account_number_id.
Additional account_number objects can be created and assigned to any active entity_id. As a result, multiple account numbers can belong to the same entity (individual, sole proprietor, or business).

Example

The following example illustrates the relationship between Acme Inc’s FBO account, which contains account numbers associated with its end customers, and its operating account.
Example of the relationship between account and account numbers.

Account Number Object

{
  "id": "account_number_123",
  "account_id": "account_xyz123",
  "entity_id": "entity_xyz123",
  "client_customer_id": "client_customer_abc123",
  "routing_number": "026073150",
  "account_number": "1234567890",
  "status": "active",
  "metadata": {},
  "ach_controls": {
    "originator_id": "originator_abc123",
    "incoming": {
      "accept_credit": true,
      "accept_debit": true,
      "counterparty_filter": "allowlist_only",
      "counterparty_company_ids_allowlist": [
        "1234567890"
      ]
    },
    "outgoing": {
      "counterparty_filter": "allowlist_only",
      "counterparty_account_numbers_allowlist": [
        {
          "type": "us_domestic",
          "account_number": "987654321",
          "routing_number": "026073150"
        }
      ]
    }
  },
  "wire_controls": {
    "incoming": {
      "counterparty_filter": "accept_all",
      "counterparty_account_numbers_allowlist": null
    },
    "outgoing": {
      "counterparty_filter": "allowlist_only",
      "counterparty_account_numbers_allowlist": [
        {
          "type": "us_domestic",
          "account_number": "987654321",
          "routing_number": "026073150"
        }
      ]
    },
    "outgoing_international": {
      "counterparty_filter": "allowlist_only",
      "counterparty_account_numbers_allowlist": [
        {
          "business_identifier_code": "string",
          "account_identifier": [
            {
              "type": "enum(IBAN|account_number)",
              "value": "987654321"
            }
          ]
        }
      ]
    }
  },
  "internal_transfer_controls": {
    "incoming": {
      "counterparty_filter": "allowlist_only",
      "counterparty_account_number_ids_allowlist": [
        "account_number_abc123"
      ]
    },
    "outgoing": {
      "counterparty_filter": "accept_all",
      "counterparty_account_number_ids_allowlist": null
    }
  },
  "created_at": "2025-08-14T20:26:47.960Z",
  "updated_at": "2025-08-14T20:26:47.960Z"
}

Attributes

AttributeTypeDescription
idstringUnique identifier for this Account Number object in Lead’s system.
account_idstringThe account_id this account number is associated with for settlement purposes.
entity_idstringThe associated entity_id in Lead’s system assigned for this account number. Used for API-based integrations.

Note: only one of client_customer_id OR entity_id should be set when setting an account number to active.
client_customer_idstringThe customer ID in the client’s system that matches the record in the Customer file. Used for file-based integrations.

Note: only one of client_customer_id OR entity_id should be set when setting an account number to active.
routing_numberstringThe routing number to provide to counterparties for ACH or Wire transfers.
account_numberstringNumeric value of the account number provided to counterparties for ACH and Wire transfers. If allocated by Lead, it will be a 12-digit value.
statusenumCurrent status of this account number. Possible values: unassigned: the account number was created without a valid customer assigned.

active: the account number is eligible for transfers.

inactive: the account number is temporarily ineligible for transfers.

canceled: the account number is closed and permanently ineligible for transfers.
metadataobjectA set of key-value pairs for storing additional information.