Confirm a quote
The quote ID is the idempotency key: confirming the same quote again returns the same exchange, so no Idempotency-Key is needed. The available balance is checked on confirmation.
- Pooled exchanges complete immediately: 201 with
status: completed. - Provider exchanges hold the sell amount and submit to the provider: 202 with
status: pending. The result is sent with theexchange.status_changedwebhook and can be read withGET /exchanges/{exchangeId}. On completion the amounts the provider actually filled are booked; on failure the held amount is released and no fee is charged.
merchantApiKeymerchantTimestampmerchantNoncemerchantSignatureX-API-KEY<token>Merchant API key (starts with upk_, also accepts api-key); signing headers are also required
X-Timestamp<token>Unix timestamp in seconds, within 300 seconds of server time
X-Nonce<token>Unique per request; cannot be reused with the same credential during the timestamp validity window
X-Signature<token>Hex HMAC-SHA256 signature (either letter case) of the method, full path, timestamp, nonce and body digest
application/json- body
quote_id*stringQuote ID (starts with qte_)
Exchange completed (pooled)
application/json- response
id*stringExchange ID (starts with exc_)
quote_id*stringstatus*ExchangeStatuspending: sell amount held, waiting for the provider's resultcompleted: completed and bookedfailed: failed, seefailure_reason; the held amount is released and no fee is charged
"pending""completed""failed"sell_amount*stringsell_currency*stringbuy_amount*stringAmount the merchant receives; for provider exchanges, updated to what the provider actually filled on completion
buy_currency*stringrate*stringSame as the quote's rate
fee*stringSame as the quote's fee
fee_currency*stringfailure_reason*string|nullcreated_at*stringdate-timecompleted_at*|date-timecurl -X POST 'https://sandbox.getupp.net/api/v1/exchanges' \ -H 'Content-Type: application/json' \ -d '{ "quote_id": "qte_01m5ksmh0rf3d8w9xgq7a4bn2t"}'{ "id": "string", "quote_id": "string", "status": "pending", "sell_amount": "string", "sell_currency": "string", "buy_amount": "string", "buy_currency": "string", "rate": "string", "fee": "string", "fee_currency": "string", "failure_reason": "string", "created_at": "2019-08-24T14:15:22Z", "completed_at": "2019-08-24T14:15:22Z"}