> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs-v3.openfx.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Glossary

> Definitions for the v3 vocabulary — resources, headers, status enums, and concepts used across the spec.

A single-page reference for v3 vocabulary. Terms are alphabetical; each links out to the page that uses it in context.

## A

**Atomic execution**
A trade either succeeds at the quoted rate or fails — there is no partial fill. See [Trading → Trade lifecycle](/v3/trading#trade-lifecycle).

**`availableBalance`**
Funds usable right now for trades or withdrawals (on a `Balance` row). Always `≤ totalBalance`; the held portion is the difference `totalBalance − availableBalance`, which is not broken out as a separate field in v3. See [Amounts → Prefix vocabulary](/v3/amounts#prefix-vocabulary).

## B

**Balance**
The per-currency record returned by [`GET /v3/fx/balances`](/v3/api-reference/trade-settlement/list-balances). One row per currency, carrying `availableBalance` and `totalBalance`.

**Bearer token**
The JWT passed in `Authorization: Bearer <jwt>`. ES256-signed, 60s TTL, single-use. Every request also carries a body-bound `X-Request-Signature` header. See [Authentication](/v3/authentication).

## C

**Cursor pagination**
v3's pagination model: `startingAfter` / `endingBefore` with stable IDs. No `page` / `offset` integers. See [Pagination](/v3/pagination).

**Cut-off**
The latest time OpenFX submits a fiat withdrawal to a rail on the same banking day. Submissions after the cut-off roll to the next banking day. Tables in [Settlement times](/v3/settlement-times).

## D

**Deposit**
Incoming funds — fiat wire or on-chain stablecoin transfer — observed by OpenFX and (once cleared) credited to your balance. Read via [`GET /v3/fx/deposits`](/v3/api-reference/trade-settlement/list-deposits). See [Deposit lifecycle](/v3/deposit-lifecycle).

## E

**ES256**
The ECDSA signature algorithm OpenFX uses to sign JWTs (and validate yours). Asymmetric — your private key signs, OpenFX validates with the public key on file. See [Authentication](/v3/authentication).

**`expiresAt`**
On a `Quote`, the wall-clock at which the quoted rate is no longer executable. Default 3 seconds from creation; configurable via `quoteForSeconds` (standard durations: `3`, `15`, `30`, `45`, `60`). See [Trading → Quote lifecycle](/v3/trading#quote-lifecycle).

## I

**Idempotency-Key**
Client-generated UUID v4 (or any unique string) passed on state-changing requests. A retry with the same key returns the cached result instead of executing the operation twice. **Required** on every v3 write — same as v2 (which returned `400 IDEMPOTENCY_KEY_REQUIRED` when missing); v3 just upgrades the missing-header response to `428 IDEMPOTENCY_KEY_MISSING` per RFC 6585. See [Idempotency](/v3/idempotency).

**Idempotency-Replayed**
Response header v3 emits on every response from idempotent endpoints (`POST /quotes`, `POST /trades`, `POST /withdrawals`). `true` on a cache hit (the body is replayed from a prior request with the same key); `false` on a fresh execution. Always present on these three endpoints; omitted on GETs. New in v3 — v2 did silent replays with no signal. See [Idempotency → How to tell a replay from a fresh execution](/v3/idempotency#how-to-tell-a-replay-from-a-fresh-execution).

## J

**JWT (JSON Web Token)**
The bearer token format v3 uses for authentication. ES256-signed, 60s TTL, single-use (server-enforced nonce uniqueness). Mint a fresh one per request and pair it with a freshly computed `X-Request-Signature` header. See [Authentication](/v3/authentication).

## N

**Naming conventions**
Three layers, three rules. JSON field keys are `camelCase` (`withdrawalAccountId`, `buyAmount`, `createdAt`). URL path segments are `kebab-case` (`/v3/fx/withdrawal-accounts`, `/v3/fx/pairs`). Type / schema / resource names are `PascalCase` in prose and OpenAPI components (`WithdrawalAccount`, `Trade`, `Quote`). HTTP headers keep their HTTP-spec form (`X-Trace-Id`, `Idempotency-Key`). Same split used by Stripe, Plaid, Twilio.

**`network`**
On a `Deposit` or `Withdrawal`, the settlement network or rail (e.g. `ETHEREUM` for a stablecoin movement, `FIAT` for a bank-rail movement). See [Supported networks](/v3/supported-networks) for the stablecoin chain matrix.

## P

**Pair**
A tradable `(buyCurrency, sellCurrency)` combination with `minTradeAmount` and `maxTradeAmount` (denominated in `sellCurrency`). Listed via [`GET /v3/fx/pairs`](/v3/api-reference/trade/list-currency-pairs). See [Currencies](/v3/references/currencies) for the platform-wide set.

<span id="status-enums" />

**Status enums**
Different resources expose different status values.

| Resource           | Values                                                                                                       |
| ------------------ | ------------------------------------------------------------------------------------------------------------ |
| Trade              | `PENDING`, `EXECUTED`, `FAILED`                                                                              |
| Deposit            | `PENDING`, `COMPLETED`, `ERROR`                                                                              |
| Withdrawal         | Unconstrained string reflecting the current lifecycle state (e.g. `COMPLETED`); no closed enum is documented |
| WithdrawalAccount  | `PENDING`, `ACTIVE`, `ARCHIVED`, `REJECTED`, `DEACTIVATED`, `ADDITIONAL_ACTION_NEEDED`                       |
| Quote (`GET` only) | `ACTIVE`, `EXPIRED`, `CONSUMED`                                                                              |

Trades terminate at `EXECUTED` (atomic single-hop) or `FAILED`. All documented values are **UPPERCASE**, consistent with currency codes (`USD`, `EUR`), network identifiers (`ETHEREUM`, `SOLANA`), and error codes (`TRADE_NOT_FOUND`) elsewhere in v3. See [Trade lifecycle](/v3/trading#trade-lifecycle), [Deposit lifecycle](/v3/deposit-lifecycle), and [Withdrawal lifecycle](/v3/withdrawal-lifecycle).

## Q

**Quote**
A binding rate returned by [`POST /v3/fx/quotes`](/v3/api-reference/trade/create-quote). Single-execution: pass the `id` to `POST /v3/fx/trades` before `expiresAt`. Retrievable by ID for 2 days from `createdAt`; see [Trading → Retrieving a quote](/v3/trading#retrieving-a-quote).

## R

**Rail**
The fiat settlement system a withdrawal travels through (e.g. Fed Wire, SWIFT, SEPA, SPEI, FPS, CHAPS, PIX, NPP, UAEFTS). Bound to the verified withdrawal account, not picked per request. See [Settlement times](/v3/settlement-times).

**`reference_amount` / `reference_currency`** *(v2 — removed in v3)*
v2 quote-create indirection: client passed an amount plus the currency it was denominated in. **Removed in v3**; the v3 quote request supplies exactly one of `buyAmount` or `sellAmount` directly. See [Migration from v2 → Quote](/v3/migration-from-v2#field-renames-quote).

## S

**Sandbox**
The OpenFX test environment. Same base URL (`api.openfx.com`) as Live; the environment is selected entirely by which API key you use — Sandbox keys carry a `sandbox_` prefix. See [Environments](/v3/environments).

**Stablecoin**
Fiat-pegged crypto assets supported on v3: `USDC`, `USDT`, `EURC`. Each is tradable, depositable, and withdrawable on one or more chains. See [Currencies → Stablecoins](/v3/references/currencies#stablecoins).

## T

**Timestamps**
All v3 timestamps are ISO 8601 UTC with millisecond precision: `YYYY-MM-DDTHH:mm:ss.sssZ` (e.g. `2026-04-28T10:00:00.000Z`). The trailing `Z` is required. Always parse as UTC; convert to a local zone only at display time.

**`totalBalance`**
Total funds held in a currency on a `Balance` row, including any amount earmarked against pending operations; `availableBalance` ≤ `totalBalance`. The held portion is the difference `totalBalance − availableBalance` and is not broken out as a separate field in v3. See [Amounts → Balance lifecycle](/v3/amounts#balance-lifecycle-available-vs-total).

**Trade**
The atomic execution of a quote. Status is `EXECUTED` (success) or `FAILED`. Status values are **UPPERCASE** (`PENDING`, `EXECUTED`, `FAILED`), unchanged from v2 — no migration. See [Trading](/v3/trading).

**Trade Settlement**
The v3 surface that covers balances, deposits, withdrawals, and verified withdrawal accounts. Sits under `/v3/fx/`. See [Trade Settlement](/v3/trade-settlement).

**`transactionHash`**
The on-chain transaction hash of a stablecoin deposit or withdrawal. Null until the transaction is broadcast, and always null on fiat movements.

## W

**Webhook**
A signed HTTP POST OpenFX sends to your endpoint when an event occurs. The envelope carries `type` (the resource noun, e.g. `"withdrawals"`), `eventType` (the dotted event name, e.g. `"withdrawal.completed"`), `id`, `createdAt`, and a single `data` object — the resource in its v3 shape (`data.status: "COMPLETED"`, camelCase keys, string amounts), not an array. HMAC-SHA256 signed via the `X-OpenFX-Signature` header. See [Webhook authentication](/v3/webhooks/authentication) and [Webhooks setup](/v3/webhooks/setup).

**Verified withdrawal account**
A pre-configured bank account or on-chain address that withdrawals can settle to. Created via the dashboard; referenced by `withdrawalAccountId` on withdrawals. The rail or chain is bound to the withdrawal account at creation. See [Verified accounts](/v3/setup/verified-accounts).

**Withdrawal**
An outgoing transfer initiated via [`POST /v3/fx/withdrawals`](/v3/api-reference/trade-settlement/create-withdrawal). Same endpoint covers fiat and stablecoin; the rail is resolved server-side from the referenced withdrawal account. See [Withdrawal lifecycle](/v3/withdrawal-lifecycle).

**`withdrawalAccountId`**
The UUID of the verified withdrawal account a withdrawal settles to — either a fiat bank account or a stablecoin wallet. Created in the [OpenFX dashboard](https://app.openfx.com), read via [`GET /v3/fx/withdrawal-accounts`](/v3/api-reference/trade-settlement/list-withdrawal-accounts), and supplied on `POST /v3/fx/withdrawals`. Carries the rail/chain, so the request body never names a network. Renamed from the v2 request field `withdrawalAddressId`. See [Verified accounts](/v3/setup/verified-accounts).

## X

**`X-Trace-Id`**
Response header carrying a per-request trace ID. Include it in support requests; capture it on the success path too. See [Metadata and tracing](/v3/metadata-and-tracing).

## What's next

<CardGroup cols={2}>
  <Card title="Currencies" icon="dollar-sign" href="/v3/references/currencies">
    Fiat + stablecoin platform tables.
  </Card>

  <Card title="Supported networks" icon="network-wired" href="/v3/supported-networks">
    Per-stablecoin chain matrix.
  </Card>

  <Card title="Settlement times" icon="clock" href="/v3/settlement-times">
    Fiat-rail cut-off tables.
  </Card>

  <Card title="Errors" icon="triangle-exclamation" href="/v3/errors">
    Stable error codes and the retry triage matrix.
  </Card>
</CardGroup>
