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_type | Behavior |
|---|---|
MARKET | Executes at the prevailing market price.1 |
LIMIT | Executes 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.
| Method | Wallet type | Description | Endpoint(s) |
|---|---|---|---|
| Managed Orders | Dinari-managed wallet | Dinari 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 wallet | Generate 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/permitPOST /api/v2/accounts/{account_id}/order_requests/eip155/submit |
Every order flows through the same v2 OrderRequest → Order 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
| Order | Required size field(s) |
|---|---|
| Market buy | payment_amount (USD) |
| Market sell | asset_quantity |
| Limit buy / sell | asset_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_tif | Meaning |
|---|---|
DAY (default) | Active until the next end of extended trading hours.1 |
GTC | Good 'til cancelled (up to 90 days). |
IOC | Immediate or cancel. Fills what it can immediately, then cancels any remainder; partial fills allowed. |
FOK | Fill or kill. Must fill in full immediately or the entire order is cancelled; no partial fills. |
- 1 Note:
DAYorders 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
Orderstatus and the associatedOrderFulfillmentrecords rather than assuming a single terminal fill. - A weekend order shown as
PENDINGSUBMITTEDis 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.
Updated 11 days ago
