The FIX Drop Copy API provides execution reports for orders placed through other FIX sessions or the REST API. This service allows clients to receive real-time execution updates for all their trading activity in a single consolidated feed. About this API:
Environment URLs
  • Production Drop Copy Gateway: tcp+ssl://fix-dc.exchange.coinbase.com:6122
  • Sandbox Drop Copy Gateway: tcp+ssl://fix-dc.sandbox.exchange.coinbase.com:6122
You can connect with the same authentication as our existing FIX order entry system. Connectivity is limited to a single connection per API key—Order Entry rate limits do not apply (connections, rps, burst rps).
FIX5 Resets Saturdays at 1PM ET FIX5 Order Entry, Market Data, and Drop Copy customers will be logged out every Saturday at 1PM ET (6PM UTC).
A standard header must be present at the start of every message in both directions.
TagFieldNameTypeRequiredNotes
8BeginStringStringYMust be FIXT.1.1
49SenderCompIDStringYClient API key (on messages from the client)
56TargetCompIDStringYMust be Coinbase (on messages from client)
52SendingTimeUTCTimestampYUTC time down to millisecond resolution in the format YYYYMMDD-HH:MM:SS.sss

Logon (35=A)

TagFieldNameTypeRequiredNotes
34MsgSeqNumIntYMust be 1
98EncryptMethodIntYMust be 0 (None)
108HeartBtIntIntYHeartbeat interval is capped at 300s, defaults to 10s
141ResetSeqNumFlagBooleanYResets the sequence number. Can be Y/N
553UsernameStringYClient API Key
554PasswordStringYClient API passphrase
95RawDataLengthIntYNumber of bytes in RawData field
96RawDataStringYClient message signature
1137DefaultApplVerIDStringYMust be 9 (FIX 5.0 SP2)
9406DropCopyFlagCharYMust be Y for Drop Copy sessions
Drop Copy Session Configuration To establish a Drop Copy session, you must set the DropCopyFlag (9406) to Y in your Logon message. This tells the server that this session should only receive execution reports and not process order entry messages.

Execution Report (35=8)

This message is sent by Coinbase Exchange to provide execution reports for all orders placed through any FIX session or REST API associated with your API key. Drop Copy sessions receive the same execution reports as order entry sessions, but without the ability to place new orders.
TagNameTypeRequiredDescription
11ClOrdIDUUIDYThe client order ID of the order.
37OrderIDUUIDYA unique identifier assigned by the exchange for the order.
41OrigClOrdIDStringCThe client order ID of the parent order for Order Cancel/Replace Requests.
6AvgPxDecimalCThe volume-weighted average price of all fills on the order.
14CumQtyDecimalCThe cumulative base quantity (e.g. in BTC) filled on the order.
151LeavesQtyDecimalCThe remaining base quantity (e.g. in BTC) on the order.

Not sent for market orders that were sent using CashOrderQty.
17ExecIDUUIDYID identifying this execution report.
39OrdStatusCharYSupported values:
0 = New
1 = Partially Filled
2 = Filled
4 = Canceled
5 = Replaced
8 = Rejected
C = Expired (For IOC expirations)
150ExecTypeCharYSupported values:
0 = New
4 = Canceled
5 = Replaced
8 = Rejected
C = Expired (For IOC expirations)
D = Restated (in cases where orders are partially canceled unsolicited due to self-trade prevention)
F = Trade
I = Order Status (in response to Order Status Requests)
55SymbolStringYThe symbol of the order (e.g. BTC-USD).
54SideCharCSupported values:
1 = Buy
2 = Sell
40OrdTypeCharCSupported values:
1 = Market
2 = Limit
4 = Stop Limit
32LastQtyCharCThe base quantity (e.g. in BTC) of the most recent fill on the order when ExecType is F (Trade).
31LastPxDecimalCThe price of the most recent fill on the order when ExecType is F (Trade).
44PriceDecimalCThe limit price of the order.
38OrderQtyDecimalCThe base quantity (e.g. in BTC) of the order.
152CashOrderQtyDecimalCThe quote quantity (e.g. in USD) of the order.

For market orders that were submitted using CashOrderQty instead of OrderQty, this is the remaining quote quantity of the order.
58TextStringNDescription of why the order was rejected, canceled, or expired.
60TransactTimeUTCTimestampYMatching engine timestamp.
103OrdRejReasonIntNSupported values:
0 = Broker
1 = Unknown Symbol
5 = Unknown Order
378ExecRestatementReasonIntNSupported values:
5 = Partial Decline of OrderQty (in cases where orders are partially canceled unsolicited due to self-trade prevention).
1003TradeIDStringCTrade ID for a given fill used for reporting.
1057AggressorIndicatorBooleanCSupported values:
Y = Taker (if aggressor or auction trade)
N = Maker
59TimeInForceCharCSupported values:
1 = GTC
3 = IOC
4 = FOK
6 = GTD
99StopPxDecimalCFor stop-limit orders, the stop price of the order.
1109TriggerPriceDirectionCharNFor stop-limit orders.

Supported values:
U = Trigger if market price goes UP to or through StopPx
D = Trigger if market price goes DOWN to or through StopPx
18ExecInstCharNSupported values:
A = Add Liquidity Only.
7928SelfTradeTypeCharNSupported values:
D = Decrement and Cancel (default if not specified)
O = Cancel Oldest (resting order)
N = Cancel Newest (aggressing order)
B = Cancel Both
126ExpireTimeUTCTimestampCTimestamp at which a GTD order would expire.
1430VenueTypeCharCIndicates an RFQ fill. Supported values:
E = ELECTRONIC_EXCHANGE
N = QUOTE_NEGOTIATION
136NoMiscFeesIntCRepeating group for fees charged.

Always 1 on an order partial fill or fill.
=>137MiscFeeAmtDecimalCSee MiscFeeBasis.
=>138MiscFeeCurrStringCThe currency that the fee is charged in.
=>139MiscFeeTypeStringCAlways:
4 = Exchange Fees.
=>891MiscFeeBasisIntCSupported values:
0 = Absolute (MiscFeeAmt is in MiscFeeCurr terms)
2 = Percentage (MiscFeeAmt should be multiplied by the fill quantity in MiscFeeCurr terms to calculate the fee in MiscFeeCurr terms)

Administrative Messages

Drop Copy sessions use the same administrative messages as order entry sessions:
Drop Copy Session Behavior
  • Drop Copy sessions only receive execution reports and administrative messages
  • Order entry messages (NewOrderSingle, OrderCancelRequest, etc.) are not supported on Drop Copy sessions
  • All execution reports for orders placed through any FIX session or REST API associated with your API key will be delivered to the Drop Copy session
  • The same authentication and connection management rules apply as for order entry sessions
Single Connection Limit:Like order entry sessions, Drop Copy is limited to a single connection per API key. You cannot have multiple Drop Copy sessions active simultaneously with the same API key.