Skip to content

Virtual Accounts

Virtual accounts are dedicated bank account numbers linked to a wallet. When funds arrive at the virtual account, they are automatically credited to the associated wallet.

POST /api/v1/virtual-account
{
"wallet_id": "wal_abc123",
"source_currency": "USD"
}

Virtual accounts are subject to currency availability. Check can_vban: true in the GET /api/v1/currencies response.

GET /api/v1/virtual-accounts
[
{
"id": "va_xyz789",
"wallet_id": "wal_abc123",
"source_currency": "USD",
"status": "active",
"account_name": "TurnStay - My Company",
"bank_name": "Example Bank",
"account_number": "9876543210",
"routing_number": "021000021",
"created_at": "2026-06-01T10:00:00Z"
}
]
  1. Create a virtual account linked to a wallet.
  2. Share the bank details with your payer.
  3. When funds arrive, they are automatically deposited into the linked wallet.
  4. A treasury.deposit.completed webhook fires when the deposit settles.

Depending on the currency and region, virtual accounts may include:

FieldDescription
account_numberLocal account number
routing_numberUS routing number
ibanInternational Bank Account Number
bic / swift_codeBank identifier
sort_codeUK sort code
branch_codeBranch identifier