Skip to main content
The Coinbase Derivatives: Predictions FIX Drop Copy API sends you a read-only copy of execution reports and market settlement reports for every order in your firm or FCM over FIX 5.0 SP2.

Drop Copy Message Types

The Coinbase Derivatives: Predictions Drop Copy FIX API supports the following message and execution types. For Logon, heartbeats, sequence recovery, and fill recovery, see Session.
Logon (35=A), Logout (35=5), Heartbeat (35=0), TestRequest (35=1), ResendRequest (35=2), Reject (35=3), and SequenceReset (35=4). See Session.
The fill recovery messages (35=F1 to 35=F5) are shared with order entry and documented on Session.

Connection

Connect with TargetCompID (56) = CBPMDC and your API key in SenderCompID (49). The API key must have the DROP_COPY permission. Host and port are listed on the Coinbase Derivatives: Predictions Connectivity page. Header fields are on Header/Trailer. Logon, the Logon signature, heartbeats, and sequence recovery are on Session. TransactTime (60) is a UTC timestamp with microsecond precision.

Subscription scope

Each session receives reports for one scope, set by the level of its API key:
  • Every connected session in a scope receives the same reports.
  • Each fill produces separate aggressor and resting reports. You receive each side that belongs to your scope; a trade between two orders in your scope sends you both reports.
  • Recovery requests (LastExecIDRequest and EventResendRequest) are answered from your scope, not from your session.
The gateway ends a live session when its authorization no longer holds: the API key is disabled or deleted, it loses the DROP_COPY permission, or its firm or FCM is deactivated, deleted, or reassigned. The gateway also ends the session if it sends any message after its authorization is revoked.

Parties repeating group (453)

Every execution report carries five Parties entries, in this order. PartyIDSource (447) is not sent.

ExecutionReport (35=8)

Reject reasons map to OrdRejReason (103) and Text (58) the same way as on order entry execution reports.
  • ExecID (17) is a decimal integer that increases over time across all reports in a scope. Values are not contiguous. The aggressor report of a fill has an even ExecID and the resting report has the next odd value; every other report has an even ExecID.
  • Prices have 3 decimal places, quantities 2, and fee and payout amounts 6. Insignificant trailing zeroes may be omitted, so 0.55 and 0.550 are the same price.

PendingNew (150=A)

Sent when the exchange accepts an order and holds it before submitting it to the book.

New (150=0)

Sent when an order is submitted to the book. Carries the same fields as PendingNew (150=A), with these values:

Trade (150=F)

Sent for each fill. Each fill produces one report for the aggressor order and one for the resting order, which share TrdMatchID (880).

Canceled (150=4)

Sent when an order is canceled by a cancel request, a mass cancel, or the exchange. Most fields match PendingNew (150=A); these differ:

Cancel reasons

Expired (150=C)

Sent in two cases, both with ExecType (150) = C and OrdStatus (39) = C:
  • Time in force expiry. Same fields as Canceled (150=4), with Text (58) = TIME_IN_FORCE.
  • Fill or Kill not filled. Same fields as Rejected (150=8), except OrdRejReason (103) is not sent and Text (58) is FOK_NOT_FILLED, optionally followed by - and details.

Rejected (150=8)

Sent when an order is rejected. Most fields match PendingNew (150=A); these differ:

OrdRejReason values

MarketSettlementReport (35=UMS)

Sent for each firm-level instrument settlement in your scope. If the instrument ticker, firm, or FCM cannot be resolved, the report is not sent.
MarketSettlementReports are not resent. An EventResendRequest returns fills only.

BusinessMessageReject (35=j)

Sent when an application message cannot be processed:
  • A LastExecIDRequest or EventResendRequest that is structurally malformed, for example a missing required tag or an invalid value format.
  • A LastExecIDRequest or EventResendRequest sent above the message rate limit. Text (58) = rate throttle.
  • Any application message type other than LastExecIDRequest (35=F1) and EventResendRequest (35=F3). Text (58) = unsupported drop-copy msgType.

Values specific to Coinbase Derivatives: Predictions

The gateway uses standard FIX 5.0 SP2 tags. The following messages and values are specific to Coinbase Derivatives: Predictions.