GET /v1/order/{orderId}/status The aggregator-backed projection of an openFor order. One of the hub’s three status views — the advisory one. Which view answers which question: Order lifecycle.

Request

Path parameters

Response

data (UpstreamOrderStatus):

Behavior

  • This is advisory. Neither finalized, settled nor filled proves settlement; use the on-chain views for observed facts.
  • States only move forward: created < pending < executing < executed < settling < settled < finalized, with failed and refunded reachable from any non-terminal state. The terminal states are finalized, failed and refunded: settled can still become any of them. A backwards, unknown or contradictory report is not applied: it sets rejectedUpstreamTransition and upstreamStale and keeps the previous state.
  • Served from a 2-second cache; when a refresh fails the last good state is served with upstreamStale: true.
  • Stop polling at finalized, failed or refunded, and do not present any of them as verified finality.
  • Give the loop a stall rule. An EVM gasless order can stay executed long after it filled and settled on chain, with fresh syncs, upstreamStale: false and no fillTransaction; settled may never be reported (known issue). Once the order reaches executed, read GET /onchain/{orderId}/fill with its onchainOrderId (from GET /orders): its filled and settled facts are the chain’s answer. Hand off to it after a few minutes without progress. The chain facts are open to your project id too; a page, which cannot list orders, takes the on-chain id from the order it submitted: on the escrow lanes the openFor ack’s orderId is the on-chain id, and the SDK’s executeQuote finds it for you.
  • Open to a project id, like every route but GET /orders. Anyone who holds your project id and one of your order ids can read that order’s status. Nothing lists the ids to a page.

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.
failedAt/failureReason are absent: this order is not on the failure arm. The first at is the hub’s first read, three seconds after the ack’s submittedAt.

See also