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 answers EIN0009 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’s orderId is the hubOrderId POST /order/openfor returned for it.
This order’s quote carries 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