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

# List virtual-account approvals

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

## Request

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

Every virtual account this customer can be issued — currency, country, backing bank, and its maintenance fee where one applies — with the review status of each. Only entries with status `approved` can be opened today. Narrowed to the currencies your organization is approved for. Where a currency has its own virtual-account review, an entry per bank reports where that review stands at the bank; `not_started` there means an approval that covers other banks, and is resolved by that review rather than by `POST /v0/customers/{id}/kyc/sync-approvals`. Otherwise `not_started` means the customer has never been verified for the account type; if they were onboarded before it became available, `sync-approvals` starts the missing verification. Where the account has its own review, a create at a bank whose entry is not `approved` is refused with `VirtualAccountNotApproved`; elsewhere such a bank is `VirtualAccountBankNotAvailable`. Approvals 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 approval can take that long to appear.

## Path parameters

- `id` string, uuid, required

## Response `200`

The customer's virtual-account approvals.

- VirtualAccountApprovalsResponse
  - `virtual_accounts` VirtualAccountApproval[], required
    - `bank` string, nullable: Bank backing the account, as the account catalog spells it — the same value `GET /customers/{id}/virtual-account-banks` serves and the create payload takes.
    - `country` string, nullable: ISO 3166-1 alpha-2 country the account is domiciled in.
    - `currency` string, nullable: Currency the account collects in.
    - `maintenance_fee` number, double, nullable: Flat maintenance fee for this virtual account, in `currency`.
    - `status` 'approved' | 'pending' | 'action_required' | 'rejected' | 'not_started', required: Where an approval stands, in the only terms a caller can act on. The verbatim upstream wording is preserved alongside as `status_detail` for operators who need the review stage.
    - `status_detail` string, nullable: The reviewer's own wording behind `status`, as on [`PaymentApproval`].

## Other responses

- `401`: Missing or invalid API key.
- `404`: Customer not found.
- `503`: Virtual-account approvals are unavailable on this environment.

---

[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)
