GET
/
accounts
List accounts.
curl --request GET \
  --url https://sandbox.api.openfx.com/v1/accounts \
  --header 'Authorization: Bearer <token>' \
  --header 'X-Signature: <api-key>' \
  --header 'X-Timestamp: <api-key>'
{
  "items": [
    {
      "id": "acc_01953e1a5f4b7002",
      "customerId": "cus_01953e1a5f4b7000",
      "type": "demand_deposit",
      "status": "active",
      "currency": "USD",
      "label": "USD Operating Account",
      "metadata": {},
      "createdAt": "2026-02-23T12:00:00Z",
      "updatedAt": "2026-02-23T12:00:00Z"
    }
  ],
  "pagination": {
    "hasMore": true,
    "nextCursor": "<string>"
  }
}

Authorizations

Authorization
string
header
required

API key issued at onboarding. Passed as a Bearer token in the Authorization header: Authorization: Bearer <api-key>. Identifies the caller and determines organization scope. Invalid or revoked keys return 401 with error type authentication_error.

X-Signature
string
header
required

Ed25519 or RSA-SHA256 asymmetric signature over the request payload (ADR-0015). Provides request integrity and non-repudiation. The signature covers the HTTP method, path, query string, request body, and timestamp. Invalid signatures return 401 with error type authentication_error.

X-Timestamp
string
header
required

Unix timestamp (seconds) of when the request was signed. Server rejects requests where the timestamp drifts beyond +/-60 seconds from server time to prevent replay attacks. Must match the timestamp used in the signature computation.

Query Parameters

limit
integer
default:50

Maximum number of items to return. Default 50, max 200.

Required range: 1 <= x <= 200
starting_after
string

Cursor for forward pagination. Return items created after the item with this ID. Mutually exclusive with ending_before.

ending_before
string

Cursor for backward pagination. Return items created before the item with this ID. Mutually exclusive with starting_after.

customerId
string

Customer resource identifier.

Pattern: ^cus_[A-Za-z0-9]+$
Example:

"cus_01953e1a5f4b7000"

type
enum<string>

Type of account. demand_deposit for fiat bank accounts, wallet for crypto, virtual for virtual accounts with no physical banking rails.

Available options:
demand_deposit,
wallet,
virtual
status
enum<string>

Lifecycle status of an account.

Available options:
pending,
active,
suspended,
closed

Response

Account list.

items
object[]
required

Unified ledger account for fiat and crypto assets. Replaces the V2 separation of /accounts and /wallets. The type field distinguishes demand_deposit (fiat), wallet (crypto), and virtual accounts. Use the type discriminator to determine which variant applies.

Example:
{
"id": "acc_01953e1a5f4b7002",
"customerId": "cus_01953e1a5f4b7000",
"type": "demand_deposit",
"status": "active",
"currency": "USD",
"label": "USD Operating Account",
"metadata": {},
"createdAt": "2026-02-23T12:00:00Z",
"updatedAt": "2026-02-23T12:00:00Z"
}
pagination
object
required

Cursor-based pagination metadata. Returned on all list endpoints.