> ## 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.

# Introduction

> OpenFX v3 gives financial institutions programmatic access to FX and stablecoin liquidity, with bare-resource responses, stable error codes, and cursor pagination behind one /v3/fx/ surface.

v3 models quotes, trades, balances, deposits, withdrawals, and withdrawal accounts behind one `/v3/fx/` surface. It provides bare-resource responses, stable error codes, cursor pagination, and `X-Trace-Id` response headers.

## Pick your pattern

Most integrations match one of these four patterns. Pick the closest, then dive in.

<CardGroup cols={2}>
  <Card title="Cross-border payments" icon="globe" href="/v3/examples/cross-border-payments">
    Use this when you need to deliver funds in another currency, on the same
    day, to a bank account or wallet abroad.
  </Card>

  <Card title="Treasury management" icon="building-columns" href="/v3/examples/treasury-management">
    Use this when you hold multi-currency balances and need to rebalance, hedge,
    or sweep on demand.
  </Card>

  <Card title="FX-as-a-service" icon="arrows-rotate" href="/v3/examples/fx-as-a-service">
    Use this when you're embedding institutional FX into your own product and
    need to quote rates to your end users.
  </Card>

  <Card title="Stablecoin on/off ramp" icon="coins" href="/v3/examples/stablecoin-on-off-ramp">
    Use this when you're moving between fiat and stablecoins, with on-chain
    delivery to any supported network.
  </Card>
</CardGroup>

## What this covers

* Discovering supported currency pairs and their trade limits
* Creating quotes and executing trades
* Reading balances and deposit history
* Creating and tracking fiat or stablecoin withdrawals
* Selecting verified withdrawal accounts and supported networks

## Who this section is for

* **New to OpenFX?** Start with the [Quickstart](/v3/quickstart), then read [Errors](/v3/errors) → [Idempotency](/v3/idempotency) → [Amounts](/v3/amounts) in that order before integrating.
* **Migrating from v2?** Jump straight to [Migration from v2](/v3/migration-from-v2). It ranks every breaking change by client-side cost and includes the full endpoint, field-rename, and HTTP-status delta.

The pages in this section cover everything you need to write a working integration: auth, the request/response envelope, errors, idempotency, money formatting, rate limits, and the v2 → v3 mapping. The API reference describes every endpoint; this section explains the conventions that apply to all of them.

Every v3 operation uses the **`/v3/fx/`** wire prefix. A path that is not defined by the specification returns `404 ROUTE_NOT_FOUND`.

## Who uses OpenFX

Common customer types and their primary endpoints:

| Customer type      | Use case                              | Key endpoints                                                                                                                     |
| ------------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| Remittance firms   | Same-day cross-border settlement      | [trades](/v3/api-reference/trade/execute-trade), [withdrawals](/v3/api-reference/trade-settlement/create-withdrawal)              |
| Neobanks           | Multi-currency holdings + conversions | [balances](/v3/api-reference/trade-settlement/list-balances), [trades](/v3/api-reference/trade/execute-trade)                     |
| Payment processors | 24/7 settlement via stablecoin rails  | [withdrawals](/v3/api-reference/trade-settlement/create-withdrawal), [deposits](/v3/api-reference/trade-settlement/list-deposits) |
| Neo-brokers        | Direct stablecoin-fiat conversion     | [pairs](/v3/api-reference/trade/list-currency-pairs), [trades](/v3/api-reference/trade/execute-trade)                             |
| Global payroll     | Instant payroll in any currency       | [withdrawals](/v3/api-reference/trade-settlement/create-withdrawal)                                                               |

## Architecture

```mermaid theme={null}
%%{init: {'theme':'base','themeVariables':{'fontFamily':'Inter, system-ui, sans-serif','fontSize':'14px','primaryColor':'#d7f4e1','primaryTextColor':'#114330','primaryBorderColor':'#299f68','lineColor':'#299f68'}}}%%
flowchart TB
  Auth["<b>Authentication</b><br/><span style='font-size:12px;opacity:0.85'>JWT bearer · ES256 · 60s TTL · X-Request-Signature</span>"]
  Trading["<b>Trade</b><br/><span style='font-size:12px;color:#114330;opacity:0.75'>Quote → Execute trades</span>"]
  TradeAccount["<b>Trade Settlement</b><br/><span style='font-size:12px;color:#114330;opacity:0.75'>Deposits · Balances · Withdrawals</span>"]
  Webhooks["<b>Webhooks</b><br/><span style='font-size:12px;color:#114330;opacity:0.65'>HMAC-SHA256 signed events</span>"]

  Auth --> Trading
  Auth --> TradeAccount
  Trading -.-> Webhooks
  TradeAccount -.-> Webhooks

  classDef auth fill:#114330,stroke:#114330,stroke-width:2px,color:#ffffff,rx:8,ry:8
  classDef product fill:#d7f4e1,stroke:#299f68,stroke-width:2px,color:#114330,rx:8,ry:8
  classDef events fill:#f0faf5,stroke:#299f68,stroke-width:1.5px,color:#114330,rx:8,ry:8

  class Auth auth
  class Trading,TradeAccount product
  class Webhooks events

  linkStyle 0,1 stroke:#299f68,stroke-width:2px
  linkStyle 2,3 stroke:#299f68,stroke-width:1.5px,stroke-dasharray:6 4
```

Every v3 endpoint shares the same authentication, the same error envelope, the same idempotency contract, and the same pagination. See [Core Concepts](/v3/resource-ids) for the conventions that apply across the board.

## Operations

| Method | Path                                                                                        | Description                              |
| ------ | ------------------------------------------------------------------------------------------- | ---------------------------------------- |
| GET    | [`/v3/fx/pairs`](/v3/api-reference/trade/list-currency-pairs)                               | List tradable pairs                      |
| POST   | [`/v3/fx/quotes`](/v3/api-reference/trade/create-quote)                                     | Lock in an FX rate                       |
| GET    | [`/v3/fx/quotes/{id}`](/v3/api-reference/trade/get-quote-by-id)                             | Look up a quote                          |
| POST   | [`/v3/fx/trades`](/v3/api-reference/trade/execute-trade)                                    | Execute against a quote                  |
| GET    | [`/v3/fx/trades/{id}`](/v3/api-reference/trade/get-trade)                                   | Look up a trade                          |
| GET    | [`/v3/fx/trades`](/v3/api-reference/trade/list-trades)                                      | List trades                              |
| GET    | [`/v3/fx/balances`](/v3/api-reference/trade-settlement/list-balances)                       | Per-currency balances                    |
| GET    | [`/v3/fx/deposits`](/v3/api-reference/trade-settlement/list-deposits)                       | List deposits                            |
| GET    | [`/v3/fx/deposits/{id}`](/v3/api-reference/trade-settlement/get-deposit)                    | Look up a deposit                        |
| POST   | [`/v3/fx/withdrawals`](/v3/api-reference/trade-settlement/create-withdrawal)                | Initiate withdrawal (fiat or stablecoin) |
| GET    | [`/v3/fx/withdrawals/{id}`](/v3/api-reference/trade-settlement/get-withdrawal)              | Look up a withdrawal                     |
| GET    | [`/v3/fx/withdrawals`](/v3/api-reference/trade-settlement/list-withdrawals)                 | List withdrawals                         |
| GET    | [`/v3/fx/withdrawal-accounts`](/v3/api-reference/trade-settlement/list-withdrawal-accounts) | List verified withdrawal accounts        |

v3 defines 13 operations under `/v3/fx/`.

## What's the same as v2

<CardGroup cols={2}>
  <Card title="API keys" icon="key">
    Generated from the [OpenFX dashboard](https://app.openfx.com); the JSON file
    you download (with `name` and `privateKey`) is the same one v3 uses. See
    [Authentication](/v3/authentication) for the signing flow.
  </Card>

  <Card title="Auth flow" icon="lock">
    ES256-signed JWT bearer tokens (60s TTL, single-use) plus a body-bound
    `X-Request-Signature` header on every call. Code samples in the
    [Authentication](/v3/authentication) page.
  </Card>

  <Card title="Idempotency-Key" icon="repeat">
    Required on state-changing operations. TTLs: 30 min quotes, 24 h trades, 7
    days withdrawals — all carried forward from v2.
  </Card>

  <Card title="Sandbox" icon="flask">
    Same base URL (`api.openfx.com`); Sandbox keys carry a `sandbox_` prefix and
    Live keys are unprefixed. See [Environments](/v3/environments).
  </Card>
</CardGroup>

## What's next

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/v3/quickstart">
    Mint a token, make your first trade. \~5 minutes.
  </Card>

  <Card title="Authentication" icon="key" href="/v3/authentication">
    ES256-signed JWTs with code samples.
  </Card>

  <Card title="Errors" icon="triangle-exclamation" href="/v3/errors">
    Complete error catalog and retry triage matrix.
  </Card>

  <Card title="Migration from v2" icon="arrow-right-arrow-left" href="/v3/migration-from-v2">
    Field-by-field deltas and breaking changes.
  </Card>
</CardGroup>

## Before you go live

Before flipping to Live, complete these setup steps.

<CardGroup cols={3}>
  <Card title="Verified accounts" icon="shield-check" href="/v3/setup/verified-accounts">
    Register every fiat bank account and stablecoin wallet you'll withdraw to.
  </Card>

  <Card title="Webhooks setup" icon="webhook" href="/v3/webhooks/setup">
    Subscribe to deposit and withdrawal events so you don't poll for state
    changes.
  </Card>

  <Card title="Live checklist" icon="list-check" href="/v3/live-checklist">
    Final pre-launch review: idempotency, retries, monitoring.
  </Card>
</CardGroup>
