Create a virtual account
Creates a crypto US_BANK virtual account (USDT on Tron).
⚠️ bank is REQUIRED for US_BANK VAs — including crypto. Omitting it returns 400 "bank is required for US_BANK virtual accounts". (An earlier support answer that said to remove bank for crypto was incorrect.)
The bank value is environment-scoped:
- Sandbox (this collection): use
slovak_savings_bank(the SWIFT/crypto rail). Sendingportagehere returns400 "Invalid bank"—portageis only authorized in production. - Production: the same crypto rail is
portage.
bank selects the provider/rail; mode: "crypto" + destination make it a crypto VA — both are needed, they are not redundant. Note: Tron (tron) is accepted on slovak_savings_bank in sandbox even though the destination.network enum historically documented only solana | polygon.
Production variant — change one line: "bank": "portage" (everything else stays the same). slovak_savings_bank and portage are both SWIFT/crypto-capable banks; the value is just environment-scoped. Precondition: the user must be status: VERIFIED and eligible for the product.
Not-ready marker: this VA type shows account_number: null until provisioned (the "PENDING-ACT-ACCOUNT" sentinel is ACT-only). Funds-ready = account_number non-null AND != "PENDING-ACT-ACCOUNT".
Authorizations
Access token from POST /auth (the data.access_token value).
API key issued by Kira. Required on every request, including /auth.
Headers
"2026-04-14"
"{{idempotency_key}}"
Body
The body is of type object.
Response
Success.