Orders Stuck in SUBMITTED Status

Overview / Context

In Dinari's system, an order follows a two-stage lifecycle: the OrderRequest (the user's intent) and the Order (the actual on-chain transaction). When an OrderRequest reaches the SUBMITTED status, it means the order has been successfully submitted to the order book and is actively waiting to be matched with a counterparty.

This is a normal and active status — not an error or a stuck state. However, customers frequently perceive it as "stuck" because they expect immediate execution. Understanding why orders remain in SUBMITTED is critical for both support teams and customers to set proper expectations and reduce unnecessary escalations.


Process

Step 1: Confirm the Order Status

First, verify the order is indeed in SUBMITTED status using the Get Order Request by ID endpoint:

http

GET /api/v2/accounts/{account_id}/order_requests/{order_request_id}

Look for the status field. If it shows SUBMITTED, the order is active on the order book.

If the stock_order_id field is populated, you can also retrieve the Order details:

http

GET /api/v2/accounts/{account_id}/orders/{order_id}


Step 2: Check the Trading Session

Use the Get Market Hours endpoint to determine the current session:

http

GET /api/v2/market_data/market_hours/

Compare the order's created_dt with the session rules:

SessionHours (ET)What It Means for Your Order
RegularWeekdays 9:30 AM – 4:00 PMAll order types accepted; expect normal execution
ExtendedPre-market 4:00–9:30 AM; After-hours 4:00–8:00 PMLimit orders only; may take longer to fill
Overnight8:00 PM – 4:00 AM weekdaysLimit orders only; fills book in following session
Open (24/7)Friday 8:00 PM – Sunday 8:00 PMBlockchain only; limited tickers; lower liquidity


Step 3: Check the Order Type and TIF

ParameterWhat to Check
order_typeIf MARKET and placed off-hours → converted to marketable limit order
order_tifIf DAY and placed over weekend → remains eligible through next trading day
limit_priceIf LIMIT order, check if price has been reached


Step 4: Check for Partial Fills


Call the Get Order Fulfillments endpoint:

http

GET /api/v2/accounts/{account_id}/orders/{order_id}/fulfillments

If any fulfillments exist, the order has been partially filled and is waiting for the remainder.


Key Takeaway

SUBMITTED is not an error state. It's the normal, active state for an order waiting to be filled. Most "stuck" orders are simply resting on the order book during off-hours sessions or waiting for a limit price to be reached. Understanding the trading session rules is the key to setting proper expectations and reducing unnecessary escalations.


Did this page help you?