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

# Get Quote

> Get exchange rate and fees before executing a payout

Request a quote to preview the exchange rate, fees, and final amount before executing a payout.

## Parameters

<ParamField body="lookup_token" type="string" required>
  The token returned from the [Lookup](/partner-api/03-lookup) endpoint. Valid for 10 minutes.
</ParamField>

<ParamField body="amount" type="number" required>
  Amount to send from your merchant wallet. Must be greater than 0.
</ParamField>

<ParamField body="sender_currency" type="string" required>
  ISO 4217 currency code of your merchant wallet (e.g. `EUR`, `USD`, `XAF`). Max 10 characters.
</ParamField>

<ParamField body="receiver_currency" type="string" required>
  ISO 4217 currency code of the recipient's target wallet (e.g. `XAF`, `USD`). Max 10 characters. Must match one of the currencies returned in the lookup response.
</ParamField>

## Example Request

```bash theme={null}
curl -X POST https://quickei.io/api/partner/sandbox/v1/quote \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "lookup_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "amount": 100.00,
    "sender_currency": "EUR",
    "receiver_currency": "XAF"
  }'
```

## Success Response `200`

```json theme={null}
{
  "message": {
    "success": ["Quote generated."]
  },
  "data": {
    "quote_id": "f7e6d5c4-b3a2-1098-7654-321fedcba098",
    "amount": 100.00,
    "sender_currency": "EUR",
    "receiver_currency": "XAF",
    "exchange_rate": 655.957,
    "fee": 2.50,
    "total_deducted": 102.50,
    "receiver_amount": 65595.70,
    "expires_at": "2026-03-29T14:05:00+00:00"
  }
}
```

<ResponseField name="quote_id" type="string">
  UUID identifying this quote. Pass it to the [Payout](/partner-api/05-payout) endpoint to lock in this rate. Valid for **5 minutes**.
</ResponseField>

<ResponseField name="amount" type="number">
  The amount that will be sent (before fees).
</ResponseField>

<ResponseField name="sender_currency" type="string">
  The currency being sent from your merchant wallet.
</ResponseField>

<ResponseField name="receiver_currency" type="string">
  The currency the recipient will receive.
</ResponseField>

<ResponseField name="exchange_rate" type="number">
  The applied exchange rate from `sender_currency` to `receiver_currency`.
</ResponseField>

<ResponseField name="fee" type="number">
  The total fee charged (fixed + percentage). Debited from your merchant wallet in `sender_currency`.
</ResponseField>

<ResponseField name="total_deducted" type="number">
  Total amount debited from your merchant wallet (`amount + fee`).
</ResponseField>

<ResponseField name="receiver_amount" type="number">
  The amount the recipient will receive in their wallet.
</ResponseField>

<ResponseField name="expires_at" type="string">
  ISO 8601 timestamp when this quote expires.
</ResponseField>

## Same-Currency Example

When sending and receiving currencies match, the exchange rate is `1.0`:

```bash theme={null}
curl -X POST https://quickei.io/api/partner/sandbox/v1/quote \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "lookup_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "amount": 50.00,
    "sender_currency": "EUR",
    "receiver_currency": "EUR"
  }'
```

```json theme={null}
{
  "message": {
    "success": ["Quote generated."]
  },
  "data": {
    "quote_id": "d4c3b2a1-0987-6543-2109-876543210fed",
    "amount": 50.00,
    "sender_currency": "EUR",
    "receiver_currency": "EUR",
    "exchange_rate": 1.0,
    "fee": 1.00,
    "total_deducted": 51.00,
    "receiver_amount": 50.00,
    "expires_at": "2026-03-29T14:05:00+00:00"
  }
}
```

## Error Responses

| Status | Message                                     | Cause                                                                                     |
| ------ | ------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `400`  | Invalid or expired lookup token.            | The `lookup_token` has expired (older than 10 minutes) or does not belong to your account |
| `400`  | Merchant wallet not found for currency: EUR | You do not have a wallet in the specified `sender_currency`                               |
| `400`  | Invalid receiver currency.                  | The `receiver_currency` does not exist or is inactive                                     |
| `400`  | Recipient has no wallet for currency: XAF   | The recipient does not have a wallet for the `receiver_currency`                          |
| `400`  | Currency EUR is not authorized for payouts. | The currency is not enabled for payouts on your merchant account                          |
| `422`  | Validation error                            | Missing or invalid required fields                                                        |
| `401`  | Invalid API credentials.                    | Bad or missing Bearer token                                                               |

<Note>
  Quotes expire after 5 minutes. If a quote expires, request a new one before executing the payout.
</Note>
