FIX 5.0 xml
FIX 5.0 xml
<!--
Coinbase Prime FIX 5.0 SP2 Client Data Dictionary (Order Entry Application Layer)
Contains the message types, fields, and values supported by prime-fix for spot and FCM/futures order entry.
Generated from pkg/dialects/fix50sp2/coinbase/converter.go
Note: Use with FIXT11.xml as the transport data dictionary.
Product-specific required fields are enforced by the gateway converter and noted below where they differ.
-->
<fix major='5' type='FIX' servicepack='2' minor='0'>
<header />
<messages>
<!-- Application Messages: Client -> Server (Inbound) -->
<message name='NewOrderSingle' msgtype='D' msgcat='app'>
<field name='Account' required='Y' />
<field name='ClOrdID' required='Y' />
<field name='Symbol' required='Y' />
<field name='SecurityType' required='Y' />
<field name='Side' required='Y' />
<field name='OrdType' required='Y' />
<field name='TimeInForce' required='Y' />
<!-- FCM futures require ManualOrderIndicator and CustOrderHandlingInst; spot does not. -->
<field name='ManualOrderIndicator' required='N' />
<field name='CustOrderHandlingInst' required='N' />
<field name='TransactTime' required='Y' />
<field name='OrderQty' required='N' />
<field name='CashOrderQty' required='N' />
<field name='Price' required='N' />
<field name='StopPx' required='N' />
<field name='MaxShow' required='N' />
<field name='DisplayQty' required='N' />
<field name='PegOffsetValue' required='N' />
<field name='PegOffsetType' required='N' />
<field name='PegWigLevel' required='N' />
<field name='ExpireTime' required='N' />
<field name='EffectiveTime' required='N' />
<field name='ExecInst' required='N' />
<field name='OrderCapacity' required='N' />
<field name='TargetStrategy' required='N' />
<field name='ExDestination' required='N' />
<field name='QuoteID' required='N' />
<field name='SettlCurrency' required='N' />
<field name='StpId' required='N' />
<field name='IsRaiseExact' required='N' />
<field name='IsBuyExact' required='N' />
<group name='NoStrategyParameters' required='N'>
<field name='StrategyParameterName' required='N' />
<field name='StrategyParameterType' required='N' />
<field name='StrategyParameterValue' required='N' />
</group>
</message>
<message name='OrderCancelRequest' msgtype='F' msgcat='app'>
<field name='Account' required='Y' />
<field name='ClOrdID' required='Y' />
<field name='OrigClOrdID' required='N' />
<field name='OrderID' required='N' />
<field name='Symbol' required='Y' />
<field name='SecurityType' required='Y' />
<field name='Side' required='Y' />
<!-- FCM futures require ManualOrderIndicator; spot does not. -->
<field name='ManualOrderIndicator' required='N' />
<field name='TransactTime' required='Y' />
</message>
<message name='OrderCancelReplaceRequest' msgtype='G' msgcat='app'>
<field name='Account' required='Y' />
<field name='ClOrdID' required='Y' />
<field name='OrigClOrdID' required='Y' />
<field name='OrderID' required='N' />
<field name='Symbol' required='Y' />
<field name='SecurityType' required='Y' />
<field name='Side' required='Y' />
<field name='OrdType' required='Y' />
<field name='TransactTime' required='Y' />
<field name='OrderQty' required='N' />
<field name='CashOrderQty' required='N' />
<field name='Price' required='N' />
<field name='StopPx' required='N' />
<field name='DisplayQty' required='N' />
<field name='ExpireTime' required='N' />
<!-- FCM futures require ManualOrderIndicator, OrderCapacity, and CustOrderHandlingInst on replace; spot does not. -->
<field name='ManualOrderIndicator' required='N' />
<field name='OrderCapacity' required='N' />
<field name='CustOrderCapacity' required='N' />
<field name='CustOrderHandlingInst' required='N' />
<field name='PegOffsetValue' required='N' />
<field name='PegWigLevel' required='N' />
</message>
<message name='OrderStatusRequest' msgtype='H' msgcat='app'>
<field name='Account' required='Y' />
<field name='Symbol' required='Y' />
<field name='SecurityType' required='Y' />
<field name='ClOrdID' required='N' />
<field name='OrderID' required='N' />
</message>
<message name='MarketDataRequest' msgtype='V' msgcat='app'>
<field name='MDReqID' required='Y' />
<field name='SubscriptionRequestType' required='Y' />
<field name='MarketDepth' required='Y' />
<field name='MDUpdateType' required='N' />
<group name='NoMDEntryTypes' required='Y'>
<field name='MDEntryType' required='Y' />
</group>
<group name='NoRelatedSym' required='Y'>
<field name='Symbol' required='Y' />
</group>
</message>
<!-- Application Messages: Server -> Client (Outbound) -->
<message name='ExecutionReport' msgtype='8' msgcat='app'>
<field name='OrderID' required='Y' />
<field name='ExecID' required='Y' />
<field name='ExecType' required='Y' />
<field name='OrdStatus' required='Y' />
<field name='Side' required='Y' />
<field name='LeavesQty' required='Y' />
<field name='CumQty' required='Y' />
<field name='AvgPx' required='Y' />
<field name='Symbol' required='Y' />
<field name='SecurityType' required='Y' />
<field name='Account' required='Y' />
<field name='ClOrdID' required='N' />
<field name='OrigClOrdID' required='N' />
<field name='OrdType' required='N' />
<field name='TimeInForce' required='N' />
<field name='OrderQty' required='N' />
<field name='CashOrderQty' required='N' />
<field name='Price' required='N' />
<field name='StopPx' required='N' />
<field name='PegOffsetValue' required='N' />
<field name='PegOffsetType' required='N' />
<field name='PegWigLevel' required='N' />
<field name='MaxShow' required='N' />
<field name='DisplayQty' required='N' />
<field name='LastQty' required='N' />
<field name='LastPx' required='N' />
<field name='LastMkt' required='N' />
<field name='MarketID' required='N' />
<field name='TransactTime' required='N' />
<field name='EffectiveTime' required='N' />
<field name='ExpireTime' required='N' />
<field name='OrdRejReason' required='N' />
<field name='Text' required='N' />
<field name='SettlCurrency' required='N' />
<field name='SettlCurrAmt' required='N' />
<field name='OrderCapacity' required='N' />
<field name='AggressorIndicator' required='N' />
<field name='FilledValue' required='N' />
<field name='IsBuyExact' required='N' />
<field name='IsRaiseExact' required='N' />
<field name='StpId' required='N' />
<field name='InternalStpId' required='N' />
<field name='Commission' required='N' />
<field name='CommType' required='N' />
<group name='NoMiscFees' required='N'>
<field name='MiscFeeAmt' required='N' />
<field name='MiscFeeCurr' required='N' />
<field name='MiscFeeType' required='N' />
</group>
</message>
<message name='OrderCancelReject' msgtype='9' msgcat='app'>
<field name='OrderID' required='Y' />
<field name='ClOrdID' required='Y' />
<field name='OrigClOrdID' required='N' />
<field name='OrdStatus' required='Y' />
<field name='CxlRejResponseTo' required='Y' />
<field name='CxlRejReason' required='N' />
<field name='Text' required='N' />
</message>
<message name='MarketDataSnapshotFullRefresh' msgtype='W' msgcat='app'>
<field name='MDReqID' required='Y' />
<field name='Symbol' required='Y' />
<field name='TotNumReports' required='N' />
<field name='MDReportID' required='N' />
<group name='NoMDEntries' required='Y'>
<field name='MDEntryType' required='Y' />
<field name='MDEntryID' required='N' />
<field name='MDEntryPx' required='N' />
<field name='MDEntrySize' required='N' />
<field name='MDEntryPositionNo' required='N' />
<field name='MDEntryDate' required='N' />
<field name='MDEntryTime' required='N' />
</group>
</message>
<message name='MarketDataIncrementalRefresh' msgtype='X' msgcat='app'>
<field name='MDReqID' required='Y' />
<group name='NoMDEntries' required='Y'>
<field name='MDUpdateAction' required='Y' />
<field name='MDEntryType' required='N' />
<field name='MDEntryID' required='N' />
<field name='Symbol' required='N' />
<field name='MDEntryPx' required='N' />
<field name='MDEntrySize' required='N' />
<field name='MDEntryPositionNo' required='N' />
<field name='MDEntryDate' required='N' />
<field name='MDEntryTime' required='N' />
<field name='AggressorSide' required='N' />
</group>
</message>
<message name='MarketDataRequestReject' msgtype='Y' msgcat='app'>
<field name='MDReqID' required='Y' />
<field name='MDReqRejReason' required='N' />
<field name='Text' required='N' />
</message>
<message name='SecurityStatus' msgtype='f' msgcat='app'>
<field name='Symbol' required='Y' />
<field name='SecurityTradingStatus' required='N' />
<field name='Text' required='N' />
</message>
</messages>
<trailer />
<fields>
<!-- Account/Identification Fields -->
<field number='1' name='Account' type='STRING' />
<field number='6' name='AvgPx' type='PRICE' />
<field number='11' name='ClOrdID' type='STRING' />
<field number='12' name='Commission' type='AMT' />
<field number='13' name='CommType' type='CHAR'>
<value enum='3' description='ABSOLUTE' />
</field>
<field number='14' name='CumQty' type='QTY' />
<field number='17' name='ExecID' type='STRING' />
<field number='18' name='ExecInst' type='MULTIPLECHARVALUE'>
<value enum='A' description='POST_ONLY' />
</field>
<field number='30' name='LastMkt' type='EXCHANGE' />
<field number='31' name='LastPx' type='PRICE' />
<field number='32' name='LastQty' type='QTY' />
<field number='37' name='OrderID' type='STRING' />
<field number='38' name='OrderQty' type='QTY' />
<field number='39' name='OrdStatus' type='CHAR'>
<value enum='0' description='NEW' />
<value enum='1' description='PARTIALLY_FILLED' />
<value enum='2' description='FILLED' />
<value enum='4' description='CANCELED' />
<value enum='6' description='PENDING_CANCEL' />
<value enum='8' description='REJECTED' />
<value enum='A' description='PENDING_NEW' />
<value enum='C' description='EXPIRED' />
</field>
<field number='40' name='OrdType' type='CHAR'>
<value enum='1' description='MARKET' />
<value enum='2' description='LIMIT' />
<value enum='4' description='STOP_LIMIT' />
<value enum='D' description='PREVIOUSLY_QUOTED' />
<value enum='P' description='PEGGED' />
</field>
<field number='41' name='OrigClOrdID' type='STRING' />
<field number='44' name='Price' type='PRICE' />
<field number='49' name='SenderCompID' type='STRING' />
<field number='54' name='Side' type='CHAR'>
<value enum='1' description='BUY' />
<value enum='2' description='SELL' />
</field>
<field number='55' name='Symbol' type='STRING' />
<field number='58' name='Text' type='STRING' />
<field number='59' name='TimeInForce' type='CHAR'>
<value enum='0' description='DAY' />
<value enum='1' description='GOOD_TILL_CANCEL' />
<value enum='3' description='IMMEDIATE_OR_CANCEL' />
<value enum='4' description='FILL_OR_KILL' />
<value enum='6' description='GOOD_TILL_DATE' />
</field>
<field number='60' name='TransactTime' type='UTCTIMESTAMP' />
<field number='99' name='StopPx' type='PRICE' />
<field number='100' name='ExDestination' type='EXCHANGE' />
<field number='102' name='CxlRejReason' type='INT'>
<value enum='0' description='TOO_LATE_TO_CANCEL' />
<value enum='1' description='UNKNOWN_ORDER' />
<value enum='99' description='OTHER' />
</field>
<field number='103' name='OrdRejReason' type='INT'>
<value enum='1' description='UNKNOWN_SYMBOL' />
<value enum='2' description='EXCHANGE_CLOSED' />
<value enum='3' description='ORDER_EXCEEDS_LIMIT' />
<value enum='4' description='TOO_LATE_TO_ENTER' />
<value enum='5' description='UNKNOWN_ORDER' />
<value enum='6' description='DUPLICATE_ORDER' />
<value enum='8' description='STALE_ORDER' />
<value enum='18' description='INVALID_PRICE_INCREMENT' />
<value enum='99' description='OTHER' />
</field>
<field number='117' name='QuoteID' type='STRING' />
<field number='119' name='SettlCurrAmt' type='AMT' />
<field number='120' name='SettlCurrency' type='CURRENCY' />
<field number='126' name='ExpireTime' type='UTCTIMESTAMP' />
<field number='136' name='NoMiscFees' type='NUMINGROUP' />
<field number='137' name='MiscFeeAmt' type='AMT' />
<field number='138' name='MiscFeeCurr' type='CURRENCY' />
<field number='139' name='MiscFeeType' type='CHAR'>
<value enum='1' description='REGULATORY' />
<value enum='8' description='MARKUP_FEE' />
<value enum='4' description='EXCHANGE_FEES' />
<value enum='7' description='OTHER' />
<value enum='14' description='SECURITY_LENDING' />
</field>
<field number='146' name='NoRelatedSym' type='NUMINGROUP' />
<field number='150' name='ExecType' type='CHAR'>
<value enum='0' description='NEW' />
<value enum='3' description='DONE_FOR_DAY' />
<value enum='4' description='CANCELED' />
<value enum='6' description='PENDING_CANCEL' />
<value enum='8' description='REJECTED' />
<value enum='A' description='PENDING_NEW' />
<value enum='C' description='EXPIRED' />
<value enum='F' description='TRADE' />
<value enum='L' description='STOP_TRIGGERED' />
<value enum='I' description='ORDER_STATUS' />
</field>
<field number='151' name='LeavesQty' type='QTY' />
<field number='152' name='CashOrderQty' type='QTY' />
<field number='167' name='SecurityType' type='STRING'>
<value enum='FUT' description='FUTURE' />
<value enum='PERP' description='PERPETUAL' />
<value enum='SPOT' description='SPOT' />
</field>
<field number='168' name='EffectiveTime' type='UTCTIMESTAMP' />
<field number='210' name='MaxShow' type='QTY' />
<field number='211' name='PegOffsetValue' type='FLOAT' />
<field number='262' name='MDReqID' type='STRING' />
<field number='263' name='SubscriptionRequestType' type='CHAR'>
<value enum='0' description='SNAPSHOT' />
<value enum='1' description='SNAPSHOT_PLUS_UPDATES' />
<value enum='2' description='DISABLE_PREVIOUS_SNAPSHOT_PLUS_UPDATE_REQUEST' />
</field>
<field number='264' name='MarketDepth' type='INT' />
<field number='265' name='MDUpdateType' type='INT'>
<value enum='0' description='FULL_REFRESH' />
<value enum='1' description='INCREMENTAL_REFRESH' />
</field>
<field number='267' name='NoMDEntryTypes' type='NUMINGROUP' />
<field number='268' name='NoMDEntries' type='NUMINGROUP' />
<field number='269' name='MDEntryType' type='CHAR'>
<value enum='0' description='BID' />
<value enum='1' description='OFFER' />
<value enum='2' description='TRADE' />
<value enum='4' description='OPENING_PRICE' />
<value enum='B' description='TRADE_VOLUME' />
</field>
<field number='270' name='MDEntryPx' type='PRICE' />
<field number='271' name='MDEntrySize' type='QTY' />
<field number='272' name='MDEntryDate' type='UTCDATEONLY' />
<field number='273' name='MDEntryTime' type='UTCTIMEONLY' />
<field number='278' name='MDEntryID' type='STRING' />
<field number='279' name='MDUpdateAction' type='CHAR'>
<value enum='0' description='NEW' />
<value enum='1' description='CHANGE' />
<value enum='2' description='DELETE' />
</field>
<field number='281' name='MDReqRejReason' type='CHAR'>
<value enum='0' description='UNKNOWN_SYMBOL' />
<value enum='1' description='DUPLICATE_MDREQID' />
<value enum='4' description='UNSUPPORTED_SUBSCRIPTIONREQUESTTYPE' />
<value enum='5' description='UNSUPPORTED_MARKETDEPTH' />
<value enum='8' description='UNSUPPORTED_MDENTRYTYPE' />
<value enum='C' description='UNSUPPORTED_MDUPDATETYPE' />
</field>
<field number='290' name='MDEntryPositionNo' type='INT' />
<field number='326' name='SecurityTradingStatus' type='INT' />
<field number='373' name='SessionRejectReason' type='INT'>
<value enum='0' description='INVALID_TAG_NUMBER' />
<value enum='1' description='REQUIRED_TAG_MISSING' />
<value enum='2' description='TAG_NOT_DEFINED_FOR_THIS_MESSAGE_TYPE' />
<value enum='3' description='UNDEFINED_TAG' />
<value enum='5' description='VALUE_IS_INCORRECT' />
<value enum='6' description='INCORRECT_DATA_FORMAT_FOR_VALUE' />
<value enum='99' description='OTHER' />
</field>
<field number='380' name='BusinessRejectReason' type='INT'>
<value enum='0' description='OTHER' />
<value enum='2' description='UNKNOWN_SECURITY' />
<value enum='3' description='UNSUPPORTED_MESSAGE_TYPE' />
<value enum='5' description='CONDITIONALLY_REQUIRED_FIELD_MISSING' />
</field>
<field number='434' name='CxlRejResponseTo' type='CHAR'>
<value enum='1' description='ORDER_CANCEL_REQUEST' />
<value enum='2' description='ORDER_CANCEL_REPLACE_REQUEST' />
</field>
<field number='528' name='OrderCapacity' type='CHAR'>
<value enum='A' description='AGENCY' />
<value enum='P' description='PRINCIPAL' />
</field>
<field number='582' name='CustOrderCapacity' type='INT'>
<value enum='1' description='MEMBER_TRADING_FOR_THEIR_OWN_ACCOUNT' />
<value enum='2' description='CLEARING_FIRM_TRADING_FOR_ITS_PROPRIETARY_ACCOUNT' />
<value enum='3' description='MEMBER_TRADING_FOR_ANOTHER_MEMBER' />
<value enum='4' description='ALL_OTHER' />
</field>
<field number='836' name='PegOffsetType' type='INT'>
<value enum='0' description='PRICE' />
<value enum='1' description='BASIS_POINTS' />
<value enum='4' description='CUMULATIVE_DEPTH_IN_BASE_UNITS' />
</field>
<field number='847' name='TargetStrategy' type='INT'>
<value enum='1' description='VWAP' />
<value enum='1001' description='TWAP' />
</field>
<field number='957' name='NoStrategyParameters' type='NUMINGROUP' />
<field number='958' name='StrategyParameterName' type='STRING'>
<value enum='HistoricalPOV' description='HISTORICAL_POV' />
<value enum='WIGLevel' description='WIG_LEVEL' />
</field>
<field number='959' name='StrategyParameterType' type='INT'>
<value enum='14' description='STRING' />
</field>
<field number='960' name='StrategyParameterValue' type='STRING' />
<field number='911' name='TotNumReports' type='INT' />
<field number='963' name='MDReportID' type='STRING' />
<field number='1028' name='ManualOrderIndicator' type='BOOLEAN'>
<value enum='N' description='NO' />
<value enum='Y' description='YES' />
</field>
<field number='1031' name='CustOrderHandlingInst' type='MULTIPLECHARVALUE'>
<value enum='W' description='DESK' />
<value enum='Y' description='OTHER' />
<value enum='C' description='CLIENT_ELECTRONICALLY' />
<value enum='G' description='CLIENT_TELEPHONICALLY' />
<value enum='H' description='FCM_PROVIDED_SCREEN' />
<value enum='D' description='FCM_API_OR_FIX' />
</field>
<field number='1057' name='AggressorIndicator' type='BOOLEAN'>
<value enum='N' description='NO' />
<value enum='Y' description='YES' />
</field>
<field number='1138' name='DisplayQty' type='QTY' />
<field number='1301' name='MarketID' type='EXCHANGE' />
<field number='2446' name='AggressorSide' type='INT'>
<value enum='0' description='NO_AGGRESSOR' />
<value enum='1' description='BUY' />
<value enum='2' description='SELL' />
</field>
<!-- Custom Coinbase Tags -->
<field number='8002' name='FilledValue' type='PRICE' />
<field number='8007' name='PegWigLevel' type='PRICE' />
<field number='8998' name='IsBuyExact' type='BOOLEAN'>
<value enum='N' description='NO' />
<value enum='Y' description='YES' />
</field>
<field number='8999' name='IsRaiseExact' type='BOOLEAN'>
<value enum='N' description='NO' />
<value enum='Y' description='YES' />
</field>
<field number='9821' name='StpId' type='STRING' />
<field number='9823' name='InternalStpId' type='STRING' />
</fields>
</fix>