Skip to main content
POST
Takes one quote on an open RFQ. Only the original requesterAddress may accept, and only while both the request and the quote are still live. Acceptance is not a simple state change. The price is re-validated against the reference feed at the moment you accept, rather than at the price checked when the provider quoted. Your own funds are then committed, the winning quote is marked accepted and every other quote is withdrawn, and the trade is settled through the custody contract.
Committing the requester’s funds needs a balance lock in StockCustody, which requires a signature from the custody settlement operator that Trusset cannot produce. This endpoint therefore answers 409 ONCHAIN_SETTLEMENT_UNAVAILABLE today. The refusal happens before the RFQ is marked accepted and before any trade row is written, and the lock row it had staged is deleted, so the request stays open for its remaining lifetime and nothing is stranded.

Idempotency

This endpoint requires an Idempotency-Key header. Without one it returns 400 IDEMPOTENCY_KEY_REQUIRED. Acceptance both moves funds and destroys the other quotes, so a retry after a network timeout must not be able to execute twice.

Path Parameters

string
required
RFQ ID.

Body Parameters

string
required
Must equal the RFQ’s requesterAddress. Anyone else is refused with FORBIDDEN.
string
required
The quote to take. Must belong to this RFQ and still be ACTIVE.

Response Fields

This is the shape the endpoint returns once execution is available.
object

Error Codes