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

# Virtual bank accounts (IBANs)

> Assign an IBAN to an account to receive fiat by SEPA, auto-converted to crypto — and how the reference code routes the funds.

A virtual bank account (VBA) gives an account its own **IBAN** to receive fiat. Incoming SEPA credits are automatically converted to a stablecoin and credited to the account's wallet.

## Prerequisites

The account must be [verified](/guides/finance/kyc-verification) and have a linked account-holder party. Today VBAs are **EUR only** — creating one provisions a `EUR_SEPA` IBAN.

## Create a virtual bank account

Provide a display `name`, the fiat `inCurrency` (`EUR`), the `targetCryptocurrency` to convert to, and a unique `idempotencyKey`:

```bash theme={null}
curl -X POST https://api.venlyfinance.com/v1/accounts/{accountId}/virtual-bank-accounts \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "EUR Payouts",
    "inCurrency": "EUR",
    "targetCryptocurrency": "USDC",
    "idempotencyKey": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  }'
```

```json Response theme={null}
{
  "success": true,
  "result": {
    "id": "4d5e6f70-8192-4a3b-9c4d-5e6f7081920a",
    "bankAccountType": "EUR_SEPA",
    "status": "ACTIVE",
    "currency": "EUR",
    "targetCryptocurrency": "USDC",
    "iban": "DE89370400440532013000",
    "bic": "DEUTDEDB",
    "bankName": "Example Bank",
    "beneficiaryName": "Jane Doe",
    "referenceCode": "VFY-7K2Q-931"
  }
}
```

## The fields that matter

| Field                  | Why it matters                                                                                                                                                                     |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `iban` / `bic`         | The account coordinates you show the payer.                                                                                                                                        |
| `beneficiaryName`      | The legal name on the account — display it next to the IBAN.                                                                                                                       |
| `referenceCode`        | **Critical.** The payer must quote this in the SEPA payment reference so the incoming wire is matched to this account. Without it, settlement falls back to manual reconciliation. |
| `targetCryptocurrency` | The stablecoin incoming EUR is converted to.                                                                                                                                       |
| `status`               | `ACTIVE` or `CLOSED`.                                                                                                                                                              |

<Warning>
  Always surface the `referenceCode` to the end user and tell them to include it in their transfer. It's how an incoming SEPA credit is routed to the right account.
</Warning>

## Reading them back

* [List virtual bank accounts](/api-reference/Finance-API/virtual-bank-accounts/list-virtual-bank-accounts) for an account.
* [Get a virtual bank account](/api-reference/Finance-API/virtual-bank-accounts/get-virtual-bank-account-details) by ID.

## Next steps

<CardGroup cols={2}>
  <Card title="Wallets & balances" icon="wallet" href="/guides/finance/wallets">
    Where converted funds land.
  </Card>

  <Card title="Supported chains & assets" icon="coins" href="/guides/finance/supported-chains-and-assets">
    Which fiat currencies and stablecoins are supported.
  </Card>
</CardGroup>
