POST /v1/quote/prepare
Prepare one chosen provider under a stable preparationId. The result is a normal, signable
QuoteResponse; a retry with the same id returns the same stored quote.
Request
Request body
TheQuoteRequest fields plus:
Response
data: QuoteResponse, as POST /quote.
Behavior
- Replay: a stored preparation under this id is returned as-is, with its original
expiresAt— a retry never extends it. The inputs, the organization and the provider must match the stored one, or it isEIN0001(referencepreparationId). A stored preparation that has expired (or whose configuration moved on) isEIN0005: create a new id. - Only the named provider is asked. No winner is
EIN0008with an empty reference. - The prepared transaction template is stored with the quote, so a prepared quote can be submitted through any hub replica sharing the event store.
Errors
The gateway’s own refusals — a refused credential, a route not open to it, a rate limit, the hub unreachable or too slow — can come back from every route, with an
EPX code and a real HTTP status (Errors — gateway codes); EIN0049 (internal, scrubbed) can come back from any route.
Example
Response
Illustrative values; formats follow the Response table. Identical shape toPOST /quote; the ids differ because prepare derives the round id from your organization and preparationId. signablePayload.quoteId is the provider’s own quote id, not the hub’s quoteId above it. The year-2100 deadlines are the test fixture’s, which a live hub would not serve (POST /quote — example).
executionTx or swapInput (the escrow lane discloses neither); no auction (firm quote).