tastytradeDeveloper Docs
Legacy ↗

Order Lifecycle

An order in the tastytrade system moves through a sequence of statuses from the moment you submit it until it reaches a final, unchanging state. The statuses can be overwhelming at first, so it helps to group them into three phases: submission, working, and terminal. This page explains what each status means and how orders move between them.

Because orders move money, always submit a dry-run first to validate buying power, fees, and order construction before placing the live order, and tag each submission with a unique external-identifier in the request body. The API does not deduplicate retried submissions and there is no idempotency-key header — if a submission's outcome is uncertain (timeout or 5xx), check your live/recent orders for that identifier before resubmitting. See /docs/guides/idempotency-and-retries and the full request/response shapes in /reference/orders.

Submission phase

Statuses: Received, Routed, In Flight, Contingent

These are orders that have not yet been accepted by any exchange, so they are not "working" yet.

  • Received — typically seen when you submit while the markets are closed. tastytrade has the order and will route it when the market opens. This is one of the first statuses you see.
  • Routed — the order is being submitted to an exchange.
  • In Flight — the order has left tastytrade's system and is awaiting confirmation that the exchange received it.
  • Contingent — the order is dormant, waiting for a related order to update. This applies to complex OTOCO and OTO orders that sit until a triggering order routes them, and to replacement orders waiting for the original order to reach Cancelled.

An order can also go straight to Rejected here — a terminal status (see below) that occurs, for example, when the account lacks sufficient buying power.

Working phase

Statuses: Live, Cancel Requested, Replace Requested

An order is "working" once it reaches the exchange and the exchange confirms it. This phase can last milliseconds or, for GTC orders, days or months until you cancel.

  • Live — always the first status after the submission phase. Once live, the order can be canceled or replaced.
  • Cancel Requested — you asked to cancel; the request is at the exchange and tastytrade is awaiting confirmation. On confirmation the order becomes Cancelled.
  • Replace Requested — you submitted a replacement for a live (original) order. tastytrade marks the original Replace Requested and sends a cancel request for it; meanwhile the replacement sits as Contingent. Only when the exchange confirms the original is Cancelled does the replacement route. tastytrade never routes the replacement before the original cancels — this gives you cancel-and-replace in a single request.

Terminal phase

Statuses: Filled, Cancelled, Rejected, Expired, Removed, Partially Removed

Once an order enters a terminal status it receives no further updates.

  • Filled — the order is fully filled; a position and a trade transaction are created and the account balance updates.
  • Cancelled — the customer canceled the order.
  • Rejected — rejected by tastytrade or the exchange. This can happen in the submission phase (e.g. a non-existent symbol) or the working phase.
  • Expired — usually a day order that did not fill by market close; tastytrade marks it automatically.
  • Removed / Partially Removed — an administrator manually removed all or part of the order from the account.

Status reference

StatusMeaningTerminal
ReceivedInitial order stateNo
RoutedOrder is on its way out of tastytrade's systemNo
In FlightOrder is en route to the exchangeNo
LiveOrder is live at the exchangeNo
Cancel RequestedCancel requested; awaiting a cancel message from the exchangeNo
Replace RequestedReplacement submitted; awaiting a cancel message for the originalNo
ContingentAwaiting a status update of a related order (OTOCO, OTO, or replacement)No
FilledOrder has been fully filledYes
CancelledOrder is canceledYes
ExpiredOrder has expired; usually a day order that did not fill by closeYes
RejectedRejected by tastytrade or the exchangeYes
RemovedAdministrator manually removed this orderYes
Partially RemovedAdministrator manually removed part of this orderYes

Partial fills

tastytrade marks an order Filled as soon as possible, even if every individual fill is not yet processed. If you read the order and its status is Filled but one or more legs are missing fills, you simply hit the API while the system was still processing — expect this and re-fetch after a brief delay. Fills usually finish processing within milliseconds.

Example transitions

Immediate fill:

Received -> Routed -> In Flight -> Live -> Filled

Canceled by customer:

Received -> Routed -> In Flight -> Live -> Cancel Requested -> Cancelled

Expired day order:

Received -> Routed -> In Flight -> Live -> Expired

Rejected immediately:

Received -> Rejected

Related