Skip to main content

Quotes

A quote locks a corridor + FX rate + fee config for a short TTL. Request → Accept → use within the TTL.

Canonical flow (Flow B — TEST + LIVE)

POST /v1/transactions/quote · Auth: X-API-Key

QUOTE_ID=$(curl -s -X POST "$BASE_URL/v1/transactions/quote" \
-H "X-API-Key: $THIQWAVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"corridor_id": "AE-IN",
"source_asset": "AED",
"source_amount_minor": "150000",
"destination_asset": "INR",
"destination_kind": "BANK",
"participant_id": "'"$PARTICIPANT_ID"'"
}' | jq -r .id)
FieldRequiredNotes
corridor_idyese.g. AE-IN, max 64
source_assetyesasset code, max 16
source_amount_minoryesstring of integer minor units ("150000" = AED 1,500.00)
destination_assetyesasset code, max 16
destination_kindyesWALLET | BANK | STABLECOIN
participant_idnosending participant UUID
No decimal display fields

Quote amounts use integer minor-unit strings only (source_amount_minor). Never source_amount / amount decimals — those will return 400 VAL_0001.

Accept the quote

curl -X POST "$BASE_URL/v1/transactions/quote/$QUOTE_ID/accept" \
-H "X-API-Key: $THIQWAVE_API_KEY" | jq .

CREATED → ACCEPTED. Idempotent at the business level — safe to retry. Errors: 400 QTE_0001 (expired), 409 QTE_0002 (already accepted).

Deprecated Flow A — sandbox-only

GET /v1/quotes + POST /v1/quotes/:id/accept are sandbox-only and disabled with LIVE keys (ADR-001 D-004). LIVE partners using Flow A receive 403. Use Flow B above for all production flows.

Next steps