---
title: "List selectable virtual-account banks"
method: GET
path: "/v0/customers/{id}/virtual-account-banks"
tags: ["Customers"]
---

# List selectable virtual-account banks

`GET /v0/customers/{id}/virtual-account-banks`

## Request

- Base URL: `https://orchestration.seismic.systems/api`
- URL: `https://orchestration.seismic.systems/api/v0/customers/{id}/virtual-account-banks`
- Auth: API key in header `Api-Key`

The banks this customer can be issued a virtual account at in `currency`, right now, in display order. Send one of these as `bank` when creating the virtual account to choose where it is held; omit `bank` and a bank is chosen for you.

The order is the same one `GET /v0/virtual-account-banks` serves the whole catalog in — render the list as it arrives.

Only banks the customer is already cleared for are listed, so an empty list is a normal answer. It can mean there is no choice to make for this customer and currency, or that the customer's virtual-account review has not cleared any bank yet — in which case a create naming no bank is refused with `VirtualAccountNotApproved`, naming where the review stands. `GET /v0/customers/{id}/virtual-account-approvals` shows where each clearance stands. Clearances are cached for up to an hour, and a currency's own virtual-account review for 45 seconds to 5 minutes depending on where it stands, so a freshly granted one can take that long to appear.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `currency` string, required

## Response `200`

Banks the customer can select.

- VirtualAccountBanksResponse
  - `banks` VirtualAccountBank[], required
    - `bank` string, required: Identifier for the bank. This is the value to send as `bank` when creating the virtual account.
    - `country` string, required: ISO 3166-1 alpha-2 country the account would be domiciled in.
    - `name` string, required: Name of the institution, for display. Two banks can share a name when the same institution offers both a first- and a third-party bank — `party` is what separates them, and `bank` is what selects one.
    - `party` 'third_party' | 'first_party', required: Who may pay into a bank's virtual accounts. `third_party` accepts a payment from anyone, including the account holder. `first_party` accepts only the holder's own payment and rejects a payment from anyone else, so third party is a superset of first party.

## Other responses

- `401`: Missing or invalid API key.
- `404`: Customer not found.

---

[API](https://skmtc.dev/seismic/apis/seismic-orchestration-api.md) - [All operations](https://skmtc.dev/seismic/apis/seismic-orchestration-api/llms.txt) - [OpenAPI document](https://skmtc.dev/seismic/apis/seismic-orchestration-api/revisions/08ada1f159fa?raw)
