curl https://checkout.noxpay.io/v2/rfq/NOXabc123 \
-H "api-key: <key>"
import requests
response = requests.get(
"https://checkout.noxpay.io/v2/rfq/NOXabc123",
headers={"api-key": "<key>"},
)
print(response.json())
const response = await fetch(
"https://checkout.noxpay.io/v2/rfq/NOXabc123",
{ headers: { "api-key": "<key>" } }
);
const data = await response.json();
{
"version": "v2",
"end2end": "NOXabc123",
"created_at": "2026-07-01T12:00:00Z",
"updated_at": "2026-07-01T12:00:31Z",
"process": "otc_settlement.awaiting",
"status": { "en": "Processing", "pt": "Processando", "es": "Procesando" },
"substatus": { "en": "OTC Delivery Scheduled", "pt": "Entrega OTC Agendada", "es": "Entrega OTC Programada" },
"message": { "en": "Trade locked; awaiting the settlement window", "pt": "Operação travada; aguardando a janela de liquidação", "es": "Operación fijada; esperando la ventana de liquidación" },
"error_message": { "en": "", "pt": "", "es": "" },
"attributes": {
"from_currency": "TRX_USDT_S2UZ",
"to_currency": "BRL",
"quote_pair": "USDT (TRX)/BRL (PIX)",
"from_amount_d0": 1000.0,
"to_amount_d0": 5050.0,
"rate_d0": 5.050,
"fee_d0": 12.5,
"from_amount_d1": 1000.0,
"to_amount_d1": 5060.0,
"rate_d1": 5.060,
"fee_d1": 10.0,
"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",
"d0_available": "true",
"settlement_day": "d0",
"amount_from": 1000.0,
"amount_to": 5050.0,
"rate": 5.050,
"fee_applied": 12.5,
"settlement_eta": "2026-07-01T19:00:00Z",
"amount_brl": 5050.0,
"wallet_id": "...",
"webhook": "https://yourapp.com/webhooks/nox"
}
}
Conversions
Get Conversion
GET /v2/rfq/ — retrieve the current state and attributes of a conversion.
curl https://checkout.noxpay.io/v2/rfq/NOXabc123 \
-H "api-key: <key>"
import requests
response = requests.get(
"https://checkout.noxpay.io/v2/rfq/NOXabc123",
headers={"api-key": "<key>"},
)
print(response.json())
const response = await fetch(
"https://checkout.noxpay.io/v2/rfq/NOXabc123",
{ headers: { "api-key": "<key>" } }
);
const data = await response.json();
{
"version": "v2",
"end2end": "NOXabc123",
"created_at": "2026-07-01T12:00:00Z",
"updated_at": "2026-07-01T12:00:31Z",
"process": "otc_settlement.awaiting",
"status": { "en": "Processing", "pt": "Processando", "es": "Procesando" },
"substatus": { "en": "OTC Delivery Scheduled", "pt": "Entrega OTC Agendada", "es": "Entrega OTC Programada" },
"message": { "en": "Trade locked; awaiting the settlement window", "pt": "Operação travada; aguardando a janela de liquidação", "es": "Operación fijada; esperando la ventana de liquidación" },
"error_message": { "en": "", "pt": "", "es": "" },
"attributes": {
"from_currency": "TRX_USDT_S2UZ",
"to_currency": "BRL",
"quote_pair": "USDT (TRX)/BRL (PIX)",
"from_amount_d0": 1000.0,
"to_amount_d0": 5050.0,
"rate_d0": 5.050,
"fee_d0": 12.5,
"from_amount_d1": 1000.0,
"to_amount_d1": 5060.0,
"rate_d1": 5.060,
"fee_d1": 10.0,
"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",
"d0_available": "true",
"settlement_day": "d0",
"amount_from": 1000.0,
"amount_to": 5050.0,
"rate": 5.050,
"fee_applied": 12.5,
"settlement_eta": "2026-07-01T19:00:00Z",
"amount_brl": 5050.0,
"wallet_id": "...",
"webhook": "https://yourapp.com/webhooks/nox"
}
}
Path parameters
| Parameter | Description |
|---|---|
id | The rfq_id returned by Create Conversion |
This GET has a side effect. Before reading, an expired quote that is still within its
renewable_up_to window is renewed — with fresh rates. Two consecutive reads of the same rfq_id can legitimately return different values for rate_d0 / rate_d1 and the amounts derived from them. Read the conversion once, act on that snapshot, and do not assume a read is idempotent.Response 200 OK
Returns the standard Transaction Object envelope. Track progress through status and substatus; see Conversion statuses for the full set of values.
Attributes — the quote
Present from creation onward.| Field | Type | Description |
|---|---|---|
from_currency | string | Source currency |
to_currency | string | Destination currency |
quote_pair | string | Quote pair, as <from display name>/<to display name> — display names, not currency codes (e.g. USDT (TRX)/BRL (PIX)) |
from_amount_d0 | float | D0 amount to send |
to_amount_d0 | float | D0 amount to receive |
rate_d0 | float | D0 rate |
fee_d0 | float | Fee that would apply if you accept D0 |
from_amount_d1 | float | D1 amount to send |
to_amount_d1 | float | D1 amount to receive |
rate_d1 | float | D1 rate |
fee_d1 | float | Fee that would apply if you accept D1 |
settlement_eta_d0 | string | D0 settlement ETA (RFC 3339) |
settlement_eta_d1 | string | D1 settlement ETA (RFC 3339) |
expires_at | string | When the current rate expires (RFC 3339) |
renewable_up_to | string | Last moment the quote can be renewed rather than recreated (RFC 3339) |
d0_available | string | Whether the desk is open for same-day settlement |
webhook | string | Configured webhook URL |
Attributes — after acceptance
These keys are absent until you accept, and that absence is how you tell that no decision has been made yet. Check for key presence, not for a zero value.| Field | Type | Description |
|---|---|---|
settlement_day | string | d0 or d1 — the window you chose |
amount_from | float | Confirmed amount sent |
amount_to | float | Confirmed amount received |
rate | float | Confirmed rate |
fee_applied | float | The fee actually charged |
settlement_eta | string | Confirmed settlement ETA (RFC 3339) |
wallet_id | string | Destination wallet, for a crypto payout |
pix_key | string | Destination Pix key, for a BRL payout |
amount_brl | float | BRL-equivalent size of the accepted operation — the figure that counted against your ceiling |
fee_d0 and fee_d1 stay visible after acceptance, alongside fee_applied. The candidate fees are not suppressed once you have chosen — read fee_applied for what you were actually charged.Attributes — refusals and ceilings
Present only when relevant.| Field | Type | Description |
|---|---|---|
error_detail | string | Client-facing explanation of the refusal or failure |
limit_block_source | string | Which gate blocked the operation: operational for the desk ceiling, compliance for the KYB tier. Absent when the refusal was for insufficient balance |
payout_limit_currency | string | Currency the payout ceiling is denominated in |
payout_limit_available | float | Payout headroom remaining |
payout_limit_projected | float | Payout headroom after this operation |
payout_limit_* fields are informational — the payout axis is not enforced on this endpoint.
Any attribute with an empty value is omitted entirely rather than returned as "" or null.
Status codes
| HTTP | When |
|---|---|
200 | Found |
401 | Missing or invalid api-key |
404 | Does not exist, or belongs to another account — deliberately indistinguishable |
500 | Internal error |
401, 404, and 500 are returned as a bare status with no response body.
curl https://checkout.noxpay.io/v2/rfq/NOXabc123 \
-H "api-key: <key>"
import requests
response = requests.get(
"https://checkout.noxpay.io/v2/rfq/NOXabc123",
headers={"api-key": "<key>"},
)
print(response.json())
const response = await fetch(
"https://checkout.noxpay.io/v2/rfq/NOXabc123",
{ headers: { "api-key": "<key>" } }
);
const data = await response.json();
{
"version": "v2",
"end2end": "NOXabc123",
"created_at": "2026-07-01T12:00:00Z",
"updated_at": "2026-07-01T12:00:31Z",
"process": "otc_settlement.awaiting",
"status": { "en": "Processing", "pt": "Processando", "es": "Procesando" },
"substatus": { "en": "OTC Delivery Scheduled", "pt": "Entrega OTC Agendada", "es": "Entrega OTC Programada" },
"message": { "en": "Trade locked; awaiting the settlement window", "pt": "Operação travada; aguardando a janela de liquidação", "es": "Operación fijada; esperando la ventana de liquidación" },
"error_message": { "en": "", "pt": "", "es": "" },
"attributes": {
"from_currency": "TRX_USDT_S2UZ",
"to_currency": "BRL",
"quote_pair": "USDT (TRX)/BRL (PIX)",
"from_amount_d0": 1000.0,
"to_amount_d0": 5050.0,
"rate_d0": 5.050,
"fee_d0": 12.5,
"from_amount_d1": 1000.0,
"to_amount_d1": 5060.0,
"rate_d1": 5.060,
"fee_d1": 10.0,
"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",
"d0_available": "true",
"settlement_day": "d0",
"amount_from": 1000.0,
"amount_to": 5050.0,
"rate": 5.050,
"fee_applied": 12.5,
"settlement_eta": "2026-07-01T19:00:00Z",
"amount_brl": 5050.0,
"wallet_id": "...",
"webhook": "https://yourapp.com/webhooks/nox"
}
}

