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

# FX

> Indicative rates and firm quotes for payouts and swaps.

Keette exposes two FX surfaces:

| Endpoint | Use |
| - | - |
| `GET /v1/fx/rate` | Indicative rate for display |
| `POST /v1/fx/quotes` | Firm quote you lock and pass into a payout or swap |

## Indicative rate

```bash theme={null}
curl "https://api.keette.com/v1/fx/rate?from=USD&to=NGN" \
  -H "Authorization: Bearer sk_test_…"
```

Safe for UI previews. Do **not** treat it as a lock — amounts can move before you create a quote.

## Firm quote

Send exactly one of `amount_from` or `amount_to` (Ledger minor units):

```bash theme={null}
curl https://api.keette.com/v1/fx/quotes \
  -H "Authorization: Bearer sk_test_…" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "USD",
    "to": "NGN",
    "amount_from": 10000,
    "purpose": "swap"
  }'
```

* Omit `purpose` (or leave empty) for a **payout** quote
* Set `"purpose": "swap"` when the quote will go to `POST /v1/swaps`

Pass the returned quote `id` as `quote_id` on the payout or swap. Quotes expire — create the money movement promptly.

## Dev mode

Dashboard **Dev** mode does not call partner FX for firm quotes. Indicative rates may still be available for display; use sandbox cloud / Live when you need a real firm quote against partner rails.

## Next

* [Swaps](https://docs.keette.com/guides/swaps.md) — move between your own books
* [Payouts](https://docs.keette.com/guides/payouts.md) — cross-currency sends
* [API reference — FX](https://docs.keette.com/api-reference/fx)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.