Virtual Accounts

List virtual account transactions

Changed on

Returns a paginated list of transactions for a single virtual account, newest first, scoped to the authenticated platform. Filterable by direction, status and a from_date/to_date range. An unknown id or an account belonging to another platform return 404 Not Found. The direction=OUTBOUND is accepted but currently matches no records as this flow is yet under construction.

get/virtual_accounts/{id}/transactions

Request

  • Base URL
    https://api.cert.zerohash.com
  • URL
    https://api.cert.zerohash.com/virtual_accounts/{id}/transactions
  • 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

The virtual account to list transactions for.

Query parameters

direction'INBOUND' | 'OUTBOUND'

Filter by money direction. OUTBOUND returns an empty page today.

status'pending' | 'settled' | 'returned' | 'blocked' | 'failed'

Filter by lifecycle status. Values are lowercase.

from_datestring date-time
Example:2026-07-01T00:00:00.000Z

Inclusive lower bound on created_at, as an ISO-8601 date-time.

to_datestring date-time
Example:2026-07-31T23:59:59.000Z

Inclusive upper bound on created_at, as an ISO-8601 date-time.

pagenumber
Example:1

Page number for pagination (starts at 1).

limitnumber
Example:50

Number of transactions per page. Defaults to 50; a value above 200 is capped at 200. Returned in the response envelope as page_size.

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

Paginated list of transactions. An account with no matching activity returns an empty message array with count: 0 and total_pages: 1.

pageinteger
page_sizeinteger

Effective number of transactions per page. The request-side name for this value is limit.

total_pagesinteger
countinteger

Total number of transactions matching the filters across all pages, not the length of this page.

Example response

{
  "message": [
    {
      "transaction_id": "d3b07384-d9a0-4c9b-8f2e-1a2b3c4d5e6f",
      "va_id": "550e8400-e29b-41d4-a716-446655440000",
      "amount": "1500.00",
      "currency": "USD",
      "direction": "INBOUND",
      "rail": "ACH",
      "status": "settled",
      "reference": "INV-2026-04512",
      "created_at": "2026-07-20T14:22:00.000Z"
    }
  ],
  "page": 2,
  "page_size": 50,
  "total_pages": 4,
  "count": 175
}

Changes