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"
}'
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())
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();
{
"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"
}
Conversions
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).
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"
}'
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())
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();
{
"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"
}
Solicita uma cotação para converter
Response
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 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 e em Consultar Conversão.
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 |
Um código de moeda não reconhecido devolve
500, não 400, neste endpoint. Cotação de Referência 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.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"
}'
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())
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();
{
"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"
}

