> ## Documentation Index
> Fetch the complete documentation index at: https://v2.docs.conduit.financial/llms.txt
> Use this file to discover all available pages before exploring further.

# Virtual Accounts

> Client-facing account abstractions for receiving funds

## Overview

A Virtual Account is the customer-facing account abstraction for receiving funds in an asset. Clients see the Virtual Account, not the underlying provider bank accounts that Conduit provisions and manages internally.

Virtual Accounts are scoped to a customer and asset. For fiat assets, each active Virtual Account can expose deposit instructions grouped by collection rail, such as ACH, Fedwire, RTP, or SWIFT.

## Lifecycle

| Status               | Meaning                                                                                            |
| -------------------- | -------------------------------------------------------------------------------------------------- |
| `pending_activation` | The Virtual Account has been requested and Conduit is provisioning provider-side backing accounts. |
| `active`             | At least one backing account is active and deposit instructions can be returned.                   |
| `disabled`           | The Virtual Account is no longer available for new deposits.                                       |

## Deposit Instructions

Deposit instructions are returned on the Virtual Account as `depositInstructions[]`. Each element is a **deposit block** — a discriminated union grouped by collection method rather than individual rails.

### Block types

| `type`         | Description                                                                                                                                                                               |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `domestic_usd` | Domestic USD rails (ACH, Fedwire, RTP). Includes `accountNumber`, `beneficiaryName`, `beneficiaryAddress`, `bank`, `paymentReference`, and a `rails[]` array.                             |
| `swift_usd`    | International SWIFT transfers. Includes `accountNumber`, `iban`, `beneficiaryName`, `beneficiaryAddress`, `bank`, `correspondent`, `paymentReference`, and a one-element `rails[]` array. |

### Rail entries

Each block contains a `rails[]` array describing the individual networks available for that block:

Each `domestic_usd` rail entry includes `routingNumber` and, depending on the rail:

* **ach**: `sameDayEligible` (boolean) reflects same-day ACH eligibility for this bank.
* **fedwire**: no `sameDayEligible` or `networks` fields.
* **rtp**: `networks` lists the supported RTP networks (e.g. `["tch", "fednow"]`); `fednowCap` is set when `fednow` is supported.
* **swift** entries carry only the `rail` discriminant.

### Bank information

The optional `bank` object on each block contains `legalName`, `address`, `bic`, and `abas` (with `fedwire`, `ach`, and `rtp` routing numbers). When `bank` is `null` the information is not disclosed for that block.

Conduit does not expose provider names, bank-account ids, payment-routing rule ids, or raw provider metadata in client-facing Virtual Account responses.

## API Surface

Use the customer-scoped read endpoints to retrieve Virtual Accounts:

* `GET /v2/customers/:customerId/virtual-accounts`
* `GET /v2/customers/:customerId/virtual-accounts/:virtualAccountId`

The list endpoint accepts an optional `?asset=USD` query parameter to filter by asset code (case-insensitive). Both endpoints require the customer to have the `virtual_account` feature enabled.
