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"'"
}'
| Field | Type | Required | Notes |
|---|---|---|---|
corridor_id | string | yes | max 64 |
source_asset | string | yes | asset code, max 16 |
source_amount_minor | string | yes | integer minor units |
destination_asset | string | yes | asset code, max 16 |
destination_kind | enum | yes | WALLET | BANK | STABLECOIN |
customer_id | uuid | no | sending 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.