---
updatedAt: 2026-09-20T21:24:17.000Z
agentTools:
  projectIndex: https://docs.zerohash.com/llms.txt
---

# Manage Virtual Accounts

Query or close an existing virtual account(s)

This guide walks you through how to get information about existing virtual accounts, or how to close existing virtual accounts.

# Query Virtual Accounts

There are three ways to get virtual account information for your customers:

1. <Anchor target="_blank" href="https://docs.zerohash.com/reference/get_virtual-accounts">GET /virtual\_accounts</Anchor> - Lists all of your customers' virtual accounts. You can narrow your query using parameters such as `participant_code`
2. <Anchor target="_blank" href="https://docs.zerohash.com/reference/get_virtual-accounts-id">GET /virtual\_accounts/\{id}</Anchor> - Returns a single virtual account.

* GET /virtual\_accounts?participant\_code=PART01\&currency=USD\&page=1\&page\_size=50

Example <Anchor target="_blank" href="https://docs.zerohash.com/reference/get_virtual-accounts-id">GET /virtual\_accounts/\{id}</Anchor> response:

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "participant_code": "PART01",
  "platform_code": "PLAT01",
  "provider_type": "CRB",
  "status": "PENDING",
  "currency": "USD",
  "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",
    "asset": "USDC",
    "external_account_id": "550e8400-e29b-41d4-a716-446655440000"
  },
  "created_at": "2026-07-20T14:22:00.000Z",
  "updated_at": "2026-07-20T14:22:00.000Z"
}
```

3. <Anchor target="_blank" href="https://docs.zerohash.com/reference/get_virtual-accounts-id-transactions">GET /virtual\_accounts/\{id}/transactions</Anchor> - Returns transaction history for a single virtual account.

* GET /virtual\_accounts/{virtual_account_id}/transactions?direction=INBOUND\&status=settled\&from\_date=2026-08-01T00:00:00Z\&to\_date=2026-09-01T00:00:00Z\&limit=50\&page=1

Example <Anchor target="_blank" href="https://docs.zerohash.com/reference/get_virtual-accounts-id-transactions">GET /virtual\_accounts/\{id}/transactions</Anchor> response:

```json
{
  "message": [
    {
      "transaction_id": "d3b07384-d9a0-4c9b-8f2e-1a2b3c4d5e6f",
      "va_id": "9d8e4f2a-1234-4b5c-9abc-1234567890ab",
      "amount": "1500.00",
      "currency": "USD",
      "direction": "INBOUND",
      "rail": "ACH",
      "status": "settled",
      "created_at": "2026-09-01T14:32:10.000Z"
    },
    {
      "transaction_id": "a1b2c3d4-5678-4e9f-a012-3456789abcde",
      "va_id": "9d8e4f2a-1234-4b5c-9abc-1234567890ab",
      "amount": "250.00",
      "currency": "USD",
      "direction": "INBOUND",
      "rail": "ACH",
      "status": "pending",
      "created_at": "2026-09-05T09:12:44.000Z"
    }
  ],
  "page": 1,
  "page_size": 50,
  "total_pages": 1,
  "count": 2
}
```

# Close a Virtual Account

To close a Virtual Account, use the <Anchor target="_blank" href="https://docs.zerohash.com/reference/patch_virtual-accounts-id-close">PATCH /virtual\_accounts/\{id}/close</Anchor> endpoint.

Example response when account closure is initiated:

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "CLOSING"
}
```

Example response when account is closed:

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "CLOSED"
}
```