Virtual Accounts

Retrieve a virtual account

Changed on

Returns a single virtual account. bank_details is populated once status leaves PENDING. An unknown id or an account belonging to another platform return 404 Not Found.

get/virtual_accounts/{id}

Request

  • Base URL
    https://api.cert.zerohash.com
  • URL
    https://api.cert.zerohash.com/virtual_accounts/{id}
  • Auth
    API key in header X-SCX-API-KEY and API key in header X-SCX-PASSPHRASE

Path parameters

idstring uuid required
Example:550e8400-e29b-41d4-a716-446655440000

Headers

X-SCX-SIGNEDstring required

HMAC-SHA256 signature of the request, base64-encoded. See the Authentication guide for the exact signing formula.

X-SCX-TIMESTAMPstring required
Example:1678901234

Current Unix timestamp in seconds. Must be within 60 seconds of server time or the request is rejected.

Response

The virtual account.

idstring uuid

The virtual account identifier, equal to the Idempotency-Key supplied on creation.

participant_codestring
platform_codestring
provider_type'CRB' nullable

Banking partner backing the account.

status'PENDING' | 'ACTIVE' | 'CLOSING' | 'CLOSED' | 'BLOCKED' | 'FAILED' nullable

Lifecycle state. PENDING until the banking partner issues the account; FAILED when the banking partner declined to onboard the customer; CLOSED, BLOCKED and FAILED are terminal.

currency'USD'
virtual_account_namestring nullable

Platform-supplied label for the account, set at creation and immutable afterwards. When supplied it is used verbatim as the title on the banking partner’s own record of the account. null when it was not supplied.

named_accountboolean

Echoed back exactly as supplied at creation. Reserved for a future named-account feature; it drives no behaviour today, so do not branch on it.

account_labelstring

Label of the account deposits into this virtual account are credited to, set at creation and immutable afterwards. general when none was supplied.

created_atstring date-time nullable
updated_atstring date-time nullable

Example response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "participant_code": "PART01",
  "platform_code": "PLAT01",
  "provider_type": "CRB",
  "status": "PENDING",
  "currency": "USD",
  "virtual_account_name": "Acme Holdings Operating Account",
  "account_label": "treasury",
  "bank_details": {
    "bank_account_number": "0000000001",
    "bank_routing_number": "123456789",
    "provider_account_id": "0000000001",
    "bank_name": "Cross River Bank"
  },
  "status_detail": {
    "code": "VA_CREATION_FAILED",
    "message": "zerohash was unable to open this virtual account. Contact zerohash support to request a new account.",
    "at": "2026-07-21T09:05:00.000Z"
  },
  "settlement_policy": {
    "type": "HOLD"
  },
  "created_at": "2026-07-20T14:22:00.000Z",
  "updated_at": "2026-07-20T14:22:00.000Z"
}

Changes