curl "https://checkout.noxpay.io/v2/rfq/ref_quote?from_currency=USDT&to_currency=BRL&from_amount=1000" \
-H "api-key: <key>"
import requests
response = requests.get(
"https://checkout.noxpay.io/v2/rfq/ref_quote",
headers={"api-key": "<key>"},
params={
"from_currency": "TRX_USDT_S2UZ",
"to_currency": "BRL",
"from_amount": 1000,
},
)
print(response.json())
const params = new URLSearchParams({
from_currency: "TRX_USDT_S2UZ",
to_currency: "BRL",
from_amount: "1000",
});
const response = await fetch(
`https://checkout.noxpay.io/v2/rfq/ref_quote?${params}`,
{ headers: { "api-key": "<key>" } }
);
const data = await response.json();
{
"quote_pair": "USDT (TRX)/BRL (PIX)",
"rate_d0": 5.050,
"rate_d1": 5.060,
"from_amount_d0": 1000.0,
"to_amount_d0": 5050.0,
"from_amount_d1": 1000.0,
"to_amount_d1": 5060.0,
"settlement_eta_d0": "2026-07-01T19:00:00Z",
"settlement_eta_d1": "2026-07-02T18:00:00Z",
"d0_available": true
}
Conversions
Reference Quote
GET /v2/rfq/ref_quote — calculate an indicative rate without creating a conversion.
curl "https://checkout.noxpay.io/v2/rfq/ref_quote?from_currency=USDT&to_currency=BRL&from_amount=1000" \
-H "api-key: <key>"
import requests
response = requests.get(
"https://checkout.noxpay.io/v2/rfq/ref_quote",
headers={"api-key": "<key>"},
params={
"from_currency": "TRX_USDT_S2UZ",
"to_currency": "BRL",
"from_amount": 1000,
},
)
print(response.json())
const params = new URLSearchParams({
from_currency: "TRX_USDT_S2UZ",
to_currency: "BRL",
from_amount: "1000",
});
const response = await fetch(
`https://checkout.noxpay.io/v2/rfq/ref_quote?${params}`,
{ headers: { "api-key": "<key>" } }
);
const data = await response.json();
{
"quote_pair": "USDT (TRX)/BRL (PIX)",
"rate_d0": 5.050,
"rate_d1": 5.060,
"from_amount_d0": 1000.0,
"to_amount_d0": 5050.0,
"from_amount_d1": 1000.0,
"to_amount_d1": 5060.0,
"settlement_eta_d0": "2026-07-01T19:00:00Z",
"settlement_eta_d1": "2026-07-02T18:00:00Z",
"d0_available": true
}
Calculates a quote without creating a conversion process. Useful for showing indicative rates in your UI before a user commits to starting a conversion.
A non-numeric value in Response
Status codes:
Unlike Create Conversion, which returns
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
from_currency | string | Yes | Source currency code |
to_currency | string | Yes | Destination currency code |
from_amount | float | Conditional | Source amount (omit for a unit-rate quote) |
to_amount | float | Conditional | Destination amount |
from_amount / to_amount is treated as 0 rather than rejected.
Response 200 OK
| Field | Type | Description |
|---|---|---|
quote_pair | string | Quote pair, as <from display name>/<to display name> — display names, not currency codes (e.g. USDT (TRX)/BRL (PIX)) |
rate_d0 | float | D0 rate |
rate_d1 | float | D1 rate |
from_amount_d0 | float | D0 amount to send |
to_amount_d0 | float | D0 amount to receive |
from_amount_d1 | float | D1 amount to send |
to_amount_d1 | float | D1 amount to receive |
settlement_eta_d0 | string | D0 settlement ETA (RFC 3339) |
settlement_eta_d1 | string | D1 settlement ETA (RFC 3339) |
d0_available | boolean | false means the desk is closed for D0 — after cutoff or outside operating hours |
d0_available is always present, including when it is false — that is how you know the desk is closed for same-day settlement. It is product information, not an error.
This endpoint does not return an rfq_id and cannot be accepted — it is for display purposes only. To lock in a rate, call Create Conversion.
The spread applied here is your spread, not a global one, so the indicative rate you show matches the conversion you would actually get. Two different API keys can legitimately see different prices for the same query.
200 OK, 400 Bad Request, 401 Unauthorized, 500 Internal Server Error
| HTTP | When |
|---|---|
200 | Rate calculated |
400 | from_currency or to_currency missing, or an unrecognised currency code |
401 | Missing or invalid api-key |
500 | The quote could not be computed |
500 for an unknown currency, this endpoint returns a clean 400 — useful if you want to validate a currency pair before creating anything.
curl "https://checkout.noxpay.io/v2/rfq/ref_quote?from_currency=USDT&to_currency=BRL&from_amount=1000" \
-H "api-key: <key>"
import requests
response = requests.get(
"https://checkout.noxpay.io/v2/rfq/ref_quote",
headers={"api-key": "<key>"},
params={
"from_currency": "TRX_USDT_S2UZ",
"to_currency": "BRL",
"from_amount": 1000,
},
)
print(response.json())
const params = new URLSearchParams({
from_currency: "TRX_USDT_S2UZ",
to_currency: "BRL",
from_amount: "1000",
});
const response = await fetch(
`https://checkout.noxpay.io/v2/rfq/ref_quote?${params}`,
{ headers: { "api-key": "<key>" } }
);
const data = await response.json();
{
"quote_pair": "USDT (TRX)/BRL (PIX)",
"rate_d0": 5.050,
"rate_d1": 5.060,
"from_amount_d0": 1000.0,
"to_amount_d0": 5050.0,
"from_amount_d1": 1000.0,
"to_amount_d1": 5060.0,
"settlement_eta_d0": "2026-07-01T19:00:00Z",
"settlement_eta_d1": "2026-07-02T18:00:00Z",
"d0_available": true
}

