# Sign the request first — see Authentication for x-timestamp, x-nonce and x-signature
curl -X POST "https://api.sbx.hopnow.io/va/v1/accounts/acct_3mnq7c1e6a2b4f3c9b8d2e5a/virtual-accounts" \
-H "x-api-key: $API_KEY" \
-H "x-timestamp: $TIMESTAMP" \
-H "x-nonce: $NONCE" \
-H "x-signature: $SIGNATURE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"currency": "EUR",
"label": "EUR Collections"
}'
{
"currency": "EUR",
"label": "EUR Collections"
}
{
"id": "va_7yq2m9p4q1w8e5r3t6y0u2i4",
"object": "virtual_account",
"account_id": "acct_3mnq7c1e6a2b4f3c9b8d2e5a",
"currency": "EUR",
"status": "active",
"beneficiary_name": "Acme GmbH",
"beneficiary_address": null,
"bank_name": "Partner Bank SA",
"bank_address": null,
"account_name": "EUR Collections",
"account_number": null,
"iban": "DE89370400440532013000",
"swift_bic": "PBNKDEFF",
"routing_number": null,
"sort_code": null,
"intermediary_bank_name": null,
"intermediary_swift_bic": null,
"supported_rails": ["sepa", "swift"],
"balance": "0.00",
"pending_deposit": "0.00",
"held_for_payment": "0.00",
"total_balance": "0.00",
"created": "2026-05-01T10:05:00Z",
"updated": "2026-05-01T10:05:00Z"
}
Virtual Accounts
Create Virtual Account
Create a virtual account (VBAN / IBAN) for an account in a supported currency
POST
/
va
/
v1
/
accounts
/
{account_id}
/
virtual-accounts
# Sign the request first — see Authentication for x-timestamp, x-nonce and x-signature
curl -X POST "https://api.sbx.hopnow.io/va/v1/accounts/acct_3mnq7c1e6a2b4f3c9b8d2e5a/virtual-accounts" \
-H "x-api-key: $API_KEY" \
-H "x-timestamp: $TIMESTAMP" \
-H "x-nonce: $NONCE" \
-H "x-signature: $SIGNATURE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"currency": "EUR",
"label": "EUR Collections"
}'
{
"currency": "EUR",
"label": "EUR Collections"
}
{
"id": "va_7yq2m9p4q1w8e5r3t6y0u2i4",
"object": "virtual_account",
"account_id": "acct_3mnq7c1e6a2b4f3c9b8d2e5a",
"currency": "EUR",
"status": "active",
"beneficiary_name": "Acme GmbH",
"beneficiary_address": null,
"bank_name": "Partner Bank SA",
"bank_address": null,
"account_name": "EUR Collections",
"account_number": null,
"iban": "DE89370400440532013000",
"swift_bic": "PBNKDEFF",
"routing_number": null,
"sort_code": null,
"intermediary_bank_name": null,
"intermediary_swift_bic": null,
"supported_rails": ["sepa", "swift"],
"balance": "0.00",
"pending_deposit": "0.00",
"held_for_payment": "0.00",
"total_balance": "0.00",
"created": "2026-05-01T10:05:00Z",
"updated": "2026-05-01T10:05:00Z"
}
Collect fiat by creating a virtual account (VBAN / IBAN). Provisioning is synchronous: Create Virtual Account issues the account at the partner bank and returns it with
If virtual accounts cannot be issued for the requested currency, no resource is created and the request fails with
status = active and full bank details — IBAN, SWIFT/BIC, routing number, and account number where applicable — so your end customers can be paid into named, attributable accounts. If the partner cannot issue usable bank details the request fails and no virtual account is created, so you never have to poll for activation.
Each virtual account also carries its own balance, returned on the object. Multiple virtual accounts may be issued for the same currency: each create with a new Idempotency-Key issues another account with its own bank details and balance.
| Enum | Values |
|---|---|
supported_rails | ach, fedwire, swift, sepa, spei, pix, faster_payments |
status | active, revoked (pending and suspended are reserved and not currently returned) |
| Status | Meaning | Client action |
|---|---|---|
active | Bank details are available and the virtual account can receive deposits. This is the status a successful create returns. | Display the returned bank details to the end customer. |
revoked | The virtual account was disabled. | Stop sharing these deposit instructions. In-flight and stray deposits arriving on existing rails are still credited until bank-side closure completes. |
pending, suspended | Reserved for future use; not currently returned by this API. | None. |
422 and error code UNSUPPORTED_CURRENCY — see Errors.
Creates a virtual account for the given account in a supported currency, provisioning it at the partner bank before responding.
Some virtual accounts become
active during the create request. In that case, the create response already includes the full bank-detail fields shown in Get Virtual Account.Path Parameters
string
required
Account id (
acct_…) that will own the virtual account.Headers
string
required
Unique key for this virtual-account create. Re-using a key for the same account returns the previously created virtual account instead of creating a duplicate.
Request Body
string
required
Currency to collect in (ISO 4217, e.g.
EUR, USD, GBP). One virtual account is issued per currency.string
Free-text label for your own reference (e.g.
"EUR Collections").Response
Returns201 with the new virtual-account object, already active and carrying the bank details your end customer needs. If the partner bank cannot issue usable details the request fails and no virtual account is created. See Get Virtual Account for the full field reference.
# Sign the request first — see Authentication for x-timestamp, x-nonce and x-signature
curl -X POST "https://api.sbx.hopnow.io/va/v1/accounts/acct_3mnq7c1e6a2b4f3c9b8d2e5a/virtual-accounts" \
-H "x-api-key: $API_KEY" \
-H "x-timestamp: $TIMESTAMP" \
-H "x-nonce: $NONCE" \
-H "x-signature: $SIGNATURE" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"currency": "EUR",
"label": "EUR Collections"
}'
{
"currency": "EUR",
"label": "EUR Collections"
}
{
"id": "va_7yq2m9p4q1w8e5r3t6y0u2i4",
"object": "virtual_account",
"account_id": "acct_3mnq7c1e6a2b4f3c9b8d2e5a",
"currency": "EUR",
"status": "active",
"beneficiary_name": "Acme GmbH",
"beneficiary_address": null,
"bank_name": "Partner Bank SA",
"bank_address": null,
"account_name": "EUR Collections",
"account_number": null,
"iban": "DE89370400440532013000",
"swift_bic": "PBNKDEFF",
"routing_number": null,
"sort_code": null,
"intermediary_bank_name": null,
"intermediary_swift_bic": null,
"supported_rails": ["sepa", "swift"],
"balance": "0.00",
"pending_deposit": "0.00",
"held_for_payment": "0.00",
"total_balance": "0.00",
"created": "2026-05-01T10:05:00Z",
"updated": "2026-05-01T10:05:00Z"
}