GET /v1/status/{orderId}
The hub’s own lifecycle view, from its event projection. The status door for open-flow orders; it
also answers for an openFor order by its hubOrderId.
One of the hub’s three status views — the hub’s own projection. Which view answers which question:
Order lifecycle.
Request
Path parameters
Response
data (OrderStatus):
The eight domains and their states (an empty
state means not reached):
updatedAt can appear on intent (only while lastEventSeq is 0) and on delivery; finality
(PENDING, FINALIZED, ORPHANED) on sourceTx and delivery.
Behavior
Owner-scoped. The owner is the organization named on the order’s creation record. An order another organization created answersEIN0009 with the same reference as an unknown id, including
when the view is served from the cache. An id with no creation record answers EIN0009 to every
caller. The view is not scoped by X-Infinity-Subject: any call of your organization reads any of
its orders, so a backend that serves several users answers this route for the user’s own orders
only. An on-chain order id is refused before that, as EIN0001 orderId, because it carries
0x: use the on-chain views (Get on-chain fill,
Get escrow order) for those. The view is cached for 2 seconds; staleness can
under-report progress and never gates money.
Uncovered orders do not progress. An order whose quote carries executionClass
PROVIDER_NATIVE_UNCOVERED, the class of every lane POST /order/openfor accepts, has no
admissible domain transitions after creation. Its view reads intent CREATED with the other seven
domains empty for the order’s whole life, even after the order has filled and settled on chain
(known issue). Follow openFor orders with
GET /order/{orderId}/status and the on-chain views; this route gives
the intent record.
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. Same quote as the openFor pages for id-consistency: one quote completes through one flow, so this order’sorderId is the hubOrderId POST /order/openfor returned for it.
executionClass PROVIDER_NATIVE_UNCOVERED, so the view stays like
this for the order’s whole life, fill and settlement included (Behavior). intent
has no updatedAt because the projection already holds the order (lastEventSeq 1). The
watermarks are the projection’s: at the same moment the observers are at block 7061 on
eip155-56 (GET /onchain/{orderId}/fill).
See also
- SDK:
client.api.getHubOrderStatus();client.executeQuote()follows open-flow orders on this view (Tracking) - Order lifecycle
- Execution errors