> ## 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.

# Criar Conversão

> POST /v2/rfq — solicita uma cotação para converter entre duas moedas, com taxas para liquidação no mesmo dia (D0) e no dia seguinte (D1).

Solicita uma cotação para converter `from_currency` em `to_currency`. A resposta retorna duas taxas — uma para liquidação no mesmo dia (D0) e outra para o dia seguinte (D1) — além de uma janela de expiração. Nada é debitado ou travado neste momento; chame [Aceitar Conversão](/pt/api-reference/conversions/accept) para executar a operação.

## Corpo da requisição

| Campo           | Tipo   | Obrigatório | Descrição                                                                          |
| --------------- | ------ | ----------- | ---------------------------------------------------------------------------------- |
| `from_currency` | string | Sim         | Código da moeda de origem                                                          |
| `to_currency`   | string | Sim         | Código da moeda de destino                                                         |
| `from_amount`   | float  | Condicional | Montante a enviar. Exatamente um de `from_amount` / `to_amount` deve ser informado |
| `to_amount`     | float  | Condicional | Montante a receber                                                                 |
| `webhook`       | string | Não         | URL para receber notificações de atualização de estado                             |

## Response `200 OK`

| Campo               | Tipo   | Descrição                                                                                                                                           |
| ------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `rfq_id`            | string | ID da conversão — use-o para aceitar, consultar ou referenciar esta cotação                                                                         |
| `from_currency`     | string | Código da moeda de origem                                                                                                                           |
| `to_currency`       | string | Código da moeda de destino                                                                                                                          |
| `from_amount_d0`    | float  | Montante a enviar para liquidação D0                                                                                                                |
| `to_amount_d0`      | float  | Montante a receber para liquidação D0                                                                                                               |
| `rate_d0`           | float  | Taxa para liquidação D0                                                                                                                             |
| `from_amount_d1`    | float  | Montante a enviar para liquidação D1                                                                                                                |
| `to_amount_d1`      | float  | Montante a receber para liquidação D1                                                                                                               |
| `rate_d1`           | float  | Taxa para liquidação D1                                                                                                                             |
| `quote_pair`        | string | Par de cotação, no formato `<nome exibido da origem>/<nome exibido do destino>` — nomes exibidos, não códigos de moeda (ex: `USDT (TRX)/BRL (PIX)`) |
| `settlement_eta_d0` | string | Horário estimado de liquidação caso D0 seja escolhida (RFC 3339)                                                                                    |
| `settlement_eta_d1` | string | Horário estimado de liquidação caso D1 seja escolhida (RFC 3339)                                                                                    |
| `expires_at`        | string | Quando a taxa atual expira (RFC 3339)                                                                                                               |
| `renewable_up_to`   | string | Último momento em que a cotação ainda pode ser *renovada*, em vez de recriada (RFC 3339)                                                            |
| `wallet_id`         | string | Wallet de destino, quando já houver uma associada à cotação                                                                                         |

`rfq_id` é o identificador desta cotação — use-o em [Aceitar Conversão](/pt/api-reference/conversions/accept) e em [Consultar Conversão](/pt/api-reference/conversions/get).

`expires_at` é quando a taxa morre. `renewable_up_to` é até quando ela ainda pode ser renovada no lugar, em vez de recriada do zero.

Campos numéricos são omitidos, não zerados. Se uma janela de liquidação estiver indisponível — a mesa fechada para D0, por exemplo — `from_amount_d0` / `to_amount_d0` / `rate_d0` / `settlement_eta_d0` vêm **ausentes** da resposta, e não como `0`. Verifique a presença da chave.

Note que este endpoint devolve `200`, não `201`.

**Códigos de retorno:** `200 OK`, `400 Bad Request`, `401 Unauthorized`, `500 Internal Server Error`

| HTTP  | Quando                                                                                                                        |
| ----- | ----------------------------------------------------------------------------------------------------------------------------- |
| `200` | Cotação gerada                                                                                                                |
| `400` | JSON inválido, campo não reconhecido, `from_currency` ou `to_currency` ausente, ou nem `from_amount` nem `to_amount` enviados |
| `401` | `api-key` ausente ou inválida                                                                                                 |
| `500` | Código de moeda desconhecido, ou falha ao criar a cotação                                                                     |

<Note>
  Um código de moeda não reconhecido devolve `500`, não `400`, neste endpoint. [Cotação de Referência](/pt/api-reference/conversions/ref-quote) devolve `400` para a mesma entrada — use aquele endpoint se precisar validar códigos de moeda com um sinal limpo.

  O corpo da requisição rejeita campos desconhecidos: uma chave extra ou com erro de digitação devolve `400`, em vez de ser ignorada. Isso vale para todo POST da API.
</Note>

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

  ```python 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": "TRX_USDT_S2UZ",
          "to_currency": "BRL",
          "from_amount": 1000.0,
          "webhook": "https://seuapp.com/webhooks/nox",
      },
  )
  print(response.json())
  ```

  ```javascript Node.js 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: "TRX_USDT_S2UZ",
      to_currency: "BRL",
      from_amount: 1000.0,
      webhook: "https://seuapp.com/webhooks/nox",
    }),
  });
  const data = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "rfq_id":            "NOXabc123...",
    "from_currency":     "TRX_USDT_S2UZ",
    "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 (TRX)/BRL (PIX)",
    "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>
