Skip to main content

Quotes — Reference

Auth: X-API-Key.

Request a quote

POST /v1/transactions/quote

curl -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"'"
}'
FieldTypeRequiredNotes
corridor_idstringyesmax 64
source_assetstringyesasset code, max 16
source_amount_minorstringyesinteger minor units
destination_assetstringyesasset code, max 16
destination_kindenumyesWALLET | BANK | STABLECOIN
customer_iduuidnosending customer

Response 201 returns the quote with id, status: CREATED, expires_at. Errors: 400 VAL_0001.

POST /v1/transactions/quote/:id/accept

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

Errors: 400 QTE_0001 (expired), 409 QTE_0002 (already accepted), 404.

Legacy quote endpoints (TEST only)

:::warning TEST keys only A LIVE key calling GET /v1/quotes or POST /v1/quotes/:id/accept receives 403. Use POST /v1/transactions/quote above for production. :::

GET /v1/quotes — create (GET with body)

curl -G "$BASE_URL/v1/quotes" \
-H "X-API-Key: $THIQWAVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from_customer_id": "'"$CUSTOMER_ID"'",
"to": { "type": "WALLET", "currency": "USDT", "address": "0x4444…4444" },
"source_amount": "10000.00",
"source_currency": "AED"
}'

(These endpoints take decimal display strings source_amount/source_currency — distinct from the source_amount_minor integer minor units used by POST /v1/transactions/quote.)

POST /v1/quotes/:id/accept — accept (TEST only)

Errors: 403 with LIVE key, 409 QTE_0002, 400 QTE_0001.