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)
| Field | Required | Notes |
|---|---|---|
corridor_id | yes | e.g. AE-IN, max 64 |
source_asset | yes | asset code, max 16 |
source_amount_minor | yes | string of integer minor units ("150000" = AED 1,500.00) |
destination_asset | yes | asset code, max 16 |
destination_kind | yes | WALLET | BANK | STABLECOIN |
participant_id | no | sending 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.