Approve a quote
Accepts an open quote and works the order. This is the committing step.
The quote you were shown was indicative. Approving prices the order again, holding the leg you fixed and moving the derived one, and the confirmed numbers come back on the top-level cryptoAmount / fiatAmount / price. The original stays under quote, so you can show the user what moved.
A trade you have already approved is not approved twice. The outcomes:
- already
completed→ the original result is replayed. Nothing trades again. - still
executing→409. The order is placed and the outcome is not yet confirmed — poll/trade, never re-approve. expired,failedorcancelled→409. Request a new quote.
Approving an order whose quote has lapsed marks it expired and answers 409 — that
holds for a trade you already approved but never settled, not just an untouched one.
A 502 or 504 means the order was rejected or the outcome is unknown. Poll /trade before doing anything else: a trade sitting at executing has not been abandoned, and re-approving it is the one thing that could trade twice.
Authentication
A 15-minute token from /auth. Required on every endpoint except /auth.
Headers
Correlation id. Generated if omitted, echoed on every response, and written to the audit log. /send is the exception — there it is required, and it doubles as the idempotency key.
Optional. When present it overrides any userId in the body.
Request
24-character hex id, returned by /create.
24-character hex id of a trade, returned by /order and /sell.
Response
OK — the order settled, or was accepted and is being worked.
One trade, whichever side it is.
cryptoAmount, fiatAmount and price are the best known figures: what executed if it has, else what you approved, else what was quoted. quote always holds the original quoted leg, so you can show both. Every amount and price is cut — not rounded — to at most 6 decimal places, with trailing zeros trimmed, so 100.00 is returned as 100.
Echo of the inbound X-Request-Id, or a generated one.