# Create Virtual Account

Create Virtual Account

## Create new Virtual Account

> Creates Virtual Account and returns deposit information

```json
{"openapi":"3.0.0","info":{"title":"Virtual Accounts API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/virtual-account":{"post":{"summary":"Create new Virtual Account","description":"Creates Virtual Account and returns deposit information","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVABodyModel"}}}},"responses":{"201":{"description":"Successful offramp transfer initiation response (synchronous)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVAResponseSuccessModel"}}}},"202":{"description":"Virtual account creation accepted (asynchronous). This response is returned for AED and USD SWIFT virtual accounts. The virtual account will be created asynchronously and you can fetch the details later via the GET /v0/customers/{customer_id}/virtual-account endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the virtual account"},"status":{"type":"string","enum":["pending"],"description":"The current status of the virtual account"}},"required":["id","status"]}}}},"409":{"description":"Conflict — a virtual account with identical parameters (source_currency, source_rails, destination_token, destination_network, destination_address) already exists for this customer","content":{"application/json":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"CreateVABodyModel":{"type":"object","properties":{"source_currency":{"type":"string","description":"The currency for the source","enum":["usd","eur","aed"]},"source_rails":{"type":"string","description":"Required only for USD in case you want to accept SWIFT payments","enum":["swift"]},"destination_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt"]},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","solana","base","tron","arbitrum"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the Virtual Account"}},"required":["source_currency","dstination_token","destination_network","destination_currency","destination_bank_account","destination_payment_rails"]},"CreateVAResponseSuccessModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the virtual account"},"status":{"type":"string","description":"The current status of the virtual account","enum":["active"]},"destination_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt","aed"]},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","solana","base","tron","arbitrum"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the Virtual Account"},"deposit_instructions":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["sepa"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["eur"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_holder_name":{"type":"string"},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}}},{"title":"US Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["ach","wire"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["usd"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_name":{"type":"string"},"account_beneficiary_address":{"type":"string"},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}}},{"title":"International Wire Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["swift"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["usd"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_name":{"type":"string"},"account_beneficiary_address":{"type":"string"},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}}}}}]}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.alignlabs.dev/align-api/virtual-accounts/create-virtual-account.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
