INTX FIX Order Entry Messages
NewOrderSingle (35=D)
Used to submit a new spot or perpetual future order.
Tag | Name | Type | Required | Description |
---|---|---|---|---|
11 | ClOrdID | string | Y | An identifier specified by the sender to uniquely identify other messages correlating to this request. Must not exceed 18-31 characters depending on the character range or must be a variant 1 UUIDv4: 18 = All ASCII characters 20 = Alphanumeric characters and dash (-) 31 = Hexadecimal characters (0-9, a-f, lowercase and no preceding 0s) 36 = A UUID in standard format If using a UUID it must be a variant 1 UUIDv4 that follows the standard format. This means all lowercase and hyphens that group the characters in sequences of 8, 4, 4, 4, 12 (e.g. 1985ca2d-61ef-49f1-bfce-6c39d8462914). Failure to follow this formatting will result in a reject. |
453 | NoPartyIDs | int | Y | Marks the beginning of the Parties repeating group component. Currently a max of 1 party is supported to specify the portfolio UUID. In the future additional parties may get added. Supported values: 1 = Specify portfolio UUID or client UUID If no party is specified the message applies to the default portfolio UUID affiliated with the API key. |
→ 448 | PartyID | string | Y | The unique identifier representing the party entry or portfolio that this order originates from. When PartyRole (452) = 24, set PartyID (448) equal to the UUID of the desired portfolio for this order. You can obtain this portfolio UUID in the response of the List all user portfolios endpoint. |
→ 452 | PartyRole | int | Y | The type of party entry that the PartyID (448) value represents. Currently supports: 3 = Client ID 24 = Customer account The Customer Account (24) value indicates the PartyID value contains the UUID of the portfolio affiliated with the message. The Client ID (3) value indicates the PartyID value contains the UUID of a client managed by the broker (only applies to brokers). |
18 | ExecInst | char | C | The execution instruction flags for the order. Currently supports: 6 = Post only |
38 | OrderQty | decimal | Y | The amount of the base asset to be transacted. |
40 | OrdType | char | Y | The type of order for the request which can be: 1 = Market 2 = Limit 3 = Stop 4 = Stop Limit O = Take Profit Stop Loss Note: Market (1) orders automatically get converted to aggressively priced limit orders. |
44 | Price | decimal | C | The limit price for limit orders of the quote asset or USDC for perpetual futures. The decimal precision must fall within the requirements for each market, see the REST API for precision and decimal limits. |
54 | Side | char | Y | Side of the order, valid options: 1 = Buy 2 = Sell |
55 | Symbol | string | Y | Symbol of the instrument being traded (e.g. BTC-USDC or BTC-PERP) |
59 | TimeInForce | char | Y | Specifies how long the order remains in effect. The following values are supported: 1 = Good Till Cancel (GTC, up to 30 days) 3 = Immediate Or Cancel (IOC) 6 = Good Till Time (GTT, up to 30 days) |
126 | ExpireTime | utc timestamp | C | Required when TimeInForce (59) is set to GTT (6). Specifies the time when a GTT order expires. |
99 | StopPx | decimal | C | Specifies the quote price at which the order activates for Stop, Stop Limit and TP/SL order types (40=3, 40=4, or 40=O). |
3040 | StopLimitPx | decimal | C | Specifies the limit price at which the TP/SL stop leg order is entered (40=O). |
8000 | SelfTradePreventionStrategy | char | N | The following values specify what to do when two orders submitted by the same portfolio attempt to match: N = Cancel aggressing order Q = Cancel both orders O = Cancel resting order D = Decrement and cancel Default if not specified is Cancel both orders (Q). |
OrderCancelReplaceRequest (35=G)
Used to modify a parameter of an existing order that is still live on exchange. Only the price and quantity can be modified.
Tag | Name | Type | Required | Description |
---|---|---|---|---|
11 | ClOrdID | string | Y | An identifier specified by the sender to uniquely identify other messages correlating to this request. Must not exceed 18-31 characters depending on the character range or must be a variant 1 UUIDv4: 18 = All ASCII characters 20 = Alphanumeric characters and dash (-) 31 = Hexadecimal characters (0-9, a-f, lowercase and no preceding 0s) 36 = A UUID in standard format If using a UUID it must be a variant 1 UUIDv4 that follows the standard format. This means all lowercase and hyphens that group the characters in sequences of 8, 4, 4, 4, 12 (e.g. 1985ca2d-61ef-49f1-bfce-6c39d8462914 ). Failure to follow this formatting will result in a reject. |
453 | NoPartyIDs | int | C | Marks the beginning of the Parties repeating group component. Currently a max of 1 party is supported to specify the portfolio UUID. In the future additional parties may get added. Supported values: 1 = Specify portfolio UUID or client UUID If no party is specified the message applies to the default portfolio UUID affiliated with the API key. If populated it must match the value on the referenced order specified in the OrigClOrdID(41). |
→ 448 | PartyID | string | C | The unique identifier used to represent the party entry. If populated it must match the value on the referenced order specified in the OrigClOrdID(41). |
→ 452 | PartyRole | int | C | The type of party entry that the PartyID (448) value represents. Currently supports: 3 = Client ID 24 = Customer account The Customer Account (24) value indicates the PartyID value contains the UUID of the portfolio affiliated with the message. The Client ID (3) value indicates the PartyID value contains the UUID of a client managed by the broker (only applies to brokers). If populated it must match the value on the referenced order specified in the OrigClOrdID(41). |
41 | OrigClOrdID | string | Y | An identifier matching the ClOrdID from the OrderSingle or OrderCancelReplaceRequest that this request applies to. |
38 | OrderQty | decimal | N | The amount of the base asset to be transacted, this value can be changed from the order referenced in OrigClOrdId(41) |
44 | Price | decimal | N | The limit price for limit orders of the quote asset or USDC for perpetual futures. The decimal precision must fall within the requirements for each market, see the REST API for precision and decimal limits. This value can be different from the message that the OrigClOrdID references. |
55 | Symbol | string | Y | Must match the symbol on the message that the OrigClOrdID references. |
99 | StopPx | decimal | N | Specifies the quote price at which the order activates for Stop and Stop Limit order types (44=3 or 44=4). Must match the StopPx on the message that OrigClOrdId references. |
OrderCancelRequest (35=F)
Used to cancel an order that is still live on the exchange.
Tag | Name | Type | Required | Description |
---|---|---|---|---|
11 | ClOrdID | string | Y | An identifier specified by the sender to uniquely identify other messages correlating to this request. Must not exceed 18-31 characters depending on the character range or must be a variant 1 UUIDv4: 18 = All ASCII characters 20 = Alphanumeric characters and dash (-) 31 = Hexadecimal characters (0-9, a-f, lowercase and no preceding 0s) 36 = A UUID in standard format If using a UUID it must be a variant 1 UUIDv4 that follows the standard format. This means all lowercase and hyphens that group the characters in sequences of 8, 4, 4, 4, 12 (e.g. 1985ca2d-61ef-49f1-bfce-6c39d8462914). Failure to follow this formatting will result in a reject. |
453 | NoPartyIDs | int | C | Marks the beginning of the Parties repeating group component. Currently a max of 1 party is supported to specify the portfolio UUID. In the future additional parties may get added. Supported values: 1 = Specify portfolio UUID or client UUID If no party is specified the message applies to the default portfolio UUID affiliated with the API key. If populated it must match the value on the referenced order specified in the OrigClOrdID(41). |
→ 448 | PartyID | string | C | The unique identifier used to represent the party entry. If populated it must match the value on the referenced order specified in the OrigClOrdID(41). |
→ 452 | PartyRole | int | C | The type of party entry that the PartyID (448) value represents. Currently supports: 3 = Client ID 24 = Customer account The Customer Account (24) value indicates the PartyID value contains the UUID of the portfolio affiliated with the message. The Client ID (3) value indicates the PartyID value contains the UUID of a client managed by the broker (only applies to brokers). If populated it must match the value on the referenced order specified in the OrigClOrdID(41). |
41 | OrigClOrdID | string | Y | An identifier matching the ClOrdID from the OrderSingle or OrderCancelReplaceRequest that this request applies to. |
55 | Symbol | string | Y | Must match the message that the OrigClOrdID references. |
OrderMassCancelRequest (35=q)
Used to cancel multiple orders that is still live on the exchange.
Tag | Name | Type | Required | Description |
---|---|---|---|---|
11 | ClOrdID | string | Y | An identifier specified by the sender to uniquely identify other messages correlating to this request. Must not exceed 18-31 characters depending on the character range or must be a variant 1 UUIDv4: 18 = All ASCII characters 20 = Alphanumeric characters and dash (-) 31 = Hexadecimal characters (0-9, a-f, lowercase and no preceding 0s) 36 = A UUID in standard format If using a UUID it must be a variant 1 UUIDv4 that follows the standard format. This means all lowercase and hyphens that group the characters in sequences of 8, 4, 4, 4, 12 (e.g. 1985ca2d-61ef-49f1-bfce-6c39d8462914). Failure to follow this formatting will result in a reject. |
54 | side | string | Y | Side of the order, valid options: 1 = Buy 2 = Sell. If Side is not provided, the request cancels all orders in that portfolio regardless of side. |
55 | Symbol | string | Y | Symbol of the instrument being traded (e.g. BTC-USDC or BTC-PERP). If Symbol is not provided, the request cancels all orders in that portfolio regardless of symbol. |
453 | NoPartyIDs | int | C | Marks the beginning of the Parties repeating group component. Currently a max of 1 party is supported to specify the portfolio UUID. In the future additional parties may get added. Supported values: 1 = Specify portfolio UUID or client UUID If no party is specified the message applies to the default portfolio UUID affiliated with the API key. If populated it must match the value on the referenced order specified in the OrigClOrdID(41). |
→ 448 | PartyID | string | C | The unique identifier used to represent the party entry. If populated it must match the value on the referenced order specified in the OrigClOrdID(41). |
→ 452 | PartyRole | int | C | The type of party entry that the PartyID (448) value represents. Currently supports: 3 = Client ID 24 = Customer account The Customer Account (24) value indicates the PartyID value contains the UUID of the portfolio affiliated with the message. The Client ID (3) value indicates the PartyID value contains the UUID of a client managed by the broker (only applies to brokers). If populated it must match the value on the referenced order specified in the OrigClOrdID(41). |
ExecutionReport (35=8)
Sent by the exchange to provide an update on a submitted order.
Tag | Name | Type | Required | Description |
---|---|---|---|---|
11 | ClOrdID | string | Y | An identifier specified by the sender to uniquely identify other messages relating to this request. |
41 | OrigClOrdID | string | C | An identifier matching the ClOrdID from the OrderSingle or OrderCancelReplaceRequest if this execution report belongs to an OrderCancelRequest or an OrderCancelReplaceRequest. |
880 | TrdMatchID | string | C | A unique ID provided on trade messages that is affiliated with the match. The same ID is provided on both sides of the trade which can aid in self trade detection. |
17 | ExecID | string | Y | A globally unique 64bit monotonically increasing integer identifier specified by Coinbase International that identifies an event generated in the system. Please reference this identifier when speaking with Coinbase International Support. |
20 | ExecTransType | char | Y | Indicates whether this message is original or an amendment. The potential values include: 0 = New 1 = Cancel 2 = Correct All original messages get marked as New. Trade busts get marked as Cancel and trade corrections get marked as Correct. The trade bust and correct functionality will get implemented at a future date. |
37 | OrderID | string | Y | A unique identifier assigned by the exchange for the order. Please use this ID when referencing the order for support. |
453 | NoPartyIDs | int | C | Marks the beginning of the Parties repeating group component. Currently a max of 1 party is supported to specify the portfolio UUID. In the future additional parties may get added. Supported values: 1 = Specify portfolio UUID or client UUID If no party is specified the message applies to the default portfolio UUID affiliated with the API key. |
→ 448 | PartyID | string | C | The unique identifier used to represent the party entry. |
→ 452 | PartyRole | int | C | The type of party entry that the PartyID (448) value represents. Currently supports: 3 = Client ID 24 = Customer account The Customer Account (24) value indicates the PartyID value contains the UUID of the portfolio affiliated with the message. The Client ID (3) value indicates the PartyID value contains the UUID of a client managed by the broker (only applies to brokers). |
150 | ExecType | char | Y | The type of execution report indicating what happened to the order. Potential values include: 0 = New 1 = Partial Fill 2 = Fill 4 = Canceled 5 = Replaced 6 = Pending Cancel 8 = Rejected A = Pending New C = Expired E = Pending Replace L = Stop Triggered |
39 | OrdStatus | char | Y | Identifies the current state of the order. The potential values include: 0 = New 1 = Partially Filled 2 = Filled 4 = Canceled 5 = Replaced 6 = Pending Cancel 8 = Rejected A = Pending New E = Pending Replace C = Expired |
103 | OrdRejReason | int | C | Used for reject messages, a set of code based references for common types of rejects. The potential values include: 0 = Unknown 1 = Invalid order parameter 2 = Price violation |
55 | Symbol | string | Y | Symbol of the instrument being traded (e.g. BTC-USDC or BTC-PERP) |
54 | Side | char | Y | Side of the order, valid options: 1 = Buy 2 = Sell |
38 | OrderQty | decimal | C | Required for limit orders. The quantity specified on the order. |
40 | OrdType | char | Y | The order type specified on the order. |
44 | Price | decimal | C | Required for limit orders. Price specified on the order. |
99 | StopPx | decimal | C | Required for stop orders. The stop price specified on the order. |
3040 | StopLimitPx | decimal | C | Required for TP/SL orders. The stop leg limit price specified on the order. |
15 | Currency | string | Y | The currency used for prices and commission values reflected in this message. |
59 | TimeInForce | char | N | Time in force specified on the order. The following values are supported: 1 = Good Till Cancel (GTC, up to 30 days) 3 = Immediate Or Cancel (IOC) 6 = Good Till Time (GTT, up to 30 days) |
126 | ExpireTime | utc timestamp | C | Required when TimeInForce (59) is set to GTT (6). Specifies the time when a GTT order expires. |
18 | ExecInst | char | C | The execution instructions specified on the order. Supported values include: 6 = Post only |
32 | LastQty | decimal | C | Required for trades (150=1 or 150=2). Represents the total amount of the order's specified OrderQty that traded. |
31 | LastPx | decimal | C | Required for trades (150=1 or 150=2). Price in the currency (tag 15) at which the LastQty (tag 32) amount traded. |
151 | LeavesQty | decimal | Y | The amount of the OrderQty that remains open for further execution. |
14 | CumQty | decimal | Y | The total amount of the OrderQty that has traded so far including the LastQty amount if applicable (i.e. if 150=1 or 150=2). |
6 | AvgPx | decimal | Y | The average price in Currency (tag 15) of the CumQty (tag 14) traded at so far including the current trade if applicable (i.e. if 150=1 or 150=2). |
60 | TransactTime | utc timestamp | Y | The original time that this execution report occurred (useful for replays). |
58 | Text | string | N | A text message that gets populated when the context of the execution report requires explanation (e.g. rejects or unsolicited cancels). |
851 | LastLiquidityInd | int | C | Provided for trades (150=1 or 150=2). Provides context on how the order traded on the exchange for use in reference to trading fees. Values include: 1 = Added liquidity 2 = Removed liquidity |
136 | NoMiscFees | int | C | Used for trades (150=1 or 150=2). Provides information on the fees affiliated with the transaction. If specified and the value is > 0 it marks the beginning of a repeating group of the following 3 tags. |
→ 137 | MiscFeeAmt | decimal | C | The total fee amount in units of MiscFeeCurr |
→ 138 | MiscFeeCurr | string | C | The currency the fee amount is charged in (e.g. USDC) |
→ 139 | MiscFeeType | string | C | Specifies the type of fee. Values may include: 4 = Exchange fees 7 = Other 14 = Asset lending |
8000 | SelfTradePreventionStrategy | char | Y | The self trade prevention strategy associated with the order. The following values specify what to do when two orders submitted by the same portfolio attempt to match: N = Cancel aggressing order Q = Cancel both orders O = Cancel resting order D = Decrement and cancel smaller order Default if not specified is Cancel both orders (Q). |
OrderMassCancelReport (35=r)
Sent by the exchange to provide an update on a submitted order mass cancel.
Tag | Name | Type | Required | Description |
---|---|---|---|---|
11 | ClOrdID | string | Y | An identifier specified by the sender to uniquely identify other messages relating to this request. |
1369 | MassActionReportID | string | Y | A globally unique 64bit monotonically increasing integer identifier specified by Coinbase International that identifies an event generated in the system. Please reference this identifier when speaking with Coinbase International Support. |
55 | Symbol | string | N | Symbol of the instrument being traded (e.g. BTC-USDC or BTC-PERP) |
54 | Side | char | N | Side of the order, valid options: 1 = Buy 2 = Sell |
531 | MassCancelResponse | char | Y | Identifies the response of order mass cancel request. For accepted requests, the value will be CANCEL_ALL_ORDERS (7) . For rejected requests, the value will be CANCEL_REQUEST_REJECTED (0) and MassCancelRejectReason will be provided. The potential values include: 0 = Cancel Request Rejected 1 = Cancel orders for a security 2 = Cancel orders for an Underlying security 3 = Cancel orders for a Product 4 = Cancel orders for a CFICode 5 = Cancel orders for a SecurityType 6 = Cancel orders for a trading session 7 = Cancel all orders |
532 | MassCancelRejectReason | int | N | Identifies the rejected reason of order mass cancel request. For rejected requests, the value will be MASS_CANCEL_NOT_SUPPORTED (0) . The potential values include: 0 = Mass Cancel Not Supported 1 = Invalid or unknown Security 2 = Invalid or unknown Underlying security 3 = Invalid or unknown Product 4 = Invalid or unknown CFICode 5 = Invalid or unknown SecurityType 6 = Invalid or unknown trading session 99 = Other |
533 | TotalAffectedOrders | decimal | N | Total number of orders affected by order mass cancel request |
60 | TransactTime | utc timestamp | N | The original time that this order mass cancel report occurred |
58 | Text | string | N | A message providing more detail about the order mass cancel reject |
OrderCancelReject (35=9)
Sent by the exchange when a cancel or cancel-replace request fails.
Tag | Name | Type | Required | Description |
---|---|---|---|---|
11 | ClOrdID | string | Y | An identifier specified by the sender to uniquely identify other messages correlating to this request. |
41 | OrigClOrdID | string | Y | An identifier matching the ClOrdID from the OrderSingle or OrderCancelReplaceRequest that this request applies to. |
37 | OrderID | string | Y | An identifier specified by Coinbase International that uniquely identifies the order in the system. Please reference this identifier when speaking with Coinbase International Support. If the cancel or cancel-replace request was unable to find the OrigClOrdID specified in the message this value contains the text NONE . |
58 | Text | string | N | A message providing more detail about the cancel reject |
102 | CxlRejReason | int | N | A code to identify common reasons why for the cancel reject. Potential values include: 0 = Too late to cancel 1 = Unknown order 3 = Order already pending cancel or cancel replace |
434 | CxlRejResponseTo | char | Y | Indicates whether this message is in response to a cancel request or cancel replace request. Values include: 1 = Order Cancel Request 2 = Order Cancel/Replace Request |
BusinessMessageReject (35=j)
An application level reject message sent when the FIX session can't process a message.
Tag | Name | Type | Required | Description |
---|---|---|---|---|
45 | RefSeqNum | int | N | The MsgSeqNum of the referenced message that was rejected. |
372 | RefMsgType | int | Y | The message type that this reject message applies to. Supported values include: A = Logon 0 = Heartbeat 1 = TestRequest D = NewOrderSingle F = OrderCancelRequest G = OrderCancelReplaceRequest F1 = LastExecIDRequest F3 = EventResendRequest x = SecurityListRequest V = MarketDataRequest |
379 | BusinessRejectRefID | string | N | An identifier pointing to the message referenced for this reject. In the context of an order request this points to the ClOrdId. |
380 | BusinessRejectReason | int | N | A code to quickly identify common reasons for a reject. Values could include: 0 = Other 1 = Unknown ID 2 = Unknown asset or instrument 3 = Unsupported message type 4 = Application not available 5 = Conditionally required field missing 6 = Not authorized 8 = Throttle limit exceeded 9 = Throttle limit exceeded, session will be disconnected |
58 | Text | string | N | A message explaining why the message was rejected. |
TradeCaptureReport (35=AE)
Sent by the exchange when a trade occurs from an automated liquidation or liquidation triggered position transfer.
Tag | Name | Type | Required | Description |
---|---|---|---|---|
828 | TrdType | int | Y | Indicates the type of trade for the liquidation: 0 = Regular trade 3 = Transfer A regular trade occurs when the exchange's liquidation engine automatically places orders in the open market. A transfer happens when the account gets closed out and the position goes to another participant that specializes in closing out liquidated positions. |
830 | TransferReason | string | C | Used when TydType (828) = Transfer (3) to indicate the transfer context. Values include: LIQUIDATED ASSIGNED The LIQUIDATED value indicates a position getting transferred out of the portfolio. The ASSIGNED value indicates a position getting transferred into the portfolio (only applicable for LSP portfolios). |
880 | TrdMatchID | string | Y | A unique ID provided on trade messages that is affiliated with the match. The same ID is provided on both sides of the trade which can aid in self trade detection. |
17 | ExecID | string | Y | A globally unique 64bit monotonically increasing integer identifier specified by Coinbase International that identifies an event generated in the system. Please reference this identifier when speaking with Coinbase International Support. |
820 | TradeLinkID | string | Y | An identifier used to track all trades linked with the current phase of the liquidation process. Changes each time the portfolio gets flagged for handling by liquidation engine or if the portfolio gets transferred to liquidation specialists. |
55 | Symbol | string | Y | Symbol of the instrument being traded (e.g. BTC-USDC or BTC-PERP) |
32 | LastQty | decimal | C | Represents the total amount of the asset that traded. |
31 | LastPx | decimal | C | Price in the currency (tag 15) at which the LastQty (tag 32) amount traded. |
60 | TransactTime | utc timestamp | Y | The original time that this execution report occurred (useful for replays). |
552 | NoSides | int | Y | Marks the beginning of the repeating group for sides and will always be set to 1. |
→ 54 | Side | char | Y | Side of the trade, valid options: 1 = Buy 2 = Sell |
→ 453 | NoPartyIDs | int | C | Marks the beginning of the Parties repeating group component. Currently a max of 1 party is supported to specify the portfolio UUID. In the future additional parties may get added. Supported values: 1 = Specify portfolio UUID or client UUID If no party is specified the message applies to the default portfolio UUID affiliated with the API key. |
→→ 448 | PartyID | string | C | The unique identifier used to represent the party entry. |
→→ 452 | PartyRole | int | C | The type of party entry that the PartyID (448) value represents. Currently supports: 3 = Client ID 24 = Customer account The Customer Account (24) value indicates the PartyID value contains the UUID of the portfolio affiliated with the message. The Client ID (3) value indicates the PartyID value contains the UUID of a client managed by the broker (only applies to brokers). |
→ 136 | NoMiscFees | int | C | Provides information on the fees affiliated with the transaction. If specified and the value is > 0 it marks the beginning of a repeating group of the following 3 tags. |
→→ 137 | MiscFeeAmt | decimal | C | The total fee amount in units of MiscFeeCurr |
→→ 138 | MiscFeeCurr | string | C | The currency the fee amount is charged in (e.g. USDC) |
→→ 139 | MiscFeeType | string | C | Specifies the type of fee. Values may include: 4 = Exchange fees 7 = Other 14 = Asset lending |