> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.bridge.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Virtual accounts

## Overview

Bridge **virtual accounts are permanent, reusable fiat deposit addresses** that convert incoming fiat into crypto and deliver it to your specified destination (e.g. a wallet address).

They support multiple currencies and provide customers with local deposit details like account numbers and routing codes. For example, a USD virtual account gives your customer a U.S. account and routing number for ACH or wire transfers.

**Supported Payment Rails**

* **USD Virtual Accounts** - U.S. bank account and routing numbers issued in your customer’s name.
* **EUR Virtual Accounts** - Euro-denominated IBANs for accepting SEPA payments.
* **MXN Virtual Accounts** - CLABE account numbers for receiving SPEI (Mexico) payments.
* **BRL Virtual Accounts** - BR codes for receiving PIX payments.
* **GBP Virtual Accounts** - Unique account number to receive FPS (U.K.) Payments
* **COP Virtual Accounts** - Unique account number to receive Bre-B (CO) Payments

Developers use virtual accounts to simplify global payments, custody stablecoins (e.g. USDB), and enable programmable flows. A common pattern: create a virtual account for a customer, route funds into a Bridge wallet, and earn yield.

<Note>
  **Customers must be onboarded** and KYC/KYB-approved before creating virtual accounts.
</Note>

<img src="https://mintcdn.com/bridge-727305d3/cQZ0TmcY4hf9xT0k/images/132dbb7a0c26b0bb79c8de61164c2db8535bd71816f6cd897f8030186fa91276-image.png?fit=max&auto=format&n=cQZ0TmcY4hf9xT0k&q=85&s=986824c30d5792baad7e7694db704bfe" alt="132dbb7a0c26b0bb79c8de61164c2db8535bd71816f6cd897f8030186fa91276-image.png" width="1272" height="774" data-path="images/132dbb7a0c26b0bb79c8de61164c2db8535bd71816f6cd897f8030186fa91276-image.png" />

***

## Creating virtual accounts

<CreateAVirtualAccount />

## **Optional Blockchain memo**

For memo-based blockchains such as Stellar, you may include an optional `blockchain_memo` in the destination. Bridge will attach the memo to payments sent to the destination address.

```bash theme={null}
curl --location --request POST 'https://api.bridge.xyz/v0/customers/cust_alice/virtual_accounts' \
--header 'Content-Type: application/json' \
--header 'Api-Key: <Api-Key>' \
--header 'Idempotency-Key: <Unique Idempotency Key>' \
--data-raw '{
  "source": {
    "currency": "usd",
  },
  "destination": {
    "payment_rail": "stellar",
    "currency": "usdc",
    "address": "STELLARADDRESS",
    "blockchain_memo": "STELLARBLOCKCHAINMEMO"
  }
}'
```

## **Amounts**

* `amount`- For transaction-related events in the destination currency (`payment_processed`, `payment_submitted`), this amount is the final total amount of funds sent to the destination. For all other events, which use the source currency, this is the initial amount received from the source.
* `subtotal_amount`- The amount of funds received from the source minus any fiat fees: developer fee and exchange fee. This is always in the source currency.

Refer [here](/platform/orchestration/fees-and-mins/mins) on minimum amounts for transactions.

## **Developer Fees**

Refer [Developer Fees](/platform/orchestration/fees-and-mins/devfees).

## **Other Fees**

* `exchange_fee_amount`- The fee for exchanging one currency to another, in the source currency. This may be 0.
* `gas_fee`- The fee for sending funds on chain, in the destination currency. This is usually 0 for most currencies and chains.
