Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Allocation Management API
Message Specification
Version: 2.4
6/3/13
CME Front End Clearing FIXML API
CME Front End Clearing
Allocation Management API 1
Futures trading is not suitable for all investors, and involves the risk of loss. Futures are a leveraged investment, and because only a percentage of a contract’s value is required to trade, it is possible to lose more than the amount of money deposited for a futures position. Therefore, traders should only use funds that they can afford to lose without affecting their lifestyles. And only a portion of those funds should be devoted to any one trade because they cannot expect to profit on every trade.
All references to options refer to options on futures.
CME Group is a trademark of CME Group Inc. The Globe Logo, CME, Chicago Mercantile Exchange, Globex,
iLink, E-mini, CME EOS Trader, Galax-C, FirmSoft, CME DataSuite, and CME
DataMine are trademarks of Chicago Mercantile Exchange Inc. New York Mercantile Exchange, NYMEX, miNY, and ClearPort are registered trademarks of the New York Mercantile Exchange, Inc. COMEX is a trademark of Commodity Exchange, Inc.
FIX™ and FAST™ are trademarks of FIX Protocol Limited. FIX/FASTsm
is a service mark of FIX Protocol Limited.
Dow Jonessm
, Dow Jones AIG Commodity Indexsm
, The Dowsm
, Dow Jones Industrial Averagesm
, and DJIA
sm are service marks of Dow Jones & Company, Inc. and American International Group,
Inc. (AIG) and have been licensed for use for certain purposes by the Board of Trade of the City of Chicago, Inc (CBOT
®). CBOT futures and options on futures contracts based on the Dow
Jones Industrial Averagesm
are not sponsored, endorsed, sold or promoted by Dow Jonessm
, and Dow Jones
sm makes no representation regarding the advisability of trading such product(s).
BM&FBOVESPA™ is a trademark of BM&FBOVESPA, KRX™ is a trademark of Korea Exchange, DME™ is a trademark of Dubai Mercantile Exchange, BMD™ is a trademark of Bursa Malaysia, BMV™ is a trademark of Bolsa Mexicana De Valores.
All other trademarks are the property of their respective owners.
The information within this document has been compiled by CME Group for general purposes only. CME Group assumes no responsibility for any errors or omissions. Additionally, all examples in this brochure are hypothetical situations, used for explanation purposes only, and should not be considered investment advice or the results of actual market experience.
All matters pertaining to rules and specifications herein are made subject to and are superseded by official CME, CBOT, and NYMEX rules. Current rules should be consulted in all cases concerning contract specifications.
Copyright © 2013 CME Group Inc. All rights reserved.
CME Front End Clearing
Allocation Management 2
Contents
1.0 API SUBMISSION AND USAGE RULES .............................................................................. 4
1.1 GENERAL USAGE RULES ....................................................................................................... 4 1.2 GIVE-UP USAGE RULES ......................................................................................................... 4 1.3 AVERAGE PRICE USAGE RULES ............................................................................................. 5 1.4 SUB-ALLOCATION USAGE RULES ........................................................................................... 5 1.5 REVERSAL USAGE RULES ..................................................................................................... 5 1.6 CROSS-EXCHANGE GIVE-UP USAGE RULES ............................................................................ 6
2.0 FIXML MESSAGE FLOWS .................................................................................................... 7
2.1 FIXML MESSAGE AND ATTRIBUTE USAGE IN ALLOCATION MESSAGES ..................................... 7 2.1.1 Message Types .......................................................................................................... 7 2.1.2 Allocation Identifiers ................................................................................................... 9 2.1.3 Quantity and Price Attributes ................................................................................... 11 2.1.4 Grouping and Rollup Attributes ................................................................................ 13 2.1.5 Buy Sell Convention................................................................................................. 14 2.1.6 Allocation and Average Price Group State Transition ............................................. 15 2.1.7 Prior Executing Firm for Sub-allocation ................................................................... 16
2.2 GIVE-UP ALLOCATION MESSAGE FLOWS .............................................................................. 17 2.2.1 Marking a Trade for Give-up Allocation ................................................................... 17 2.2.2 Creating an Allocation .............................................................................................. 19 2.2.3 Claiming an Allocation ............................................................................................. 21 2.2.4 Refusing an Allocation ............................................................................................. 22 2.2.5 Executing Firm Amending an Allocation Pre-claim .................................................. 23 2.2.6 Claiming Firm Amending an Allocation Pre-claim ................................................... 25 2.2.7 Cancelling an Allocation Pre-claim .......................................................................... 26 2.2.8 Amending an Allocation Post-claim ......................................................................... 27 2.2.9 Cancelling a Give-up Group .................................................................................... 28 2.2.10 Un-marking a Trade for Give-up .......................................................................... 29
2.3 AVERAGE PRICE ALLOCATION MESSAGE FLOWS .................................................................. 30 2.3.1 Marking Trades for Average Price Allocation .......................................................... 30 2.3.2 Completing an Average Price Group ....................................................................... 33 2.3.3 Allocating an Average Price Group, Clearing System Splits Allocation .................. 34 2.3.4 Un-marking a Trade from an Average Price Group ................................................. 35 2.3.5 Changing a Trade to Another Average Price Group ................................................ 36 2.3.6 Un-completing an Average Price Group .................................................................. 37 2.3.7 Cancelling an Average Price Group ........................................................................ 38 2.3.8 Transitions Between Give-up Allocation and Average Price Allocation Message Flows 38
2.4 SUB-ALLOCATION MESSAGE FLOWS ..................................................................................... 39 2.4.1 Sub-allocation for Give-up ....................................................................................... 39 2.4.2 Sub-allocation for Give-up with Specific Allocation Instructions .............................. 40 2.4.3 Sub-allocation for Average Pricing .......................................................................... 41
2.5 REVERSAL OF ACCEPTED ALLOCATIONS MESSAGE FLOWS ................................................... 42 2.5.1 Allocation Reversal Requested ................................................................................ 42 2.5.2 Allocation Reversal Accepted .................................................................................. 43 2.5.3 Allocation Reversal Refused .................................................................................... 44 2.5.4 Allocation Reversal Cancelled ................................................................................. 45
3.0 FIXML COMPONENTS AND MESSAGE SPECIFICATIONS ............................................. 46
3.1 FIXML MESSAGE ELEMENTS AND ATTRIBUTES .................................................................... 46 3.1.1 Version Attributes for All Messages ......................................................................... 46
3.2 MESSAGE HEADERS ............................................................................................................ 47 3.2.1 Standard Header for Request and Submissions ..................................................... 47 3.2.2 Standard Header for Responses ............................................................................. 47
CME Front End Clearing
Allocation Management 3
3.3 MALFORMED MESSAGES ..................................................................................................... 48 3.4 MESSAGE LAYOUTS ............................................................................................................ 48
3.4.1 Allocation Instruction Message Layout .................................................................... 48 3.4.2 Allocation Instruction Ack Message Layout ............................................................. 49 3.4.3 Allocation Instruction Alert Message Layout ............................................................ 49 3.4.4 Allocation Report Message Layout .......................................................................... 50
3.5 MESSAGE SPECIFICATIONS ................................................................................................. 50 3.5.1 Business Reject Message Specification .................................................................. 50 3.5.2 Allocation Instruction Alert Message Specification .................................................. 51 3.5.3 Allocation Instruction Message Specification .......................................................... 57 3.5.4 Allocation Report Message Specification ................................................................ 61 3.5.5 Allocation Instruction Ack Message Specification ................................................... 69
4.0 APPENDIX ............................................................................................................................ 73
4.1 STATE CHANGES BY SCENARIO ........................................................................................... 73 5.0 REVISION HISTORY ............................................................................................................ 77
CME Front End Clearing
Allocation Management API 4
1.0 API Submission and Usage Rules This section describes the Front End Clearing (FEC) FIXML Allocation Management API validation and usage rules.
1.1 General Usage Rules This section lists the API rules that are common to all types of allocations:
vanilla give-up
average pricing
cross-exchange give-up
1. Allocations cannot be cancelled if the claiming firm has accepted the allocation.
2. The executing firm may cancel the allocation if the claiming firm has refused the allocation. This prevents the claiming firm from later claiming the allocation.
3. The claiming firm may claim an allocation if it has not been cancelled. This includes refusing an allocation and later claiming it.
4. An executing firm cannot amend the allocation after the claiming firm has claimed the allocation.
5. An executing firm may amend an allocation after the claiming firm has refused it. The claiming firm may then claim the amended allocation.
6. Trades may not transition directly between give-up, average pricing, or cross-exchange give up. They must first be un-marked for allocation, then be marked for allocation using the other methodology.
7. On a Trade Capture Report, setting the Allocation Indicator to Allocation Not Required (AllocInd=0) requires that the Average Pricing Indicator be set to No Average Pricing (AvgPxInd=0), or the AvgPxInd attribute should be omitted; otherwise, the Trade Capture Report is rejected.
1.2 Give-up Usage Rules This list describes the API rules that are applicable to vanilla give-ups in the API.
1. The clearing system does not validate for claimed or unclaimed allocations in the group when an executing firm un-marks trades from group. This could result in the quantity of a give-up group being reduced below the quantity of claimed allocations, which could cause the executing firm to be out of balance.
2. An executing firm cannot cancel a give-up group if it has any claimed allocations.
3. By default, trades that meet grouping criteria are grouped together when marked for give-up. The executing firm can opt out of this by designating that a trade not be added to an existing allocation group.
4. If the executing firm designates multiple allocations to the same firm and account, the clearing system by default rolls up all of these allocations into a single allocation. Both the executing and claiming firms see only one allocation. However, the executing firm can choose to override rollup, which results in multiple individual allocations.
5. The executing firm cannot amend an allocation to change the instruction to override rollup.
6. The clearing system will not group any NYMEX, COMEX, CMD, or SX trades. When marked for give-up, the clearing system will create a new group for each of these trades. Additionally,
CME Front End Clearing
Allocation Management API 5
firms can opt out of grouping; the clearing system will create a new group for each trade when the firm marks each trade for allocation.
1.3 Average Price Usage Rules This list describes the applicable average pricing API rules.
1. Trades may not be un-marked for average price allocation or removed from an average price group if the group is complete.
2. To remove trades from a completed average price group, the executing firm must un-complete the group.
3. An executing firm cannot un-complete an average price group if the group contains any claimed allocations.
4. Un-completing an average price group cancels all unclaimed allocations.
5. Trades may be moved from one average price group to another if both groups are incomplete.
6. The executing firm cannot allocate before completing an average price group.
7. The executing firm can only cancel an incomplete average price group.
8. Cancelling an average price group will leave the trade (if any) unmarked from the group, but the trades will still remain marked for average pricing.
9. Marking a trade for give-up allocation that was previously marked for average pricing requires that the executing firm first un-mark the trade from average pricing and mark it for give-up.
10. Removing a trade from an average pricing group, but keeping it in the average pricing system as unassigned requires specifying an Average Price Indicator of Average price trade removed from group (AvgPxInd=100) in a Trade Capture Report that modifies the trade. Modifying the trade and omitting the Average Price Group ID (AvgPxGrpID) is not sufficient.
11. Rollup is never performed for average pricing groups. If the executing firm designates multiple allocations to the same firm and account, the clearing system will not roll up the allocations, which results in multiple individual allocations. The executing firm cannot override this behavior.
12. The clearing system may split an allocation into two or more allocations if the allocation could not be satisfied by trades having the same fee characteristics.
1.4 Sub-allocation Usage Rules This list describes all of the applicable sub-allocation API rules.
1. A claiming firm wanting to sub-allocate a trade must first claim the allocation and then sub-allocate it using distinct messages. Claiming and sub-allocating in a single message is not supported.
2. If a sub-allocation is being average priced, an Average Price Group ID (AvgPxGrpID) must be specified.
1.5 Reversal Usage Rules This list describes all the allocation reversal API rules.
1. A claiming firm must first claim an allocation before either party can reverse it.
2. Either the executing firm or the claiming firm can request a reversal.
3. A reversal, once refused, can later be accepted, provided the party that initiated the reversal has not cancelled it.
CME Front End Clearing
Allocation Management API 6
4. The party that initiates a reversal may cancel a reversal, but only if the other party has not accepted or refused it.
1.6 Cross-exchange Give-up Usage Rules This section describes all of the API rules that are applicable for cross-exchange allocations in the API differing from those already specified as General Usage Rules, Give-up Usage Rules, and Reversal Usage Rules.
1. The executing firm must specify claiming firm information when marking a trade for cross-exchange allocation. It is not possible to mark a trade for cross-exchange allocation without indicating one or more claiming firms.
2. A trade may be marked for MOS and only partially allocated. The executing firm will then keep the unallocated quantity if it takes no further action. The executing firm may also submit additional MOS allocations for the unallocated quantity remaining on the same trade. However, any unallocated quantity may not be allocated via give-up or average pricing.
3. If a CME executing firm cancels an allocation pre-trade, the cancel may be ignored if SGX clearing has claimed or refused an allocation.
4. An SGX firm cannot initiate a reversal.
5. Cancelling a reversal is not currently supported.
6. If cancellation of reversal is supported in a future release, in a scenario where a CME firm cancels a reversal that it initiated, the cancel may be ignored if SGX clearing has claimed or refused the reversal.
CME Front End Clearing
Allocate and Claim API 7
2.0 FIXML Message Flows This section contains detailed message flows using FIXML message, element, and attribute names. It also indicates attributes used to identify allocations, describe their status, and express their quantities, amounts, prices, and side.
2.1 FIXML Message and Attribute Usage in Allocation Messages
2.1.1 Message Types
The following table lists the message types and messages supported by the API:
Message Type Description Message
Mark Trade for Give-up
Mark Trade for Give-up with Specific Instructions
Mark Trade for Average Pricing
Un-mark Trade
Change Average Price Group
Sent by the executing firm as a new trade or an amendment to a previously submitted trade.
TradeCaptureReport
Mark Trade Acknowledgment
Un-mark Trade Acknowledgement
Change Average Price Group Acknowledgment
Sent by the API in response to marking a trade, un-marking a trade, or changing allocation parameters of a marked trade.
TradeCaptureReportAck
Group Summary notifications
For trades marked for give-up, these messages are sent by the API in response to the creation of a group, addition of a trade to an existing group, or cancellation of a group.
For trades marked for average pricing, these messages are sent by the API in response to adding or removing a trade from an average price group, when a group is completed or un-completed, or when a group is cancelled.
AllocationInstructionAlert
CME Front End Clearing
Allocation Management API 8
Message Type Description Message
Complete Average Price Group
Un-complete Average Price Group
Sent by the executing firm to complete an average price group.
Sent by the executing firm to un-complete an average price group.
AllocationInstruction
Submit Allocation Instruction
Amend Allocation Instruction
Cancel Allocation Instruction
Sent by the executing firm to submit, amend, or cancel an allocation instruction.
AllocationInstruction
Allocation Instruction Acknowledgment
Sent by the clearing system to the executing firm acknowledging the submission, amendment, or cancellation of an allocation instruction, or reporting an error.
AllocationReport
Notify Claiming Firm
Notify Claiming Firm of Cancellation
Notify Claiming Firm of Amendment
Sent by the clearing house to notify the claiming firm of a new allocation, cancellation of an allocation, or amendment of an allocation proposed by the executing firm.
AllocationReport
Claim an Allocation
Refuse an Allocation
Sent by the claiming firm to the clearing system to indicate whether the claiming firm accepts or refuses an allocation proposed by the executing firm.
AllocationInstruction
Allocation Claim Notification
Allocation Refusal Notification
Sent by the clearing system to the executing firm to indicate status changes to an allocation, such as those caused by a claiming firm accepting or refusing an allocation.
AllocationReport
Allocation Claim Acknowledgment
Allocation Refusal Acknowledgment
Sent by the clearing system to the claiming firm acknowledging and processing the claim or refusal from the claiming firm.
AllocationReport
Sub Allocate an Allocation
Sent by the claim firm to sub-allocate an allocation after claiming the allocation.
AllocationInstruction
Request Allocation Reversal
Initiated by either the executing firm or the claiming firm to the clearing system to request the release or reversal of a claimed allocation.
AllocationInstruction
Reversal Request Acknowledgment
Sent by the clearing system to acknowledge the reversal request.
AllocationReport
CME Front End Clearing
Allocation Management API 9
Message Type Description Message
Reversal Request Notification
Sent by the clearing system to notify the opposite side of the proposed reversal.
AllocationReport
Accept a Reversal
Refuse a Reversal
Sent to the clearing system to accept or refuse the proposed reversal.
AllocationInstruction
Reversal Acceptance Acknowledgment
Reversal Refusal Acknowledgment
Sent by the clearing system to the initiator of the claim or refusal of the reversal, acknowledging acceptance or refusal of the reversal.
AllocationReport
Reversal Acceptance Notification
Reversal Refusal Notification
Sent by the clearing system to the initiator of the reversal, to notify the firm of the acceptance or refusal of the reversal.
AllocationReport
Cancel Reversal Request
Sent by the firm that initiated the reversal to the clearing system.
AllocationInstruction
Cancel Reversal Acknowledgment
Sent by the clearing system to the firm that initiated the reversal.
AllocationReport
Cancel Reversal Notification
Sent by the clearing system to the firm that did not initiate the reversal, notifying that firm of the reversal’s cancellation.
AllocationReport
Clearing System Reject
Sent by the clearing system in response to an invalid request.
AllocationInstructionAck
2.1.2 Allocation Identifiers
The API allows and provides the following identifiers when submitting and reporting allocations to
the clearing system. Identifiers are both provided by the submitter and assigned by the CME
clearing system. All identifiers provided by a firm will be reported back on all the subsequent
acknowledgements and notifications to the firm. Submitters must reference allocations using
CME clearing system assigned identifiers.
Name Attribute Message Usage
Message Identifiers
Message ID @ID Allocation Instruction Unique message ID. Used by both executing and claiming firms.
Reference ID @RptRefID Allocation Report Used by clearing system when responding to an Allocation Instruction. Contains the same value specified in ID for the Allocation Instruction.
CME Front End Clearing
Allocation Management API 10
Name Attribute Message Usage
Reference ID @RefAllocID Allocation Instruction Ack
Allocation Instruction Alert
Used by clearing system when responding to an Allocation Instruction. Contains the same value specified in ID for the Allocation Instruction.
Allocation Group Identifiers
Clearing assigned Group ID
@GrpID Allocation Instruction Alert
Sent by clearing system to identify allocation groups (give up, average price, or cross exchange give up)
@GrpID Allocation Instruction Must be sent by the executing firm and must equal the GrpID the clearing system sent in an Allocation Instruction Alert. Required on all Allocation Instruction messages sent by the executing firm except for sub-allocation.
@GrpID Allocation Report Sent by clearing system to the executing firm on all messages to identify the allocation group.
Average Price Group ID
@AvgPxGrpID
Trade Capture Report Sent by the executing firm to assign a trade to an average price group.
@AvgPxGrpID
Allocation Instruction Alert
Allocation Report
Echoed by the clearing system to the executing firm for average price groups. Will match the AvgPxGrpID specified in a Trade Capture Report.
Allocation identifiers
Clearing assigned Allocation ID
Alloc/@IndAllocID2
Allocation Report Sent by clearing system to the executing firm and claiming firm on all messages to identify the allocation.
Alloc/@IndAllocID2
Allocation Instruction Sent by the claiming firm to the clearing system to reference an allocation.
Sent by the executing firm to the clearing system to reference an allocation. For example when amending, cancelling, or reversing an allocation.
In sub-allocations, sent by the original claiming firm to identify the allocation to sub-allocate.
CME Front End Clearing
Allocation Management API 11
Name Attribute Message Usage
Firm assigned Allocation ID
Alloc/@IndAllocID
Allocation Instruction Sent by firms (both executing and claiming) to provide an additional identifier for the allocation. Optional.
Alloc/@IndAllocID
Allocation Instruction Alert
Allocation Report
If Alloc/@IndAllocID is specified by the firm in an Allocation Instruction, the clearing system will store this and send it back to the claiming firm when referencing the allocation.
Trade ID AllExc/@TradeID
Allocation Instruction Alert
Sent by the clearing system to the executing firm to indicate the Trade ID of a trade added to or removed from a group.
2.1.3 Quantity and Price Attributes
The following attributes indicate quantity and prices used in messages from the clearing system to firms.
Name Attribute Message Usage
Transaction Quantity @Qty Allocation Instruction Alert
Indicates the quantity by which the group changes as part of the current transaction. Positive when adding a trade to a group. Zero when changing just the status of a group, e.g. completing or un-completing a group. Negative when removing trades from a group.
Group Quantity @GrpQty Allocation Instruction Alert
Total quantity in the group. This only changes if trades are added or removed from the group.
Note: Allocating from a group, or reversing allocations, does not affect the group quantity.
Total Allocation Quantity
@Qty Allocation Instruction
Allocation Report
Total quantity being allocated by this message.
Allocation Quantity Alloc/@Qty Allocation Instruction
Allocation Report
Quantity allocated to the party identified in the <Pty> element.
Requested Allocation Quantity
Alloc/@ReqQty
Allocation Report Quantity allocated to the party identified in the <Pty> element in the requested allocation. Can differ from Alloc/@Qty when the clearing system splits an allocation. Sent to executing firm for average price allocations.
CME Front End Clearing
Allocation Management API 12
Name Attribute Message Usage
Trade Quantity AllExc/@LastQty
Allocation Instruction Alert
Indicates the quantity of a trade added to or removed from a group. Is always positive.
Average Price @AvgPx Allocation Instruction Alert
Average price computed by the clearing system for a completed group. Incomplete groups generally will not have an average price specified.
Average Price @AvgPx Allocation Report Average price at which allocation occurs.
Give-up Price (Trade Price)
@AvgPx Allocation Report For vanilla give-ups this contains the trade price.
Trade Price AllExc/@LastPx
Allocation Instruction Alert
Indicates the price of a trade added to or removed from a group.
CME Front End Clearing
Allocation Management API 13
2.1.4 Grouping and Rollup Attributes
The following attributes indicate instructions pertaining to grouping and rollup, which the executing firm uses to override default behavior.
Name Attribute Message Usage
Allocation Group Instruction
RptSide/@AllocGrpInst
Trade Capture Report
Trade Capture Report Ack
Instruction on how to add a trade to an allocation group when it is being given-up. The default behavior is to add the trade to an existing allocation group if one exists.
0 = Add to an existing allocation group if one exists
1 = Do not add the trade to an existing allocation group
Allocation Rollup Instruction
Alloc/@AllocRollupInst
Allocation Instruction
Allocation Report
An indicator to override the normal procedure to roll up allocations for the same Carry Firm. Note that this may not be used for average pricing groups.
0 = Roll up
1 = Do not roll up
Allocation Rollup Instruction
RptSide/Alloc/@AllocRollupInst
Trade Capture Report
Trade Capture Report Ack
An indicator to override the normal procedure to roll up allocations for the same Carry Firm. Note that this may not be used for average pricing groups.
0 = Roll up
1 = Do not roll up
CME Front End Clearing
Allocation Management API 14
2.1.5 Buy Sell Convention
This section describes the convention used for buy sell code convention in allocation messages.
In this scenario the executing firm is giving up a trade, which is a buy. For transactions where the executing firm makes a trade to sell, the side in all of the above scenarios is reversed. The clearing system reverses the buy sell code when an allocation is initiated.
Scenario Message Type Executing Firm
Claiming Firm
Original Trade TrdCaptRpt BUY
Group Summary Notification after a trade is allocated
AllocInstrctnAlert BUY
New Allocation Notification
AllocRpt SELL BUY
Allocation Claimed / Refused by the Claim side
AllocRpt SELL BUY
Allocation Reversal confirmation
AllocRpt (allocation released and release accepted)
SELL BUY
CME Front End Clearing
Allocation Management API 15
2.1.6 Allocation and Average Price Group State Transition
This diagram shows the allocation state transition when a trade is marked for give-up.
Allocation Pending
Rejected by Intermediary
Claimed
Reversal Pending
Reversed
Refused
Cancelled
Reversal
Rejected/Cancelled
Sub Allocate
Allocation
Allocate Trade
Reject Allocation
Cancel Allocation
Claim Allocation
Reverse Allocation
Claim Reversal
Allocate Trade
Allocate State Transition
Claim Allocation
Cancel Allocation
Update Allocation
Update Allocation
Claim Reversal
(When a pending
Reversal was rejected)
CME Front End Clearing
Allocation Management API 16
This diagram shows the state of a group, beginning with the creation of a give-up or average price group.
Incomplete GroupComplete Group
Cancel Group
Create
Average
Price Group
Cancel Group
Create
Give-up
Group
Group State Transition
Complete
Group
Reopen Group
2.1.7 Prior Executing Firm for Sub-allocation
When sub-allocating an allocation to another account within one's own firm, the clearing system may send the identity of the prior executing firm. This will appear within AllocRpt/Pty/@ID with AllocRpt/Pty/@R="201" signifying the prior executing firm. Example:
1. Firm A trades.
2. Firm A allocates to Firm A: Not present. (There is no prior executing firm.)
3. Firm A sub-allocates to Firm A: Not present. (There is no prior executing firm.)
4. Firm A sub-allocates to Firm B: Not present. (This is not a sub-allocation to self.)
5. Firm B sub-allocates to Firm B: Present. Pty[R="201"]@ID="A"
6. Firm B sub-allocates to Firm B: Present. Pty[R="201"]@ID="A"
7. Firm B sub-allocates to Firm C: Not present. (This is not a sub-allocation to self.)
8. Firm C sub-allocates to Firm C: Present. Pty[R="201"]@ID="B"
9. Firm C sub-allocates to Firm C: Present. Pty[R="201"]@ID="B"
CME Front End Clearing
Allocation Management API 17
2.2 Give-up Allocation Message Flows
2.2.1 Marking a Trade for Give-up Allocation
Scenario 1: Trade amendment marked for give-up without carry information
1. The executing firm sends a new Trade Capture Report with a TransTyp of Replace, a RptTyp of Submit, an AllocInd of Allocating Trade (No Claim Info provided), and the AvgPxInd is absent or set to No Average Pricing.
2. The clearing system responds by:
Sending the executing firm a Trade Capture Report Ack with a TransTyp of Replace, RptTyp of Submit and a TrdRptStat of Accepted.
Creating a give-up group, and sending the executing firm an Allocation Instruction Alert with a TransTyp of New, a Typ of Complete Group, and a Stat of Allocation Pending.
Note: Submission of a new trade marked for give-up without carry information functions identically, except in steps 1 and 2 above TransTyp is New, rather than Replace.
Trade Amendment Marked for Give-up Allocation
Executing FirmFront End
Clearing
AllocInstrctnAlert ( New, Complete Group,
Allocation Pending )
TrdCaptRpt ( Replace, Submit )
TrdCaptRptAck ( Replace, Submit, Accepted )
CME Front End Clearing
Allocation Management API 18
Scenario 2: Trade amendment marked for give-up with instructions
1. The executing firm sends a Trade Capture Report with a TransTyp of Replace, a RptTyp of Submit, an AllocInd of Allocate Trade – Carry info Provided, and with the AvgPxInd absent or set to No Average Pricing. The claiming firm is provided in the Alloc/Pty element. Optionally:
a. The executing firm could specify grouping instructions in RptSide/AllocGrpInst.
b. The executing firm could specify rollup instructions in RptSide/AllocRollupInst.
2. The clearing system responds by:
Sending the executing firm a Trade Capture Report Ack with a TransTyp of Replace, RptTyp of Submit and a TrdRptStat of Accepted.
Creating a give-up group, and sending the executing firm an Allocation Instruction Alert with a TransTyp of New, a Typ of Complete Group, and a Stat of Allocation Pending.
Sending an Allocation Report to the executing firm with a TransTyp of New, a RptTyp of Give-up, and a Stat of Allocation Pending.
Sending an Allocation Report to the claiming firm with a TransTyp of New, a RptTyp of Take-up, and a Stat of Allocation Pending.
Note: Submission of a new trade marked for give-up with carry information functions identically, except in steps 1 and 2a above, where TransTyp is New rather than Replace.
Marking a Trade with Specific Allocation Instructions
Executing FirmFront End
Clearing
AllocRpt ( New, Give-up, Allocation Pending )
Claiming Firm
AllocRpt ( New, Take-up, Allocation Pending )
TrdCaptRpt ( Replace, Submit )
TrdCaptRptAck ( Replace, Submit, Accepted )
AllocInstrctnAlert ( New, Complete Group,
Allocation Pending )
CME Front End Clearing
Allocation Management API 19
2.2.2 Creating an Allocation Scenario 1: Creating an allocation – success
This scenario begins with the executing firm marking a trade for give-up allocation.
1. The executing firm sends an Allocation Instruction message with a TransTyp of New and a Typ of Give-up. The executing firm identifies the group using the GrpID field, and identifies the claiming firm in the Alloc/Pty element.
2. The clearing system responds by:
Sending an Allocation Report to the executing firm with a TransTyp of New, a RptTyp of Give-up, and a Stat of Allocation Pending.
Sending an Allocation Report to the claiming firm with a TransTyp of New, a RptTyp of Take-up, and a Stat of Allocation Pending.
Creating an Allocation - Success
Executing FirmFront End
Clearing
AllocInstrctn ( New, Give-up )
AllocRpt ( New, Give-up,
Allocation Pending )
Claiming Firm
AllocRpt ( New, Take-up,
Allocation Pending )
CME Front End Clearing
Allocation Management API 20
Scenario 2: Creating an allocation – Rejected by CME Clearing
This scenario begins with the executing firm marking a trade for give-up allocation.
1. The executing firm sends an Allocation Instruction message with a TransTyp of New and a Typ of Give-up. The executing firm identifies the group using the GrpID field, and identifies the claiming firm in the Alloc/Pty element. This message contains an error, such as specifying an invalid GrpID, or an allocation quantity in excess of the unallocated quantity available in the group.
2. The clearing system responds by sending the executing firm an Allocation Instruction Ack message with TransTyp of New, Typ of Give-up, and Stat of Rejected by Intermediary.
Note: The clearing system can use the Allocation Instruction Ack message to reject any Allocation Instruction message.
Creating an Allocation – Rejected by CME Clearing
Executing FirmFront End
Clearing
AllocInstrctn ( New, Give-up )
AllocInstrctnAck ( New, Give-up, Rejected
by Intermediary )
Claiming Firm
CME Front End Clearing
Allocation Management API 21
2.2.3 Claiming an Allocation
This scenario begins with the executing firm marking a trade for allocation and allocating the trade to the claiming firm. The next steps are:
1. The claiming firm sends an Allocation Instruction message with a TransTyp of New and a Typ of Take-up. It identifies the allocation to claim using IndAllocID2.
2. The clearing system responds by:
Sending an Allocation Report to the claiming firm with a TransTyp of New, a RptTyp of Take-up, and a Stat of Claimed.
Sending an Allocation Report to the executing firm with a TransTyp of New, a RptTyp of Give-up, and a Stat of Claimed.
Claiming an Allocation
Executing FirmFront End
Clearing
AllocRpt ( New, Give-up, Claimed )
Claiming Firm
AllocRpt ( New, Take-up, Claimed )
AllocInstrctn ( New, Take-up )
CME Front End Clearing
Allocation Management API 22
2.2.4 Refusing an Allocation
This scenario begins with the executing firm marking a trade for allocation and allocating the trade to the claiming firm. The next steps are:
1. The claiming firm sends an Allocation Instruction message with a TransTyp of New and a Typ of Refuse Take-up. It identifies the allocation to refuse using IndAllocID2.
2. The clearing system responds by:
Sending an Allocation Report to the claiming firm with a TransTyp of New, a RptTyp of Take-up, and a Stat of Refused.
Sending an Allocation Report to the executing firm with a TransTyp of New, a RptTyp of Give-up, and a Stat of Refused.
Rejecting an Allocation
Executing FirmFront End
Clearing
AllocRpt ( New, Give-up, Refused )
Claiming Firm
AllocRpt ( New, Take-up, Refused )
AllocInstrctn ( New, Refuse Take-up )
CME Front End Clearing
Allocation Management API 23
2.2.5 Executing Firm Amending an Allocation Pre-claim Scenario 1: Amendment with new claiming firm
This scenario begins with the executing firm marking a trade for allocation and allocating the trade to claiming firm 1.
1. The executing firm sends an Allocation Instruction message with a TransTyp of Replace and a Typ of Give-up. It identifies the allocation to amend using GrpID and IndAllocID2, and identifies claiming firm 2 in the Alloc/Pty element.
2. The clearing system responds by:
Sending an Allocation Report to the executing firm with a TransTyp of Replace, a RptTyp of Give-up, and a Stat of Allocation Pending.
Sending an Allocation Report to claiming firm 1 with a TransTyp of Cancel, a RptTyp of Take-up, and a Stat of Cancelled.
Sending an Allocation Report to claiming firm 2 with a TransTyp of New, a RptTyp of Take-up, and a Stat of Allocation Pending.
Executing Firm Amending an Allocation Pre-Claim – New Claiming Firm
Executing FirmFront End
ClearingClaiming Firm 1 Claiming Firm 2
AllocRpt ( Replace, Give-up, Allocation
Pending )
AllocRpt ( Cancel, Take-up,
Cancelled )
AllocInstrctn ( Replace, Give-up )
AllocRpt ( New, Take-up,
Allocation Pending )
CME Front End Clearing
Allocation Management API 24
Scenario 2: Amendment with same claiming firm
This scenario begins with the executing firm marking a trade for allocation and allocating the trade to the claiming firm.
1. The executing firm sends an Allocation Instruction message with a TransTyp of Replace and a Typ of Give-up. It identifies the allocation to amend using GrpID and IndAllocID2.
2. The clearing system responds by:
Sending an Allocation Report to the executing firm with a TransTyp of Replace, a RptTyp of Give-up, and a Stat of Allocation Pending.
Sending an Allocation Report to the claiming firm with a TransTyp of Replace, a RptTyp of Take-up, and a Stat of Allocation Pending.
Executing Firm Amending an Allocation Pre-claim – Same Claiming Firm
Executing FirmFront End
Clearing
AllocRpt ( Replace, Give-up, Allocation
Pending )
Claiming Firm
AllocRpt ( Replace, Take-up,
Allocation Pending )
AllocInstrctn ( Replace, Give-up )
CME Front End Clearing
Allocation Management API 25
2.2.6 Claiming Firm Amending an Allocation Pre-claim
This scenario begins with the executing firm marking a trade for allocation and allocating the trade to the claiming firm.
1. The claiming firm sends an Allocation Instruction message with a TransTyp of Replace and a Typ of Take-up. It identifies the allocation to amend using IndAllocID2.
2. The clearing system responds by sending an Allocation Report to the claiming firm with a TransTyp of Replace, a RptTyp of Take-up, and a Stat of Allocation Pending.
Claiming Firm Amending an Allocation Pre-claim
Executing FirmFront End
ClearingClaiming Firm
AllocRpt ( Replace, Take-up,
Allocation Pending )
AllocInstrctn ( Replace, Take-up )
CME Front End Clearing
Allocation Management API 26
2.2.7 Cancelling an Allocation Pre-claim
This scenario begins with the executing firm marking a trade for allocation and allocating the trade to the claiming firm.
1. The executing firm sends an Allocation Instruction message with a TransTyp of Cancel and a Typ of Give-up. It identifies the allocation to cancel using GrpID and IndAllocID2.
2. The clearing system responds by:
Sending an Allocation Report to the executing firm with a TransTyp of Cancel, a RptTyp of Give-up, and a Stat of Cancelled.
Sending an Allocation Report to the claiming firm with a TransTyp of Cancel, a RptTyp of Take-up, and a Stat of Cancelled.
Cancelling an Allocation Pre-claim
Executing FirmFront End
Clearing
AllocRpt ( Cancel, Give-up, Cancelled )
Claiming Firm
AllocRpt ( Cancel, Take-up, Cancelled )
AllocInstrctn ( Cancel, Give-up )
CME Front End Clearing
Allocation Management API 27
2.2.8 Amending an Allocation Post-claim
This scenario begins with the executing firm marking a trade for allocation and allocating the trade to the claiming firm, and the claiming firm claiming the allocation.
1. The executing firm sends an Allocation Instruction message with a TransTyp of Replace and a Typ of Take-up. It identifies the allocation to amend using IndAllocID2. Example amendments include changing the carry account, origin, and CTI.
2. The clearing system responds by sending an Allocation Report to the claiming firm with a TransTyp of Replace, a RptTyp of Take-up, and a Stat of Claimed.
Note: The clearing system will not notify the executing firm.
Amending an Allocation Post-claim
Executing FirmFront End
ClearingClaiming Firm
AllocRpt ( Replace, Take-up, Claimed )
AllocInstrctn ( Replace, Take-up )
CME Front End Clearing
Allocation Management API 28
2.2.9 Cancelling a Give-up Group
The executing firm can cancel a give-up group, provided that no allocations from that group have been claimed.
This scenario begins with the executing firm marking a trade for allocation and allocating the trade to the claiming firm.
1. The executing firm sends an Allocation Instruction message with a TransTyp of Cancel and a Typ of Cancel Group. It identifies the group to cancel using GrpID.
2. The clearing system responds by:
Sending an Allocation Instruction Alert to the executing firm with a TransTyp of Cancel, a Typ of Cancel Group, and a Stat of Allocation Pending.
Sending an Allocation Report to the executing firm for each allocation pending with a TransTyp of Cancel, a Typ of Give-up, and a Stat of Cancelled.
Sending an Allocation Report to the claiming firm for each allocation pending with a TransTyp of Cancel, a Typ of Take-up, and a Stat of Cancelled.
Cancelling a Give-up Group
Executing FirmFront End
Clearing
AllocInstrctn ( Cancel, Cancel Group )
AllocInstrctnAlert ( Cancel, Cancel Group,
Allocation Pending )
AllocRpt ( Cancel, Give-up, Cancelled ) AllocRpt ( Cancel, Take-up, Cancelled )
Claiming Firm
CME Front End Clearing
Allocation Management API 29
2.2.10 Un-marking a Trade for Give-up
This scenario begins with the executing firm marking a trade for allocation and allocating the trade to the claiming firm. The claiming firm has not claimed the allocation. This trade is the only trade in the give-up group.
1. The executing firm sends a Trade Capture Report with a TransTyp of Replace, a RptTyp of Submit, and an AllocInd of Allocation not required.
2. The clearing system responds by:
Sending the executing firm a Trade Capture Report Ack with a TransTyp of Replace, a RptTyp of Submit and a TrdRptStat of Accepted.
Sending the executing firm an Allocation Instruction Alert with a TransTyp of Cancel, a Typ of Incomplete Group, a Stat of Allocation Pending, and a GrpQty of 0.
Sending an Allocation Report to the executing firm with a TransTyp of Cancel, a Typ of Give-up, and a Stat of Cancelled.
Sending an Allocation Report to the claiming firm with a TransTyp of Cancel, a Typ of Take-up, and a Stat of Cancelled.
Note: The third and fourth bullets in Step 2 repeat if more than one allocation is pending, or are omitted if no allocations are pending. If a group includes more than one trade, the second bullet will show a reduction of GrpQty which is non-zero, and Typ will be Replace.
Un-marking a Trade for Give-up
Executing FirmFront End
ClearingClaiming Firm
TrdCaptRpt ( Replace,
Submit ) with AllocInd = 0
TrdCaptRptAck ( Replace, Submit, Accepted )
AllocInstrctnAlert ( Cancel,
Incomplete Group, Allocation
Pending ) with GrpQty = 0
AllocRpt ( Cancel, Give-up, Cancelled )AllocRpt ( Cancel, Take-up, Cancelled )
CME Front End Clearing
Allocation Management API 30
2.3 Average Price Allocation Message Flows The following message flows illustrate message flows specific to average price allocation groups. Average price allocation differs from give-up allocation in that the executing firm controls the assignment of trades to average price groups. However, once an average price group is complete, it functions almost identically to a give-up group.
2.3.1 Marking Trades for Average Price Allocation
Scenario 1: Group ID specified at time of marking
1. The executing firm sends a Trade Capture Report with a TransTyp of Replace, a RptTyp of Submit, an AllocInd of Allocating Trade (No Claim Info provided), and an AvgPxInd of Trade is part of an average price group. The executing firm supplies the name of a new average price group in the AvgPxGrpID field.
2. The clearing system responds by:
Sending the executing firm a Trade Capture Report Ack with a TransTyp of Replace, a RptTyp of Submit and a TrdRptStat of Accepted.
Creating an average price group, and sending the executing firm an Allocation Instruction Alert with a TransTyp of New (as this is a new average price group), a Typ of Incomplete Group, and a Stat of Allocation Pending.
3. The executing firm amends a second trade for average price allocation, as in step 1, but specifies the same AvgPxGrpID used above.
4. The clearing system responds by:
Sending the executing firm a Trade Capture Report Ack with a TransTyp of Replace, a RptTyp of Submit and a TrdRptStat of Accepted.
Modifying the average price group, and sending the executing firm an Allocation Instruction Alert with a TransTyp of Replace (as this is now an existing average price group), a Typ of Incomplete Group, and a Stat of Allocation Pending.
Note: Submission of a new trade marked for average pricing functions almost identically, except that TransTyp is New, not Replace, in steps 1 and 3 and the first bullet in steps 2 and 4 above.
CME Front End Clearing
Allocation Management API 31
Marking a Trade for Average Price Allocation
Executing FirmFront End
Clearing
TrdCaptRpt ( Replace, Submit )
AllocInstrctnAlert ( New, Incomplete Group, Allocation
Pending )
TrdCaptRptAck ( Replace, Submit, Accepted )
TrdCaptRpt ( Replace, Submit )
TrdCaptRptAck ( Replace, Submit, Accepted )
AllocInstrctnAlert ( Replace, Incomplete Group, Allocation
Pending )
New Average
Price Group
created
Update Average
Price Group
created
CME Front End Clearing
Allocation Management API 32
Scenario 2: Group ID specified later
1. The executing firm sends a Trade Capture Report with a TransTyp of Replace, a RptTyp of Submit, an AllocInd of Allocating Trade (No Claim Info provided), and an AvgPxInd of Trade is part of an average price group. The executing firm will not send AvgPxGrpID at this time.
2. The clearing system responds by sending the executing firm a Trade Capture Report Ack with a TransTyp of Replace, a RptTyp of Submit and a TrdRptStat of Accepted. The trade is now marked for average price allocation, but is not part of any average price group.
3. The executing firm sends a Trade Capture Report with a TransTyp of Replace, a RptTyp of Submit, an AllocInd of Allocating Trade (No Claim Info provided), and an AvgPxInd of Trade is part of an average price group. The executing firm supplies the name of a new average price group in the AvgPxGrpID field.
4. The clearing system responds by:
Sending the executing firm a Trade Capture Report Ack with a TransTyp of Replace, a RptTyp of Submit and a TrdRptStat of Accepted.
Creating an average price group, and sending the executing firm an Allocation Instruction Alert with a TransTyp of New, a Typ of Incomplete Group, and a Stat of Allocation Pending.
Note: The executing firm could also specify the name of an existing average price group in step 3, which would cause TransTyp to be Replaced in the second bullet in step 4.
Specifying Average Price Group Later
Executing FirmFront End
Clearing
TrdCaptRpt ( Replace, Submit ) with no LinkID
TrdCaptRptAck ( Replace, Submit, Accepted )
AllocInstrctnAlert ( New, Incomplete Group, Allocation
Pending )
TrdCaptRpt ( Replace, Submit ) with a new LinkID
TrdCaptRptAck ( Replace, Submit, Accepted )
New Average
Price Group
created
CME Front End Clearing
Allocation Management API 33
2.3.2 Completing an Average Price Group
In this scenario the executing firm marks a trade for average price allocation by specifying an average price group.
1. The executing firm sends an Allocation Instruction message with a TransTyp of Replace and a Typ of Complete Group. It identifies the group to complete using GrpID.
2. The clearing system responds by sending an Allocation Instruction Alert message with a TransTyp of Replace, a Typ of Complete Group, and a Stat of Allocation Pending. This contains the average price used for allocation.
At this point, the executing firm may begin submitting allocations for the average price group.
Completing an Average Price Group
Executing FirmFront End
Clearing
AllocInstrctn ( Replace, Complete Group )
AllocInstrctnAlert ( Replace, Complete Group,
Allocation Pending )
CME Front End Clearing
Allocation Management API 34
2.3.3 Allocating an Average Price Group, Clearing System Splits Allocation
This scenario begins with the executing firm marking trades for average price allocation and completing the average price group.
1. The executing firm sends an Allocation Instruction message with a TransTyp of New and a Typ of Give-up. The executing firm identifies the group using the GrpID field, and identifies the claiming firm in the Alloc/Pty element.
2. The clearing system responds by:
Sending two or more Allocation Report messages to the executing firm with a TransTyp of New, a RptTyp of Give-up, and a Stat of Allocation Pending. The Alloc/Qty of the individual allocation is less than Alloc/Qty on the Allocation Instruction, but Alloc/ReqQty (sent to executing firm only) equals the Alloc/Qty of the Allocation Instruction, and the sum of all Alloc/Qty of the individual allocations equals Alloc/Qty on the Allocation Instruction.
Sending an Allocation Report to the claiming firm with a TransTyp of New, a RptTyp of Take-up, and a Stat of Allocation Pending. The Alloc/Qty of the individual allocation is less than Alloc/Qty on the Allocation Instruction, but Alloc/ReqQty (sent to executing firm only) equals the Alloc/Qty of the Allocation Instruction, and the sum of all Alloc/Qty of the individual allocations equal Alloc/Qty on the Allocation Instruction.
Note: This is an exceptional scenario. The clearing system attempts to avoid splitting allocations when possible. In most cases, allocations are not split and are identical to give-up allocation, hence they are not illustrated.
Note: The clearing system carries forward Alloc/ReqQty on future messages to the executing firm until the clearing system has reason to split the allocation or an amendment to the allocation.
Allocating an Average Price Group – Allocation Split by Clearing System
Executing FirmFront End
Clearing
AllocInstrctn ( New, Give-up )
AllocRpt ( New, Give-up,
Allocation Pending ) Part 1
Claiming Firm
AllocRpt ( New, Take-up,
Allocation Pending ) Part 1Multiple messages are
sent to the Executing
Firm and Claiming Firm
based on the number of
parts the Clearing
System must split the
allocation into.
AllocRpt ( New, Give-up,
Allocation Pending ) Part 2
AllocRpt ( New, Take-up,
Allocation Pending ) Part 2
CME Front End Clearing
Allocation Management API 35
2.3.4 Un-marking a Trade from an Average Price Group
In this scenario the executing firm marks a trade for average price allocation by specifying an average price group.
1. The executing firm sends a Trade Capture Report with a TransTyp of Replace, a RptTyp of Submit, and either:
a. An AllocInd of Allocating Trade (No Claim Info provided), an AvgPxInd of Average price trade removed from group, and AvgPxGrpID is absent, or
b. An AllocInd of Allocation not required, AvgPxInd is absent or No Average Pricing, and AvgPxGrpID is absent.
2. The clearing system responds by:
Sending the executing firm a Trade Capture Report Ack with a TransTyp of Replace, a RptTyp of Submit and a TrdRptStat of Accepted.
Sending the executing firm an Allocation Instruction Alert with a TransTyp of Replace (if this is not the only trade in the group) or Cancel (if this is the only trade in the group), a Typ of Incomplete Group, and a Stat of Allocation Pending. The group quantity decreases by the quantity of the unmarked trade.
Note: In option 1a, the trade remains marked for average pricing, and the executing firm specifies
an average price group at a later time. In option 1b, the trade is unmarked from allocation entirely.
Un-marking a Trade from an Average Pricing Group
Executing FirmFront End
Clearing
TrdCaptRpt ( Replace, Submit )
TrdCaptRptAck ( Replace, Submit, Accepted )
AllocInstrctnAlert ( Replace or Cancel,
Incomplete Group, Allocation Pending )
CME Front End Clearing
Allocation Management API 36
2.3.5 Changing a Trade to Another Average Price Group
In this scenario the executing firm marks a trade for average price allocation by specifying an average price group.
1. The executing firm sends a Trade Capture Report with a TransTyp of Replace, a RptTyp of Submit, an AllocInd of Allocating Trade (No Claim Info provided), and an AvgPxInd of Trade is part of an average price group. The executing firm provides a new average price group in the AvgPxGrpID field.
2. The clearing system responds by:
Sending the executing firm a Trade Capture Report Ack with a TransTyp of Replace, a RptTyp of Submit and a TrdRptStat of Accepted.
Sending the executing firm an Allocation Instruction Alert with a TransTyp of Replace, a Typ of Incomplete Group, and a Stat of Allocation Pending. Note: This message is an update to the old group where the old group quantity is reduced.
Creating an average price group, and sending the executing firm an Allocation Instruction Alert with a TransTyp of New (as this is a new average price group), a Typ of Incomplete Group, and a Stat of Allocation Pending.
Note: The executing firm can also change a trade to an existing average price group. The third bullet in Step 2 will have a TransTyp of Replace.
Changing Average Pricing Group
Executing FirmFront End
Clearing
TrdCaptRpt ( Replace, Submit )
TrdCaptRptAck ( Replace, Submit, Accepted )
AllocInstrctnAlert ( Replace, Incomplete Group,
Allocation Pending )
AllocInstrctnAlert ( New, Incomplete Group,
Allocation Pending )
CME Front End Clearing
Allocation Management API 37
2.3.6 Un-completing an Average Price Group
In this scenario the executing firm marks trades for average pricing, completes the group, and allocates to a claiming firm. The next steps are:
1. The executing firm sends an Allocation Instruction message with a TransTyp of New and a Typ of Reopen Group. It identifies the group to un-complete using GrpID.
2. The clearing system responds by:
Sending an Allocation Instruction Alert message with a TransTyp of Replace, a Typ of Incomplete Group, and a Stat of Allocation Pending.
Sending an Allocation Report to the executing firm with a TransTyp of Cancel, a RptTyp of Give-up, and a Stat of Cancelled.
Sending an Allocation Report to the claiming firm with a TransTyp of Cancel, a RptTyp of Take-up, and a Stat of Cancelled.
Note: If more than one pending allocation was submitted for the average price group, un-completing the group results in repeating the second and third bullets in steps 2 for each additional allocation. If no allocations were submitted for the average price group, un-completing the group results in omitting the second and third bullets in step 2.
Un-completing an Average Price Group
Executing FirmFront End
Clearing
AllocInstrctn ( Replace, Reopen Group )
AllocInstrctnAlert ( Replace, Incomplete Group,
Allocation Pending )
Claiming Firm
AllocRpt ( Cancel, Give-up, Cancelled ) AllocRpt ( Cancel, Take-up, Cancelled )
CME Front End Clearing
Allocation Management API 38
2.3.7 Cancelling an Average Price Group
In this scenario the executing firm first marks trades for average pricing.
1. The executing firm sends an Allocation Instruction message with a TransTyp of Cancel and a Typ of Cancel Group. It identifies the group to un-complete using GrpID.
2. The clearing system responds by sending an Allocation Instruction Alert message with a TransTyp of Cancel, a Typ of Cancel Group, and a Stat of Allocation Pending.
Note: The trade that was part of the group will still be considered marked for average pricing, but not as part of any group.
Cancelling an Average Price Group
Executing FirmFront End
Clearing
AllocInstrctn ( Cancel, Cancel Group )
AllocInstrctnAlert ( Cancel, Cancel Group,
Allocation Pending )
2.3.8 Transitions Between Give-up Allocation and Average Price Allocation Message Flows
Transitioning between give-up allocation, average price allocation, and cross-exchange allocation cannot be performed as one action. The executing firm must first un-mark the trade from allocation entirely, and then mark the trade for the new type of allocation. Un-marking and marking trades are both documented above.
CME Front End Clearing
Allocation Management API 39
2.4 Sub-allocation Message Flows A claiming firm can accept an allocation, and then sub-allocate the allocation. Sub-allocation only marks the allocation for further allocation; the original claiming firm must then provide instructions to allocate to new claiming firms.
2.4.1 Sub-allocation for Give-up In this scenario, claiming firm 1 first claims an allocation.
1. Claiming firm 1 sends an Allocation Instruction message with a TransTyp of New and a Typ of Sub-Allocate. It identifies the allocation to sub-allocate using IndAllocID2 within the Alloc element, and specifies only one Alloc element, corresponding to the claimed allocation.
2. The clearing system creates a new Give-up Group for the sub-allocation and sends claiming firm 1 an Allocation Instruction Alert with a TransTyp of New, a Typ of Complete Group, and a Stat of Allocation Pending. Within the AllExc element, IndAllocID2 contains the IndAllocID2 of the sub-allocated allocation.
3. Claiming firm 1 sends an Allocation Instruction message with a TransTyp of New and a Typ of Give-up. It identifies the group for the sub-allocation using the GrpID field, and identifies claiming firm 2 in the Alloc/Pty element.
4. The clearing system responds by:
Sending an Allocation Report to claiming firm 1 with a TransTyp of New, a RptTyp of Give-up, and a Stat of Allocation Pending.
Sending an Allocation Report to claiming firm 2 with a TransTyp of New, a RptTyp of Take-up, and a Stat of Allocation Pending.
Sub-allocation for Give-up
Claiming Firm 1Front End
Clearing
AllocInstrctn ( New, Sub-allocate )
Claiming Firm 2
AllocInstrctnAlert ( New, Complete Group,
Allocation Pending )
AllocInstrctn ( New, Give-up )
AllocRpt ( New, Give-up, Allocation Pending )AllocRpt ( New, Take-up, Allocation Pending )
CME Front End Clearing
Allocation Management API 40
2.4.2 Sub-allocation for Give-up with Specific Allocation Instructions
In this scenario, claiming firm 1 first claims an allocation.
1. Claiming firm 1 sends an Allocation Instruction message with a TransTyp of New and a Typ of Sub-Allocate. It identifies the allocation to sub-allocate using IndAllocID2 within an Alloc element. It specifies a second Alloc element, identifying claiming firm 2 in the Alloc/Pty element.
2. The clearing system responds by:
Sending claiming firm 1 an Allocation Instruction Alert with a TransTyp of New, a Typ of Complete Group, and a Stat of Allocation Pending. Within the AllExc element, IndAllocID2 contains the IndAllocID2 of the sub-allocated allocation. This is a new give-up group containing the sub-allocation.
Sending an Allocation Report to claiming firm 1 with a TransTyp of New, a RptTyp of Give-up, and a Stat of Allocation Pending.
Sending an Allocation Report to claiming firm 2 with a TransTyp of New, a RptTyp of Take-up, and a Stat of Allocation Pending.
Note: Claiming firm 1 can allocate to more than one firm by specifying additional Alloc elements in step 1. This will result in the duplication of the second and third bullets in step 2 for each new allocation.
Sub-allocation for Give-up with Specific Allocation Instructions
Claiming Firm 1Front End
Clearing
AllocInstrctn ( New, Sub-allocate )
Claiming Firm 2
AllocInstrctnAlert ( New, Complete Group,
Allocation Pending )
AllocRpt ( New, Give-up, Allocation Pending )AllocRpt ( New, Take-up, Allocation Pending )
CME Front End Clearing
Allocation Management API 41
2.4.3 Sub-allocation for Average Pricing
In this scenario, claiming firm 1 first claims an allocation.
1. Claiming firm 1 sends an Allocation Instruction message with a TransTyp of New and a Typ of Sub-Allocate. It identifies the allocation to sub-allocate using IndAllocID2 within the Alloc element, and specifies only one Alloc element, corresponding to the allocation claimed. It also specifies that this is an average price sub-allocation by specifying an AvgPxInd of Trade is part of an average price group and indicates a new average price group using the AvgPxGrpID field.
2. The clearing system responds by sending claiming firm 1 an Allocation Instruction Alert with a TransTyp of New, a Typ of Incomplete Group, and a Stat of Allocation Pending. Within the AllExc element, IndAllocID2 contains the IndAllocID2 of the sub-allocated allocation added to the average price group. This is a new average price group containing the sub-allocation.
Claiming firm 1 can then treat the resulting average price group just as any other average price group, e.g. completing the group and submitting allocations. However, claiming firm 1 cannot modify a sub-allocation to transition it to unassigned in the average pricing system.
Note: The average price group specified in step 1 may be an existing average price group, in which case TransTyp in step 2 will be Replace. Both sub-allocations and trades may share the
same average price group.
Sub-allocation for Average Pricing
Claiming Firm 1Front End
Clearing
AllocInstrctn ( New, Sub-allocate Give-up )
with AvgPxGrpID
AllocInstrctnAlert ( New, Incomplete Group,
Allocation Pending )
CME Front End Clearing
Allocation Management API 42
2.5 Reversal of Accepted Allocations Message Flows Either the executing firm or the claiming firm can initiate a reversal, and the resulting FIXML messages will be similar. The scenarios below illustrate a claiming firm initiating a reversal.
2.5.1 Allocation Reversal Requested This scenario begins with the executing firm making an allocation, which the claiming firm claims.
1. The claiming firm sends an Allocation Instruction message with a TransTyp of New and a Typ of Initiate Reversal. It identifies the allocation to reverse using IndAllocID2.
2. The clearing system responds by:
Sending an Allocation Report to the claiming firm with a TransTyp of New, a RptTyp of Reversal, and a Stat of Reversal Pending.
Sending an Allocation Report to the executing firm with a TransTyp of New, a RptTyp of Alleged Reversal, and a Stat of Reversal Pending.
Allocation Reversal Request
Executing FirmFront End
Clearing
AllocRpt ( New, Alleged Reversal,
Reversal Pending )
Claiming Firm
AllocRpt ( New, Reversal, Reversal Pending )
AllocInstrctn ( New, Initiate Reversal )
CME Front End Clearing
Allocation Management API 43
2.5.2 Allocation Reversal Accepted
This scenario begins with the executing firm making an allocation, which the claiming firm claims. Then, the claiming firm requests a reversal.
1. The executing firm sends an Allocation Instruction message with a TransTyp of New and a Typ of Claim Reversal. It identifies the allocation to reverse using IndAllocID2.
2. The clearing system responds by:
Sending an Allocation Report to the executing firm with a TransTyp of New, a RptTyp of Alleged Reversal, a Stat of Reversed, and a RvrslStat of Completed.
Sending an Allocation Report to the claiming firm with a TransTyp of New, a RptTyp of Reversal, a Stat of Reversed, and a RvrslStat of Completed.
Allocation Reversal Accepted
Executing FirmFront End
Clearing
AllocRpt ( New, Alleged Reversal, Reversed )
with RvrslStat = Completed
Claiming Firm
AllocRpt ( New, Reversal, Reversed )
with RvrslStat = Completed
AllocInstrctn ( New, Claim Reversal )
CME Front End Clearing
Allocation Management API 44
2.5.3 Allocation Reversal Refused
This scenario begins with the executing firm making an allocation, which the claiming firm claims. Then, the claiming firm requests a reversal.
1. The executing firm sends an Allocation Instruction message with a TransTyp of New and a Typ of Refuse Reversal. It identifies the allocation to refuse the reversal using IndAllocID2.
2. The clearing system responds by:
Sending an Allocation Report to the executing firm with a TransTyp of New, a RptTyp of Alleged Reversal, a Stat of Claimed, and a RvrslStat of Refused.
Sending an Allocation Report to the claiming firm with a TransTyp of New, a RptTyp of Reversal, a Stat of Claimed, and a RvrslStat of Refused.
Allocation Reversal Refused
Executing FirmFront End
Clearing
AllocRpt ( New, Alleged Reversal, Claimed )
with RvrslStat = Refused
Claiming Firm
AllocRpt ( New, Reversal, Claimed )
with RvrslStat = Refused
AllocInstrctn ( New, Refuse Reversal )
CME Front End Clearing
Allocation Management API 45
2.5.4 Allocation Reversal Cancelled
This scenario begins with the executing firm making an allocation, which the claiming firm claims. Then, the claiming firm requests a reversal.
1. The claiming firm sends an Allocation Instruction message with a TransTyp of Cancel and a Typ of Initiate Reversal. It identifies the allocation with the reversal to cancel using IndAllocID2.
2. The clearing system responds by:
Sending an Allocation Report to the claiming firm with a TransTyp of Cancel, a RptTyp of Reversal, a Stat of Claimed, and a RvrslStat of Cancelled.
Sending an Allocation Report to the executing firm with a TransTyp of Cancel, a RptTyp of Alleged Reversal, a Stat of Claimed and a RvrslStat of Cancelled.
Allocation Reversal Cancelled
Executing FirmFront End
Clearing
AllocRpt ( Cancel, Alleged Reversal, Claimed )
with RvrslStat = Cancelled
Claiming Firm
AllocRpt ( Cancel, Reversal, Claimed )
with RvrslStat = Cancelled
AllocInstrctn ( Cancel, Initiate Reversal )
CME Front End Clearing
Allocation Management API 46
3.0 FIXML Components and Message Specifications This section describes the following:
Versioning attributes of FIXML messages
Attributes of a FIXML Header
Message Layout
Message Specifications
3.1 FIXML Message Elements and Attributes
3.1.1 Version Attributes for All Messages
The following attributes should be included on the FIXML element of each message sent to the API.
Field Description Valid Value XPath
FIX Version Number
Indicates the version of FIX being used (including Service Pack).
5.0 SP2 /FIXML/@v
FIXML Extension Version
Indicates the FIX Extension version.
109 /FIXML/@xv
Custom Application Version
Indicates the Custom Application version.
CME.0001 /FIXML/@cv
CME Front End Clearing
Allocation Management API 47
3.2 Message Headers
3.2.1 Standard Header for Request and Submissions
Field Description Reqd (R/O)
Valid Value XPath
Sender ID This attribute identifies the party, firm or the Submitter of the message. The value is assigned by CME Clearing.
R 230 /FIXML/TrdCaptRpt/Hdr/@SID
Sender Qualifier
This attribute qualifies the Sender or the Exchange of the Firm submitting the message.
R CME /FIXML/TrdCaptRpt/Hdr/@SSub
Target ID This attribute identifies the receiver of the message. This represents the firm exchange.
R CME /FIXML/TrdCaptRpt/Hdr/@TID
Target Qualifier This qualifies the receiver of the message. This is optional and can represent the firm exchange.
O CME /FIXML/TrdCaptRpt/Hdr/@TSub
3.2.2 Standard Header for Responses
Field Description Reqd
(R/O) Example XPath
Sender ID This attribute identifies the party or the Submitter of the message. This represents the firm exchange.
R CME /FIXML/TrdCaptRpt/Hdr/@SID
Sender Qualifier
This attribute qualifies the Sender. This is optional and can represent the firm exchange.
O CME /FIXML/TrdCaptRpt/Hdr/@SSub
Target ID This attribute identifies the receiver of the message. This could be a Broker, Platform or any other valid Trading entity. This value is pre-assigned by CME.
R 230 /FIXML/TrdCaptRpt/Hdr/@TID
Target Qualifier This qualifies the receiver of the message or the exchange of the Firm submitting the message.
R CME /FIXML/TrdCaptRpt/Hdr/@TSub
CME Front End Clearing
Allocation Management API 48
3.3 Malformed Messages Responses to malformed messages will use the FIXML Business Message Reject (located under Application Level Messages- Infrastructure in the FIX Specification). Malformed messages sent over MQ, including messages sent with an invalid Sender Comp ID (SID) and/or Target Comp ID (TID) will not receive a response.
The following actions can result in a Business Message Reject response:
If the Header information is incorrect.
If the message type is not recognized or supported.
If a component of a recognized message is missing.
3.4 Message Layouts This section contains the FIXML message layouts for allocation messages. The FIXML schema enforces sequence of elements. The attribute sequence within an element is not enforced by the schema.
3.4.1 Allocation Instruction Message Layout
This message is always sent by the executing/give-up firms and claim/carry firms to provide instructions to the clearing system to take an action such as allocating, claiming, reversing, sub-allocating etc.
CME Front End Clearing
Allocation Management API 49
3.4.2 Allocation Instruction Ack Message Layout
This message is used by the clearing system to reject any instruction submitted by an executing/give-up firm or the claim/take-up firm when it cannot process the instruction.
3.4.3 Allocation Instruction Alert Message Layout
This message is sent by the clearing system as a notification of group level information.
CME Front End Clearing
Allocation Management API 50
3.4.4 Allocation Report Message Layout
This message is always sent by the clearing system to executing/give-up firms and claim/carry firms to report on the current state of a give-up/claim. For the claim firm, the AllocationReport is also used by the clearing system to notify that there is an allocation alleged to the claim firm.
3.5 Message Specifications
3.5.1 Business Reject Message Specification
Field Name FIXM Attribute Name
Data Type
Description Supported Values
BizMsgRej
Message Name RefMsgTyp String The MsgType of the FIX message being referenced.
Reject Reason Code BizRejRsn int Code to identify reason for a Business Message Reject message.
0 = Other 1 = Unknown ID 2 = Unknown Security 3 = Unsupported Message Type 4 = Application not available 5 = Conditionally required field missing 6 = Not Authorized 7 = DeliverTo firm not available at this time 18 = Invalid price increment
Reject Text Txt String Where possible, message to explain reason for rejection
CME Front End Clearing
Allocation Management API 51
3.5.2 Allocation Instruction Alert Message Specification
Field Name FIXML Attribute Name
Data Type
Description Supported Values
AllocInstrctnAlert
Message ID ID String Unique identifier for this Allocation Instruction Alert message
Transaction Type TransTyp char i.e. New, Cancel, Replace 0 = New
1 = Replace
2 = Cancel
Allocation Type Typ int Specifies the purpose or type of Allocation message
12 = Incomplete Group
13 = Complete Group
16 = Cancel Group
Allocation Instruction Ref ID
RefAllocID String When responding to an Allocation Instruction, references the ID.
Group ID GrpID String Used by the CCP to group allocations.
Buy Sell Code Side char Side of allocation group. 1 = Buy
2 = Sell
Quantity Qty Qty Quantity of the group changed in this transaction. When adding trades to a group, this is the quantity added. When removing trades from a group, this is the quantity to be removed, and is negative. When the group quantity is unchanged, such as when the group changes status to Completed, this is 0.
Group Quantity GrpQty Qty Indicates the total quantity of an allocation group. Includes any allocated quantity.
Trading Session SesID String Identifier for the Trading Session.
EOD = End of Day
ETH = Electronic Trading Hours
ITD = Intra Day
RTH = Regular Trading Hours
[N/A] = N/A
CME Front End Clearing
Allocation Management API 52
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Trading Session Sub ID
SesSub String Optional market assigned sub identifier for a trading phase within a trading session.
E = Electronic
P = Pit
X = X-Pit
Price Type PxTyp int In most cases, represents the type of price in the Last Price field.
1 = Percentage (i.e. percent of par)
2 = Per unit (i.e. per share or contract)
6 = Spread (basis points spread)
10 = Fixed cabinet trade price (primarily for listed futures and options)
11 = Variable cabinet trade price (primarily for listed futures and options)
Average Price AvgPx Price The average price of all trades in the allocation group.
Trade Date TrdDt LocalMktDate
The trade date assigned to an execution on the trading platform. For privately negotiated trades, the date on which the trade has been received by the CCP.
Transaction Time TxnTm UTCTimestamp
Date/time of the action performed on the allocation group.
Status Stat int Identifies status of allocation. 6 = allocation pending
Average Price Group ID
AvgPxGrpID String Firm designated group identifier for the average price group.
Clear Date ClrDt LocalMktDate
The Clearing Date for the allocation or trade.
CME Front End Clearing
Allocation Management API 53
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Trade Type TrdTyp int Indicates Trade Type of Allocation.
0 = Regular Trade
1 = Block Trade
2 = EFP (Exchange for physical)
3 = Transfer
11 = Exchange for Risk (EFR)
12 = Exchange for Swap (EFS)
22 = Over the Counter Privately Negotiated Trades (OPNT)
23 = Substitution of Futures for Forwards
Trade Sub Type TrdSubTyp int Indicates TradeSubType of Allocation. Necessary for defining groups.
1 = Internal transfer or adjustment
7 = Differential spread
8 = Implied spread leg executed against an outright
9 = Transaction from exercise
10 = Transaction from assignment
36 = Converted SWAP (Aged Deal)
40 = TAS - Traded at settlement
42 = Auction Trade
43 = TAM - Traded at marker
Input Source InptSrc String Indicates input source of original trade marked for allocation.
Input Device InptDev String Specific device number, terminal number or station where the trade was entered.
API = API submitted
SYSGEN = System Generated
UI = GUI used for Submission
Post Trade Type PostTrdTyp int Defines the post trade type, e.g. give up, average price, cross exchange give up, etc.
0 = Give up
1 = Average price
2 = Cross Exchange Give up
Multi Leg Reporting Type
MLegRptTyp char Indicates MultiLegReportType of original trade marked for allocation.
1 = Single security (default if not specified)
2 = Individual leg of a multi-leg security
3 = Multi-leg security
Rounded Price RndPx Price Specifies the rounded price to quoted precision.
CME Front End Clearing
Allocation Management API 54
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Customer Order Handling Instruction
CustOrdHdlInst
MultipleStringValue
Contains the FIA Execution Source.
A = Phone simple
B = Phone complex
C = FCM-provided screen
D = Other-provided screen
E = Client provided platform controlled by FCM
F = Client provided platform direct to exchange
G = FCM API or FIX
H = Algo Engine
J = Price at Execution (price added at Initial order entry, trading, middle office or time of give-up)
W = Desk - Electronic
X = Desk - Pit
Y = Client - Electronic
Z = Client - Pit
Price Sub Type PxSubTyp int This is a further qualification of the Price Type. For example if the Last Price is a TAS Price, the Price Sub Type conveys whether it is an initial price when the trade is first being reported or the final settlement price.
0 = Initial Price
1 = Final Price
Differential Price DiffPx float Differential price for allocations of TAS or TAM trades.
AllocInstrctnAlert/OrdAlloc (Repeating)
Client Order ID ClOrdID String Client Order ID of the trade being added to or removed from the group.
AllocInstrctnAlert/AllExc (Repeating)
Trade Quantity LastQty Qty Quantity of the trade being added to or removed from the group.
Trade Price LastPx Price Price of the trade being added to or removed from the group.
Trade ID TrdID String Trade ID of the trade being added to or removed from the group.
CME Front End Clearing
Allocation Management API 55
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Secondary Individual Alloc ID
IndAllocID2 String Used for sub-allocation. Contains the IndAllocID2 of the parent allocation.
AllocInstrctnAlert/Instrmt
Product Code ID String Used as the primary identifier for the traded instrument. For listed derivatives this is generally an exchange or CCP defined value. For CDS this is a value assigned by CME Clearing.
CFI Code CFI String Indicates the type of security using ISO 10962 standard, Classification of Financial Instruments (CFI code) values.
Security Type SecTyp String Indicates type of instrument or security being traded or defined. It is required on inbound trade submissions and is used as one of the identifiers of the instrument. This is required because CME usage of CFI Code is in the process of being deprecated.
CDS = Credit Default Swap
COMBO = Multileg (Combo)
FUT = Future
FWD = Forward
IRS = Interest Rate Swap
MLEG = Multi Leg (Combo)
OOC = Options on Combo
OOF = Options on Futures
OOP = Options on Physical - use not recommended
OPT = Option
Contract Period Code
MMY MonthYear
Specifies the month and year of maturity. Applicable for standardized derivatives which are typically only referenced by month and year (e.g. S&P futures).
Strike Price StrkPx Price Used for derivatives, such as options and covered warrants.
Put Or Call PutCall int Used to express option right. 0 = Put
1 = Call
CME Front End Clearing
Allocation Management API 56
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Product Exchange Exch Exchange The exchange where the Security is listed.
CBT
CCE
CEE
CMD
CME
COMEX
DME
GEX
KCB
NYMEX
Price Quote Currency
PxQteCcy Currency The currency at which the Price is quoted.
AllocInstrctnAlert/Pty (Repeating)
Party ID ID String Used to identify the Party.
Party ID Source Src char Used to identify class source of PartyID value (e.g. BIC). Required if PartyID is specified. Required if NoPartyIDs > 0.
C = Generally accepted market participant identifier (e.g. NASD mnemonic)
D = Proprietary / Custom code
H = CSD participant/member code (e.g.. Euroclear, DTC, CREST or Kassenverein number)
Party Role R int Indicates the type of Party or the role of the party in the Party Block. Note that Clearing Organization (21) is always "CME" while Exchange (22) represents the firm exchange.
1 = Executing Firm
12 = Executing Trader (associated with Executing Firm - actually executes)
21 = Clearing Organization
22 = Exchange
24 = Customer Account
44 = Order Entry Operator ID
200 = FEC GUI User ID
AllocInstrctnAlert/Pty/Sub (Repeating)
Party Qualifier ID ID String A Sub ID provides additional information about the Party.
Party Qualifier Type Typ int The Type of Party Sub ID in the Party Sub Tag.
3 = System
26 = Account type or Origin
CME Front End Clearing
Allocation Management API 57
Field Name FIXML Attribute Name
Data Type
Description Supported Values
AllocInstrctnAlert/Amt (Repeating)
Amount Type Typ String The type of amount being expressed in the Trade Report.
CRES = Cash Residual Amount
Amount Amt Amt The amount associated with the trade.
Amount Currency Ccy String The currency in which the Amount associated with the trade is being denominated in.
3.5.3 Allocation Instruction Message Specification
Field Name FIXML Attribute Name
Data Type
Description Supported Values
AllocInstrctn
Message ID ID String Unique identifier for this Allocation Instruction message.
Transaction Type TransTyp char i.e. New, Cancel, Replace 0 = New
1 = Replace
2 = Cancel
Allocation Type Typ int Specifies the purpose or type of the Allocation Instruction message.
13 = Complete Group
15 = Un-complete Group
16 = Cancel Group
17 = Give-up
18 = Take-up
19 = Refuse Take-up
20 = Initiate Reversal
21 = Claim Reversal
22 = Refuse Reversal
23 = Sub-allocate Give-up
Group ID GrpID String CCP assigned ID for grouping trades for allocation.
Buy Sell Code Side char Side of the allocation. 1 = Buy
2 = Sell
Quantity Qty Qty Total quantity allocated to all accounts in this allocation.
CME Front End Clearing
Allocation Management API 58
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Trading Session Sub ID
SesSub String Optional market assigned sub identifier for a trading phase within a trading session.
E = Electronic
P = Pit
X = X-Pit
Trade Date TrdDt LocalMktDate
The trade date assigned to an execution on the trading platform. For privately negotiated trades, the date on which the trade has been received by the CCP.
Average Pricing Indicator
AvgPxInd int Specifies if an allocation is being directed into an average price group. This is used for sub-allocation.
0 = No Average Pricing
1 = Trade is part of an average price group identified by the AvgPxGrpID
Average Price Group ID
AvgPxGrpID String Firm designated group identifier for the average price group. This is used for sub-allocation, and is required for sub-allocation to an average price group.
Executing or Claiming Indicator
ExecOrClaimInd
int Differentiates between messages sent by the Executing Firm vs. the Claiming Firm. Required on all inbound messages.
0 = Executing Firm
1 = Claiming Firm
Post Trade Type PostTrdTyp int Defines the post trade type, e.g. give up, average price, cross exchange give up, etc. Required on inbound messages.
0 = Give up
1 = Average price
2 = Cross Exchange Give up
Multi Leg Reporting Type
MLegRptTyp char Indicates MultiLegReportType of original trade marked for allocation.
1 = Single security (default if not specified)
2 = Individual leg of a multi-leg security
3 = Multi-leg security
AllocInstrctn/OrdAlloc (Repeating)
Client Order ID ClOrdID String Client Order ID of the trade being added to or removed from the group.
AllocInstrctn/Instrmt
CME Front End Clearing
Allocation Management API 59
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Product Code ID String Used as the primary identifier for the traded instrument. For listed derivatives this is generally an exchange or CCP defined value. For CDS this is a value assigned by CME Clearing.
CFI Code CFI String Indicates the type of security using ISO 10962 standard, Classification of Financial Instruments (CFI code) values.
Security Type SecTyp String Indicates type of instrument or security being traded or defined. It is required on inbound trade submissions and is used as one of the identifiers of the instrument. This is required because CME usage of CFI Code is in the process of being deprecated.
CDS = Credit Default Swap
COMBO = Multileg (Combo)
FUT = Future
FWD = Forward
IRS = Interest Rate Swap
MLEG = Multi Leg (Combo)
OOC = Options on Combo
OOF = Options on Futures
OOP = Options on Physical - use not recommended
OPT = Option
Contract Period Code
MMY MonthYear
Specifies the month and year of maturity. Applicable for standardized derivatives which are typically only referenced by month and year (e.g. S&P futures).
Strike Price StrkPx Price Used for derivatives, such as options and covered warrants.
Put Or Call PutCall int Used to express option right. 0 = Put
1 = Call
CME Front End Clearing
Allocation Management API 60
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Product Exchange Exch Exchange The exchange where the Security is listed.
CBT
CCE
CEE
CMD
CME
COMEX
DME
GEX
KCB
NYMEX
AllocInstrctn/Pty (Repeating)
Party ID ID String Used to identify the Party.
Party Role R int Indicates the type of Party or the role of the party in the Party Block. Note that for Clearing Organization (21), the ID is always "CME" while for Exchange (22), the ID is the firm exchange.
1 = Executing Firm
4 = Clearing Firm
21 = Clearing Organization
22 = Exchange
24 = Customer Account
38 = Position account
AllocInstrctn/Pty/Sub (Repeating)
Party Qualifier ID ID String A Sub ID provides additional information about the Party.
Party Qualifier Type Typ int The Type of Party Sub ID in the Party Sub Tag.
3 = System
26 = Account type or Origin
AllocInstrctn/Alloc (Repeating)
Allocation Quantity Qty Qty Quantity of the individual allocation.
Individual Alloc ID IndAllocID String Firm assigned individual allocation ID.
Secondary Individual Alloc ID
IndAllocID2 String CME assigned individual allocation ID.
Allocation Rollup Instruction
AllocRollupInst int An indicator to override the normal procedure to roll up allocations for the same Carry Firm. May not be used for average pricing allocations.
0 = Roll up
1 = Do not roll up
CME Front End Clearing
Allocation Management API 61
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Alloc Customer Capacity
CustCpcty String Can be used for granular reporting of separate allocation detail within a single trade report or allocation message.
Secondary Trade ID TrdID2 String Trade part ID of the allocation.
Original Secondary Trade ID
OrigTrdID2 String Trade part ID of the original trade.
AllocInstrctn/Alloc/Pty (Repeating)
Party ID ID String Used to identify the Party that is the claiming firm.
Party Role R int Indicates the type of Party or the role of the party in the Party Block. Note that for Clearing Organization (21), the ID is always "CME" while for Exchange (22), the ID is the firm exchange.
1 = Executing Firm
4 = Clearing Firm
21 = Clearing Organization
22 = Exchange
24 = Customer Account
38 = Position account
AllocInstrctn/Alloc/Pty/Sub (Repeating)
Party Qualifier ID ID String A Sub ID provides additional information about the Party.
Party Qualifier Type Typ int The Type of Party Sub ID in the Party Sub Tag.
3 = System
26 = Account type or Origin
3.5.4 Allocation Report Message Specification
Field Name FIXML Attribute Name
Data Type
Description Supported Values
AllocRpt
Message ID RptID String Unique identifier for this Allocation Report message.
Transaction Type TransTyp char i.e. New, Cancel, Replace 0 = New
1 = Replace
2 = Cancel
Allocation Instruction Ref ID
RptRefID String When responding to an Allocation Instruction, references the ID.
CME Front End Clearing
Allocation Management API 62
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Group ID GrpID String CCP assigned ID for grouping trades for allocation.
Trade Match ID MtchID String Identifier assigned to a trade by a matching system.
Report Type RptTyp int Specifies the purpose or type of Allocation Report message.
15 = Give-up
16 = Take-up
17 = Reversal
18 = Alleged Reversal
Status Stat int Identifies status of the allocation. 6 = allocation pending
7 = reversed
9 = Claimed
10 = refused
12 = cancelled
14 = reversal pending
Reversal Status RvrslStat int Identifies the status of the reversal.
0 = Completed
1 = Refused
2 = Cancelled
Clear Date ClrDt LocalMktDate
The Clearing Date for the allocation or trade.
Trade Type TrdTyp int Indicates Trade Type of Allocation.
0 = Regular Trade
1 = Block Trade
2 = EFP (Exchange for physical)
3 = Transfer
11 = Exchange for Risk (EFR)
12 = Exchange for Swap (EFS)
22 = Over the Counter Privately Negotiated Trades (OPNT)
23 = Substitution of Futures for Forwards
CME Front End Clearing
Allocation Management API 63
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Trade Sub Type TrdSubTyp int Indicates TradeSubType of Allocation. Necessary for defining groups.
1 = Internal transfer or adjustment
7 = Differential spread
8 = Implied spread leg executed against an outright
9 = Transaction from exercise
10 = Transaction from assignment
36 = Converted SWAP (Aged Deal)
40 = TAS - Traded at settlement
42 = Auction Trade
43 = TAM - Traded at marker
Executing or Claiming Indicator
ExecOrClaimInd
int Differentiates between messages sent to the Executing Firm vs. the Claiming Firm.
0 = Executing Firm
1 = Claiming Firm
Multi Leg Reporting Type
MLegRptTyp char Indicates MultiLegReportType of original trade marked for allocation.
1 = Single security (default if not specified)
2 = Individual leg of a multi-leg security
3 = Multi-leg security
Input Source InptSrc String Indicates input source of original trade marked for allocation.
Post Trade Type PostTrdTyp int Defines the post trade type, e.g. give up, average price, cross exchange give up, etc.
0 = Give up
1 = Average price
2 = Cross Exchange Give up
Rounded Price RndPx Price Specifies the rounded price to quoted precision.
Input Device InptDev String Specific device number, terminal number or station where trade was entered.
API = API submitted
SYSGEN = System Generated
UI = GUI used for Submission
Average Price Group ID
AvgPxGrpID String Firm designated group identifier for the average price group.
Buy Sell Code Side char Side of the allocation. 1 = Buy
2 = Sell
Quantity Qty Qty Total quantity allocated to all accounts in this allocation.
CME Front End Clearing
Allocation Management API 64
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Trading Session SesID String Identifier for the Trading Session.
EOD = End of Day
ETH = Electronic Trading Hours
ITD = Intra Day
RTH = Regular Trading Hours
[N/A] = N/A
Trading Session Sub ID
SesSub String Optional market assigned sub identifier for a trading phase within a trading session.
E = Electronic
P = Pit
X = X-Pit
Price Type PxTyp int In most cases, represents the type of price in the Last Price field.
1 = Percentage (i.e. percent of par)
2 = Per unit (i.e. per share or contract)
6 = Spread (basis points spread)
10 = Fixed cabinet trade price (primarily for listed futures and options)
11 = Variable cabinet trade price (primarily for listed futures and options)
Price Sub Type PxSubTyp int This is a further qualification of the Price Type. For example if the Last Price is a TAS Price, the Price Sub Type conveys whether it is an initial price when the trade is first being reported or the final settlement price.
0 = Initial Price
1 = Final Price
Average Price AvgPx Price The average price of all trades in the allocation group.
Trade Date TrdDt LocalMktDate
The trade date assigned to an execution on the trading platform. For privately negotiated trades, the date on which the trade has been received by the CCP.
Transaction Time TxnTm UTCTimestamp
Date/time of the action performed on the allocation.
CME Front End Clearing
Allocation Management API 65
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Customer Order Handling Instruction
CustOrdHdlInst
MultipleStringValue
Contains the FIA Execution Source.
A = Phone simple
B = Phone complex
C = FCM-provided screen
D = Other-provided screen
E = Client provided platform controlled by FCM
F = Client provided platform direct to exchange
G = FCM API or FIX
H = Algo Engine
J = Price at Execution (price added at Initial order entry, trading, middle office or time of give-up)
W = Desk - Electronic
X = Desk - Pit
Y = Client - Electronic
Z = Client - Pit
Differential Price DiffPx float Differential price for allocations of TAS or TAM trades.
AllocRpt/OrdAlloc (Repeating)
Client Order ID ClOrdID String Client Order ID of the trade being added to or removed from the group.
AllocRpt/Instrmt
Product Code ID String Used as the primary identifier for the traded instrument. For listed derivatives this is generally an exchange or CCP defined value. For CDS this is a value assigned by CME Clearing.
CFI Code CFI String Indicates the type of security using ISO 10962 standard, Classification of Financial Instruments (CFI code) values.
CME Front End Clearing
Allocation Management API 66
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Security Type SecTyp String Indicates type of instrument or security being traded or defined. It is required on inbound trade submissions and is used as one of the identifiers of the instrument. This is required because CME usage of CFI Code is in the process of being deprecated.
CDS = Credit Default Swap
COMBO = Multileg (Combo)
FUT = Future
FWD = Forward
IRS = Interest Rate Swap
MLEG = Multi Leg (Combo)
OOC = Options on Combo
OOF = Options on Futures
OOP = Options on Physical - use not recommended
OPT = Option
Contract Period Code
MMY MonthYear
Specifies the month and year of maturity. Applicable for standardized derivatives which are typically only referenced by month and year (e.g. S&P futures).
Strike Price StrkPx Price Used for derivatives, such as options and covered warrants.
Put Or Call PutCall int Used to express option right. 0 = Put
1 = Call
Product Exchange Exch Exchange The exchange where the Security is listed.
CBT
CCE
CEE
CMD
CME
COMEX
DME
GEX
KCB
NYMEX
Price Quote Currency
PxQteCcy Currency The currency at which the Price is quoted.
AllocRpt/Pty (Repeating)
Party ID ID String Used to identify the Party.
CME Front End Clearing
Allocation Management API 67
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Party ID Source Src char Used to identify class source of PartyID value (e.g. BIC). Required if PartyID is specified. Required if NoPartyIDs > 0.
C = Generally accepted market participant identifier (e.g. NASD mnemonic)
D = Proprietary / Custom code
H = CSD participant/member code (e.g.. Euroclear, DTC, CREST or Kassenverein number)
Party Role R int Indicates the type of Party or the role of the party in the Party Block. Note that for Clearing Organization (21), the ID is always "CME" while for Exchange (22), the ID is the firm exchange.
1 = Executing Firm
4 = Clearing Firm
12 = Executing Trader (associated with Executing Firm - actually executes)
21 = Clearing Organization
22 = Exchange
24 = Customer Account
38 = Position account
44 = Order Entry Operator ID
200 = FEC GUI User ID
201 = Previous Executing Firm
AllocRpt/Pty/Sub (Repeating)
Party Qualifier ID ID String A Sub ID provides additional information about the Party.
Party Qualifier Type Typ int The Type of Party Sub ID in the Party Sub Tag.
3 = System
26 = Account type or Origin
AllocRpt/Amt (Repeating)
Amount Type Typ String The type of amount being expressed in the Trade Report.
CRES = Cash Residual Amount
Amount Amt Amt The amount associated with the trade.
Amount Currency Ccy String The currency in which the Amount associated with the trade is being denominated in.
AllocRpt/Alloc (Repeating)
Allocation Quantity Qty Qty Quantity of the individual allocation.
CME Front End Clearing
Allocation Management API 68
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Requested Allocation Quantity
ReqQty Qty Quantity of the individual allocation originally requested.
Individual Alloc ID IndAllocID String Firm assigned individual allocation ID.
Secondary Individual Alloc ID
IndAllocID2 String CME assigned individual allocation ID.
Allocation Rollup Instruction
AllocRollupInst int An indicator to override the normal procedure to roll up allocations for the same Carry Firm.
0 = Roll up
1 = Do not roll up
Alloc Customer Capacity
CustCpcty String Can be used for granular reporting of separate allocation detail within a single trade report or allocation message.
Parent Alloc ID ParentAllocID String Used for sub-allocation. Contains the OrigTrdID2 of the parent allocation.
Secondary Trade ID TrdID2 String Trade part ID of the allocation.
Original Secondary Trade ID
OrigTrdID2 String Trade part ID of the original trade.
AllocRpt/Alloc/Pty (Repeating)
Party ID ID String Used to identify the Party that is the claiming firm.
Party ID Source Src char Used to identify class source of PartyID value.
C = Generally accepted market participant identifier (e.g. NASD mnemonic)
D = Proprietary / Custom code
H = CSD participant/member code (e.g.. Euroclear, DTC, CREST or Kassenverein number)
Party Role R int Indicates the type of Party or the role of the party in the Party Block. Note that for Clearing Organization (21), the ID is always "CME" while for Exchange (22), the ID is the firm exchange.
1 = Executing Firm
4 = Clearing Firm
21 = Clearing Organization
22 = Exchange
24 = Customer Account
38 = Position account
44 = Order Entry Operator ID
200 = FEC GUI User ID
CME Front End Clearing
Allocation Management API 69
Field Name FIXML Attribute Name
Data Type
Description Supported Values
AllocRpt/Alloc/Pty/Sub (Repeating)
Party Qualifier ID ID String A Sub ID provides additional information about the Party.
Party Qualifier Type Typ int The Type of Party Sub ID in the Party Sub Tag.
3 = System
26 = Account type or Origin
3.5.5 Allocation Instruction Ack Message Specification
Field Name FIXML Attribute Name
Data Type
Description Supported Values
AllocInstrctnAck
Message ID ID String Unique identifier for this Allocation Instruction ack message.
Reference Message ID
RefAllocID String ID of the Allocation Instruction message being referenced.
Group ID GrpID String CCP assigned ID for grouping trades for allocation.
Average Price Group ID
AvgPxGrpID String Firm designated group identifier for the average price group.
Trade Date TrdDt LocalMktDate
The trade date assigned to an execution on the trading platform. For privately negotiated trades, the date on which the trade has been received by the CCP.
Transaction Time TxnTm UTCTimestamp
Date/time when Allocation Instruction Ack is generated
Status Stat int Denotes the status of the Allocation Instruction.
5 = rejected by intermediary
Transaction Type TransTyp char i.e. New, Cancel, Replace of the Allocation Instruction message being referenced.
0 = New
1 = Replace
2 = Cancel
CME Front End Clearing
Allocation Management API 70
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Allocation Type Typ int Specifies the purpose or type of the Allocation Instruction message being referenced.
12 = Incomplete Group
13 = Complete Group
15 = Un-complete Group
16 = Cancel Group
17 = Give-up
18 = Take-up
19 = Refuse Take-up
20 = Initiate Reversal
21 = Claim Reversal
22 = Refuse Reversal
23 = Sub-allocate Give-up
Executing or Claiming Indicator
ExecOrClaimInd
int Differentiates between messages sent to the Executing Firm vs. the Claiming Firm.
0 = Executing Firm
1 = Claiming Firm
Post Trade Type PostTrdTyp int Defines the post trade type, e.g. give up, average price, cross exchange give up, etc.
0 = Give up
1 = Average price
2 = Cross Exchange Give up
Additional Text Txt String Can include explanation for rejection of an Allocation Instruction.
AllocInstrctnAck/Pty (Repeating)
Party ID ID String Used to identify the Party.
Party ID Source Src char Used to identify class source of PartyID value (e.g. BIC). Required if PartyID is specified. Required if NoPartyIDs > 0.
C = Generally accepted market participant identifier (e.g. NASD mnemonic)
D = Proprietary / Custom code
H = CSD participant/member code (e.g.. Euroclear, DTC, CREST or Kassenverein number)
Party Role R int Indicates the type of Party or the role of the party in the Party Block. Note that for Clearing Organization (21), the ID is always "CME" while for Exchange (22), the ID is the firm exchange.
1 = Executing Firm
4 = Clearing Firm
21 = Clearing Organization
22 = Exchange
24 = Customer Account
38 = Position account
CME Front End Clearing
Allocation Management API 71
Field Name FIXML Attribute Name
Data Type
Description Supported Values
AllocInstrctnAck/Pty/Sub (Repeating)
Party Qualifier ID ID String A Sub ID provides additional information about the Party.
Party Qualifier Type Typ int The Type of Party Sub ID in the Party Sub Tag.
3 = System
26 = Account type or Origin
AllocInstrctnAck/AllocAck (Repeating)
Individual Alloc ID IndAllocID String Firm assigned individual allocation ID.
Secondary Individual Alloc ID
IndAllocID2 String CME assigned individual allocation ID. May not be present if a new allocation is being rejected.
Alloc Customer Capacity
CustCpcty String Indicates CTI of the allocation.
Allocation Quantity Qty Qty Quantity to be allocated to specific sub-account
Original Secondary Trade ID
OrigTrdID2 String When responding to a Trade Capture Report containing an allocation, this references the TrdID2 of the trade.
AllocInstrctnAck/AllocAck/Pty (Repeating)
Party ID ID String Used to identify source of NestedPartyID. Required if NestedPartyIDSource is specified. Required if NoNestedPartyIDs > 0.
Party ID Source Src char Used to identify class source of NestedPartyID value (e.g. BIC). Required if NestedPartyID is specified. Required if NoNestedPartyIDs > 0.
C = Generally accepted market participant identifier (e.g. NASD mnemonic)
D = Proprietary / Custom code
H = CSD participant/member code (e.g.. Euroclear, DTC, CREST or Kassenverein number)
CME Front End Clearing
Allocation Management API 72
Field Name FIXML Attribute Name
Data Type
Description Supported Values
Party Role R int Indicates the type of Party or the role of the party in the Party Block. Note that for Clearing Organization (21), the ID is always "CME" while for Exchange (22), the ID is the firm exchange.
1 = Executing Firm
4 = Clearing Firm
21 = Clearing Organization
22 = Exchange
24 = Customer Account
38 = Position account
AllocInstrctnAck/AllocAck/Pty/Sub (Repeating)
Party Qualifier ID ID String A Sub ID provides additional information about the Party.
Party Qualifier Type Typ int The Type of Party Sub ID in the Party Sub Tag.
3 = System
26 = Account type or Origin
CME Front End Clearing
Allocation Management API 73
4.0 Appendix
4.1 State Changes by Scenario Event Message Message
Identifier Trans Typ (TransTyp)
Allocation Type (Typ)
Alloc Report Type (RptTyp)
Alloc Status (Stat)
Alloc Reversal Status (RvrslStat)
From To
1 Add Allocation Exec CCP AllocInstrctn 0=New 17 = Give-up
Add Allocation Confirm to Exec
CCP Exec AllocRpt 0=New 15 = Give-up
6=Allocation Pending
Add Allocation Error Confirm to Exec
CCP Exec AllocInstrctnAck 0=New 17 = Give-up 5=Rejected by Intermediary
Add Allocation Notification to Carry
CCP Carry
AllocRpt 0=New 16 = Take-up
6=Allocation Pending
2 Update Allocation on Pre-Claim by Executing Firm
Exec CCP AllocInstrctn 1=Replace
17 = Give-up
Update Allocation Confirm to Exec
CCP Exec AllocRpt 1=Replace
15 = Give-up
6=Allocation Pending
Update Allocation Error Confirm to Exec
CCP Exec AllocInstrctnAck 1=Replace
17 = Give-up 5=Rejected by Intermediary
Update Allocation Notification to Carry
CCP Carry
AllocRpt 1=Replace
16 = Take-up
6 - Allocation Pending
3 Update Allocation on Pre-Claim by Carry Firm
Carry
CCP AllocInstrctn 1=Replace
18 = Take-up
Update Allocation Confirm to Carry
CCP Carry
AllocRpt 1=Replace
16 = Take-up
6=Allocation Pending
Update Allocation Error Confirm to Exec
CCP Carry
AllocInstrctnAck 1=Replace
18 = Take-up 5=Rejected by Intermediary
4 Delete Allocation Exec CCP AllocInstrctn 2=Cancel 17 = Give-up
Delete Allocation Confirm to Exec
CCP Exec AllocRpt 2=Cancel 15 = Give-up
12 - Cancelled
Delete Allocation Error Confirm to Exec
CCP Exec AllocInstrctnAck 2=Cancel 17 = Give-up 5=Rejected by Intermediary
Delete Allocation Notification to Carry
CCP Carry
AllocRpt 2=Cancel 16 = Take-up
12 - Cancelled
5 Accept Allocation
Carry
CCP AllocInstrctn
0=New 18 = Take-up
CME Front End Clearing
Allocation Management API 74
Event Message Message Identifier
Trans Typ (TransTyp)
Allocation Type (Typ)
Alloc Report Type (RptTyp)
Alloc Status (Stat)
Alloc Reversal Status (RvrslStat)
From To
Accept Allocation Confirm to Carry
CCP Carry
AllocRpt 0=New 16 = Take-up
9 = Claimed
Accept Allocation Error Confirm to Carry
CCP Carry
AllocInstrctnAck 0=New 18 = Take-up 5=Rejected by Intermediary
Accept Allocation Notification to Exec
CCP Exec AllocRpt 0=New 15 = Give-up
9 = Claimed
6 Refuse Allocation
Carry
CCP AllocInstrctn
0=New 19 = Refuse Take-up
Refuse Allocation Confirm to Carry
CCP Carry
AllocRpt 0=New 16 = Take-up
10 - Refused
Refuse Allocation Error Confirm to Carry
CCP Carry
AllocInstrctnAck 0=New 19 = Refuse Take-up
5=Rejected by Intermediary
Refuse Allocation Notification to Exec
CCP Exec AllocRpt 0=New 15 = Give-up
10 - Refused
7 Update Accepted Allocation
Carry
CCP AllocInstrctn
1=Replace
18 = Take-up
Update Accepted Allocation Confirm to Carry
CCP Carry
AllocRpt 1=Replace
16 = Take-up
9 = Claimed
Update Accepted Allocation Error Confirm to Carry
CCP Carry
AllocInstrctnAck 1=Replace
18 = Take-up 5=Rejected by Intermediary
8 Reversal Request from Carry
Carry
CCP AllocInstrctn 0=New 20 – Initiate Reversal
Reversal Request Confirm to Carry
CCP Carry
AllocRpt 0=New 17 - Reversal
14 - Reversal Pending
Reversal Request Error Confirm to Carry
CCP Carry
AllocInstrctnAck 0=New 20 - Initiate Reversal
5=Rejected by Intermediary
Reversal Request Notification to Exec
CCP Exec AllocRpt 0=New 18 - Alleged Reversal
14 - Reversal Pending
9 Accept Reversal Request from Exec
Exec CCP AllocInstrctn
0=New 21 - Claim Reversal
Accept Reversal Confirm to Exec
CCP Exec AllocRpt 0=New 18 – Alleged Reversal
7=Reversed 0 = Completed
CME Front End Clearing
Allocation Management API 75
Event Message Message Identifier
Trans Typ (TransTyp)
Allocation Type (Typ)
Alloc Report Type (RptTyp)
Alloc Status (Stat)
Alloc Reversal Status (RvrslStat)
From To
Accept Reversal Error Confirm to Exec
CCP Exec AllocInstrctnAck 0=New 21 - Claim Reversal
5=Rejected by Intermediary
Accept Reversal Notification to Carry
CCP Carry
AllocRpt 0=New 17 - Reversal
7=Reversed 0 = Completed
10 Refuse Reversal Request from Exec
Exec CCP AllocInstrctn
0=New 22 = Refuse Reversal
Refuse Reversal Confirm to Exec
CCP Exec AllocRpt 0=New 18 – Alleged Reversal
9 = Claimed 1 = Refused
Refuse Reversal Error Confirm to Exec
CCP Exec AllocInstrctnAck 0=New 22 = Refuse Reversal
5=Rejected by Intermediary
Refuse Reversal Notification to Carry
CCP Carry
AllocRpt 0=New 17 - Reversal
9 = Claimed 1 = Refused
11 Cancel Reversal Request from Carry
Carry
CCP AllocInstrctn 2=Cancel 20 - Initiate Reversal
Accept Cancel Reversal Confirm to Carry
CCP Carry
AllocRpt 2=Cancel 17 - Reversal
9 = Claimed 2 = Cancelled
Cancel Reversal Error Confirm to Carry
CCP Carry
AllocInstrctnAck 2=Cancel 20 - Initiate Reversal
5=Rejected by Intermediary
Accept Cancel Reversal Notification to Exec
CCP Exec AllocRpt 2=Cancel 18 - Alleged Reversal
9 = Claimed 2 = Cancelled
12 Reversal Request from Exec
Exec CCP AllocInstrctn 0=New 20 - Initiate Reversal
Reversal Request Confirm to Exec
CCP Exec AllocRpt 0=New 17 - Reversal
14 - Reversal Pending
Reversal Request Error Confirm to Exec
CCP Exec AllocInstrctnAck 0=New 20 - Initiate Reversal
5=Rejected by Intermediary
Reversal Request Notification to Carry
CCP Carry
AllocRpt 0=New 18 - Alleged Reversal
14 - Reversal Pending
13 Accept Reversal Request from Carry
Carry
CCP AllocInstrctn
0=New 21 - Claim Reversal
Accept Reversal Confirm to Carry
CCP Carry
AllocRpt 0=New 18 – Alleged Reversal
7=Reversed 0 = Completed
CME Front End Clearing
Allocation Management API 76
Event Message Message Identifier
Trans Typ (TransTyp)
Allocation Type (Typ)
Alloc Report Type (RptTyp)
Alloc Status (Stat)
Alloc Reversal Status (RvrslStat)
From To
Accept Reversal Error Confirm to Carry
CCP Carry
AllocInstrctnAck 0=New 21 - Claim Reversal
5=Rejected by Intermediary
Accept Reversal Notification to Exec
CCP Exec AllocRpt 0=New 17 - Reversal
7=Reversed 0 = Completed
14 Refuse Reversal Request from Carry
Carry
CCP AllocInstrctn
0=New 22 = Refuse Reversal
Refuse Reversal Confirm to Carry
CCP Carry
AllocRpt 0=New 18 – Alleged Reversal
9 = Claimed 1 = Refused
Refuse Reversal Error Confirm to Carry
CCP Carry
AllocInstrctnAck 0=New 22 = Refuse Reversal
5=Rejected by Intermediary
Refuse Reversal Notification to Exec
CCP Exec AllocRpt 0=New 17 - Reversal
9 = Claimed 1 = Refused
15 Cancel Reversal Request from Exec
Exec CCP AllocInstrctn 2=Cancel 20 - Initiate Reversal
Accept Cancel Reversal Confirm to Exec
CCP Exec AllocRpt 2=Cancel 17 - Reversal
9 = Claimed 2 = Cancelled
Cancel Reversal Error Confirm to Exec
CCP Exec AllocInstrctnAck 2=Cancel 20 - Initiate Reversal
5=Rejected by Intermediary
Accept Cancel Reversal Notification to Carry
CCP Carry
AllocRpt 2=Cancel 18 - Alleged Reversal
9 = Claimed 2 = Cancelled
16 Sub Allocate Claimed Allocation
Orig Carry
CCP AllocInstrctn 0=New 23 - Sub-allocate
Sub Allocate Accepted Allocation Error Confirm
CCP Orig Carry
AllocInstrctnAck 0=New 23 = Sub-allocate
5=Rejected by Intermediary
17 Cancel Sub Allocation
Orig Carry
CCP AllocInstrctn 2=Cancel 23 - Sub-allocate
Cancel Sub Allocation Error Confirm
CCP Orig Carry
AllocInstrctnAck 2=Cancel 23 = Sub-allocate
5=Rejected by Intermediary
18 Create Group Confirm
CCP Exec AllocInstrctnAlert 0=New 12=Incomplete Group OR 13=Complete Group
6=Allocation Pending
CME Front End Clearing
Allocation Management API 77
Event Message Message Identifier
Trans Typ (TransTyp)
Allocation Type (Typ)
Alloc Report Type (RptTyp)
Alloc Status (Stat)
Alloc Reversal Status (RvrslStat)
From To
19 Update Group Confirm
CCP Exec AllocInstrctnAlert 1=Replace
12=Incomplete Group (Average Pricing only) OR 13=Complete Group
6=Allocation Pending
20 Complete Group Exec CCP AllocInstrctn 1=Replace
13=Complete Group
Complete Group Confirm
CCP Exec AllocInstrctnAlert 1=Replace
13=Complete Group
6=Allocation Pending
Complete Group Error Confirm
CCP Exec AllocInstrctnAck 1=Replace
13=Complete Group
5=Rejected by Intermediary
21 Un-Complete Group
Exec CCP AllocInstrctn 1=Replace
15=Un-complete Group
Un-Complete Group Confirm
CCP Exec AllocInstrctnAlert 1=Replace
12=Incomplete Group
6=Allocation Pending
Un-Complete Group Error Confirm
CCP Exec AllocInstrctnAck 1=Replace
15=Un-complete Group
5=Rejected by Intermediary
22 Cancel Incomplete Group
Exec CCP AllocInstrctn 2=Cancel 16 - Cancel Group
Cancel Incomplete Group Confirm
CCP Exec AllocInstrctnAlert 2=Cancel 16 - Cancel Group
6=Allocation Pending
Cancel Incomplete Group Error Confirm
CCP Exec AllocInstrctnAck 2=Cancel 16 - Cancel Group
5=Rejected by Intermediary
5.0 Revision History Version Date Author Description
1.0 3/05 NS Initial version of the document.
2.0 1/13/12 RP/NU Re-write of the document to use FIX 5.0 SP2.
2.1 2/24/12 RP
Removed non-applicable TrdType.
Added ParentAllocID to Allocation Report, and IndAllocID2 to Allocation Instruction Alert for sub-allocation. Clarified sub-allocation flow. Removed scenario Modify Sub Allocation.
Clarified un-marking trades.
2.2 6/8/12 RP
Clarified that for AllocInstrctnAlert, RefAllocID identifies the ID of an AllocInstrctn.
Added OrigTrdID2 to AllocInstrctnAck.
CME Front End Clearing
Allocation Management API 78
Further clarified sub-allocation flow.
Clarified that ReqQty is sent to the executing firm for average price allocations.
Added DiffPx to AllocInstrctnAlert and AllocRpt, and PxSubTyp to AllocInstrctnAlert to facilitate TAS and TAM allocations.
Added PxTyp to AllocInstrctnAlert to facilitate cabinet allocations.
Clarified that incomplete and complete groups can be updated; the incomplete case is for average pricing only.
Added support for party role value Executing Trader (12).
Clarified that un-marking the last trade in a group cancels the group.
Clarified that the clearing system does not trades for certain exchanges (NYMEX, COMEX, CMD, SX) when marked for give-up.
2.3 3/26/13 RP
Clarified message specification for product exchange, firm exchange, and hard coded values.
Added "Update Allocation on Pre-Claim by Carry Firm" scenario.
2.4 6/3/13 RP
Corrected typos.
Added KCB as an exchange.
Added AllocInstrctnAlert/Amt component.
Added Party Role for Previous Executing Firm and elaboration.