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

# Create Conversion

> POST /v2/rfq — request a quote to convert between two currencies, with rates for same-day (D0) and next-day (D1) settlement.

Requests a quote for converting `from_currency` into `to_currency`. The response returns two rates — one for same-day (D0) settlement and one for next-day (D1) settlement — plus an expiration window. Nothing is debited or locked at this point; call [Accept Conversion](/noxpay-docs-v2/api-reference/conversions/accept) to execute the trade.

## Request body

| Field           | Type   | Required    | Description                                                                 |
| --------------- | ------ | ----------- | --------------------------------------------------------------------------- |
| `from_currency` | string | Yes         | Source currency code                                                        |
| `to_currency`   | string | Yes         | Destination currency code                                                   |
| `from_amount`   | float  | Conditional | Amount to send. Exactly one of `from_amount` / `to_amount` must be provided |
| `to_amount`     | float  | Conditional | Amount to receive                                                           |
| `webhook`       | string | No          | URL to receive state update notifications                                   |

## Response `201 Created`

| Field               | Type   | Description                                                             |
| ------------------- | ------ | ----------------------------------------------------------------------- |
| `rfq_id`            | string | ID of the conversion — use it to accept, poll, or reference this quote  |
| `from_currency`     | string | Source currency code                                                    |
| `to_currency`       | string | Destination currency code                                               |
| `from_amount_d0`    | float  | Amount to send for D0 settlement                                        |
| `to_amount_d0`      | float  | Amount to receive for D0 settlement                                     |
| `rate_d0`           | float  | Rate for D0 settlement                                                  |
| `from_amount_d1`    | float  | Amount to send for D1 settlement                                        |
| `to_amount_d1`      | float  | Amount to receive for D1 settlement                                     |
| `rate_d1`           | float  | Rate for D1 settlement                                                  |
| `quote_pair`        | string | Quote pair identifier (e.g. `USDT_BRL`)                                 |
| `settlement_eta_d0` | string | Estimated settlement time if D0 is chosen (RFC 3339)                    |
| `settlement_eta_d1` | string | Estimated settlement time if D1 is chosen (RFC 3339)                    |
| `expires_at`        | string | When the current rate expires (RFC 3339)                                |
| `renewable_up_to`   | string | Last moment the quote can still be accepted, across renewals (RFC 3339) |

If D0 settlement is not available (desk closed or past cutoff), `from_amount_d0` / `to_amount_d0` / `rate_d0` / `settlement_eta_d0` are omitted from the response.

**Status codes:** `201 Created`, `400 Bad Request`, `401 Unauthorized`, `422 Unprocessable Entity`, `500 Internal Server Error`

<RequestExample>
  ```bash theme={null}
  curl -X POST https://checkout.noxpay.io/v2/rfq \
    -H "api-key: <key>" \
    -H "Content-Type: application/json" \
    -d '{
      "from_currency": "USDT",
      "to_currency": "BRL",
      "from_amount": 1000.0,
      "webhook": "https://yourapp.com/webhooks/nox"
    }'
  ```

  ```python theme={null}
  import requests

  response = requests.post(
      "https://checkout.noxpay.io/v2/rfq",
      headers={
          "api-key": "<key>",
          "Content-Type": "application/json",
      },
      json={
          "from_currency": "USDT",
          "to_currency": "BRL",
          "from_amount": 1000.0,
          "webhook": "https://yourapp.com/webhooks/nox",
      },
  )
  print(response.json())
  ```

  ```javascript theme={null}
  const response = await fetch("https://checkout.noxpay.io/v2/rfq", {
    method: "POST",
    headers: {
      "api-key": "<key>",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      from_currency: "USDT",
      to_currency: "BRL",
      from_amount: 1000.0,
      webhook: "https://yourapp.com/webhooks/nox",
    }),
  });
  const data = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json 201 theme={null}
  {
    "rfq_id":            "NOXabc123...",
    "from_currency":     "USDT",
    "to_currency":       "BRL",
    "from_amount_d0":    1000.0,
    "to_amount_d0":      5050.0,
    "rate_d0":           5.050,
    "from_amount_d1":    1000.0,
    "to_amount_d1":      5060.0,
    "rate_d1":           5.060,
    "quote_pair":        "USDT_BRL",
    "settlement_eta_d0": "2026-07-01T19:00:00Z",
    "settlement_eta_d1": "2026-07-02T18:00:00Z",
    "expires_at":        "2026-07-01T12:00:30Z",
    "renewable_up_to":   "2026-07-01T12:10:00Z"
  }
  ```
</ResponseExample>
