35=DNew Order Single (35=D)
The client sends NewOrderSingle (35=D) to the server over TLS/TCP. This is not an HTTP request.
Place a new trade order on the order-entry session (56=BITGO). Order types and business
validation match Prime REST order placement — including Market, Limit, TWAP, SteadyPace, and
Stop. See Place Order for the full
REST order catalog; the same order types are supported over FIX.
Both buy and sell support base- and quote-denominated sizing via OrderQty (38) and
Currency (15). The server responds with one or more ExecutionReports (35=8) on the same session.
Product minimum order sizes and quantity precision are not exposed via FIX; obtain
them from the Products REST endpoint
(List Products).
Message fields
| Tag | Field | Required | Description | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Account | Optional | Optional. Per-message trading account. When present, validated against the session Go Account ID (from SenderCompID). Mismatch → ExecutionReport reject. |
||||||||||||||||||||||||||||||||||||
| 11 | ClOrdID | Required | Required. Client-assigned order ID (≤ 256 chars; UUID recommended). Duplicate → reject |
||||||||||||||||||||||||||||||||||||
| 55 | Symbol | Required | Required. Trading pair / product (e.g. |
||||||||||||||||||||||||||||||||||||
| 54 | Side | Required | Required. |
||||||||||||||||||||||||||||||||||||
| 38 | OrderQty | Required | Required. Order quantity in the currency of tag 15. Must be > 0. Precision follows the product Base Increment / Quote Increment for that currency.
Size orders with Increments are precision constraints, not minimums. Minimum order size comes from the Products REST response fields
When Validation price: passive limit orders are validated against the submitted limit price; market and marketable-limit orders (limit price would execute immediately) are validated against an indicative market price observed at validation time. The validation price may differ from the price at which the order ultimately executes. TWAP and SteadyPace orders are additionally subject to strategy-specific sizing
rules, such as the Example (precision is not a minimum): a product with |
||||||||||||||||||||||||||||||||||||
| 15 | Currency (QuantityCurrency) | Required | Required. Currency of |
||||||||||||||||||||||||||||||||||||
| 40 | OrdType | Required | Required.
When TargetStrategy (847) is absent: |
||||||||||||||||||||||||||||||||||||
| 60 | TransactTime | Required | Required. Client order-creation time (UTC). Format |
||||||||||||||||||||||||||||||||||||
| 44 | Price | Optional | Conditional.
Must be > 0 when present. Precision: product QuoteDisplayPrecision. |
||||||||||||||||||||||||||||||||||||
| 99 | StopPx | Optional | Conditional. Trigger price.
Required when OrdType is Stop or Stop Limit ( |
||||||||||||||||||||||||||||||||||||
| 59 | TimeInForce | Optional | Optional.
|
||||||||||||||||||||||||||||||||||||
| 126 | ExpireTime | Optional | Conditional. Expiration timestamp (UTC).
Required when TimeInForce = GTD ( |
||||||||||||||||||||||||||||||||||||
| 168 | EffectiveTime | Optional | Optional. Scheduled activation time (UTC). Maps to REST |
||||||||||||||||||||||||||||||||||||
| 847 | TargetStrategy | Optional | Optional. Execution strategy.
|
||||||||||||||||||||||||||||||||||||
| 957 | NoStrategyParameters | Optional | Conditional. Count of strategy-parameter entries (repeating group with 958/959/960).
Required for TWAP ( |
||||||||||||||||||||||||||||||||||||
| 958 | StrategyParameterName | Optional | Conditional (inside group 957). Parameter name. TWAP (
SteadyPace (
Limit (
|
||||||||||||||||||||||||||||||||||||
| 959 | StrategyParameterType | Optional | Optional. Accepted for FIX compliance but ignored by the server on inbound orders; parameter types are inferred from the parameter name (958). Any listed value may be sent or the tag omitted entirely. |
||||||||||||||||||||||||||||||||||||
| 960 | StrategyParameterValue | Optional | Conditional (with 958). Parameter value. |
||||||||||||||||||||||||||||||||||||
| 5001 | FundingType | Optional | Optional. BitGo custom tag. |
Response messages
-
On success
Accepted or working; further ExecutionReports may follow.
-
On reject
Rejected (
150=8,39=8). CheckordRejReason(103) andtext(58).
Examples
Examples (pipe-delimited FIX):
Market buy $250 notional (funded):
8=FIX.4.4|9=156|35=D|49=0123456789abcdef0123456789abcdef|56=BITGO|34=5|52=20260415-14:30:00.123|11=ord-001|55=TBTC-TUSD*|54=1|40=1|38=250|15=TUSD*|60=20260415-14:30:00.123|10=XXX
Limit buy GTC (funded):
8=FIX.4.4|9=194|35=D|34=33|49=0123456789abcdef0123456789abcdef|52=20260511-11:57:46.396|56=BITGO|11=limit-gtc-funded-001|15=TBTC|38=0.001|40=2|44=83220.0|54=1|55=TBTC-TUSD*|59=1|60=20260511-13:00:02.000|5001=1|10=XXX
TWAP sell 60min (time-sliced):
8=FIX.4.4|9=234|35=D|49=0123456789abcdef0123456789abcdef|56=BITGO|34=8|52=20260415-15:07:16.163|11=ord-003|55=TBTC-TUSD*|54=2|38=0.002|15=TBTC|40=1|847=T|60=20260415-15:07:16.163|957=3|958=Duration|960=60|958=IsTimeSliced|960=true|958=Interval|960=5|10=XXX
Stop market sell:
8=FIX.4.4|9=166|35=D|49=0123456789abcdef0123456789abcdef|56=BITGO|34=9|52=20260415-15:10:00.000|11=ord-006|55=TBTC-TUSD*|54=2|40=3|38=0.001|15=TBTC|99=48000|60=20260415-15:10:00.000|10=XXX
SteadyPace buy:
8=FIX.4.4|9=245|35=D|49=0123456789abcdef0123456789abcdef|56=BITGO|34=12|52=20260415-15:12:00.000|11=ord-004|55=TBTC-TUSD*|54=1|38=0.001|15=TBTC|40=1|847=S|60=20260415-15:12:00.000|957=3|958=Interval|960=5|958=IntervalUnit|960=minute|958=SubOrderSize|960=0.0002|10=XXX
Margin market buy $250:
8=FIX.4.4|9=164|35=D|49=0123456789abcdef0123456789abcdef|56=BITGO|34=10|52=20260415-14:30:00.789|11=ord-008|55=TBTC-TUSD*|54=1|40=1|38=250|15=TUSD*|5001=2|60=20260415-14:30:00.789|10=XXX