Documentation Index
Fetch the complete documentation index at: https://docs.cloud.coinbase.com/llms.txt
Use this file to discover all available pages before exploring further.
This specification is currently in beta and requires account enablement. Features and definitions are subject to change.
In the tables below, the Req column indicates whether a field is required: Y = Required, N = Optional, C = Conditional on another field. ↳ denotes a field within a repeating group.
Session Management Messages
(A) Logon
Initiates FIX session connection between client and server.Standard Header Fields| Tag | Name | FIX Type | Req | Description |
|---|
| 8 | BeginString | String | Y | FIX.5.0 |
| 9 | BodyLength | Int | Y | Message body length in bytes |
| 35 | MsgType | String | Y | A = Logon |
| 49 | SenderCompID | String | Y | Sender’s unique identifier |
| 56 | TargetCompID | String | Y | Target’s unique identifier |
| 34 | MsgSeqNum | Int | Y | Message sequence number |
| 52 | SendingTime | UTCTimestamp | Y | Time of message transmission |
Logon Message Fields| Tag | Name | FIX Type | Req | Description |
|---|
| 96 | RawData | text | Y | Signature |
| 98 | EncryptMethod | Int | Y | 0 = None |
| 108 | HeartBtInt | Int | Y | Heartbeat interval in seconds (recommended: 30) |
| 141 | ResetSeqNumFlag | Boolean | N | Y = Reset sequence numbers to 1 |
| 553 | Username | String | Y | Client username for authentication |
| 554 | Password | String | Y | Client password for authentication |
| 1137 | DefaultApplVerID | String | Y | 9 = FIX50SP2 = FIX 5.0 Service Pack 2 |
(5) Logout
Terminates FIX session gracefully.| Tag | Name | FIX Type | Req | Description |
|---|
| 58 | Text | String | N | Logout reason or informational message |
(0) Heartbeat
Maintains session connectivity and confirms system responsiveness.| Tag | Name | FIX Type | Req | Description |
|---|
| 112 | TestReqID | String | C | Required if responding to TestRequest. Echo the TestReqID from the TestRequest message. |
(1) TestRequest
Validates session responsiveness when no messages received within HeartBtInt period.| Tag | Name | FIX Type | Req | Description |
|---|
| 112 | TestReqID | String | Y | Unique identifier that must be echoed in Heartbeat response |
(3) Reject
Indicates session-level rejection of a received message.| Tag | Name | FIX Type | Req | Description |
|---|
| 45 | RefSeqNum | Int | Y | MsgSeqNum of rejected message |
| 371 | RefTagID | Int | C | Tag number of the field with error |
| 372 | RefMsgType | String | C | MsgType of rejected message |
| 373 | SessionRejectReason | Int | C | 0 = Invalid tag number
1 = Required tag missing
2 = Tag not defined
5 = Value incorrect
6 = Incorrect data format |
| 58 | Text | String | N | Human-readable description of rejection |
(2) ResendRequest
Requests retransmission of messages when gap detected in sequence numbers.| Tag | Name | FIX Type | Req | Description |
|---|
| 7 | BeginSeqNo | Int | Y | Starting sequence number for resend range |
| 16 | EndSeqNo | Int | Y | Ending sequence number (0 = resend all messages after BeginSeqNo) |
(4) SequenceReset
Resets message sequence numbers or fills sequence gaps.| Tag | Name | FIX Type | Req | Description |
|---|
| 123 | GapFillFlag | Boolean | C | Y = Gap fill mode (messages 34 through NewSeqNo-1 have been skipped) |
| 36 | NewSeqNo | Int | Y | New sequence number for next message |
Order Entry Messages
All messages in this section must include the Standard Header fields. See
(A) Logon for the full field list.
(D) NewOrderSingle
Request to submit new single-legged order.| Tag | Name | FIX Type | Req | Description |
|---|
| 1 | Account | String(16) | Y | Trading account identifier |
| 11 | ClOrdID | String(36) | Y | Unique client order identifier. Must be unique across all orders. |
| 38 | OrderQty | Int(9) | Y | Order quantity (positive integer) |
| 152 | CashOrderQty | Int(9) | Y | Order quantity (in quote units) |
| 40 | OrdType | Char(1) | Y | 1 = Market
2 = Limit
4 = Stop Limit |
| 44 | Price | Price(20) | C | Limit price. Required for Limit and Stop Limit orders. |
| 54 | Side | Char(1) | Y | 1 = Buy, 2 = Sell |
| 55 | Symbol | String(24) | Y | Instrument symbol (e.g., BTC-27FEB26-CDE, ETH-USD). |
| 167 | SecurityType | String(6) | Y | FUT = Futures |
| 59 | TimeInForce | Char(1) | N | 1 = Good Till Cancel (GTC)
6 = Good Till Date (GTD)
3 = Immediate or Cancel (IOC)
4 = Fill or Kill (FOK) |
| 60 | TransactTime | UTCTimestamp | Y | Order submission time (YYYYMMDD-HH:MM:SS.sss in UTC) |
| 18 | ExecInst | Char | N | A = Post only |
| 99 | StopPx | Price(20) | C | Stop trigger price. Required for Stop and Stop Limit orders. |
| 126 | ExpireTime | UTCTimestamp | C | Expiration time. Required when TimeInForce = 6 (GTD). |
| 168 | EffectiveTime | UTCTimestamp | C | Start time of an order (required for TWAP/VWAP orders) |
| 1138 | DisplayQty | Qty | N | Display quantity for iceberg orders. Only available when OrdType 2 = Limit or 4 = Stop Limit. |
| 528 | OrderCapacity | Char(1) | N | A = Agency, P = Principal |
| 847 | TargetStrategy | | N | Requires ExpireTime and EffectiveTime for TWAP/VWAP orders. 1001 = TWAP |
| 1028 | ManualOrderIndicator | Boolean | Y | Y = Manual order entry, N = Automated/algorithmic |
| 1031 | CustOrderHandlingInst | String | Y | W = Desk
Y = Electronic (default)
C = Vendor provided platform billed by executing broker
G = Sponsored access via exchange API
H = Premium algorithmic trading provided by executing broker
D = Other |
(F) OrderCancelRequest
Request to cancel submitted single or multi-leg order.| Tag | Name | FIX Type | Req | Description |
|---|
| 1 | Account | String(16) | Y | Account identifier |
| 11 | ClOrdID | String(36) | Y | New unique client order identifier for this cancel request |
| 37 | OrderID | String(17) | Y | Exchange-assigned order ID to be canceled (from ExecutionReport) |
| 41 | OrigClOrdID | String(36) | N | ClOrdID of the order being canceled |
| 54 | Side | Char(1) | Y | Original order side (1 = Buy, 2 = Sell) |
| 55 | Symbol | String(24) | Y | Instrument symbol |
| 167 | SecurityType | String(6) | Y | FUT |
| 60 | TransactTime | UTCTimestamp | Y | Cancel request submission time |
| 1028 | ManualOrderIndicator | Boolean | Y | Y = Manual, N = Automated |
(H) OrderStatusRequest
Queries current status of an order.| Tag | Name | FIX Type | Req | Description |
|---|
| 1 | Account | String(16) | N | Account identifier |
| 11 | ClOrdID | String(36) | Y | Client order identifier |
| 37 | OrderID | String(17) | C | Exchange order ID (if known) |
| 54 | Side | Char(1) | Y | Order side (1 = Buy, 2 = Sell) |
| 55 | Symbol | String(24) | Y | Instrument symbol |
| 167 | SecurityType | String(6) | Y | FUT |
(8) ExecutionReport
Reports order status changes, fills, rejections, and other execution events.| Tag | Name | FIX Type | Req | Description |
|---|
| 1 | Account | String(16) | Y | Account identifier |
| 11 | ClOrdID | String(36) | Y | Client order identifier from request message |
| 13 | CommType | String | Y | 3 = Absolute |
| 12 | Commission | Amt | Y | The Coinbase commission incurred for this fill in quote currency |
| 17 | ExecID | String | Y | Unique execution identifier assigned by exchange. Returns 0 when sent in with OrderStatusRequest |
| 30 | LastMkt | String | Y | Venue of execution for last fill |
| 37 | OrderID | String(17) | Y | Exchange-assigned order identifier |
| 41 | OrigClOrdID | String(36) | C | Original ClOrdID when responding to cancel/replace requests |
| 150 | ExecType | Char | Y | A = Pending New
0 = New
4 = Canceled
8 = Rejected
C = Expired
F = Trade (partial or full fill)
3 = Done for Day
L = Stop Triggered |
| 39 | OrdStatus | Char | Y | A = Pending New
0 = New
I = Order Status
1 = Partially filled
2 = Filled
4 = Canceled
8 = Rejected
C = Expired
6 = Pending Cancel
E = Pending Replace |
| 54 | Side | Char(1) | Y | 1 = Buy, 2 = Sell |
| 55 | Symbol | String(24) | Y | Instrument symbol |
| 167 | SecurityType | String(6) | Y | FUT |
| 38 | OrderQty | Int(9) | Y | Original order quantity |
| 40 | OrdType | Char(1) | Y | 1 = Market
2 = Limit
3 = Stop
4 = Stop Limit |
| 44 | Price | Price(20) | C | Limit price (if applicable) |
| 99 | StopPx | Price(20) | C | Stop trigger price (if applicable) |
| 59 | TimeInForce | Char(1) | N | 1 = GTC
6 = GTD
3 = IOC
4 = FOK |
| 60 | TransactTime | UTCTimestamp | Y | Transaction time (YYYYMMDD-HH:MM:SS.ssssss) |
| 14 | CumQty | Qty | Y | Cumulative quantity filled |
| 151 | LeavesQty | Qty | Y | Quantity remaining open (OrderQty - CumQty) |
| 152 | CashOrderQty | Qty | Y | Quantity remaining in quote currency |
| 32 | LastQty | Qty | C | Quantity filled in this execution (required when ExecType = F) |
| 31 | LastPx | Price(20) | C | Execution price (required when ExecType = F) |
| 6 | AvgPx | Price(20) | Y | Average fill price across all executions |
| 136 | NoMiscFees | | C | Number of MiscFees (repeating group) |
| ↳137 | MiscFeeAmt | Amt | C | Misc fee value |
| ↳138 | MiscFeeCurr | String | C | Currency of misc fees in quote currency |
| ↳139 | MiscFeeType | String | C | 1 = Regulatory Fee
7 = Client Fee
4 = Venue Fee
3 = Trading Desk Fee
14 = Financing Fee
31 = Clearing Fee |
| 103 | OrdRejReason | Int | C | Required when ExecType = 8 (Rejected):
1 = Unknown symbol
2 = Exchange closed
3 = Order exceeds limit
4 = Too late to enter
5 = Unknown order
6 = Duplicate order
8 = Stale order
18 = Invalid price increment
99 = Other (see Text) |
| 58 | Text | String | N | Rejection reason or other informational message |
| 168 | EffectiveTime | UTCTimestamp | C | Start time of an order (required for TWAP/VWAP) |
| 126 | ExpireTime | UTCTimestamp | C | Expiration time (when TimeInForce = GTD) |
| 1138 | DisplayQty | Qty | C | Display quantity for iceberg orders. Only available when OrdType 2 = Limit or 4 = Stop Limit |
| 528 | OrderCapacity | Char(1) | N | A = Agency, P = Principal |
| 1057 | AggressorIndicator | Boolean | N | Y = Aggressor, N = Passive (for trade reporting) |
Appendix A: Code Sets
OrdType (40)
| Value | Description |
|---|
| 1 | Market |
| 2 | Limit |
| 3 | Stop |
| 4 | Stop Limit |
Side (54)
| Value | Description |
|---|
| 1 | Buy |
| 2 | Sell |
SecurityType (167)
| Value | Description |
|---|
| FUT | Futures |
TimeInForce (59)
| Value | Description |
|---|
| 1 | Good Till Cancel (GTC) |
| 3 | Immediate or Cancel (IOC) |
| 4 | Fill or Kill (FOK) |
| 6 | Good Till Date (GTD) |
ExecType (150)
| Value | Description |
|---|
| 0 | New |
| 3 | Done for Day |
| 4 | Canceled |
| 5 | Replace |
| 8 | Rejected |
| A | Pending New |
| C | Expired |
| F | Trade (partial or full fill) |
| I | Order Status |
| L | Stop Triggered |
OrdStatus (39)
| Value | Description |
|---|
| 0 | New |
| 1 | Partially filled |
| 2 | Filled |
| 4 | Canceled |
| 6 | Pending Cancel |
| 8 | Rejected |
| A | Pending New |
| C | Expired |
| E | Pending Replace |