Order Types & Behaviors

Market and limit order types across Dinari's order-placement APIs, including required fields, pricing logic, and order controls.

Dinari abstracts most market-structure complexity behind a single set of order-placement APIs. This page explains the order types Dinari supports, the fields each requires, and how order type affects pricing and order controls.

Order Types

order_typeBehavior
MARKETExecutes at the prevailing market price.1
LIMITExecutes only at the specified limit_price or better.
  • 1 Market order behavior may change depending on the available trading sessions. See Marketable Limit documentation for additional information.

:info:

Stop, stop-limit, trailing order types are not supported at this time.

order_side is either BUY or SELL.

Order Placement

The method of placing an order depends primarily on the wallet type.

MethodWallet typeDescriptionEndpoint(s)
Managed OrdersDinari-managed walletDinari places the order on your behalf.POST /api/v2/accounts/{account_id}/order_requests/{market_buy | market_sell | limit_buy | limit_sell}
Order Request (EIP-155)Self-custodied walletGenerate a permit, sign it, then either submit it on-chain yourself or have Dinari submit it for you.POST /api/v2/accounts/{account_id}/order_requests/eip155/permit
POST /api/v2/accounts/{account_id}/order_requests/eip155/submit

Every order flows through the same v2 OrderRequestOrder model. An OrderRequest must be created first, which is submitted on-chain to create an Order.

flowchart LR
  ManagedWallet --> OrderRequest
  SelfWallet[Self-custodied wallet] --> OrderRequestEIP155
  OrderRequest -- auto submitted--> Blockchain
  OrderRequestEIP155 -- Dinari sponsored<br/>eip155/submit --> Blockchain
  OrderRequestEIP155 -- self-sponsored submission --> Blockchain
  Blockchain --> Order

Go to Placing Orders for more detail on placing orders.

Required fields by order type

OrderRequired size field(s)
Market buypayment_amount (USD)
Market sellasset_quantity
Limit buy / sellasset_quantity + limit_price

Order Behavior

While the order interface is simple, it's important to understand the behavior of each order_type which is dependent primarily on the available trading sessions when the order was submitted.

Trading Session1
(times in ET)
Hours Availability order_type Behavior
Regular Weekdays
9:30a-4:00pm
All tickers, high liquidity. market Market
limit Limit
Extended Weekdays
4:00am-9:30am
4:00pm-8:00pm
Most tickers, low liquidity. market Marketable limit
limit Limit
Overnight Weekdays2
8:00pm(T-1)-4:00am
Most tickers, low liquidity. market Marketable limit
limit Limit
Open (24/7) All other times.3 Limited tickers, low liquidity. market Marketable limit
limit Limit
  • 1 See Trading Hours for more detailed information.
  • 2 From 8:00pm the previous day to 4:00am of days with a regular trading session. See Trading Hours for more detailed information.
  • 3 The Open (24/7) trading session is open when other trading sessions are closed for limited tickers. This includes weekends and holidays.

Marketable Limit Orders

When a market order cannot be routed as a plain market instruction — primarily outside regular U.S. market hours — Dinari converts it into a marketable limit order to attempt to fill the order at the best available price similar to true market orders.

  • Buys are priced at the latest ASK.
  • Sells are priced at the latest BID.

Because the result is a limit order, it may fill fully, partially, or not at all. Any unfilled remainder is refunded.

Non-fractionable Assets

Market buy orders placed for non-fractional assets in all trading sessions are treated similarly and converted to marketable limit orders. In the background, Dinari calculates the maximum number of shares that can be bought before placing a quantity order.

After the order is filled or cancelled, the remainder is refunded.

Time in Force

The order Time in Force determines how long an order remains eligible for execution.

Supported values

order_tifMeaning
DAY (default)Active until the next end of extended trading hours.1
GTCGood 'til cancelled (up to 90 days).
IOCImmediate or cancel. Fills what it can immediately, then cancels any remainder; partial fills allowed.
FOKFill or kill. Must fill in full immediately or the entire order is cancelled; no partial fills.
  • 1 Note: DAY orders placed on the weekend will be valid until the next end of extended trading hours (i.e. 8:00pm ET on Monday)

Guidance For Partners

  • Outside regular hours, submit limit orders with an explicit limit_price. This is the most predictable path.
  • Expect partial fills and refunds when placing market orders outside of the Regular Trading Session. Reconcile against Order status and the associated OrderFulfillment records rather than assuming a single terminal fill.
  • A weekend order shown as PENDING SUBMITTED is usually correct, not stuck. It may be resting on the Dinari order book or waiting to re-route to the broker when the weekend session ends.


Did this page help you?