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

# Quotes

> Real-time pricing with a 3-minute lock window for all value transfers

Every transaction in Thiqwave starts with a quote. A quote locks in your exchange rate, fees, and destination amount for 3 minutes. This ensures you always know the exact cost before committing.

## Why Quotes?

Markets move. Rates shift. A quote guarantees you won't face surprise slippage or fees when you execute. Get a quote, execute within 3 minutes, and your transaction settles at the promised rate.

***

## Quote Lifecycle

```
Requested → Locked → Executed / Expired
```

| State       | Description                                  |
| ----------- | -------------------------------------------- |
| `requested` | Quote created, awaiting execution            |
| `locked`    | Quote is active and guaranteed for 3 minutes |
| `executed`  | Transaction initiated with this quote        |
| `expired`   | 3 minutes elapsed; quote no longer valid     |

***

## Request a Quote

To request a quote, POST to `/v1/quotes`:

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.thiqwave.com/v1/quotes \
    -H "X-API-Key: your-api-key" \
    -H "Content-Type: application/json" \
    -d '{
      "source_currency": "AED",
      "destination_currency": "USDC",
      "amount": "10000",
      "destination_network": "sui",
      "corridor": "uae",
      "recipient_type": "wallet"
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api.thiqwave.com/v1/quotes', {
    method: 'POST',
    headers: {
      'X-API-Key': 'your-api-key',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      source_currency: 'AED',
      destination_currency: 'USDC',
      amount: 10000, // in smallest unit (fils)
      destination_network: 'sui',
      corridor: 'uae',
      recipient_type: 'wallet'
    })
  });

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

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

  response = requests.post(
      'https://api.thiqwave.com/v1/quotes',
      headers={
          'X-API-Key': 'your-api-key',
          'Content-Type': 'application/json'
      },
      json={
          'source_currency': 'AED',
          'destination_currency': 'USDC',
          'amount': 10000,  # in smallest unit (fils)
          'destination_network': 'sui',
          'corridor': 'uae',
          'recipient_type': 'wallet'
      }
  )

  quote = response.json()
  print(quote)
  ```
</CodeGroup>

***

## Quote Response

```json theme={null}
{
  "id": "quote_abc123xyz",
  "source_currency": "AED",
  "destination_currency": "USDC",
  "source_amount": "10000",
  "destination_amount": "27.20",
  "exchange_rate": "0.272",
  "fees": {
    "platform_fee": 10,
    "network_fee": 5
  },
  "total_fee": 15,
  "expires_at": "2026-04-08T12:34:00Z",
  "valid_for_seconds": 180,
  "corridor": "uae",
  "destination_network": "sui"
}
```

**Key Fields:**

* `id`: Unique quote identifier. Use this to execute the transaction.
* `source_amount`: Amount you send (in smallest currency unit)
* `destination_amount`: Amount recipient receives (human-readable stablecoin format)
* `exchange_rate`: Rate applied for this quote
* `fees`: Breakdown of all fees (platform, network, etc.)
* `total_fee`: Sum of all fees
* `expires_at`: Timestamp when quote expires
* `valid_for_seconds`: Always 180 seconds (3 minutes)

***

## Amount Format

Amounts follow this format by currency:

| Currency    | Format         | Example                |
| ----------- | -------------- | ---------------------- |
| AED         | Fils (1/100)   | 10,000 fils = 100 AED  |
| USDT / USDC | Human-readable | "272.50" = 272.50 USDT |
| USD         | Cents          | 10,000 cents = 100 USD |

***

## Execute a Transaction

Use the quote ID when initiating a payout, pay-in, or on-chain FX transaction:

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.thiqwave.com/v1/payouts \
    -H "X-API-Key: your-api-key" \
    -H "Content-Type: application/json" \
    -d '{
      "quote_id": "quote_abc123xyz",
      "recipient": {
        "wallet_address": "0x742d35Cc6634C0532925a3b844Bc92d426b4e4f7"
      }
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api.thiqwave.com/v1/payouts', {
    method: 'POST',
    headers: {
      'X-API-Key': 'your-api-key',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      quote_id: 'quote_abc123xyz',
      recipient: {
        wallet_address: '0x742d35Cc6634C0532925a3b844Bc92d426b4e4f7'
      }
    })
  });

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

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

  response = requests.post(
      'https://api.thiqwave.com/v1/payouts',
      headers={
          'X-API-Key': 'your-api-key',
          'Content-Type': 'application/json'
      },
      json={
          'quote_id': 'quote_abc123xyz',
          'recipient': {
              'wallet_address': '0x742d35Cc6634C0532925a3b844Bc92d426b4e4f7'
          }
      }
  )

  payout = response.json()
  print(payout['id'])
  ```
</CodeGroup>

***

## Quote Expiry & Renewal

Quotes expire after 3 minutes. If you miss the window:

1. Request a new quote
2. Rates may have changed
3. Execute with the new quote ID

There's no penalty for expired quotes—just request another one.

<Tip>
  Build a timer into your UI to show users when their quote expires. Refresh automatically or prompt the user to re-quote before execution.
</Tip>

***

## Fee Breakdown

Fees vary by transaction type and corridor:

* **Platform Fee**: Thiqwave's charge for settlement
* **Network Fee**: Blockchain gas or fiat rail costs
* **Exchange Fee**: Spread on FX transactions

All fees are **included** in the `destination_amount`. No hidden charges.

***

## Rate Locks & Market Conditions

Quotes are locked rates. However:

* If market conditions change drastically, quote execution may fail and auto-retry with a new quote
* Slippage is not typical for Thiqwave transactions (we quote destination amounts, not indicative rates)
* Network congestion may delay settlement but won't affect the quoted rate

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Payouts" description="Execute payouts with quotes" href="/concepts/payouts" />

  <Card title="Bridging" description="Quote-driven on-ramps and off-ramps" href="/concepts/bridging" />

  <Card title="On-chain FX" description="Quote-driven conversions and transfers" href="/concepts/onchain-fx" />

  <Card title="Quotes API Reference" description="Full API documentation for quotes" href="/api/quotes/create" />
</CardGroup>
