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 Requestedand sends a cancel request for it; meanwhile the replacement sits asContingent. Only when the exchange confirms the original isCancelleddoes 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
| Status | Meaning | Terminal |
|---|---|---|
| Received | Initial order state | No |
| Routed | Order is on its way out of tastytrade's system | No |
| In Flight | Order is en route to the exchange | No |
| Live | Order is live at the exchange | No |
| Cancel Requested | Cancel requested; awaiting a cancel message from the exchange | No |
| Replace Requested | Replacement submitted; awaiting a cancel message for the original | No |
| Contingent | Awaiting a status update of a related order (OTOCO, OTO, or replacement) | No |
| Filled | Order has been fully filled | Yes |
| Cancelled | Order is canceled | Yes |
| Expired | Order has expired; usually a day order that did not fill by close | Yes |
| Rejected | Rejected by tastytrade or the exchange | Yes |
| Removed | Administrator manually removed this order | Yes |
| Partially Removed | Administrator manually removed part of this order | Yes |
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
- /reference/orders — order endpoints, fields, and the status field.
- /docs/guides/idempotency-and-retries — safe retries with
external-identifier. - /docs/guides/rate-limits-and-backoff — backing off on
429/5xx.