Order Submissions
An order submission is your trading intent: what you want to buy or sell, how much, and at what all-in price. There is no separate buying API and selling API — both sides use the same submission, distinguished by a single direction field.
A submission is not itself a resting order. When you create one, Tradepost materializes it into a resting order — a bid for a BUY, an ask for a SELL — on the book for the one product and key it names, in every venue it is scoped to. You manage the submission as the unit: amend it, cancel it, or query its state.
Matching is asynchronous: createOrderSubmission returns QUEUED, and within about a second the order crosses what it can and rests the remainder or cancels it per time in force. Read the outcome with getOrderSubmission, or subscribe to the order lifecycle stream.
Direction
| Direction | What rests on the book | Side-specific inputs |
|---|---|---|
BUY | Bids | Payment rail / payment token, auto-outtake, vaulting preference, recipient address |
SELL | Asks | Origin address, minimum order size |
Order types
| Type | Behavior |
|---|---|
LIMIT | Rests at your all-in price until matched, cancelled, or expired |
MARKET | Crosses immediately against available liquidity, subject to slippage controls |
Time in force
| TIF | Behavior |
|---|---|
GTC | Good till cancelled — rests until you cancel or it expires |
IOC | Immediate or cancel — fills what it can instantly, cancels the rest |
FOK | Fill or kill — fills entirely and instantly, or not at all |
Status lifecycle
Status says where the order stands with the book — is it still working, and if not, how did it end. Fill progress is filledQuantity / settledQuantity, not the status: an order with units resting stays amendable and cancellable whatever has already matched or delivered. Crossing the book commits quantity but moves no money and no goods — a cross can still fail while settling — so only settlement ever declares FILLED.
| Status | Meaning |
|---|---|
QUEUED | Accepted, not yet resting on any book |
EXECUTING | A worker is running this order's match/rest right now — milliseconds, not a business phase |
RESTING | Units on the book, none delivered yet. Working — some quantity may already be matched and settling |
PARTIALLY_FILLED | Units on the book and some already delivered. Working — amend or cancel acts on the resting remainder |
SETTLING | Nothing left on the book; matched units still moving through settlement. Done working, not done settling — nothing to amend or cancel. Resolves to FILLED, or to CANCELLED / EXPIRED carrying the delivered count |
FILLED | Every unit delivered. Terminal |
CANCELLED | Nothing on the book, nothing moving, short of a full fill — pulled, swept, or killed. filledQuantity may be non-zero. Terminal |
EXPIRED | Nothing on the book, nothing moving; the last resting order ran out its clock. filledQuantity may be non-zero. Terminal |
Who may trade
Every venue carries access rules — identity verification, account type, balance, region — evaluated when you submit. A refused order returns a payload error naming what would fix it: KYC_REQUIRED, PAYOUT_METHOD_REQUIRED, PRICE_REQUIRED, or the generic ACCESS_DENIED. getProductMarkets previews the venues and sides open to you — see Markets.
API surface
| Operation | Purpose |
|---|---|
getOrderQuote | Price a prospective submission before creating it — see Quotes |
createOrderSubmission | Submit an order — see Creating |
bulkCreateOrderSubmissions | Submit many orders in one call |
updateOrderSubmission | Amend a live submission — see Managing |
cancelOrderSubmission | Cancel a live submission |
bulkCancelOrderSubmissions | Cancel many submissions in one call |
getOrderSubmission | Fetch one submission — see Querying |
listOrderSubmissions | Page your submissions with filters |
The fills that result from your submissions are Order Executions.