---
title: "Get a single bank account, with historical and entity data, by unique token or identifier."
method: GET
path: "/bank-accounts/{account_identifier_or_token}"
tags: ["Bank Accounts"]
---

# Get a single bank account, with historical and entity data, by unique token or identifier.

`GET /bank-accounts/{account_identifier_or_token}`

## Request

- Base URL: `https://sandbox.alloy.co/v1`
- URL: `https://sandbox.alloy.co/v1/bank-accounts/{account_identifier_or_token}`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `/oauth/bearer`
  - HTTP basic
- TypeScript: <https://skmtc.dev/alloy/apis/alloy-api/docs/bank-accounts/:account_identifier_or_token/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieves a single bank account uniquely defined by a bank account token or external account identifier. Bank account tokens are alphanumeric characters that start with a prefix "A-". External account identifiers are strings provided by services or clients.

## Path parameters

- `account_identifier_or_token` string, required

## Query parameters

- `page` number
- `per_page` number

## Response `200`

Returns the bank account matching bank account token.

- object
  - `account_token` string
  - `timestamp` string, date-time: ISO 8601 timestamp of when the event occurred.
  - `external_account_id` string: Your system's unique identifier for the bank account.
  - `external_entity_id` string: Your system's identifier for the entity this event is attributed to: the entity whose source workflow runs, whose data is hydrated into the resulting evaluation, and against which any published attribute values on this event are recorded. This has no effect on which entities are linked to the account — `entities` controls that, as do `add_entities` and `remove_entities` on `bank_account_updated` — but it should name an entity the account already belongs to. Required whenever the event triggers a source workflow or carries published attribute values; with no entity to attribute the event to, the request is rejected with a `400`. It can be omitted for an event that is neither monitored nor carrying published attributes, but including it is recommended so the integration keeps working if a source workflow is added later. When both this and `entity_token` are supplied, `entity_token` wins. Click [here](https://developer.alloy.com/public/docs/api-request#source-workflow-impact-on-entity-fields) for more information.
  - `external_session_id` string, nullable: Optional identifier for correlating multiple events that belong to the same session.
  - `entity_token` string, nullable: Alloy-issued token of the entity this event is attributed to: the entity whose source workflow runs, whose data is hydrated into the resulting evaluation, and against which any published attribute values on this event are recorded. Takes precedence over `external_entity_id` when both are supplied. This has no effect on which entities are linked to the account — `entities` controls that, as do `add_entities` and `remove_entities` on `bank_account_updated` — but it should name an entity the account already belongs to. Required whenever the event triggers a source workflow or carries published attribute values; with no entity to attribute the event to, the request is rejected with a `400`.
  - `account_class` 'credit' | 'deposit' | 'brokerage' | 'loan', nullable: The type of account. One of: credit, deposit (checking or savings), brokerage, loan.
  - `account_name` string, nullable: Descriptive name for the account.
  - `account_number` string: Account number, as it appears on statements or checks.
  - `routing_number` string, nullable: The ABA routing number for the bank account.
  - `opening_date` string, date-time, nullable: Date the account was opened.
  - `maturity_date` string, date-time, nullable: Date the account matures (for term-based accounts such as CDs or loans).
  - `closing_date` string, date-time, nullable: Date the account was or will be closed.
  - `cif_number` string, nullable: Customer Information File (CIF) number linking this account to a customer record in your core banking system.
  - `card_network` string, nullable: Payment card network associated with the account (e.g. Visa, Mastercard).
  - `country_code` string, nullable: 2-letter country code for the account.
  - `currency` string, nullable: Currency of the account (e.g. USD).
  - `product_code` string, nullable: Internal product code identifying the account product type in your system.
  - `product_name` string, nullable: Human-readable name of the account product.
  - `status` string, nullable: Current status of the account as defined in your system.
  - `status_detail` string, nullable: Free-form companion to the status field. Commonly used to communicate fraud labels on closed or restricted accounts (e.g. Fraud, potentialFraud, confirmedFraud). Any custom value is accepted.
  - `credit_limit` number, nullable: Credit limit of the account, in cents.
  - `account_balance` number, nullable: Current balance of the account, in cents.
  - `account_type_status` 'Written Off' | 'Active' | 'Refinanced' | 'Past Due' | 'Paid Off' | 'Cancelled', nullable: Lifecycle status of the account from a credit or loan servicing perspective.
  - `status_fraud` 'fraud' | 'not fraud', nullable: Indicates whether this account has been flagged as fraudulent. Set to fraud when the account is confirmed or suspected fraudulent, not fraud otherwise.
  - `entity_group_token` string, nullable: Alloy-issued token for the entity group associated with this account. When present, at least one entry in entities is required.
  - `external_entity_group_id` string, nullable: Your system's identifier for the entity group associated with this account. When present, at least one entry in entities is required.
  - `entities` union[]: The complete set of entities linked to this account. On an update event this is a full replacement, not an addition: Alloy unlinks any entity already linked to the account that is not present here, so a partial list silently removes co-holders. Sending an empty array unlinks every entity. Omitting the field entirely leaves the account's existing links untouched. On `bank_account_updated` you can instead add or remove individual entities without asserting anything about the rest of the holder set, using `add_entities` and `remove_entities`. Neither can be combined with this field. Every entity referenced must already exist in Alloy, or the request is rejected with a `404`.
    - union
      - object
        - `account_holder_type` 'primary' | 'secondary' | 'power_of_attorney' | 'authorized_signer' | 'authorized_user' | 'beneficiary' | 'joint_owner' | 'custodian' | 'guardian' | 'trustee'
        - `external_entity_id` string, required
        - `entity_token` string
      - object
        - `account_holder_type` 'primary' | 'secondary' | 'power_of_attorney' | 'authorized_signer' | 'authorized_user' | 'beneficiary' | 'joint_owner' | 'custodian' | 'guardian' | 'trustee'
        - `external_entity_id` string
        - `entity_token` string, required
  - `history` object[]
    - `timestamp` string, date-time
    - `status` string
    - `status_detail` string
    - `credit_limit` number
    - `account_balance` number
    - `status_fraud` 'fraud' | 'not fraud'
  - `entity_groups` object[]
    - `entity_group_token` string
    - `entity_group_name` string
    - `entity_group_type` 'business' | 'joint_account' | 'membership' | 'merchant'

## Other responses

- `404`: Unable to find the bank account token.

## Changes

- **2026-11-03** `615aa97a5ddb`: 2 info
  - added `#/components/schemas/EventsBankAccount` to the response body `allOf` list for the response status `200`
  - removed `subschema #2` from the response body `allOf` list for the response status `200`

[Operation history](https://skmtc.dev/alloy/apis/alloy-api/changes/bank-accounts/:account_identifier_or_token/get.md)

---

[API](https://skmtc.dev/alloy/apis/alloy-api.md) - [All operations](https://skmtc.dev/alloy/apis/alloy-api/llms.txt) - [OpenAPI document](https://skmtc.dev/alloy/apis/alloy-api/revisions/615aa97a5ddb?raw)
