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

# Request Guaranteed FX Quote

> Lock in an institutional exchange rate for a foreign currency amount with a 60-second validity countdown.

Locks in an exchange rate for a specified foreign amount. Returns a quote with amounts in minor units that can be passed to payouts before expiration.

### Scopes required

`fx:write` or `*`

### Headers

<ParamField header="Authorization" type="string" required>
  Bearer API secret key formatted as `Bearer sk_live_...` or `Bearer sk_test_...`.
</ParamField>

### Body

<ParamField body="currency" type="string" required>
  Foreign payout currency (`USD`, `GBP`, `EUR`).
</ParamField>

<ParamField body="foreignAmount" type="number" required>
  Amount in foreign currency major units (e.g. `5000` for 5,000 USD).
</ParamField>

### Response

<ResponseField name="quoteId" type="string">
  Unique quote identifier.
</ResponseField>

<ResponseField name="currency" type="string">
  Currency quoted.
</ResponseField>

<ResponseField name="direction" type="string">
  Quote direction (`NGN_TO_FOREIGN`).
</ResponseField>

<ResponseField name="foreignAmountMinor" type="string">
  Target foreign currency amount in minor units as a string.
</ResponseField>

<ResponseField name="rate" type="number">
  Locked exchange rate.
</ResponseField>

<ResponseField name="transferFeeMinor" type="string">
  Corridor transfer fee in NGN minor units.
</ResponseField>

<ResponseField name="ngnAmountMinor" type="string">
  Calculated total in Nigerian Naira (NGN) minor units.
</ResponseField>

<ResponseField name="totalDebitMinor" type="string">
  Total NGN amount to debit (amount + fee) in minor units.
</ResponseField>

<ResponseField name="expiresAt" type="string">
  ISO timestamp when the 60-second rate lock expires.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.tabsglobal.co/v1/fx/quotes" \
    -H "Authorization: Bearer sk_live_..." \
    -H "Content-Type: application/json" \
    -d '{
      "currency": "USD",
      "foreignAmount": 5000
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.tabsglobal.co/v1/fx/quotes", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.TABS_SECRET_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      currency: "USD",
      foreignAmount: 5000,
    }),
  });

  const quote = await response.json();
  console.log(quote);
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.tabsglobal.co/v1/fx/quotes",
      headers={
          "Authorization": f"Bearer {API_KEY}",
          "Content-Type": "application/json",
      },
      json={"currency": "USD", "foreignAmount": 5000},
  )
  print(response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json 201 Created theme={null}
  {
    "quoteId": "quote_7e2a9b1c-4d3f-4e5a-8b2c-1d0f3a4b5c6d",
    "currency": "USD",
    "direction": "NGN_TO_FOREIGN",
    "foreignAmountMinor": "500000",
    "rate": 1625.50,
    "transferFeeMinor": "250000",
    "ngnAmountMinor": "812750000",
    "totalDebitMinor": "813000000",
    "expiresAt": "2026-09-21T03:00:00.000Z"
  }
  ```
</ResponseExample>


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