Skip to main content

Quotes

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

Request a quote

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-SG",
"source_asset": "AED",
"source_amount_minor": "150000",
"destination_asset": "SGD",
"destination_kind": "BANK",
"customer_id": "'"$CUSTOMER_ID"'"
}' | jq -r .id)
FieldRequiredNotes
corridor_idyese.g. AE-SG, 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
customer_idnosending customer UUID

:::warning 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).

Next steps