Fixml Allocate And Claim API Spec Users Guide V 1

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 113 [warning: Documents this large are best viewed by clicking the View PDF Link!]

Page 1 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
FIXML Allocate and Claim Services
API Specification and
Technical User’s Guide
Version 1.0
March 2005
Page 2 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
TABLE OF CONTENTS
1 INTRODUCTION ...............................................................................................................................................4
1.1 BACKGROUND ................................................................................................................................................4
1.2 PURPOSE AND SCOPE......................................................................................................................................4
1.3 PREREQUISITES...............................................................................................................................................4
1.4 REFERENCES...................................................................................................................................................4
2 ALLOCATE AND CLAIM BASICS.................................................................................................................5
2.1 OVERVIEW......................................................................................................................................................5
2.2 BASIC ALLOCATIONS......................................................................................................................................5
2.3 DESIGNATING TRADES FOR BASIC ALLOCATION............................................................................................5
2.4 AVERAGE PRICE ALLOCATIONS......................................................................................................................5
2.5 DESIGNATING TRADES FOR AVERAGE PRICE ALLOCATION............................................................................6
2.6 BASIC, GENERIC AND SPECIFIC GROUPING.....................................................................................................6
3 BASIC AND AVERAGE PRICE MESSAGE MODEL...................................................................................7
3.1 SIMPLE ALLOCATION MESSAGE FLOW...........................................................................................................7
3.2 AVERAGE PRICE ALLOCATION MESSAGE FLOW.............................................................................................7
3.3 COMPLETING GROUPS ..................................................................................................................................13
3.4 CLAIMING ALLOCATIONS .............................................................................................................................14
3.5 UPDATING ALLOCATIONS INSTRUCTIONS.....................................................................................................14
4 ACS MESSAGE MODEL.................................................................................................................................15
4.1 SIMPLE ALLOCATION MESSAGE FLOW.........................................................................................................15
4.2 CLAIMING ALLOCATIONS .............................................................................................................................18
4.3 UPDATING ACS ALLOCATIONS INSTRUCTIONS ............................................................................................19
5 MESSAGE FUNCTION OVERVIEW............................................................................................................20
5.1 BASIC FIXML ALLOCATION MESSAGES ......................................................................................................20
5.2 MESSAGE FUNCTION TO MESSAGE TYPE MAPPING.......................................................................................21
5.3 GROUP SUMMARY ALERTS...........................................................................................................................23
5.4 CREATING ALLOCATIONS.............................................................................................................................24
5.5 COMPLETING AVERAGE PRICE GROUPS (NOT APPLICABLE TO ACS GROUPS)..............................................30
5.6 CLAIMING ALLOCATION INSTRUCTIONS.......................................................................................................31
5.7 UPDATING PENDING OR REJECTED ALLOCATIONS .......................................................................................33
5.8 UPDATING ACCEPTED ALLOCATIONS...........................................................................................................35
5.9 REVERSING OR RELEASING ACCEPTED ALLOCATIONS .................................................................................36
5.10 SUB ALLOCATIONS/THIRD PARTY ALLOCATIONS OF ACCEPTED ALLOCATIONS ..........................................39
6 COMPONENTS OF APS AND ACS FIXML MESSAGES ..........................................................................42
6.1 KEY ELEMENTS AND ATTRIBUTES................................................................................................................42
7 DETAILED MESSAGE SAMPLES................................................................................................................47
7.1 DESIGNATING TRADES FOR APS OR ACS ALLOCATION...............................................................................47
7.2 CLEARING SYSTEM ACKNOWLEDGES THE TRADE.........................................................................................52
7.3 GROUP LEVEL MESSAGES ............................................................................................................................53
7.4 GROUP HANDLING MESSAGES (COMPLETE, INCOMPLETE & CANCEL)..........................................................57
7.5 ALLOCATION INSTRUCTIONS ........................................................................................................................60
7.6 ALLOCATION CONFIRMS AND ALERTS .........................................................................................................64
7.7 ACCEPTING AND REJECTING ALLOCATIONS .................................................................................................68
7.8 UPDATE ALLOCATIONS ................................................................................................................................78
7.9 REVERSING ALLOCATIONS ...........................................................................................................................82
7.10 SUB ALLOCATIONS/ THIRD PARTY ALLOCATIONS BY CARRY FIRM .............................................................86
7.11 TRANSFERS DONE THRU CLEARING UI .........................................................................................................88
Page 3 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
8 REQUIRED FIELDS ........................................................................................................................................92
8.1 REQUIRED FIELDS ON INBOUND ALLOCATION INSTRUCTION MESSAGES .....................................................92
8.2 REQUIRED FIELDS ON INBOUND ALLOCATION REPORT ACKNOWLEDGEMENT MESSAGES...........................96
8.3 APS ROUTING FILE TO FIXML MAPPING.....................................................................................................99
9 APPENDIX.......................................................................................................................................................109
9.1 TABLE 8.1 FIX VALUE CONVERSION USED IN APS API ..........................................................................109
Page 4 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
1 INTRODUCTION
1.1 Background
The FIXML 4.4 Schema Specification has been developed to allow participants in the financial services
industry to transmit trade and post-trade information in a common extensible and flexible format. It was
originally developed for post-trade execution reporting and positions management. It is now being extended
to support the allocation and claiming of trades.
Today the basic allocations messages used to interface with the CME Clearing House web-based Front End
Clearing application (FEC) are defined using the fixed length Trade Exchange Record Layout (TREX)
protocol. In 2005 a new average price allocation module will be added to FEC and this new module will
exclusively use the FIXML 4.4 Schema Specification for allocate and claim messages. Basic allocations will
be supported by both FIXML and TREX for a short period after the implementation of average price
allocations.
1.2 Purpose and Scope
This user’s guide describes in detail all aspects of the FIXML Allocation Model as implemented to support
post-trade allocation in the CME web-based trade management system, Front End Clearing (FEC).
This user guide describes the format and usage of the following FIXML Allocation messages:
Allocation Group Summary Notices
Basic and average price allocation instructions
Updates to allocations
Reverse and release requests to previously submitted and accepted allocations
Sub-Allocation or third party allocation requests
Allocation instruction alerts
Allocation instruction claim alerts
Acknowledgment to all allocation instructions and responses
1.3 Prerequisites
This document assumes a basic working understanding of XML and familiarity with basic CME trade
processing terms.
1.4 References
CME Clearing House FIXML web page:
www.cme.com/clearing/cm/stan/fixml6615.html
You will find the following material at this site:
Allocation FIXML 4.4 (FIA Extensions 1.1) Schema files
FIXML Allocation message examples
Other References:
http://www.fixprotocol.org/specifications/fix4.4fixml
Page 5 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
2 Allocate and Claim Basics
2.1 Overview
The terms allocate and claim describe the method by which trades are routed to their ultimate firm and
account in the CME Clearing House Front End Clearing (FEC) web-based trade management system. Trades
can be designated for allocation by simply submitting them with an allocation indicator although additional
specific allocation information such as carry firm, account and origin can also be appended to trades marked
for allocation. Specific allocation instructions can also be submitted as stand alone instructions referencing a
group of trades already marked for allocation. Once these specific instructions have been submitted, whether
with the initial trade information or later with stand alone allocation instructions, the clearing system sends an
allocation alert message to the designated carry firm. The carry firm can respond to this alert by either
claiming or rejecting the allocation. The claiming firm’s response would then be communicated back to the
allocating firm by the CME clearing system.
2.2 Basic Allocations
Basic Allocations are those that are done at a fixed trade price determined by the execution price of the trade.
No price averaging is involved. Trades designated for basic allocation are aggregated according to pre-
defined criteria into “allocation groups”. The convention currently used for assigning trades to an allocation
group uses the following criteria:
Firm and Trader
Trade Date
Instrument definition (Symbol)
Side of Market
Trade Price
Customer Account
Trade Type
Client Order ID
2.3 Designating Trades for Basic Allocation
Trades designated for basic allocation are first added to an allocation group and then, if the appropriate pre-
allocation instruction details have been provided, becomes part of an allocation proper that is routed to the
claim firm. The executing firm has the option of providing both the Group ID and Allocation ID, although under
current listed derivatives convention the ID’s are automatically assigned by the clearing house. At the time of
execution, a firm has 2 options with respect to designating the allocation.
1. An executing firm may direct the trade into an allocation group pending the receipt of allocation
instruction details. At this point the allocation is considered to be in “pending” status awaiting the
executing firm to provide the details necessary to complete the allocation. The allocation Group ID is
automatically assigned by the Clearing House and the information is sent to the claim firm in the form
of an Allocation Alert.
2. An executing firm may also provide all requisite allocation details at the time of the trade. In this case,
the trade will be assigned to an allocation group as well as create an actual allocation that will be
sent to the claim firm. At this point, the allocation is considered to be in “preliminary” status.
2.4 Average Price Allocations
Average price allocations are different from basic allocations in three significant ways.
1. Trade Prices within a Group are averaged.
2. For average price allocations, grouping is a two stage process:
a. For purposes of averaging, trades can be grouped according to a very broad set of
criteria in what we will call “Generic” groups.
b. For purposes of allocating, each Generic group will yield one or more underlying
“Specific” groups whose criteria are defined in the same way as Basic allocation groups
excepting price.
Page 6 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
3. Allocation instructions submitted for average price allocation groups are not released until the
allocating firm has “completed” the Generic average price group. Completion indicates that no
more trades will be averaged in the designated group. Once the firm has completed the average
price allocation group all existing allocation instructions are released to the designated carry
firms.
2.5 Designating Trades for Average Price Allocation
Unlike basic allocations, trades to be allocated at an average price will not be automatically assigned
allocation groups. Instead, trades marked for average price allocation must be assigned an average price
group id by the allocating firm. Trades designated for average price allocation but not assigned an average
price group id are stored in FEC as unassigned trades. Firms can provide an average price group id for
unassigned trades by updating individual trades via trade update messages or selecting multiple unassigned
trades within the FEC user interface and assigning them to an existing or new average price group.
2.6 Basic, Generic and Specific Grouping
The concept of grouping, whether in the context of Basic, Generic or Specific allocation groups, is essential to
the process of post-trade allocation. The assignment of trades into Basic allocation groups is automatically
determined by the clearing system based on the criteria of the trades marked for allocation. Generic
allocation groups are delimited by four very basic trade criteria and the firm assigned group id. Trades in a
Generic group are assigned to underlying Specific allocation groups using Basic allocation grouping criteria
minus price. The table below compares the different grouping criteria used for basic and average price
allocations:
Grouping Criteria Basic Allocation
Groups Grouping
for
Average
(Generic)
Grouping
for
Allocation
(Specific)
Product X X X
Contract Details (contract date, put/call,
strike, etc.)
X X X
Market Side (e.g. buy/sell) X X X
Price X
Account Number X X
Order Number X X
Trade Type (e.g. spread/outright) X X
Venue (e.g. Electronic/Open Outcry) X X
Broker X X
Origin X X
Trade Date X X X
Table 2.1
Page 7 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
3 Basic and Average Price Message Model
3.1 Simple Allocation Message Flow
As described above, the Clearing House acts as an intermediary between the allocation firm and the claiming
firm. Designation of trades for allocation by the executing initiates the allocation grouping process in the
clearing system. When allocation groups are created the clearing system generates group summary alerts to
the allocating firm. If specific allocation instructions were appended to trades reported to the clearing system
or once stand alone allocation instructions are submitted referencing existing allocation groups, the clearing
system sends an allocation alert to the designated carry firm. The carry firm may then respond by either
claiming or rejecting the allocations.
Below is an illustration of the basic allocation message flow used today in FEC:
Figure 3.1.1
3.2 Average Price Allocation Message Flow
Average price allocation message flow is in many ways similar to basic allocation flow. The only significant
differences are the two types of allocation groups associated with average price allocations, the application of
allocation instructions between generic and specific groups and the requirement that the allocating firm
complete the average price group before allocation instructions are sent to the carry or claiming firm.
3.2.1 Generic Groups
Once the allocating firm has designated a trade for average price allocation and assigned it an average price
group id, the clearing system will respond with two group summary alert messages. The first group
summary alert message, or “generic” summary message, contains certain key information about the trades
being averaged:
the firm assigned average price group id
the clearing system assigned average price group id
the trade ids of the trades that make up the generic group
the product and contract details of the trades being averaged
whether it is a buy or sell generic group
the overall quantity of contracts being averaged
relevant averaged allocation prices:
o the rounded or working average price
o the true average price
o the cash residual
the generic group status, e.g. whether it has been completed or not
the business and trade date
the message event source id
the input device
Allocating Firm 123
Trade marked for
Give-up
Clearing System
Group Summary
Alerts w/ Group
information
Allocation Claim
Alert
Claiming Firm 456
Allocation Alert
Specific Allocation
Instructions
Allocation
Claim
Page 8 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
3.2.2 Specific Groups
The second group summary record is the “specific” group summary record. Each trade assigned to a
generic average price group will also be assigned to a specific allocation group according to the same
criteria, excluding price, currently used to group basic allocations. The specific group summary record
contains the following information:
the firm assigned average price group id of it’s parent generic average price group
a new specific allocation group id assigned by the clearing system
the trade ids of the trades contained within the specific group
the product and contract details for the specific group
specific group quantity
relevant averaged allocation prices
specific group status, e.g. whether it is fully allocated and accepted or not
buy/sell indicator
the generic group status, e.g. whether it is complete or not
message event source id
input device
and most significantly, the specific trade information that defines the specific group such as:
o account number
o order number
o trade type
o origin
o trade venue
o broker
Below is the message flow for Generic and Specific average price group summary alerts:
Figure 3.2.2
3.2.3 Generic Average Price Allocation Instructions
Average price allocation instructions can be submitted for generic or specific allocation groups. If submitted
at a generic group level the clearing system will automatically apply them to as many underlying specific
groups as necessary in order to complete the allocation after the Generic group has been completed.
Allocation instructions can also be submitted for specific allocation groups. The allocating firm uses the
CME Assigned Group ID, defined as attribute ID2 in FIXML, to differentiate between specific and generic
allocation groups. Allocation instructions that are submitted with trade messages are automatically applied
to the specific group to which the trade was assigned. Figure 3.3 illustrates how allocation instructions can
be submitted for average price allocation groups and how they are applied.
Generic Group Alert
Firm Group ID: 1000
CME Assigned Group
ID: 2001
Allocating Firm 123
Trade marked for
Average Price
Allocation with Firm
Assigned Group Id:
1000
Clearing System
Specific Group Alert
Firm Group ID: 1000
CME Assigned Group
ID: 3001
Page 9 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Figure 3.2.3
Allocating Firm 123
Clearing System
Specific
Allocation
Acknowledgm
ents created,
but sent only
after Generic
Group is
com
p
leted.
Generic Group Alert: Firm Group ID: 1000 CME Assigned Group ID: 2001; qty
250
Generic Allocation Instruction Report: Firm Group ID: 1000;
CME Assigned Group ID 2001; Firm IndAlloc ID: 10000; IndAllocID2: 500001
(clearing system assigned); Qty 200; Claim Firm 456
Specific Group Alert: Firm Group ID: 1000
Specific Clearing Assigned Group ID: 3001; qty 150; Broker ABC
Generic Group Alert: Firm Group ID: 1000 CME Assigned Group ID: 2001; qty
150
Specific Group Alert: Firm Group ID: 1000
CME Assigned Group ID: 3002; qty 100; Broker DEF
TRADE 2: Broker DEF; trade qty 100; marked for average price allocation; firm
assigned Group Id: 1000; Carry firm information not provided
Generic Allocation Instruction: Firm Group ID: 1000; Clearing Assigned Group
ID: 2001 Firm IndAllocID: 10000 (optional); Assigned Group ID 2001; Qty 200;
Claim Firm 456
Specific Allocation Instruction Report: Acknowledges Specific Allocation
Instruction generated for generic allocation; Qty 150; Broker ABC; Firm Group ID:
1000 CME Assigned Group ID 3001; Firm IndAlloc ID: 10000; IndAllocId2: 500002
(clearing system assigned Carry Firm 456
Specific Allocation Instruction Report: Acknowledges Specific Allocation
Instruction generated for generic allocation; Qty 50; Broker DEF; Firm Group ID:
1000; CME Assigned Group ID 3002; Firm IndAlloc ID: 10000; IndAllocId2: 500003
(clearing system assigned); Carry Firm 456
TRADE 1: Broker ABC; trade qty 150; marked for average price allocation; firm
assigned Group Id: 1000; Carry firm information not provided
Page 10 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
In Figure 3.2.3 allocation instructions are being submitted at the generic level and applied at the specific
level. A 200-lot allocation instruction was submitted for a generic group with a quantity of 250, made up of
one150-lot trade and one 100-lot trade executed by two different brokers but assigned the same average
price group id by the allocation firm. Each of those trades were assigned separate specific allocation groups
just as they would have been assigned to different Basic allocation groups if they were marked as Basic
allocations. This is important to remember, Specific allocation groups are formed from the trades in their
parent generic group according to the same criteria, excluding price, as Basic allocation groups.
When applying allocation instructions at the generic level, in this case an allocation instruction for 200, the
generic allocation quantity is assigned with the aim of minimizing breaking up the quantity of the generic
allocation. In this case, since neither specific allocation group was large enough to satisfy the quantity of the
generic allocation instruction, one specific group was completely allocated and the second group was
partially allocated. 150 were applied to the specific group with the CME assigned group id of 3001 and the
remaining quantity of 50 was applied to the specific allocation group with the CME assigned group id of
3002.
Page 11 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
3.2.4 Specific Average Price Allocation Instructions
Average price allocation instructions can also be submitted at the specific group level. This can be
accomplished in two ways, either by appending specific allocation instructions to trades designated
for average price allocation or by submitting allocation instructions referencing a specific allocation
group.
3.2.4.1 Submitting Specific Allocation Instruction with Trade Capture Reports
As discussed in Section 2 specific allocation instructions such as carry firm, carry account, origin
and customer type indicator can be nested within the instructions for trades marked for allocation.
When these instructions are nested within trades designated for average price allocations,
allocation instructions are generated for the Specific group to which the trade is assigned. Let’s
assume that trade number 2 from figure 3.3 was submitted with specific allocation instructions.
Figure 3.4 below demonstrates the message flow:
Figure 3.2.4.1
Note that if you allocate specifically you will receive the specific acknowledgement. If you
allocate generically you will receive the generic acknowledgment. If you allocate generically
after completion you receive a generic acknowledgment, a generic delete and then a specific
acknowledgement.
Specific Allocation Report: Firm Group ID:
1000 CME Assigned Group ID: 3002; qty 100;
Carry Firm: 456; Carry Account: 123456;
IndAllocID2: 500003 (clearing system assigned)
Allocatin
g
Firm 123
Trade 2: Broker DEF; trade qty 100; marked
for average price allocation; firm assigned Group
Id: 1000;
Clearing System
Generic Group Alert: Firm Group ID: 1000
CME Assigned Group ID: 2001; qty 250
Specific Group Alert: Firm Group ID: 1000
CME Assigned Group ID: 3002; qty 100
Nested Specific Allocation Instructions:
Carry Firm: 456; Carry Account: 123456;
Page 12 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
3.2.4.2 Submitting Stand Alone Specific Allocation Instructions
An allocation firm can also submit specific allocations by referencing a specific allocation
group. This is done using the clearing system assigned specific group id (ID2). Figure 3.5
demonstrates the message flow:
Figure 3.2.4.2
Allocatin
g
Firm 123
Clearing System
Trade 2: Broker DEF; trade qty 100; marked
for average price allocation; firm assigned Group
Id: 1000
;
Generic Group Alert: Firm Group ID: 1000 CME
Assigned Group ID: 2001; qty 250
Specific Allocation Instruction: Firm Group ID:
1000 CME Assigned Group ID: 3002; qty 100;
Carry Firm: 456; Carry Account: 123456;
Specific Group Alert: Firm Group ID: 1000 CME
Assigned Group ID: 3002; qty 100
Specific Allocation Report: Firm Group ID:
1000 CME Assigned Group ID: 3002; qty 100;
Carry Firm: 456; Carry Account: 123456;
IndAllocID2: 500003 (clearing system assigned)
Specific
Allocation
created, but sent
only after
Generic Group is
completed.
Page 13 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
3.3 Completing Groups
Allocation instructions submitted for average price allocation groups are not transmitted to the claiming firm
until the average price group is completed. Completing an average price group indicates that no more trades
will be added to the group. Only Generic average price groups can be completed, Specific groups are
completed when their parent Generic group is completed. Group completion can be accomplished via
message or using the FEC user interface. Below is an illustration of the message flow for average price group
completion.
Figure 3.3
Allocating Firm 123
Clearing System
Carry Firm 456
Group Completion Request
Firm Group Id: 1000
Clearing Assigned Grp Id: 2001
Group Completion Alert
Firm Group Id: 1000
Clearing Assigned Grp Id: 2001
Generic Allocation Instruction
Report: Cancels Generic Allocation
Instruction;
Qty 200; Firm Group ID: 1000
Clearing Assigned Group ID 2001;
Firm IndAlloc ID: 10000
IndAllocID2: 500001
(
CME Assi
g
ned
)
Specific Allocation Report:
Acknowledges Specific Allocation
Instruction generated for generic
allocation; Qty 50; Broker DEF
Carry Firm: 456; Firm Group ID: 1000
Clearing Assigned Specific Grp ID 3002;
Firm IndAlloc ID: 10000
IndAllocID2:500003
(
CME Assi
g
ned
)
Specific Allocation Report:
Acknowledges Specific Allocation
Instruction generated for generic
allocation; Qty 150; Broker ABC;
Carry Firm: 456; Firm Group ID: 1000
Clearing Assigned Specific Grp ID 3001;
Firm IndAlloc ID: 10000
IndAllocID2: 500002
(
CME Assi
g
ned
)
Specific Allocation Report: Alert for
Specific Allocation Instruction;
Allocating firm: 123
Qty 50; Broker DEF
IndAllocID2: 500102 (CME Assigned)
Specific Allocation Report: Alert for
Specific Allocation Instruction;
Allocating firm: 123
Qty 150; Broker ABC
IndAllocID2: 500101 (CME Assigned)
Page 14 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
3.4 Claiming Allocations
Once alerted of a pending allocation the claiming firm can either reject or accept the allocation. Note that the
claiming firm does not have to send specific trade information like executing broker or trade type on its claim
message, but the Accept Allocation Report from the clearing system will contain all trade information.
Figure 3.4
3.5 Updating Allocations Instructions
The allocating firm can modify both pending and rejected allocations. The allocating firm can change the claim
firm number, claiming firm account, customer type and origin and change the allocation quantity. If the carry
firm is changed on a pending or rejected allocation, the original carry firm receives a Cancel allocation
message and the new carry firm receives a new allocation instruction alert. When we left off in figure 3.4,
claiming firm 456 had rejected one of the allocations from firm 123. In figure 3.5, allocating firm 123 is
changing the claiming firm number to claim firm 789.
Figure 3.5
Carry Firm 456
Clearing System
Allocating Firm 123
Accept Allocation:
IndAllocID: 500101; Qty
150
Accept Allocation
Report:
IndAllocID2: 500101
Allocating Firm: 123
Qty 150; Broker ABC;
Claimed Allocation Report:
Firm Group ID: 1000
Firm IndAllocID: 10000
Specific Grp ID: 3001
Qty 150; Broker ABC;
Claim Firm: 456;
IndAllocID2: 500001
Rejected Allocation Report:
Firm Group ID: 1000
Firm IndAllocID: 10000
Specific Grp ID: 3002
Qty 50; Broker DEF;
Claim Firm: 456;
IndAllocID2: 500002
Reject Allocation:
IndAllocID: 500102
Accept Allocation
Report:
IndAllocID2: 500102
Allocating Firm: 123
Qty 50; Broker DEF;
Give-Up Firm 123
Clearing System
Carry Firm
456
Carry Firm
789
Update Allocation Instruction:
Firm Group ID: 1000; Firm
IndAllocID: 10000; Specific
Group ID 3002; IndAllocID2:
500002; Claim firm: 789
Cancel Report:
IndAllocID2: 500102
Allocating Firm: 123
Qty 50; Broker DEF
Update Allocation Report:
Firm Group ID: 1000; Firm
IndAllocID: 10000; Specific Grp
ID: 3002; Qty 50; Broker DEF;
Claim Firm: 789;
IndAllocID2: 500002
New Allocation Report:
Allocating firm: 123
Qty 50; Broker DEF
IndAllocID2: 500102 (CME
Assigned)
Page 15 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
4 ACS Message Model
4.1 Simple Allocation Message Flow
As described above, the Clearing House acts as an intermediary between the allocation firm and the claiming
firm. Designation of trades for allocation by the executing initiates the allocation grouping process in the
clearing system. Unlike trades marked for average pricing, trades marked for ACS will automatically be
assigned to specific allocation groups. When allocation groups are created the clearing system generates
group summary alerts to the allocating firm. If specific allocation instructions were appended to trades
reported to the clearing system or once stand alone allocation instructions are submitted referencing existing
allocation groups, the clearing system sends an allocation report to the designated carry firm. The carry firm
may then respond by either claiming or rejecting the allocations.
Below is an illustration of the basic allocation message flow used today in FEC:
Figure 4.1
Allocating Firm 123
Trade marked for
Give-up
Clearing System
Group Summary
Alerts w/ Group
information
Allocation Claim
Report
Claiming Firm 456
Allocation
Report
Speci
f
ic Allocation
Instructions
Allocation
Report Claim
Page 16 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
4.1.1 ACS Allocation Instructions
ACS allocation instructions can be appended to trades reported to the clearing system or as stand alone
allocation instructions referencing existing basic allocation groups. The allocating firm uses the CME
Assigned Group ID, defined as attribute ID2 in FIXML, to differentiate between different ACS allocation
groups. Allocation instructions that are submitted with trade messages are automatically applied to the
specific ACS group to which the trade was assigned. Figure 4.2 illustrates how allocation instructions can
be submitted for specific ACS allocation groups and how they are applied.
Figure 4.2
Allocating Firm 123
Clearing System
Allocation Instruction Alert : Firm Group ID: 1000 CME Assigned Group ID:
500001; qty 250
Allocation Instruction Report: Firm Group ID: 1000; CME Assigned Group ID
500001; Firm IndAlloc ID: 10000; IndAllocID2: 500002 (clearing system assigned);
Qty 200; Claim Firm 456
Allocation Instruction Alert: Firm Group ID: 1000
Specific Clearing Assigned Group ID2: 500001; qty 150; Broker ABC
TRADE 2: Broker ABC; trade qty 100; marked for ACS; firm assigned Group Id:
1000; Carry firm information not provided
Allocation Instruction: Firm Group ID: 1000; Clearing Assigned Group ID2:
500001; Firm IndAllocID: 10000 (optional); Qty 200; Claim Firm 456
Allocation Instruction: Firm Group ID: 1000; Clearing Assigned Group ID2:
500001; Firm IndAlloc ID: 10001; IndAllocId2: 500003 (clearing system assigned )
Qty:50, Claim Firm 678
Allocation Instruction Report: Firm Group ID: 1000;
CME Assigned Group ID2 500001; Firm IndAlloc ID: 10000; IndAllocId2: 500003
(clearing system assigned); Qty:50;Claim Firm 678
TRADE 1: Broker ABC; trade qty 150; marked for ACS; firm assigned Group Id:
1000; Carry firm information not provided
Page 17 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
In Figure 3.2, allocation instructions are being submitted. A 200-lot and a 50-lot basic allocation instruction
was submitted for a group with a quantity of 250, made up of one150-lot trade and one 100-lot trade
executed by the same broker. Each of those trades were assigned to the same basic allocation group (ID2)
since they met the same grouping criteria for basic allocation groups set out in table 2.1. The firm has the
option of submitting their own reference group ID (Attribute=ID) and allocation ID (AllocIndID); however, the
clearing system will generate their values if they are not supplied by the firm. The allocating firm will need to
populate both the ID and ID2 when sending allocation instructions.
4.1.2 Submitting ACS Allocation Instructions for Trades
ACS allocation instructions can also be by appending specific allocation instructions to trades
designated for ACS allocation or by submitting allocation instructions referencing a specific
allocation group.
4.1.2.1 Submitting Allocation Instruction Upon Trade Submission
As discussed in Section 2 specific allocation instructions such as carry firm, carry account, origin
and customer type indicator can be nested within the instructions for trades marked for allocation.
When these instructions are nested within trades designated for ACS allocations, allocation
instructions are generated for the basic group to which the trade is assigned. Let’s assume that
trade number 2 from figure 3.2 was submitted with basic allocation instructions. Figure 4.3 below
demonstrates the message flow:
Figure 4.3
Allocation Report: Firm Group ID: 1000 CME
Assigned Group ID2: 500001 ; Qty 100;
Carry Firm: 456; Carry Account: 123456;
IndAllocID2: 500003 (clearing system assigned)
Allocatin
g
Firm 123
Trade 2: Broker DEF; trade qty 100; marked
for ACS allocation; firm assigned Group Id:
1000
;
Clearing System
Allocation Instruction Alert: Firm Group ID:
1000 CME Assigned Group ID2: 500001; Qty:
100
Nested Specific Allocation Instructions:
Carry Firm: 456; Carry Account: 123456;
Page 18 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
4.1.2.2 Submitting Basic Allocation Instruction Via Trade Capture Reports
An allocation firm can also submit allocations by updating a trade unmarked for ACS with the
requisite allocation information: Let’s assume that trade number 2 from figure 3.2 was
submitted without basic allocation instructions. Figure 4.4 demonstrates the message flow:
Figure 4.4
4.2 Claiming Allocations
Once alerted of a pending allocation the claiming firm can either reject or accept the allocation. Note that the
claiming firm does not have to send specific trade information like executing broker or trade type on its claim
message, but the Accept Allocation Report from the clearing system will contain all trade information.
Figure 4.5
Carry Firm 456
Clearing System
Allocating Firm 123
Accept Allocation
Acknowledgement:
IndAllocID2: 500101; Qty
150
Accept Allocation
Report:
IndAllocID2: 500101
Allocating Firm: 123
Claimed Allocation Report:
Firm Group ID: 1000
Specific Grp ID2: 500003
Firm IndAllocID: 10000
Qty 150; Broker ABC;
Claim Firm: 456;
IndAllocID2: 500001
Rejected Allocation Report:
Firm Group ID: 1000
Specific Grp ID2: 500004
Firm IndAllocID: 10000
Qty 50; Broker DEF;
Claim Firm: 456;
IndAllocID2: 500002
Reject Allocation:
IndAllocID: 500102
Accept Allocation
Report:
IndAllocID2: 500102
Allocating Firm: 123
Qty 50; Broker DEF;
Allocatin
g
Firm 123
Clearing System
Trade 2: Broker DEF; trade qty 100; not
marked for ACS
Trade Capture Update with Allocation
Instructions: Firm Group ID: 1000; AllocInd=”1”
(Marked for Allocation), , Qty 100;
Carry Firm: 456; Carry Account: 123456
Allocation Instruction Alert: Firm Group ID:
1000 CME Assigned Group ID2: 500001; qty
250;
Allocation Report: Firm Group ID: 1000 CME
Assigned Group ID2: 50001; qty 100;
Carry Firm: 456; Carry Account: 123456;
IndAllocID2: 500003 (clearing system assigned)
Page 19 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
4.3 Updating ACS Allocations Instructions
The allocating firm can modify both pending and rejected allocations. The allocating firm can change the claim
firm number, claiming firm account, customer type and origin and change the allocation quantity. If the carry
firm is changed on a pending or rejected allocation, the original carry firm receives a Cancel allocation
message and the new carry firm receives a new allocation instruction alert. The AllocIndID2 is used to specify
which specific allocation is to updated. When we left off in figure 3.4, claiming firm 456 had rejected one of
the allocations from firm 123. In figure 3.5, allocating firm 123 is changing the claiming firm number to claim
firm 789.
Figure 3.5
Give-Up Firm 123
Clearing System
Carry Firm
456
Carry Firm
789
Update Allocation Instruction:
Firm Group ID: 1000; Firm
IndAllocID: 10000; Specific
Group ID 500004; IndAllocID2:
500002; Claim firm: 789
Cancel Allocation
Report:
IndAllocID2: 500102
TransTyp=”2”
Allocating Firm: 123
Qty 50; Broker DEF
Update Allocation Report:
Firm Group ID: 1000; Firm
IndAllocID: 10000; Specific Grp
ID: 500004; Qty 50; Broker DEF;
Claim Firm: 789;
IndAllocID2: 500002
New Allocation Report:
Allocating firm: 123
Qty 50; Broker DEF
IndAllocID2: 500102 (CME
Assigned)
Page 20 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
5 Message Function Overview
5.1 Basic FIXML Allocation Messages
There are four main FIXML message types used to complete the allocation and claiming of trades:
AllocInstrctnAlert (Allocation Instruction Alert)
o The Group Summary message. Alerts are used by the Clearing House to notify the
allocating firm of changes to the composition or status of allocation summary groups.
AllocInstrctn (Allocation Instruction)
o Used to submit allocation instructions by the allocating firm
o Sent by the allocating firm to update previously submitted allocation instructions
o Sent by the claim firm to request that a claimed allocation be sub-allocated or allocated to a
3rd-party
AllocRpt (Allocation Report)
o Used exclusively by the Clearing System to notify allocating and claiming firms of the
creation of allocations
o Sent whenever the status or information on an allocation changes
AllocRptAck (Allocation Report Acknowledgment)
o Used by the claiming firm, in response to an Allocation Report from the Clearing System, to
accept or reject an allocation
Below are the basic rules for the usage of the four types of allocation messages:
1. Reports are outbound from Clearing House only.
2. Instructions are inbound from Giveup firm only
3. Alerts are outbound from Clearing House only and are used only to advise of group updates
4. AllocStatus is only provided by the Clearing House
5. AllocType and AllocReportType are bi-directional and used to indicate the business purpose of a
message.
In this section we will describe in detail how to properly form these FIXML message types in order to
accurately communicate allocation instructions and responses.
Page 21 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
5.2 Message Function to Message Type mapping
Message
Function
(GAPI Msg)
FIX 4.4
Message Type TransTyp
(Allocation
Trans
Type)
Stat
(Allocation Status
required for
Allocation Alerts and
Reports)
Typ (Alloc Type
required for
Instrctn)
RptTyp
(Allocation Report
required for
Report)
Sent by Received
by
1. COMPLETE GROUP
(Complete group and the attribute Typ value of “12”is applicable only to Average Pricing Messaging. Transfers and ACS will always
have Typ=”13”.)
1a. Create
Group (GS)
AllocInstrctn 0=New,
1=Replace,
2=Cancel
13 -
GroupComplete,
12 -
GroupIncomplete
Give-up
firm
Clearing
House
1b.
Summary
Notice
(GSA)
AllocInstrctnAlert 0=New,
1=Replace,
2=Cancel
6 – AllocationPending 13 -
GroupComplete,
12 -
GroupIncomplete
Clearing
House
Give-up
firm
2. CREATE GROUP (INITIATED VIA TRADE CAPTURE)
2a.
Summary
Notice
(GSA)
AllocInstrctnAlert 0=New,
1=Replace,
2=Cancel
6 – AllocationPending 13 -
GroupComplete,
12 -
GroupIncomplete
Clearing
House
Give-up
firm
3. CREATE ALLOCATION
3a.
Allocation
(GA)
AllocInstrctn 0=New 2 - Preliminary
Give-up
firm
Clearing
House
3b.
Allocation
Alert (GAA)
AllocRpt 0=New 3 – Received (in
Clearing System)
11-AcceptPending Clearing
House
Carry
Firm
3c.
Allocation
Confirmation
(GAC)
AllocRpt 0=New 3 – Received (in
Clearing System)
1 - Block Level Reject
2 - Account Level Rej
2-Preliminary Clearing
House
Give-up
firm
4. CANCEL/UPDATE ALLOCATION
4a. Update
Allocation
(GA Chg)
AllocInstrctn 1=Replace,
2=Cancel
2 - Preliminary
Give-up
firm
Clearing
House
4b. Update
Allocation
Alert (GAA
Chg/Del)
AllocRpt 1=Replace,
2=Cancel
3 – Received (in
Clearing System)
11-AcceptPending Clearing
House
Carry
Firm
4c. Update
Allocation
Confirmation
(GAC)
AllocRpt 1=Replace,
2=Cancel
3 – Received (in
Clearing System)
1 - Block Level Reject
2 - Account Level Rej
2-Preliminary Clearing
House
Give-up
firm
5. ACCEPT ALLOCATION
5a. Claim or
Reject (GC)
AllocRptAck 0=New 9 - Accept, 10 -
Reject
Carry
Firm
Clearing
House
5b.
Claim/Reject
Alert (GCA)
AllocRpt 0=New 0–Accepted (in Clearing
System)
9 - Accept, 10 -
Reject
Clearing
House
Give-up
Firm
5c.
Claim/Reject
Confirmation
(GCC)
AllocRpt 0=New 0–Accepted (in Clearing
System)
12=Complete Clearing
House
Carry
Firm
Page 22 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Message
Function FIX 4.4
Message
Type
TransTyp
(Allocation
Trans Type)
Stat
(Allocation
Status
required for
Ack and
Report)
Typ
(Alloc
Type
required
for
Instrctn)
RptTyp
(Allocation Report
required for Report)
Sent by Received
by
6. UPDATE ACCEPTED ALLOCATION
6a. Update
Allocation (GC
Chg)
AllocRptAck 1=Replace 8 - Request Carry Firm Clearing
House
6b. Update
Allocation
Confirmation
(GCC)
AllocRPT 1=Replace 0–Accepted
(in Clearing
System)
1 - Rejected
(in Clearing
System)
New Attribute,
12=Complete
Clearing
House
Carry Firm
7. SUB-ALLOCATE ACCEPTED ALLOCATION
7a.
SubAllocation
(GC Chg)
AllocInstrctn 1-Replace 8 - Request Carry Firm Clearing
House
7b. Update
Allocation
Confirmation
(GCC)
AllocRpt 1-Replace 3-Received 2-Preliminary Clearing
House
Carry Firm*
*Carry Firm becomes a Give-up firm--reference Create Group and Create Allocation
8. SIMULTANEOUSLY ACCEPT AND GIVE-UP ALLOCATION
8a. Third-party
Allocation with
Claim (GC Chg)
AllocRptAck 0=New 12 - Accept, 13 - Reject Carry Firm Clearing
House
8b. Claim Alert
(GCA) (sent to
original give-up
firm)
AllocRpt 0=New 0–Accepted
(in Clearing
System)
9 - Accept, 10 - Reject Clearing
House
Give-up
Firm
8c. Claim
Confirmation
(GCC)
AllocRpt 0=New 3-Received 2 - Preliminary Clearing
House
Carry Firm*
*Carry Firm becomes a Give-up firm--reference Create Group and Create Allocation
9. REVERSE ALLOCATION
9a. Reversal AllocInstrctn 6=Reversal 8 -
Request Initiating
Firm
Clearing
House
9b. Reversal
Confirmation
AllocRpt 6=Reversal 3 – Received 8 - Request Clearing
House
Initiating
Firm
9c. Reversal
Alert
AllocRpt 6=Reversal 3 – Received 14 - ReversalPending Clearing
House
Responding
Firm
10. ACCEPT/REJECT REVERSE ALLOCATION REQUEST
10a. Accept or
Reject Reversal
AllocRptAck 6=Reversal 9 - Accept, 10 - Reject Responding
Firm
Clearing
House
10b.
Accept/Reject
Reversal Alert
AllocRpt 6=Reversal 0–Accepted;
1-Rejected
9 - Accept, 10 - Reject Clearing
House
Initiating
Firm
10c. Accept
Reversal
Confirmation
AllocRpt 6=Reversal 0–Accepted,
1-- Rejected
12=Complete Clearing
House
Responding
Firm
Page 23 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
5.3 Group Summary Alerts
When a trade is marked for allocation, a new allocation group is created or the trade is added to an existing
group. Each time a new trade is added to an allocation group, new or existing, the allocating firm receives a
FIXML group summary alert message, “AllocInstrctnAlert”. One of the key attributes in a group summary alert
message is the “TransTyp”. When a new group is created this attribute will have the enumeration of ‘0’ which
means ‘New’. When a trade is added to an existing allocation group the group summary alert TransTyp will
be set to ‘1’ or ‘Replace’. Average price allocation group summary alerts will also contain the allocating firm
assigned average price group id, designated by the attribute ‘ID’ and the clearing assigned group id
designated by the attribute ‘ID2’. The attribute value for ‘ID’,will be assigned by the clearing system if not
assigned by the firm. Also, ACS groups will always have the Typ=”13” (GroupComplete), unlike APS groups
which will initially have a Typ=”12” (incomplete group) since only APS groups require completing.
Allocating Firm CME Carry Firm
Allocation Instruction
Alert
<AllocInstrctnAlert
TransTyp="0" ID=
“500001” ID2=”500001”
Qty=”3” Stat=”6”
Typ=”13” TrdDt=”2007-
02-26”
<Hdr SID=”CME”
TID=”092” TSub=”CME”
<Instrmt
SecTyp=”FUT”ID=”SP”
CFI=”FFICSO”
… />
</AllocInstrctnAlert>
Message
Function FIX Message
Type TransTyp Stat
Typ RptTyp
Sent by Received
by
Summary
Notice (GSA)
AllocInstrctnAlert 0=New
1=Replace
2=Cancel
6 –AllocationPending 13 -GroupComplete,
12-
GroupIncomplete
Clearing
House
Allocating
firm
Page 24 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
5.4 Creating Allocations
5.4.1 Allocation Instruction Messages
The allocating firm uses the FIXML Allocation Instruction (AllocInstrctn) message type to submit allocation
instructions. The clearing system confirms all AllocInstrctn messages with the FIXML Allocation Report
(AllocRpt) message. The allocating firm must supply the clearing system assigned group id (ID2) and firm
assigned group id (ID) on allocation instructions. The allocating firm places the carry or claim firm
information in the Allocation (Alloc) block. The attribute “Typ” should equal “2” on the inbound messages.
Allocating Firm CME Carry Firm
Allocation Instruction
<AllocInstrctn ID=”500001”
ID2=”500001” TransTyp="0"
TrdTyp="0" Typ=”2” Qty=”3”
TrdDt=”2007-02-26”
<Instrmt ID=”SP”
CFI=”FFICSO”
SecTyp=”FUT”
… />
<Pty ID=”092” …/>
….
<Alloc Qty=”3”
<Pty ID=”CME” R=”22”/>
<Pty ID=”###” R=”1”/>
… </AllocInstrctn>
Allocation Report
<AllocRpt
RptID=”500001”
ID2=”500001”
TransTyp="0" Stat=”3”
RptTyp = “2” Qty=”3”
TrdDt=”2007-02-26”
<Hdr SID=”CME”
TID=”092”
TSub=”CME”..../>
<Instrmt ID=”SP”
CFI=”FFICSO”
SecTyp=”FUT”
… />
<Pty ID=”092” R=”1” …/>
….
<Alloc
IndAllocID2=”500002”
<Pty ID=”CME” R=22”/>
<Pty ID=”###” R=”1”/>
</AllocRpt>
Message
Function FIX Message
Type TransTyp Stat
Typ RptTyp
Sent by Received
by
Allocation (GA) AllocInstrctn 0=New 2 - Preliminary
Allocating
firm
Clearing
House
Allocation
Confirmation
(GAC)
AllocRpt 0=New 3 – Received (in
Clearing System)
1 - Block Level Reject
2 - Account Level Reject
2-
Preliminary
Clearing
House
Give-up firm
Page 25 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Page 26 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
5.4.2 Specific or Generic for Average Price Allocations
For average price allocations, the allocating firms can submit allocations at a Generic level or at a Specific
Level. The value necessary to differentiate between a Generic and Specific allocation instruction is the
clearing system assigned group id, “ID2”. Generic allocations will be applied to as many specific groups as
necessary to satisfy the allocation instruction. Generic allocations will be confirmed immediately by the
clearing system but Specific allocation instruction confirms will not be sent to the allocating firm until the
Generic group is completed. Furthermore, no Specific allocation instructions will be sent to the carry firm
until the Generic group is completed.
Allocating Firm CME Carry Firm
Allocation Instrctn
<AllocInstrctn ID=”3001”
ID2=”3002” Typ=”2”
TransTyp=”0” Qty=”2”
TrdDt=”2005-05-16”
<Hdr SSub=”CME”
<Instrmt ID=”SP”
CFI=”FFICSO”
SecTyp=”FUT”
… />
<Pty ID=”092” R=”1”/>
….
<Alloc
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
… </AllocInstrctn>
Message
Function FIX Message
Type TransTyp Stat Typ RptTyp Sent by Received
by
Allocation (GA) AllocInstrctn 0=New 2 - Preliminary
Allocating
firm
Clearing
House
Allocation Alert
(GAA)
AllocRpt 0=New 3 – Received 11-AcceptPending Clearing
House
Carry Firm
Allocation
Confirmation
(GAC)
AllocRpt 0=New 3 – Received
1 - Block Level
Reject
2 - Account
Level Rej
2-Preliminary Clearing
House
Allocating
firm
Page 27 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Allocation Report
<AllocRpt RptID=”10001”
ID2=”3002” TransTyp="0"
Stat=”3”
RptTyp = “2” Qty=”2”
TrdDt=”2005-05-16”
<Hdr SID=”CME”
TID=”092” TSub=”CME” …
/>
..
<Instrmt ID=”SP”
CFI=”FFICSO”
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500002”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
</AllocRpt>
Allocation Report
<AllocRpt RptID=”111”
ID2=”111” TransTyp="0"
Stat=”3” RptTyp=”11”
Qty=”2” TrdDt=”2005-05-
16”
<Hdr SID=”CME”
TID=”092” TSub=”CME” …
/>
<Instrmt ID=”SP”
CFI=”FFICSO”
SecTyp=”FUT”
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500102”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
</AllocRpt>
5.4.3 ACS Allocations
For ACS allocations, the allocating firm must submit both the the clearing system assigned group id, “ID2”
and firm assigned (or clearing assigned) ID. Specific allocation instruction confirms will be sent to the
allocating and claim firm immediately after the clearing system has processed the message. The allocating
firm has the option the assign the AllocIndID to internally identify the allocation. The clearing system shall
assign the AllocIndID2 which must be referenced when making changes to the allocation.
Page 28 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Allocating Firm CME Carry Firm
Allocation Instrctn
<AllocInstrctn ID=”500001”
ID2=”500001” Typ=”2”
TransTyp=”0” Qty=”2”
TrdDt=”2007-02-26”
<Hdr SID=”CME” TID=”092”
TSub=”CME” …/>
<Instrmt ID=”SP”
CFI=”FFICSO”
… />
<Pty ID=”092” R=”1”/>
….
<Alloc
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
… </AllocInstrctn>
Allocation Report
<AllocRpt
RptID=”500001”
ID2=”500001”
TransTyp="0" Stat=”3”
RptTyp = “2” Qty=”2”
TrdDt=”2007-02-26”
<Hdr SID=”CME”
TID=”092” TSub=”CME”…
/>
..
<Instrmt ID=”SP”
CFI=”FFICSO”
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500002”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
</AllocRpt>
Message
Function FIX Message
Type TransTyp Stat Typ RptTyp Sent by Received
by
Allocation (GA) AllocInstrctn 0=New 2 - Preliminary
Allocating
firm
Clearing
House
Allocation Alert
(GAA)
AllocRpt 0=New 3 – Received 11-AcceptPending Clearing
House
Carry Firm
Allocation
Confirmation
(GAC)
AllocRpt 0=New 3 – Received
1 - Block Level
Reject
2-Preliminary Clearing
House
Allocating
firm
Page 29 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Allocation Report
<AllocRpt
RptID=”500010”
ID=”500001”
TransTyp="0" Stat=”3”
RptTyp=”11” Qty=”2”
TrdDt=”2007-02-26”
<Hdr SID=”CME”
TID=”092” TSub=”CME”…
/>
<Instrmt ID=”SP”
CFI=”FFICSO”
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500102”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
</AllocRpt>
Page 30 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
5.5 Completing Average Price Groups (Not applicable to ACS groups)
The Allocating firm can complete a Generic group by sending a group complete message. Once a Generic
group is completed all previously submitted allocation instructions are canceled and Specific allocation
instructions are transmitted to the carry firm and acknowledgements are sent to the allocating firm.
Allocating Firm CME Carry Firm
Allocation Instruction
<AllocInstrctn
TransTyp="1" ID=”2000”
ID2=”2001” Typ=”13”
Qty=”2” TrdDt=”2005-03-16”
<Hdr SSub=”CME” … />
<Instrmt SecTyp=”FUT”
… />
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
</AllocInstrctn>
Allocation Instruction
Alert
<AllocInstrctnAlert
TransTyp="1"
I
D=”2000”
ID2=”2001” Stat=”3”
Typ=”13” Qty=”2”
TrdDt=”2005-03-16”
<Hdr D2ID=”092”
TID=”092” TSub=”CME” …
/>
<Instrmt
CFI=”FFICSO”SecTyp=”FUT
… />
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
</AllocInstrctnAlert>
Message
Function FIX Message
Type TransTyp Stat Typ Sent by Received by
Create
Group
(GS)
AllocInstrctn 0=New
1=Replace
2=Cancel
13 - GroupComplete,
12 - GroupIncomplete
Allocating
firm
Clearing House
Summary
Notice
(GSA)
AllocInstrctnAlert 0=New
1=Replace
2=Cancel
6 – AllocationPending 13 - GroupComplete,
12 - GroupIncomplete
Clearing
House
Allocating firm
Page 31 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
5.6 Claiming Allocation Instructions
Once a carry or claiming firm receives an allocation report they may respond by either claiming or rejecting the
allocation using the Allocation Report Acknowledgement (AllocRptAck) message. The claim firm uses a
RptTyp=“9” to accept and a RptTyp= “10” to reject the allocation. When the clearing system receives a valid
accept or reject request an allocation report is generated for both the allocating and claim firm. The new
status of the allocation is communicated using the Allocation Status attribute (Stat) using the enumeration of
“0” (Accepted) or “1” (Rejected). For ACS claiming instructions, the RptID and AllocIndID2 must be present
(the ID is not sent to the claim firm for ACS allocations).
Allocating Firm CME Carry Firm
Allocation Report Ack
<AllocRptAck
RptID=”500010” ID=”500001
TransTyp="0" RptTyp=”9”
<Hdr SSub=”CME” … />
….
<<Instrmt SecTyp=”FUT”
… />
<Pty ID….. />
<AllAllocAck
IndAllocID2=”500022”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
… </AllocRptAck>
Allocation Report
<AllocRpt
RptID=”500010”
ID2=”500001”
TransTyp="0" Stat=”0”
RptTyp= “9” Qty=”2”
TrdDt=”2005-03-16”
<Hdr TID=”###”
TSub=”CME” …/>
<Instrmt
CFI=”FFICSO”SecTyp=”FUT
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500001”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
</AllocRpt>
Message
Function FIX Message
Type TransTyp Stat Typ RptTyp Sent by Received
by
Claim or Reject
(GC)
AllocRptAck 0=New 9 – Accept
10 - Reject
Carry
Firm
Clearing
House
Claim/Reject Alert
(GCA)
AllocRpt 0=New 0–Accepted 9 – Accept
10 - Reject
Clearing
House
Allocating
Firm
Claim/Reject
Confirmation
(GCC)
AllocRpt 0=New 0–Accepted 12=Complete Clearing
House
Carry Firm
Page 32 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Allocation Report
<AllocRpt
RptID=”500010”
TransTyp="0" Stat=”0”
RptTyp= “12” Qty=”2”
TrdDt=”2007-02-26”
<Hdr TID=”###”
TSub=”CME” … />
<Instrmt
CFI=”FFICSO”SecTyp=”FUT
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500102”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
</AllocRpt>
Page 33 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
5.7 Updating Pending or Rejected Allocations
Before an allocation has been claimed or when it has been rejected, the allocating firm can submit
changes or delete the allocation. The allocating firm uses an Allocation Instruction message
(AllocInstrctn) with the TransTyp attribute and enumeration of “1” for Replace to communicate an
update and “2” for Cancel to communicate a delete request. Once a valid update or cancel request is
received the Clearing System will send an allocation report to both the allocating firm and the claim
firm to communicate the change to the allocation. When updating specific allocations from average
price allocation groups the allocating firm must indicate the Clearing System assigned Allocation ID
(ID2).
Allocating Firm CME Carry Firm
Allocation Instruction
<AllocInstrctn
TransTyp="1" ID=”110”
ID2=”500010” Typ=”2”
Qty=”7” TrdDt=”2007-02-26”
<Hdr SSub=”CME” … />
<Instrmt SecTyp=”FUT”
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500001”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
… </AllocInstrctn>
Message
Function FIX Message
Type TransTyp Stat Typ RptTyp Sent by Received
by
Update
Allocation (GA
Chg)
AllocInstrctn 1=Replace,
2=Cancel
2 - Preliminary
Allocating
firm
Clearing
House
Update
Allocation Alert
(GAA Chg/Del)
AllocRpt 1=Replace,
2=Cancel
3 – Received 11-AcceptPending Clearing
House
Carry Firm
Update
Allocation
Confirmation
(GAC)
AllocRpt 1=Replace,
2=Cancel
3 – Received
1 - Block
Level Reject
2 - Account
Level Reject
2-Preliminary Clearing
House
Allocating
firm
Page 34 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Allocation Report
<AllocRpt RptID=”10001”
ID2=”500010”
TransTyp="1" Stat=”3”
RptTyp= “2” Qty=”7”
TrdDt=2007-02-26”
<Hdr TID=”###”
TSub=”CME”… />
<Instrmt
CFI=”FFICSO”SecTyp=”FUT
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500001”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
</AllocRpt>
Allocation Report
<AllocRpt RptID=”10001”
TransTyp="1" Stat=”3”
RptTyp= “11” Qty=”7”
TrdDt=”2007-02-26”
<Hdr TID=”###”
TSub=”CME” … />
<Instrmt
CFI=”FFICSO”SecTyp=”FUT
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500102”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
</AllocRpt>
Page 35 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
5.8 Updating Accepted Allocations
The Carry-Firm can update non-critical fields after the allocation has been claimed. The carry firm submits
another Allocation Report
Allocating Firm CME Carry Firm
Allocation Report Ack
<AllocRptAck
R
ptID=”10001” ID=”2000”
ID2=”500010”
S
tat=”0”
TransTyp="1" RptTyp= “8”
<Hdr SSub=”CME” … />
….
<Instrmt
CFI=”FFICSO”SecTyp=”FUT”
… />
<Pty ID….. />
<AllocAck
IndAllocID2=”500102”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
… </AllocRptAck>
Allocation Report
<AllocRpt
RptID=”10001”
TransTyp="1" Stat=”0”
RptTyp= “12” Qty=”7”
TrdDt=”2007-02-26”
<Hdr TID=”###”
TSub=”CME”… />
<Instrmt
CFI=”FFICSO”SecTyp=”FUT
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500102”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
</AllocRpt>
Message
Function FIX Message
Type TransTyp Stat Typ RptTyp Sent by Received
by
Update Allocation
(GC Chg)
AllocRptAck 1=Replace 8 - Request Carry
Firm
Clearing
House
Update Allocation
Confirmation
(GCC)
AllocRpt 1=Replace 0–Accepted (in
Clearing System)
1 - Rejected (in
Clearing System)
12=Complete Clearing
House
Carry Firm
Page 36 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
5.9 Reversing or Releasing Accepted Allocations
The term reverse and release are synonymous in FIXML but for the initial implementation of FIXML release
and reversal will be initiated and processed the same way that Basic allocation releases and reversals are
handled today with TREX. The carry firm initiates releases and they are only possible if the allocation has
not been accepted and cleared during an end of day clearing cycle. Once an allocation is no longer eligible
for release it can only be reversed, and reversals are initiated by the allocating firm.
5.9.1 Release/Reverse Instructions
A carry firm can initiate a Release after accepting an allocation, but only on the same Clearing Business
date on which the allocation was accepted. An allocating firm can initiate a Reversal on the next Clearing
Business date after the allocation has been claimed by the carry firm.
Initiating Firm CME Responding Firm
Allocation Instruction
<AllocInstrctn
TransTyp="6" ID=”2000”
ID2=”2001” Typ=”8” Qty=”7”
TrdDt=”2007-02-26”
<Hdr SSub=”CME” … />
….
<Instrmt SecTyp=”FUT”
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500001”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
… </AllocInstrctn>
Allocation Report
<AllocRpt
R
ptID=”10001”
TransTyp="6" Stat=”3”
RptTyp=”8” ID2=”2001”
Qty=”7”
TrdDt=”2007-02-26”
<Hdr TID=”###”
TSub=”CME”… />
….
<Instrmt
CFI=”FFICSO”SecTyp=”FUT
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500001”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
… </ AllocRpt >
Message
Function FIX Message
Type TransTyp Stat Typ RptTyp Sent by Received by
Reversal AllocInstrctn 6=Reversal 8 -
Request
Initiating
Firm
Clearing
House
Reversal
Confirmation
AllocRpt 6=Reversal 3 – Received 8 - Request Clearing
House
Initiating
Firm
Reversal Alert AllocRpt 6=Reversal 3 – Received 14 – Reversal Pending Clearing
House
Responding
Firm
Page 37 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Allocation Report
<AllocRpt
RptID=”10001”
TransTyp="6" Stat=”3”
RptTyp= “14” Qty=”7”
TrdDt=”2007-02-26”
<Hdr TID=”###”
TSub=”CME” … />
….
<Instrmt
CFI=”FFICSO”SecTyp=”FUT
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500102”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
… </ AllocRpt>
5.9.2 Accept / Reject Reversals (Release)
Before the initiating firm’s reversal or release request can be completed the counter-party to the allocation
must respond to the request. The responding firm uses the Allocation Report Acknowledgement to confirm
or reject a reversal or release request.
Initiating Firm CME Responding Firm
Allocation Report Ack
<AllocRptAck
R
ptID=”10001” ID=”2000”
TransTyp="6" Typ=”9”
TrdDt=”2007-02-26”
<Hdr SSub=”CME” … />
….
<Instrmt CFI=”FFICSO” … />
<Pty ID….. />
<AllocAck
IndAllocID2=”500102”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
… </ AllocRptAck >
Message
Function FIX Message
Type TransTyp Stat Typ RptTyp Sent by Received by
Accept or Reject
Reversal
AllocRptAck 6=Reversal 9 – Accept
10 - Reject
Responding
Firm
Clearing
House
Accept/Reject
Reversal Alert
AllocRpt 6=Reversal 0–Accepted
1-Rejected
9 – Accept
10 - Reject
Clearing
House
Initiating Firm
Accept Reversal
Confirmation
AllocRpt 6=Reversal 0–Accepted
1-- Rejected
12=Complete Clearing
House
Responding
Firm
Page 38 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Allocation Report
<AllocRpt
R
ptID=”10001”
TransTyp="6" Stat=”0
RptTyp=”12” Qty=”7”
TrdDt=”2007-02-26”
<Hdr “TID=”###”
TSub=”CME” … />
….
<Instrmt
CFI=”FFICSO”SecTyp=”FUT
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500102”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
… </AllocRpt>
Allocation Report
<AllocRpt RptID=”10001”
TransTyp="6" Stat=”0”
RptTyp= “9”
ID2=”2001” Qty=”7”
TrdDt=”2007-02-26”
<Hdr TID=”###”
TSub=”CME” … />
….
<Instrmt
SecTyp=”FUT”CFI=”FFICSO
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500001”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME”
R=”22”/>
… </AllocRpt>
Page 39 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
5.10 Sub Allocations/Third Party Allocations of Accepted Allocations
Once an allocation has been accepted the claim firm can sub-allocate the allocation to different accounts or
allocate it to a third-party. The Carry-Firm uses the Allocation Instruction message to communicate this to the
Clearing System. Once a valid sub-allocation or third-party allocation request has been received by the
Clearing System from a claiming firm, the request is acknowledged and then a group summary alert and
allocation reports are generated just as if the claim firm was initiating the allocation of a trade.
Sub Allocating Firm CME Carry Firm
Allocation Instruction
<AllocInstrctn
I
D=”2001”
TransTyp="1" Typ=”8”
Qty=”7” TrdDt=”2007-02-26”
….
<Hdr SSub=”CME” … />
<Instrmt
SecTyp=”FUT”CFI=”FFICSO”
… />
<Pty ID….. />
<Alloc
IndAllocID2=”500028”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
<Pty ID=”G1234” R=”24”>
<Sub ID=”1” Typ=”26”/>
</Pty>
</Alloc>
<Alloc Typ=”1” Qty=”90”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
<Pty ID=”G4567” R=”24”>
<Sub ID=”1” Typ=”26”/>
</Pty>
</Alloc>
… </AllocInstrctn >
Message
Function FIX Message
Type TransTyp Stat Typ RptTyp Sent by Received
by
SubAllocation
(GU)
AllocInstrctn 1-Replace 8 - Request Carry
Firm
Clearing
House
Update
Allocation
Confirmation
(GUC)
AllocRpt 1-Replace 3-Received 2-Preliminary Clearing
House
Carry
Firm*
Summary
Notice (GSA)
AllocInstrctnAlert 0=New,
1=Replace,
2=Cancel
6 –
AllocationPending
13 -GroupComplete,
12 -GroupIncomplete
Clearing
House
Give-up
firm
Allocation
Alert (GAA)
AllocRpt 0=New 3 – Received (in
Clearing System)
11-AcceptPending Clearing
House
Carry
Firm
Allocation
Confirmation
(GAC)
AllocRpt 0=New 3 – Received (in
Clearing System)
1 - Block Level
Reject
2 - Account Level
Reject
2-Preliminary Clearing
House
Give-up
firm
Page 40 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Allocation Report
<AllocRpt RptID=”10001”
TransTyp="1" Stat=”3”
RptTyp= “2” Qty=”7”
TrdDt=”2007-02-26”
<Hdr TID=”###” TSub=”CME” …
/>
<Instrmt
SecTyp=”FUT”CFI=”FFICSO”
… />
<Pty ID….. />
<Alloc
IndAllocID=”9999”
IndAllocID2=”8888”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
<Pty ID=”G1234” R=”24”>
<Sub ID=”1” Typ=”26”/>
</Pty>
</Alloc>
<Alloc Typ=”15” Qty=”90”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
<Pty ID=”G4567” R=”24”>
<Sub ID=”1” Typ=”26”/>
</Pty>
</Alloc>
</AllocRpt>
Allocation Instruction Alert
<AllocInstrctnAlert
ID=”2000” TransTyp="0"
Stat=“6” Typ=”12” ID2=”222”
Qty=”7” TrdDt=”2007-02-26”
<Hdr TID=”###” TSub=”CME”…
/>
…….
<Instrmt
SecTyp=”FUT”CFI=”FFICSO”
… />
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
</AllocInstrctnAlert>
Page 41 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Allocation Report
<AllocRpt RptID=”10001”
ID2=”222” TransTyp="0"
Stat=”3” RptTyp=”11”
Qty=”90” TrdDt=”2007-02-26”
<Hdr TID=”###” TSub=”CME”…
/>
<Instrmt
SecTyp=”FUT”CFI=”FFICSO”
… />
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
<Pty ID=”G1234” R=”24”>
<Sub ID=”1” Typ=”26”/>
</Pty>
…….
<Alloc IndAllocID2=”7777”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
<Pty ID=”G4567” R=”24”>
<Sub ID=”1” Typ=”26”/>
</Pty>
</AllocRpt>
Allocation Report
<AllocInstrctn RptID=”10001”
ID2=”333” TransTyp="0"
Stat=”3” RptTyp=”2” Qty=”7”
TrdDt=”2007-02-26”
<Hdr TID=”###” TSub=”CME”…
/>
<Instrmt
SecTyp=”FUT”CFI=”FFICSO”
… />
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=”22”/>
<Pty ID=”G1234” R=”24”>
<Sub ID=”1” Typ=”26”/>
</Pty>
<Alloc IndAllocID2=”6666”
<Pty ID=”###” R=”1”/>
<Pty ID=”CME” R=22”/>
</AllocRpt>
Page 42 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
6 Components of APS and ACS FIXML Messages
6.1 Key Elements and Attributes
6.1.1 Allocation Transaction Type (TransTyp)
The Allocation Trans Type signifies the action to be performed on the message. For example a
TransTyp of “New” in an Allocation Instruction from a firm implies the firm is sending a new
Allocation. The firm sending the message sets this attribute, and the Clearing System echoes it
back on its Confirms and Alerts. For list of all the values used in the API refer to Table 8.1.
6.1.2 Allocation Type or Allocation Report Type (Typ and RptTyp)
The Allocation Type and Allocation Report Type convey the business purpose of the
message. Either the Allocation or Allocation Report type is required on inbound
messages from firms.
6.1.3 Allocation Status (Stat)
The Allocation status in the message implies the status of the message. This attribute is set by the
Clearing System on its alerts and confirms to the Firms. For example the clearing system would
send a status of “Rejected” in response to an allocation that did not have the right Product ID. For
list of all the values used in the API refer to Table 8.1.
6.1.4 ID/ID2 Usage
The ID and ID2 denote the group ID of APS or ACS groups. ID value is assigned to trades by the
allocating firm and the ID2 value is assigned by the clearing system to all Basic as well as Generic
and Specific allocation groups. The ID is the firm’s internal group ID. If the firm sends this ID, it is
echoed back to the firms on all its subsequent confirms. The ID2 is generated by the Clearing
System and sent to the firm. The ID2 sent by the Clearing System is associated with the context for
the message. For example if the Clearing System is sending a Group Summary Alert for a Specific
Group, the ID2 is the Specific Group ID.
<AllocInstrctnAlert
………..
ID = "0" (Firm Supplied APS Group ID)
ID2 = "500900" (Clearing Supplied Specific Group ID)
TrdTyp = "0" (Trade Type)
TrdSubTyp = "8" (Trade Sub Type – Spread Leg)
MLegRptTyp = "2" (Single Leg of a Multi Leg Instrument)
SesSub = "P" (Venue - Pit)
………
</AllocInstrctnAlert>
In the above example, the presence of fee-specific information signifies that ID2 is a Specific Group ID.
Note: It is extremely important for the firm to send back the ID2 attribute sent by the Clearing System
to refer to the Group.
6.1.5 Individual Allocation ID(s) Usage
The Individual Allocation Id in the <Alloc> Block is used to store the allocation Id of the allocation. Again, the
API allows the firm to generate its own internal Allocation Id and send it in IndAllocID. The Clearing system
generated Allocation Id will be sent back in the IndAllocID2 attribute. Additionally if the firm had sent in an
Allocation ID, it will be echoed back to the firm.
Page 43 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
<AllocInstrctn
………..
ID = "1000" (Firm Supplied APS Group ID)
ID2 = "2001" (Clearing Supplied Specific Group ID)
TrdTyp = "0" (Trade Type)
TrdSubTyp = "8" (Trade Sub Type – Spread Leg)
MLegRptTyp = "2" (Single Leg of a Multi Leg Instrument)
SesSub = "P" (Venue - Pit)
………
<Alloc
IndAllocID = "10000" (Firm supplied Allocation ID)
IndAllocID2 = "500001" (Clearing system generated
Allocation ID)
……
</Alloc>
</AllocInstrctn>
In the above example, the presence of fee-specific information signifies that ID2 is a Specific Group ID. The
Allocation ID in the <Alloc> Block is the specific Allocation ID.
Note: It is extremely important for the firm to send back the Group ID (ID2) attribute and the
Allocation ID (IndAllocID2) while referring to the allocations for ACS and APS.
6.1.6 Average Price (AvgPx)
The Average Price is the running average price of all the trades in the Group. For ACS groups, this value will
remain the same since price is one of the grouping criteria. This value is calculated by the clearing system
and sent to the firms on all its alerts and confirms. The Average Price sent by the firms will be ignored by the
Clearing system.
6.1.7 Rounded Price (RndPx- For APS Only)
The Rounded Price is the average price rounded to the contract tick value
6.1.8 Message Event Source (MsgEvtSrc)
The Message Event Source identifies the Source of the message. For example if the firm is sending the
message the attribute is set to “MQM”. If the exchange is sending the message, this is set to “CMESys”.
6.1.9 Sender ID (SID)
The Sender ID (SID) attribute in the Header (Hdr) element is a key attribute in identifying the sender of the
message. This is required in all the APS messages. The firm sending the message will identify itself in the
message. The exchange will send back its ID in the SID attribute on all its messages.
<Hdr
Snt = "2007-02-26T08:20:00-05:00" (Message Time)
SID = "560"/> (560 is the Firm ID)
6.1.10 Amount Block (For APS Only)
The purpose of the Amount Block in the APS Allocation messages is primarily for storing the Residual
amount.
The Amount Block consists of the following Attributes.
Amount Type (Typ) identifies the Amount type stored in the Block. In APS messages, the Typ has a value of
“CRES”, the Cash Residual Amount.
Page 44 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Amount (Amt) identifies the actual Residual Amount. This is equal to the AvgPx - RndPx
Currency (Ccy) identifies the Currency the residual price is represented in.
<Amt
Typ="CRES" (Cash Residual Amount Type)
Amt="237.53" (Residual Amount )
Ccy="USD" /> (Currency)
6.1.11 Parties Block
The purpose of the Parties Block is to provide at, standard way of expressing Firm and Account information
in API Messages. The Parties block The Parties Block consists of the following attributes and elements:
Party Role, Party ID, Party Sub ID, and Party ID Source.
Party Role is a static number used to express the type of party, for example Clearing Organization, Clearing
Firm, etc.
Party ID is the value representing the party, for example, “CME”, “560”, etc.
Party Sub Element
Party Sub ID is used to express information, which further qualifies the party such as origin for the
Customer Account.
Party Sub ID Typ identifies the type of qualification of the Party.
Valid values for Party Role and Party Sub Type used in the API can be found in Table 8.1 below.
In APS messages, the Parties Block in the main body of the message signifies the Give-up or the Executing
Firm.
<Pty ID="CME" R="22" /> (Give-up Exchange)
<Pty ID="CME" R="21" /> (Give-up Clearing Org)
<Pty ID="560" R="1" > (Give-up Trading Member Firm)
<Sub ID="1" Typ="26" /> (Give-up Firm Origin)
</Pty>
In this example, The Exchange is CME, the Clearing Organization is CME, the Give-up Firm is
560, and the origin for the Give-up firm is of Customer segregation.
If the Parties Block is present in the Alloc Block it signifies the Carry Firm.
<Alloc>
<Pty ID="CME" R="22" /> (Carry Firm Exchange)
<Pty ID="560" R="1" /> (Carry Firm)
<Pty ID="GA123" R="24"> (Carry Account)
<Sub ID="1" Typ="26" /> (Carry Account
Origin)
</Pty>
</Alloc>
Page 45 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
6.1.12 CFI Code – Classification of Financial Instruments
6.1.12.1.1 FIX Definition of CFI Code
The CFI Code field was added to the FIX Protocol in an attempt to provide a standards-based source of
security type values by using values defined in ISO 10962 standards: Classification of Financial Instruments
(CFI code).
The ISO 10962 standard defines a 6-character code in which each character’s position value carries a
special significance (attribute) and set of values. Note that "X" represents an unspecified or unknown
attribute, thus it is not always necessary to specify every attribute (character position value).
6.1.12.2 Definition for Options (code defined by character position):
Char 1
Product
Type
Char 2
Put/Call Char 3
Option
Style
Char 4
Underlying
Char 5
Delivery
Method
Char 6
Standard/Non-
Std
(flexible)
O=Option C=Call
P=Put
M=Other
X=Unkno
wn(n/a)
A=America
n
E=Europea
n
X=Unknow
n(n/a)
B=Basket
S=Stock-Equities
D=Interest
rate/notional debt
sec
T=Commodiites
C=Currencies
I=Indices
O=Options
F=Futures
W=Swaps
M=Other
X=Unknown(n/a)
P=Physical
C=Cash
X=Unknow
n(n/a)
S=Standardized
terms (maturity
date, strike price,
contract size)
N=Non-
standardized
terms
X=Unknown(n/a)
Examples:
OCXXXS Standardized Call Option
OPXXXS Standardized Put Option
OCXFXS Standardized Call Option on a
Future
OPXFXS Standardized Put Option on a
Future
OCEFCN Nonstandard (flex) call option on
future with european style
expiration and cash delivery
OPAFPN Nonstandard (flex) put option on
future with american style expiration
and physical delivery
OPXSPN Nonstandard (flex) put option on a
stock with physical delivery (the
expiration style is not specified – so
is assumed to default to the market
standard for flex options).
Page 46 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
OCEICN Nonstandard (flex) call option on an
index with european style expiration
and cash delivery
6.1.12.3 Definition for Futures (code defined by character position):
Char 1
Product
Type
Char 2
Product
Group
Char 3
Underlying Char 4
Delivery
Method
Char 5
Standard/Non-Std
(flexible)
Char 6
N/A
Undefined
F=Futur
e
F=Financial
Futures
C=Commo
dity
Futures
M=Others
X=Unknow
n(n/a)
A=Agriculture,
forestry, and fishing
B=Basket
S=Stock-Equities
(for financial future)
or Services (for
commodities
futures)
D=Interest
rate/notional debt
sec
C=Currencies
I=Indices (for
financial futures ) or
Industrial Products
(for commodities
futures)
O=Options
F=Futures
W=Swaps
M=Other
X=Unknown(n/a)
P=Physical
C=Cash
X=Unknow
n(n/a)
S=Standardized
terms (maturity
date, strike price,
contract size)
N=Non-
standardized
terms
X=Unknown(n/a)
X=Not
applicable /
undefined
Examples:
FXXXS Standardized Future
FFICN Nonstandard (flex) Financial Future
on an index with cash delivery
FCEPN Nonstandard (flex) Commodity
Future on an extraction resource
with physical delivery
FXXXN Nonstandard (flex) future – contract
type specified in symbology – not
provided in CFICode
Page 47 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7 Detailed Message Samples
In this section you can find detailed message samples for each type of FIXML allocate and claim message.
Each message has a functional label as well as the analogous TREX 2- or 3-byte message descriptor that most
closely resembles the FIXML message type.
7.1 Designating Trades for APS or ACS Allocation
7.1.1 Designating Futures trades for Allocation
As discussed throughout the user guide, an executing firm can designate a trade for allocation by appending
an allocation indicator to it as well as submitting more specific allocation information such as carry firm, carry
account, customer type indicator and fee code.
Trade Capture Report for a Future’s Trade Marked for APS Allocation (TRX)
<?xml version=”1.0” encoding=”UTF-8” ?>
<FIXML>
<TrdCaptRpt
RptID="10001" Å Trade ID (To be replaced by TrdID)
TrdTyp="0" Å Trade Type
TransTyp="0" Å TransTyp=0 (New)
TrdSubTyp=”8 Å Trade SubType (spread leg)
MLegRptTyp=”2 Å Single leg of a multi-leg instrument
LastPx="1098.00" Å Trade Price
TxnTm="2007-02-26T08:15:00" Å Execution Time (GMT/CST with an Offset)
OrdTypCD="D" Å Order Type Code
LastQty="150" Å Trade Quantity
TrdDt="2007-02-26" Å Trade Date
MsgEvtSrc=“MQM Å Message Event Source
AvgPxInd=”1 Å Average Price Indicator (For APS only)
LinkID=”1000”> Å Firm Group ID (For APS only)
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
SID=”123 Å Sender ID
SSub=”CME /> Å Sending Firm Exchange
<Instrmt
Exch="CME" Å Product Exchange
ID="SP" Å Product Code
SecTyp=”FUT Å Security Type
SubTyp=”CAL Å Spread Type
CFI="FXXXXX"
MMY="200703"/> Å Product Period
<RptSide
CustCpcty="4" Å CTI Code
Side="1" Å Buy/Sell Indicator (1=Buy)
ClOrdID=" A456721" Å Customer Order
SesID=”RTH Å Business Cycle
SesSub="P" Å Venue is Pit
InptSrc=”ETC Å Input Source is ETC
AllocInd="1” Å Marked for Allocation (Required for ACS and APS)
TmBkt="T"> Å Time Bracket
<Pty ID="CME" R="21"/> Å Clearing Org
<Pty ID="CME" R="22"/> Å Exchange
<Pty ID="123" R="1"/> Å Executing Firm
<Pty ID="ABC" R="12"/> Å Executing Trader
<Pty ID="123456" R="24"> Å Customer Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
<Pty ID="350" R="17"/> Å Opposite Firm
Page 48 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
<Pty ID="BAT" R="37"/> Å Opposite Trader
</RptSide>
</TrdCaptRpt>
</FIXML>
Trade Capture Report for a Future’s Trade Marked for ACS Allocation (TRX) With Alloction Info
<FIXML>
<TrdCaptRpt
TxnTm="2007-01-11T07:21:22-06:00" Å Execution Time (GMT/CST with an Offset)
TransTyp="2" Å TransTyp=2 (Change/Replace)
MtchStat="1" Å Match Status (Unmatched)
TrdDt="2007-01-11" Å Trade Date
TrdTyp="0" Å Trade Type
RptTyp="0" Å Trade Type
MLegRptTyp="1" Å Single leg
LastQty="1000" Å Trade Quantity
LastPx="1431.0" Å Trade Price
RptID="012502" Å Trade ID (To be replaced by TrdID)
TrdID="12502"> Å Trade ID
<Hdr
Snt="2007-01-11T07:21:22-06:00" Å Message Time
SID="770" Å Sender ID
TID="CME" /> Å Target ID
<Instrmt
Exch="CME" Å Product Exchange
ID="SP" Å Product
CFI="FXXXXX" Å CFI Code
SecTyp=”FUT Å Security Type
MMY="20070300"/> Å Product Period
<RptSide
SesSub="P" Å Venue is Pit
Side="2" Å Buy/Sell Indicator (2=Sell)
TmBkt="P" Å Time Bracket
ClOrdID="AL874492" Å Customer Order ID
OrdID="AL874492" Å Match Engine Assigned Order ID
SesID="RTH" Å Business Cycle
CustCpcty="4" Å Business Cycle
AllocInd="1"> Å Marked for Allocation
<Pty ID="CME" R="21"/> Å Clearing Organization
<Pty ID="CME" R="22"/> Å Executing Firm Exchange
<Pty ID="770" R="1"/> Å Executing Firm
<Pty ID="770" R="4"/> Å Clearing Member Firm
<Pty ID="770" R="38"/> Å Position Account
<Pty ID="HRI" R="12"/> Å Trader ID
<Pty ID="50037853" R="24"> Å Customer Report
<Sub ID="1" Typ="26"/> Å Customer Origin
</Pty>
<Alloc
IndAllocID="651" Å Optional Allocation ID (from firm)
Qty="100"> Å Allocation Quantity
<Pty ID="CME" R="22"/> Å Carry Firm Exchange
<Pty ID="770" R="1"/> Å Carry Firm
<Pty ID="CARRY1" R="24"> Å Carry Account
</Pty>
</Alloc>
<Alloc
IndAllocID="652" Å Optional Allocation ID (from firm)
Page 49 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Qty="900"> Å Allocation Quantity
<Pty ID="CME" R="22"/> Å Carry Firm Exchange
<Pty ID="770" R="1"/> Å Carry Firm
<Pty ID="CARRY2" R="24"> Å Carry Account
</Pty>
</Alloc>
</RptSide>
</TrdCaptRpt>
</FIXML>
7.1.2 Designating Options trades for Allocation
Trade Capture Report for an Option Trade Marked for Average Price Allocation (TRX)
<?xml version=”1.0” encoding=”UTF-8” ?>
<FIXML>
<TrdCaptRpt
RptID="10001" Å Trade ID
TrdTyp="0" Å TradeType
TransTyp="0" Å TransTyp=0 (New)
LastPx="1098.00" Å Trade Price
TxnTm="2007-02-26T08:15:00" Å Execution Time (GMT/CST with an Offset)
OrdTypCD="D" Å Order Type Code
LastQty="150" Å Trade Quantity
TrdDt="2007-02-26" Å Trade Date
MsgEvtSrc=“MQM Å MessageEventSource=Firm
AvgPxInd=”1 Å Average Price Indicator (For APS only)
LinkID=”1000”> Å Firm Group ID (For APS only)
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
SID=”123 Å Sender ID
SSub=”CME”/> Å Sending Firm Exchange
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
CFI="OPXXXX" Å CFI Cdoe (Option/Put)
StrkPx=”22.55 Å Strike Price
MMY="200703"/> Å ProductPeriod
<RptSide
CustCpcty="4" Å CTI Code
Side="1"
ClOrdID=" A456721"
SesID=”RTH Å Business Cycle
SesSub="P" Å Venue is Pit
InptSrc=”ETC Å Input Source is ETC
AllocInd="1” Å Marked for Allocation (Required for ACS and APS)
TmBkt="T"> Å Time Bracket
<Pty ID="CME" R="21"/> Å Clearing Org
<Pty ID="CME" R="22"/> Å Exchange
<Pty ID="123" R="1"/> Å Executing Firm
<Pty ID="ABC" R="12"/> Å Executing Trader
<Pty ID="123456" R="24"> Å Customer Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
Page 50 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
<Pty ID="350" R="17"/> Å Opposite Firm
<Pty ID="BAT" R="37"/> Å Opposite Trader
</RptSide>
</TrdCaptRpt>
</FIXML>
Page 51 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.1.3 Designating Flex Options trades for Allocation
This is an example of an options trade with Underlying specified.
Trade Capture Report for a Future’s Trade Marked for Average Price Allocation (TRX)
<?xml version=”1.0” encoding=”UTF-8” ?>
<FIXML>
<TrdCaptRpt
RptID="10001" Å Trade ID
TrdTyp="0" Å TradeType
TransTyp="0" Å TransTyp=0 (New)
LastPx="1098.00" Å Trade Price
TxnTm="2007-02-26T08:15:00" Å Execution Time (GMT/CST with an Offset)
OrdTypCD="D" Å Order Type Code
LastQty="150" Å Trade Quantity
TrdDt="2007-02-26" Å Trade Date
MsgEvtSrc=“MQM Å MessageEventSource=Firm
AvgPxInd=”1 Å Average Price Indicator (For APS only)
LinkID=”1000”> Å Firm Group ID (For APS only)
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
SID=”123 Å Sender ID
SSub=”CME” /> Å Sending Firm Exchange
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
CFI="OPXXXX" Å Product Type , Put/Call, Option Style
StrkPx=”22.55 Å Strike Price
MMY="200703"/> Å ProductPeriod
<Undly
CFI="FXXXX" Å Underlying Product Type
ID="ED" Å Underlying Product ID
MMY="200410"/> Å Underlying Period Code
<RptSide
CustCpcty="4" Å CTI Code
Side="1"
ClOrdID=" A456721"
SesID=”RTH Å Business Cycle
SesSub="P" Å Venue is Pit
InptSrc=”ETC Å Input Source is ETC
AllocInd="1” Å Marked for Allocation (
Required for ACS and APS)
TmBkt="T"> Å Time Bracket
<Pty ID="CME" R="21"/> Å Clearing Org
<Pty ID="CME" R="22"/> Å Exchange
<Pty ID="123" R="1"/> Å Executing Firm
<Pty ID="ABC" R="12"/> Å Executing Trader
<Pty ID="123456" R="24"> Å Customer Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
<Pty ID="350" R="17"/> Å Opposite Firm
<Pty ID="BAT" R="37"/> Å Opposite Trader
</RptSide>
</TrdCaptRpt>
</FIXML>
Page 52 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.2 Clearing System acknowledges the Trade
The clearing system acknowledges each trade submission with a Trade Capture Acknowledgment.
Trade Capture Report Acknowledgment for Trade Marked for Allocation (TRX)
<?xml version=”1.0” encoding=”UTF-8” ?>
<FIXML>
<TrdCaptRptAck
RptID=”10001 Å Trade ID
TransTyp="0" Å TraansTyp=) (New)
TrdRptStat=”0 Å Trade Report Status 0=Accepted
TrdTyp=”0 Å TradeType
TrdSubTyp=”8 Å TradeSubType (spread leg)
MLegRptTyp=”2 Å Single leg of a multileg instrument
LastPx=”1098.00 Å Trade Price
TxnTm=”2007-02-26T08:15:00 Å Execution Time
OrdTypCD=”D Å Order Type Code
LastQty=”150 Å Trade Quantity
BizDt=”2004-05-14 Å Clearing Business Date
TrdDt=”2007-02-26 Å Trade Date
MsgEvtSrc=“CMESys Å MessageEventSource=CME System
AvgPxInd=”1 Å Average Price Indicator (For APS only)
LinkID=”1000” > Å Firm Group ID (For APS only)
<Hdr
Snt = 2007-02-26T08:20:00-05:00 Å Message Time
TSub=”CME Å Target Firm Exchange
TID = “123” Å Target Firm ID
SID=”CME” /> Å Sender ID
<Instrmt
Exch=”CME Å ProductExchange
ID=”SP Å ProductCode
SecTyp=”MLEG Å Security Type
SubTyp=”CAL Å Spread Type
CFI=”FXXXXX
MMY=”200703”/> Å ProductPeriod
<RptSide
CustCpcty=”4 Å CTI Code
Side=”1
ClOrdID=” A456721
AllocInd=”1” Å Marked for Allocation (
Required for ACS and APS)
TmBkt=”T Å Time Bracket
SesID=”RTH Å Business Cycle
SesSub=”P Å Venue is Pit
InptSrc=”ETC”> Å Input Source is ETC
<Pty ID=”CME” R=21”/> Å Clearing Org
<Pty ID=”CME” R=22”/> Å Exchange
<Pty ID=”123” R=”1”/> Å Executing Firm
<Pty ID=”ABC” R=”12”/> Å Executing Trader
<Pty ID=”123456” R=”24”> Å Customer Account
<Sub ID=”1” Typ=”26”/> Å Origin
</Pty>
<Pty ID=”350” R=”17”/> Å Opposite Firm
<Pty ID=”BAT” R=”37”/> Å Opposite Trader
</RptSide>
</TrdCaptRptAck>
The LinkID is the average price group id to which this trade will be assigned.
Page 53 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.3 Group Level Messages
There are three types of Group Summary messages. There are alerts when groups are first created for trades
marked for either basic or average price allocation. These messages are all generated by the clearing system
and transmitted to the allocating firm. Allocating firms may send updates to generic average price groups in
order to complete or un-complete average price groups. There are also group summary updates sent when
subsequent trades are added to an allocation group. Finally, the allocating firm may submit a group summary
instruction to complete or incomplete an average price allocation group. ACS groups will always be in
complete status. ACS groups do not have the same distinction between group and trade level grouping like
APS because the system uses the more stringent basic grouping. ACS alerts bear a closer resemblance to
specific alerts in the amount of information provided.
Generic Group Summary Alerts
This is an Alert to the Firms that a trade has been added to an allocation group and it
can submit allocation instructions for this group of trades.
APS Generic Group Summary Alert (GSA)
<FIXML>
< AllocInstrctnAlert
TransTyp =”0 Å AllocTransType=New
ID="1000" Å Firm Assigned Average Price ID
ID2 =”2001 Å APS Generic Group ID (Clearing Generated ID)
Stat=6 Å AllocStatus=Allocation Pending
Typ=”12 Å Alloc Type=Group Incomplete
BizDt=”2005-01-14 Å Clearing Business Date
Qty=”150 Å Group Summary Quantity
TrdDt=”2005-01-14 Å Trade Date
Side=”1 Å Buy/Sell (Buy)
InptDev=”API Å API/UI Indicator
MsgEvtSrc=“CMESys Å MessageEventSource=CME System
AvgPxInd=”1 Å AveragePriceInd (For APS only)
RndPx=”1097.00 Å Rounded Average Price (For APS only)
AvgPx=”1097.55625”> Å True Average Price
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
TID=”123 Å Target Firm ID
TSub=”CME Å Target Firm Exchange
SID=”CME” /> Å Sender ID
<AllExc ExecID=10001” /> Å Trade ID (Trade ID)
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
MMY="200703" Å Contract Period
CFI="FXXXXX"
/>
<Pty ID="CME" R="21"/> Å Clearing Org
<Pty ID="CME" R="22"/> Å Exchange
<Pty ID="123" R="1"> Å Executing Firm
</Pty>
<Amt Typ="CRES" Amt="0.55625" Ccy="USD" /> Å Residual Amount (APS only)
</AllocInstrctnAlert>
</FIXML>
All allocation groups have two ids, the group id assigned by the firm (ID) and the clearing assigned
group id (ID2)
The Stat enumeration of 6 is relevant all allocations, and simply means the group has not been fully
allocated and claimed.
Page 54 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
For APS, the AvgPxInd enumeration of 1 indicates the group is still incomplete in the sense that the firm
has not completed it and that trades may still be added to it. An AvgPxInd enumeration of 2 indicates
an average price group is complete and the final averaging calculations have been performed.
Page 55 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.3.1 APS/ACS Specific Group Summary Alerts
Unlike ACS, when a trade is marked for Average Price Allocation two group summary messages (rather
than one) are generated, one for the generic group it has been assigned to and the second for the specific
group it has been assigned to. The presence of trade specific information in the group alert message
indicates that it is a specific. The specific group can be linked to its parent generic group by the firm
assigned group id. ACS alerts will resemble these specific alert messages. Unlike APS alerts, the group
status will always be complete (Stat=”13”) since ACS groups do not the additional completion step like APS
groups.
APS Specific Group Summary Alert (GSA)
<FIXML>
< AllocInstrctnAlert
TransTyp =”0 Å AllocTransType=New
ID="1001 Å Firm Assigned Average Price Group ID
ID2 =”3001 Å Clearing Assigned Specific Group ID
Stat=6 Å AllocStatus=Allocation Pending
Typ=”12” (“13” always for ACS) Å Alloc Type
BizDt=”2004-05-14” Å Clearing Business Date
Qty=”150 Å Group Summary Quantity
TrdDt=”2004-05-14 Å Trade Date
TrdTyp="0" Å TradeType
TrdSubTyp=”8 Å TradeSubType (spread leg)
MLegRptTyp=2 Å Single leg of a multileg instrument
SesID=”RTH Å Business Cycle
SesSub="P" Å Venue is Pit
Side=”1 Å Buy/Sell (Buy)
InptDev=”API Å API/UI Indicator
MsgEvtSrc=“CMESys Å MessageEventSource=CME System
AvgPxInd=”1 Å AveragePriceInd (APS Only)
RndPx=”1097.00 Å Rounded Average Price (APS Only)
AvgPx=”1097.55625”> Å True Average Price
<Hdr
Snt = 2007-02-26T08:20:00-05:00 Å Message Time
TSub=”CME Å Target Firm Exchange
TID=”123 Å Target Firm ID
SID=”CME” /> Å Sender ID
<OrdAlloc
ClOrdID=”A456721 /> Å Order Number
<AllExc ExecID=100001 /> Å Trade ID (Trade ID)
<Instrmt
Exch="CME" Å Product Exchange
ID="SP" Å Product Code
CFI="FXXXXX" Å CFI Code
MMY="200703"/> Å Contract Period
<Pty ID="CME" R="21"/> Å Clearing Org
<Pty ID="CME" R="22"/> Å Exchange
<Pty ID="ABC" R="12"/> Å Executing Trader
<Pty ID="123" R="1"/> Å Executing Firm
<Pty ID="123456" R="24"> Å Customer Account
<Sub ID="1" Typ="26"/> Å Carry Origin
</Pty>
<Amt Typ="CRES" Amt=".55625" Ccy="USD" /> Å Residual Amount (APS Only)
</AllocInstrctnAlert>
</FIXML>
Page 56 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
ACS Specific Group Summary Alert (GSA)
<FIXML>
<AllocInstrctnAlert
ID="500391" Å Firm Assigned Average Price Group ID
ID2="500391" Å Clearing Assigned Specific Group ID
SesID="RTH" Å Business Cycle
SesSub="E" Å Venue is Electronic
AvgPx="1847.75" Å Average Price
TrdDt="2007-04-18" Å Trade Date
BizDt="2007-04-18" Å Clearing Business Date
TrdTyp="0" Å TradeType
Stat="6" Å AllocStatus=Allocation Pending
MsgEvtSrc="CMESys" Å MessageEventSource=CME System
TxnTm="2007-04-20T08:40:53-05:00" Å Execution Time
InptDev="API" Å API/UI Indicator
TransTyp="0" Å AllocTransType=New
Typ="13" (“13” always for ACS) Å Alloc Type
Qty="2" Å Group Summary Quantity
Side="2"> Å Buy/Sell (sell)
<Hdr
Snt="2007-04-20T08:40:53-05:00 Å Message Time
SID="CME" Å Sender ID
TID="287" Å Target Firm ID
SSub="CME" Å Sending Firm Exchange
TSub="CME"/> Å Target Firm Exchange
<OrdAlloc
ClOrdID="ORDER"/> Å Order Number
<Instrmt
ID="NQ" Å Product Code
CFI="FFICSO" Å CFI Code
MMY="200706" Å Contract Period
Exch="CME"/> Å ProductExchange
<PtyID="CME" R="21"> Å Clearing Org
</Pty>
<Pty ID="CME"R="22"> Å Exchange
</Pty>
<Pty ID="770"R="1"> Å Executing Firm
</Pty>
<Pty ID="ACCOUNT" R="24"> Å Customer Account
<Sub ID="1"Typ="26"/> Å Carry Origin
</Pty>
<Pty ID="XD4L" R="12"> Å Executing Trader
</Pty>
<Pty ID="OperatorID" R="44"> Å Operator ID
</Pty>
</AllocInstrctnAlert>
</FIXML>
The firm assigned group id is the same as parent generic group id (ID). Each specific group will also
have a unique clearing assigned group id (ID2)
The Stat attribute indicates whether the group has been fully allocated and claimed. The Stat
enumeration of 6 is relevant for both all allocations, and simply means the group has not been fully
allocated and claimed.
The presence of order number, broker, account number, origin, and trade type information indicates that
this is a specific group summary record.
For APS, the AvgPxInd enumeration of 1 indicates the parent generic group has not been completed by
the allocating firm. The Specific group AvgPxInd enumeration will always be the same as its generic
parent.
Page 57 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
The cash residual is for the specific APS group and so will in most cases be different from the generic
group residual.
7.4 Group handling messages (Complete, Incomplete & Cancel)
7.4.1 Complete Generic Group (APS Only)
Completing and Un-completing a group are average price allocation functions. Specific average price
allocation alerts and confirms are not released until the generic average price group is completed. Once
an average price Generic group is completed no new trades can be added to it. Only Generic groups can
be completed.
Complete Average Price Group (GS)
<FIXML>
<AllocInstrctn
TransTyp =”1 Å AllocTransType=Replace
ID="1000" Å Firm Assigned Average Price ID
ID2 =”2001 Å Clearing assigned Generic Group ID
Typ=”13 Å AllocType=Block Complete
Qty=”150 Å Group Summary Quantity
TrdDt=”2004-05-14 Å Trade Date
Side=”1 Å Buy/Sell (Buy)
MsgEvtSrc=”MQM Å MessageEventSource=Firm
AvgPxInd=”2”> Å AveragePriceInd (Complete)
<Hdr
Snt = 2007-02-26T08:20:00-05:00 Å Message Time
SID=”123 Å Sender ID
SSub=”CME” /> Å Sending Firm Exchange
<Instrmt
Exch="CME" Å Product Exchange
ID="SP" Å Product Code
CFI="FXXXXX"
MMY="200703"/> Å Contract Period
<Pty ID=”CME R=”22 /> Å Allocating Firm Exchange
<Pty ID=”123 R=”1” /> Å Allocating Firm
</AllocInstrctn>
</FIXML>
An instruction to compete a group is a change, so the TransTyp must be equal to 1(Replace).
The inclusion of the attribute “Typ” with an enumeration of 14 indicates that the allocating firm wants to
complete this group.
Page 58 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.4.2 Un-Complete a Generic Group (GS) (APS Only)
If a firm completes a group prematurely and needs to add more trades to it the group must first be un-
completed. Only groups with no accepted allocations may be un-completed. Only generic groups can be
un-completed.
Un-Complete Average Price Group (GS)
<FIXML>
<AllocInstrctn
TransTyp =”1 Å AllocTransType=Replace
ID="1000" Å Firm Assigned Average Price ID
ID2 =”2001 Å Clearing Assigned Generic Group ID
Typ=”12 Å AllocType= Un-Complete
Qty=”150 Å Group Summary Quantity
TrdDt=”2004-05-14 Å Trade Date
Side=”1 Å Buy/Sell (Buy)
MsgEvtSrc=”MQM Å MessageEventSource=Firm
AvgPxInd=”1”> Å AveragePriceInd (inComplete)
<Hdr
Snt = 2007-02-26T08:20:00-05:00 Å Message Time
SSub=”CME Å Sending Firm Exchange
SID=”123 /> Å Sender ID
<Instrmt
Exch="CME" Å Product Exchange
ID="SP" Å Product Code
CFI="FXXXXX"
MMY="200703"/> Å Contract Period
<Pty ID=”CME R=”22 /> Å GiveupExchange
<Pty ID=”123 R=”1” /> Å Allocating Firm
</AllocInstrctn>
</FIXML>
The enumeration for the attribute “Typ” is set to 12, un-complete.
7.4.3 Cancel an ACS Group (GS)
The following is an example of a firm canceling an ACS group to unmark the trades for ACS.
Cancel an ACS Group (GS)
<FIXML>
<AllocInstrctn
TransTyp =”2 Å AllocTransType=Replace
ID2 =”500001 Å Clearing Assigned Generic Group ID
Typ=”12 Å AllocType= Un-Complete
Qty=”150 Å Group Summary Quantity
TrdDt=”2007-04-07 Å Trade Date
Side=”1 Å Buy/Sell (Buy)
MsgEvtSrc=”MQM Å MessageEventSource=Firm
<Hdr
Snt = 2007-04-07T08:20:00-05:00 Å Message Time
SSub=”CME Å Sending Firm Exchange
SID=”123 /> Å Sender ID
<Instrmt
Exch="CME" Å Product Exchange
ID="ED" Å Product Code
CFI="FXXXXX"
MMY="200706"/> Å Contract Period
Page 59 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
<Pty ID=”CME R=”22 /> Å GiveupExchange
<Pty ID=”123 R=”1” /> Å Allocating Firm
</AllocInstrctn>
</FIXML>
Page 60 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.5 Allocation Instructions
Allocation Requests
Allocation requests can be nested or appended within trade messages or they can be submitted as stand
alone instructions referencing a group of trades already designated for allocation and assigned to an
allocation group. For average price allocations there are two types of allocation requests, those referencing
Generic groups and those referencing Specific groups. ACS allocation requests are essentially the same as
Specific group requests minus the average price group and average price indicator attributes.
7.5.1 Generic APS Allocation Requests
For APS, generic allocation instructions will generate at least two allocation instruction acknowledgements,
one for the Generic allocation instruction, and one or more for the allocation instructions applied to the
underlying Specific groups. Unlike group summary alerts the specific allocation instruction
acknowledgements will not be sent to the allocating firm until the Generic group is completed. Note that with
the FIXML allocate and claim API the allocating firm may submit their own allocation id (IndAllocId). This is
an optional field, and whether or not the firm assigns its own allocation id, the firm allocation instruction will
be assigned an allocation id by the clearing system (IndAllocId2). If a firm does assign their own allocation
id for a Generic allocation instruction that id will be assigned to all the Specific allocations created to satisfy
the Generic allocation.
Generic Allocation Instruction (GA)
<FIXML>
< AllocInstrctn
TransTyp =”0 Å AllocTransType=New
ID="1000" Å Firm Group ID (Firm supplied)
ID2 =”2001 Å Clearing Assigned Generic Group ID
Typ=”2 Å Alloc Type=Preliminary
Qty=”150 Å Allocation Qty
AvgPxInd=”1 Å AveragePriceInd
TrdDt=”2004-05-14 Å Trade Date
MsgEvtSrc=”MQM Å MessageEventSource=MQM/Firm
Side=”1”> Å Buy/Sell (Buy)
<Hdr
Snt = 2007-02-26T08:20:00-05:00 Å Message Time
SSub=”CME” /> Å Sending Firm Exchange
SID=”123” /> Å Sender ID
<Instrmt
Exch="CME" Å Product Exchange
ID="SP" Å Product Code
MMY="200703" Å Contract Period
CFI="FXXXXX" />
<Pty ID=”CME R=”22 /> Å Allocating Firm Exchange
<Pty ID=”123R=”1” /> Å Allocating Firm
<Alloc
IndAllocID=”10000” Å Firm assigned allocation id
Qty=”150 Å AllocationQty
CustCpcty=”4”> Å CTI Code
<Pty ID=”CMER=”22” /> Å CarryExchange
<Pty ID=”456” R=”1”/> Å CarryFirm
<Pty ID=”G104A R=”24”> Å CarryAccount
<Sub ID="1" Typ="26"/> Å CarryOrigin
</Pty>
</Alloc>
</AllocInstrctn>
</FIXML>
Note that both the firm and clearing system Generic group ids must be provided on inbound allocation
instructions
Page 61 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
The absence of the ‘Stat’ attribute and a ‘TransTyp’ of New, and ‘Typ” of Preliminary (2) indicates that
this is an allocation instruction from an allocating firm.
The CME assigned ID2 references a Generic group.
This message introduces the “Alloc” block where the claiming firm information should be placed. This is
also where the firm assigned allocation id would be placed. Each Alloc block (<Alloc />) can be
assigned a unique id by the firm and can indicate different carry firm information and quantities. All
Alloc block quantities must equal the overall quantity indicated in the top level of the allocation
instruction.
7.5.2 Specific APS/ACS Allocation Instructions
There are three ways to submit Specific allocations:
Nested within a trade submission message designated for average price allocation or appended to a
trade already reported.
Generic allocation instructions for APS are implicitly specific since each Generic allocation instruction
will create one or more Specific allocations.
As stand alone specific allocation instructions referencing a Specific APS/ACS allocation group. Below
are two examples of stand alone specific allocation instructions, one with the trade data of the Specific
allocation group and one without the trade data.
Specific APS Allocation Instruction with Trade Information (GA)
<FIXML>
< AllocInstrctn
TransTyp =”0 Å AllocTransType=New
ID="1000" Å Firm Group ID
ID2=”3001 Å Specific Group ID (Generated by Clearing)
Typ=”2 Å Alloc Type=Preliminary
Qty=”150 Å Allocation Qty
AvgPxInd=”1 Å AveragePriceInd (Incomplete)
TrdDt=”2004-05-14 Å Trade Date
MsgEvtSrc=”MQM Å MessageEventSource=MQM/Firm
TrdTyp=”0 Å TradeType
TrdSubTyp=”8 Å TradeSubType
MLegRptTyp=”2 Å Single Leg of multi-leg trade
Side=”1 Å Buy/Sell (Buy)
SesSub=”P Å TradeVenue
RndPx=”1097.00 Å Rounded Price
AvgPx=”1097.55625”> Å Average Price
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
SSub=”CME” /> Å Sending Firm Exchange
SID=”123” /> Å Sender ID
<OrdAlloc
ClOrdID=”A456721 /> Å Order Number
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
MMY="200703" Å Contract Period
CFI="FXXXXX" /> Å CFI code
<Pty ID=”CME R=”22 /> Å Allocating Firm Exchange
<Pty ID=”123R=”1” /> Å Allocating Firm
<Pty ID="123456" R="24"> Å Customer Account
<Sub ID="1" Typ="26"/> Å Allocating Firm Origin
</Pty>
<Pty ID=”ABCR=”2” /> Å Specific Group Broker
<Amt Typ="CRES" Amt=".55625" Ccy="USD" /> Å Residual Amount
<Alloc
IndAllocID=”10001 Å Allocation ID (Firm Provided)
Qty=”150 Å Allocation Quantity
CustCpcty=”4”> Å CTI Code
<Pty ID=”CME R=”22 /> Å Claiming Firm Exchange
<Pty ID=”456R=”1”/> Å Claiming Firm
Page 62 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
<Pty ID=”G104A” R=”24> Å Claiming Firm Customer Account
<Sub ID="1" Typ="26"/> Å Claiming Firm Origin
</Pty>
</Alloc>
</AllocInstrctn>
</FIXML>
Specific APS Allocation Instruction without Trade Information (GA)
<FIXML>
< AllocInstrctn
TransTyp =”0 Å AllocTransType=New
ID="1000" Å Firm Group ID
ID2=”3001 Å Specific Group ID (Generated by Clearing)
Typ=”2 Å Alloc Type=Preliminary
Qty=”150 Å Allocation Qty
AvgPxInd=”1 Å AveragePriceInd (Incomplete)
TrdDt=”2004-05-14 Å Trade Date
MsgEvtSrc=”MQM Å MessageEventSource=MQM/Firm
Side=”1” > Å Buy/Sell (Buy)
<Hdr
Snt = 2007-02-26T08:20:00-05:00 Å Message Time
SSub=”CME Å Sending Firm Exchange
SID=”123” /> Å Sender ID
<OrdAlloc
ClOrdID=”A456721 /> Å Order Number
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
MMY="200703" Å Contract Period
CFI="FXXXXX" /> Å CFI Code
<Pty ID=”CME R=”22 /> Å Allocating Firm Exchange
<Pty ID=”123 R=”1” /> Å Allocating Firm
<Alloc
IndAllocID=”10001 Å Firm Assigned Allocation ID
Qty=”150 Å Allocation Quantity
CustCpcty=”4”> Å CTI Code
<Pty ID=”CME R=”22 /> Å Carry Exchange
<Pty ID=”456 R=”1”/> Å Carry Firm
<Pty ID=”G104A” R=”24> Å Carry Account
<Sub ID="1" Typ="26"/> Å Carry Origin
</Pty>
</Alloc>
</AllocInstrctn>
</FIXML>
Specific ACS Allocation Instruction with Trade Information (GA)
<FIXML>
<AllocInstrctn
ID="500231" Å Firm Group ID
ID2="500231" Å Specific Group ID (Generated by Clearing)
SesSub="P" Å TradeVenue
AvgPx="1.2935" Å Group Price
TrdDt="2007-03-19" Å Trade Date
MLegRptTyp="1" Å Single leg
TransTyp="0" Å AllocTransType=New
Qty="100" Å Quantity
Typ="2" Å Alloc Type=Preliminary
Page 63 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Side="2"> Å Buy/Sell (Buy)
<Hdr
Snt="2007-03-19T07:01:40-05:00" Å Message Time
SID="770" Å Sender ID
SSub="CME" Å Sending Firm Exchange
<OrdAlloc
ClOrdID="12345678"/> Å Order Number
<Instrmt
ID="EC" Å ProductCode
CFI="FFCPSO" Å CFI Code
MMY="200706" Å Contract Period
Exch="CME"/> Å Product Exchange
<Pty ID="CME" R="22"/> Å Allocating Firm Exchange
<Pty ID="770" R="1"/> Å Allocating Firm
<Pty ID="ABCDEFGHIJ" R="24"> Å Customer Account
<Sub ID="1" Typ="26"/> Å Allocating Firm Origin
</Pty>
<Pty ID="TAHO" R="12"/> Å Executing Broker
<Alloc
IndAllocID="16634" Å Firm Assigned Allocation ID
Qty="100"> Å Allocation Quantity
<Pty ID="CME" R="22"/> Å Carry Firm Exchange
<Pty ID="102" R="1"/> Å Carry Firm
<Pty ID="CARRY" R="24"> Å Carry Account
<Sub ID="2" Typ="26"/> Å Carry Origin
</Pty>
</Alloc>
</AllocInstrctn>
</FIXML></
Note that the firm group id and clearing system Specific group id must be provided on Specific
allocation instructions
As outlined in table 3.2.2, only the presence of a TransType of “0” (New) and an AllocType of “2”
(Preliminary) is necessary to indicate that this is a new allocation instruction, AllocStatus is not
necessary.
Notice that there are two ‘qty’ attributes, one in the main body of the message and one in the Alloc
block. The quantity in the main block indicates the sum of all the allocation quantities contained within
this allocation instruction. The Alloc block is a repeating block, in other words multiple Alloc blocks may
be contained within a single AllocInstrctn message.
Page 64 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.6 Allocation Confirms and Alerts
7.6.1 Allocation Instruction Confirms to Allocating Firm
For Basic allocations, once an allocation request has been submitted to the clearing system an Allocation
Report (AllocRpt) is sent back to the allocating firm. The allocation report will always contain all trade data
and confirm whether or not the allocation instruction was valid. For APS only, generic allocation instructions
will be acknowledged but the underlying Specific allocations that are derived from Generic allocation
instructions will not be transmitted to the allocating firm until the group is completed. Specific allocation
instructions will be handled just like Basic allocation instructions. While the firm is not required to submit all
trade data for allocation instructions the allocation report will reflect all trade data for Specific and Basic
allocations and at least product and price information for Generic allocations.
APS Specific Allocation Report Confirmation (GAC)
<FIXML>
<AllocRpt
TransTyp =”0 Å AllocTransType=New
Stat=”3 Å Status=Received
RptTyp=”2 Å Report Type=Preliminary
BizDt=”2004-05-14
ID="1000" Å Firm Average Price Group ID
ID2=”3001 Å Specific Group ID Assigned by Clearing
Qty=”150 Å Allocation Qty
TrdDt=”2004-05-14 Å Trade Date
TrdTyp=”0 Å TradeType
TrdSubTyp=”8 Å TradeSubType
MLegRptTyp=”2 Å Single Leg of multi-leg trade
Side=”1 Å Buy/Sell (Buy)
SesSub=”P Å TradeVenue
InptDev=”API Å API/UI Indicator
SesID=”RTH Å BusinessCycleCode
MsgEvtSrc=”CMESys Å MessageEventSource = CME System
AvgPxInd=”1 Å AveragePriceInd
RndPx=”1097.00 Å Rounded Price
AvgPx=”1097.55625 Å Average Price
TxnTm=”2007-02-26T08:15:00 Å Execution Time
RptID="1000" > Å Report ID
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
TSub=”CME Å Target Firm Exchange
TID = “123” Å Target Firm ID
SID=”CME /> Å Sender ID
<OrdAlloc
ClOrdID=”A456721 /> Å Order Number
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
MMY="200703" Å Contract Period
CFI="FXXXXX" /> Å CFI Code
<Pty ID=”CME R=”22” /> Å Allocating Firm Exchange
<Pty ID=”123 R=”1” /> Å Allocating Firm
<Pty ID="123456" R="24"> Å Customer Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
<Pty ID=”ABCR=”2” /> Å Executing Broker
<Amt Typ="CRES" Amt=".55625" Ccy="USD" /> Å Residual Amount
<Alloc
IndAllocID=”10001 Å Allocation ID (Firm Provided)
IndAllocID2=”500001 Å Allocation ID (Clearing system generated)
Qty=”150
CustCpcty=”4”> Å CTI Code
<Pty ID=”CME” R=”22” /> Å Carry Firm Exchange
Page 65 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
<Pty ID=”456” R=”1”/> Å Carry Firm
<Pty ID=”G104A” R=”24”> Å Carry Firm Customer Account
<Sub ID=”1” Typ=”26”/> Å Carry Firm Origin
</Pty>
</Alloc>
</AllocRpt>
</FIXML>
ACS Specific Allocation Report Confirmation (GAC)
<FIXML>
<AllocRpt
BizDt="2007-04-19"
MsgEvtSrc="CMESys" Å MessageEventSource = CME System
TxnTm="2007-04-19T15:12:48-05:00" Å Execution Time (GMT/CST with an offset)
InptDev="API" Å API/UI Indicator
TrdSubTyp="5" Å TradeType
MLegRptTyp=”2 Å Single Leg of multi-leg trade
RptTyp="2" Å Report Type=Preliminary
AvgPx="0.8333" Å Group Price
RptID="500035" Å Report ID
Side="1" Å Buy/Sell (Buy)
ID="500035" Å Firm Average Price Group ID
Stat="3" Å Status=Received
TransTyp="0" Å AllocTransType=New
Qty="1" Å Allocation Qty
TrdDt="2007-04-19" Å Trade Date
SesSub="E" Å TradeVenue
SesID="ETH"> Å BusinessCycleCode
<Hdr
Snt="2007-04-19T15:12:48-05:00" Å Message Time
SID="CME" Å Sender ID
TID="770" Å Target Firm ID
SSub="CME" Å Sender Firm Exchange
TSub="CME"> Å Target Firm Exchange
</Hdr>
<OrdAlloc
ClOrdID="ORDER"> Å Order Number
</OrdAlloc>
<Instrmt
ID="E1" Å Firm Average Price Group ID
CFI="FFCPSO" Å CFI Code
MMY="200706" Å Contract Period
Exch="CME"> Å Product Exchange
</Instrmt>
<Pty ID="CME" R="21"> Å Allocating Firm Exchange
</Pty>
<Pty ID="CME" R="22"> Å Allocating Firm Exchange
</Pty>
<Pty ID="770" R="1"> Å Allocating Firm Exchange
</Pty>
<Pty ID="ACCOUNT" R="24"> Å Customer Account
<Sub ID="1" Typ="26"> Å Origin
</Sub>
</Pty>
<Pty ID="7G0L" R="12"> Å Executing Trader
</Pty>
<Pty ID="OPERATORID" R="44"> Å Operator ID
</Pty>
<Alloc
Page 66 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
IndAllocID2="500036" Å Allocation ID (Clearing system generated)
CustCpcty="4" Å CTI Code
Qty="1"> Å Allocation Qty
<Pty ID="CME" R="22"> Å Carry Firm Exchange
</Pty>
<Pty ID="555" R="1"> Å Carry Firm
</Pty>
<Pty ID=" CARRY" R="24"> Å Carry Firm Account
<Sub ID="1" Typ="26"> Å Carry Firm Origin
</Sub>
</Pty>
</Alloc>
</AllocRpt>
</FIXML>
Note that the TransTyp of New (“0”) and the Stat of Received (“3”) and RptTyp of Preliminary (“2”)
indicates that this is the confirmation of a new allocation instruction.
The firm’s submitted IndAllocID has been recorded by the clearing system and is reflected on the
confirmation message and a clearing assigned IndAllocID2 has been assigned.
7.6.2 Allocation Alert to Carry Firm
When a valid Basic allocation instruction is received from an allocating firm an allocation report is generated
and routed to the claiming firm designated on the instruction. For average price allocation groups only
Specific allocation reports are sent as alerts to the claiming firm and then only when the Generic group has
been completed. The Clearing System will not pass on the allocating firm’s IndAllocID to the carry firm and
will assign a new, unique IndAllocID2 for the Carry Firm. The group ids are also not passed on to the
claiming firm.
APS Allocation Alert to Claiming Firm (GAA)
<FIXML>
< AllocRpt
TransTyp =”0 Å AllocTransType=New
RptTyp=”11 Å ReportType=AcceptPending
Stat=”3 Å AllocStatus=Received
ID="1000" Å Firm Average Price Group ID
BizDt=”2004-05-14 Å Clearing Business Date
Qty=”150 Å Total Allocation Qty
TrdDt=”2004-05-14 Å Trade Date
TrdTyp=”0 Å TradeType
TrdSubTyp=”8 Å TradeSubType
MLegRptTyp=”2 Å Single Leg of Multi-Leg Trade
SesSub=”P Å TradeVenue
Side=”1 Å Buy Sell Indicator (Buy)
MsgEvtSrc=“CMESys Å MessageEventSource=CME System
SesID=”RTH Å BusinessCycleCode
AvgPxInd=”2 Å AveragePriceInd
RndPx=”1097.00 Å Rounded Price
AvgPx=”1097.55625 Å Average Price
RptID =”1000” Å Report ID
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
TSub=”CME Å Target Firm Exchange
TID = “456” Å Target Firm ID
SID=”CME” /> Å Sender ID
<OrdAlloc
ClOrdID=”A456721 /> Å Order Number
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
Page 67 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
CFI="FXXXXX" Å ProductPeriod
MMY="200703"/> Å Contract Period
<Pty ID=”CME R=”22” /> Å Allocating Firm Exchange
<Pty ID=”123 R=”1” /> Å Allocating Firm
<Pty ID=”ABCR=”2” /> Å Executing Broker
<Pty ID="123456" R="24"/> Å Customer Account
<Amt Typ="CRES" Amt=".55625" Ccy="USD" /> Å Residual Amount
<Alloc
IndAllocID2=”500214 Å Allocation ID (Clearing generated)
Qty=”150 Å AllocationQty
CustCpcty=”4”> Å CTI Code
<Pty ID=”CME” R=22” /> Å Carry Firm Exchange
<Pty ID=”456” R=”1”/> Å Carry Firm
<Pty ID=”G104AR=”24”> Å Carry Firm Customer Account
<Sub ID="1" Typ="26"/> Å Carry Firm Origin
</Pty>
</Alloc>
</AllocRpt>
</FIXML>
ACS Allocation Alert to Claiming Firm (GAA)
<FIXML>
<AllocRpt
BizDt="2007-04-18" Å Clearing Business Date
MsgEvtSrc="CMESys" Å MessageEventSource=CME System
TxnTm="2007-04-20T08:40:53-05:00" Å Execution Time (GMT/CST with an offset)
InptDev="API" Å API/UI Indicator
TrdSubTyp="6" Å TradeSubType
MLegRptTyp=”2 Å Single Leg of Multi-Leg Trade (Spread)
RptTyp="11" Å ReportType=AcceptPending
AvgPx="1847.75" Å Average Price
RptID="500391" Å Report ID
Side="2" Å Buy Sell Indicator (sell)
ID="500391" Å Firm Average Price Group ID
Stat="3" Å AllocStatus=Received
TransTyp="0" Å AllocTransType=New
Qty="2" Å Total Allocation Qty
TrdDt="2007-04-18" Å Trade Date
SesSub="E" Å TradeVenue
SesID="RTH"> Å BusinessCycleCode
<Hdr
Snt="2007-04-20T08:40:53-05:00" Å Message Time
SID="CME" Å Sender ID
TID="102" Å Target Firm ID
SSub="CME" Å Sending Firm Exchange
TSub="CME"/> Å Target Firm Exchange
<OrdAlloc
ClOrdID="0WXU"/> Å Order Number
<Instrmt
ID="NQ" Å ProductCode
CFI="FFICSO" Å CFI Code
MMY="200706" Å Contract Period
Exch="CME"/> Å ProductExchange
<Pty ID="CME" R="21"/> Å Allocating Firm Exchange
<Pty ID="CME" R="22"/> Å Allocating Firm Exchange
<Pty ID="287" R="1"/> Å Carry Firm
<Pty ID="R88E0111" R="24"> Å Carry Firm Customer Account
<Sub ID="1" Typ="26"/> Å Carry Firm Origin
Page 68 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
</Pty>
<pty>ID="3D4L" R="12"/>
<Pty ID="MASHC1" R="44"/>
<Alloc
IndAllocID="500392" Å Allocation ID (Firm Provided)
IndAllocID2="500002" Å Allocation ID (Clearing generated
CustCpcty="4" Å CTI Code
Qtvy="2"> Å AllocationQty
<Pty ID="CME" R="22"/> Å Allocating Firm Exchange
<Pty ID="102" R="1"/> Å Carry Firm
<Pty ID=" R88E0111" R="24"> Å Carry Firm Customer Account
<Sub ID="1" Typ="26"/> Å Carry Firm Origin
</Pty>
</Alloc>
</AllocRpt>
</FIXML>
The carry firm is designated in the “Alloc” block of the AllocInstrctn message while the allocating firm is
7.7 Accepting and Rejecting Allocations
7.7.1 ACS/APS Allocation Accept/Reject Request
In order to accept an allocation the carry firm submits an Allocation Report Acknowledgement (AllocRptAck)
message to the Clearing System. The carry firm must use the clearing system assigned Allocation ID
(IndAllocID2) provided to them on the allocation report alert. Additionally the Carry firm may also append
their own Allocation ID (generated by them) using the IndAllocID attribute.
ACS/APS Allocation Accept Request (GC)
<FIXML>
<AllocRptAck
ID="1000" Å Firm Group ID
TransTyp =”0 Å AllocTransType=New
RptTyp=”9(“10”) Å Allocation Report Type=Accept (Reject)
TrdDt=”2003-01-13 Å Trade Date
AvgPxInd=”2 Å APS Ind (for APS only, exclude for ACS)
MsgEvtSrc=”MQM
RptID = 500102 Å Trade ID (to be replaced by TrdID)
TrdID=”500102 ÅTrade ID
TxnTm=”2007-02-26T08:15:00”> Å Execution Time
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
SSub=”CME Å Sending Firm Exchange
SID=”456 /> Å Sender ID
<Pty ID=”CMER=”22”/> Å Allocating Firm Exchange
<Pty ID=”123” R=”1”/> Å Allocating Firm
<AllocAck
IndAllocID=”15000 Å Allocation ID (Carry Firm generated)
IndAllocID2=”500102 Å Allocation ID (Clearing generated)
Qty=”150 Å Allocation Qty
CustCpcty=”4”> Å CTI Code
<Pty ID=”CME” R=”22” /> Å Carry Firm Exchange
<Pty ID=”456” R=”1”/> Å Carry Firm
<Pty ID=”G104A” R=”24”> Å Carry Firm Customer Account
<Sub ID="1" Typ="26"/> Å Carry Firm Origin
</Pty>
</AllocAck>
Page 69 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
</AllocRptAck>
</FIXML>
The only specific trade information required on an allocation accept or reject request is the contract
information and the allocating firm information.
The only difference between an accept and reject is the enumeration supplied with the “RptTyp”
attribute. “9” equals accept and “10” equals reject.
Also note that on the AllocRptAck the AllocAck Block is used, not the Alloc block.
7.7.2 Allocation Claim Confirm to Carry Firm (GCC Accept)
Each allocation acceptance request will be confirmed by the clearing system. All trade information will be
provided.
APS Allocation Accept Confirm Report to Carry Firm (GCC Accept)
<FIXML>
<AllocRpt
TransTyp =”0 Å AllocTransType=New
Stat=”0 Å AllocStat=Accepted (in Clearing)
RptTyp=”12 Å RptType=Complete
BizDt=”2004-05-14
ID="1000" Å Firm Group ID (Firm supplied)
RptID=”500102 Å Rpt ID (Clearing generated Allocation ID)
Qty=”100 Å Group Quantity
TrdDt=”2003-01-13 Å Trade Date
TrdTyp=”0 Å TradeType
TrdSubTyp=”8 Å TradeSubType
MLegRptTyp=”2 Å Single Leg of multi-leg trade
Side=”1 Å Buy/ Sell (Buy)
SesSub=”P Å Trade Venue
InptDev=”API Å API/UI Indicator
MsgEvtSrc=“CMESys
AvgPxInd=”2 Å AveragePriceInd
RndPx=”1097.00 Å Rounded Price
AvgPx=”1097.55625 Å Average Price
TxnTm=”2007-02-26T08:15:00” > Å Execution Time
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
TID = “456 Å Target Firm ID
TSub = “CME Å Target Firm Exchange
SID=”CME /> Å Sender ID
<OrdAlloc
ClOrdID=”A456721 /> Å Order Number
<Instrmt
Exch="CME" Å Product Exchange
ID="SP" Å Product Code
CFI="FXXXXX"
MMY="200703"/> Å Contract Period
<Pty ID=”CME” R=22”/> Å Allocating Firm Exchange
<Pty ID=”123R=”1”/> Å Allocating Firm
<Pty ID=”ABCR=”2” /> Å Executing Broker
<Pty ID="123456" R="24" /> Å Customer Account
<Amt Typ="CRES" Amt=".55625" Ccy="USD" /> Å Residual Amount
<Alloc
IndAllocID=”15000 Å ID sent by Clearing (Optional)
IndAllocID2=”500102 Å Allocation ID (Clearing system generated)
Qty=”100
CustCpcty=”4”> Å CTI Code
<Pty ID=”CME” R=”22 /> Å Carry Firm Exchange
<Pty ID=”456” R=”1”/> Å Carry Firm
Page 70 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
<Pty ID=”G104A” R=”24> Å Carry Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
</Alloc>
</AllocRpt>
</FIXML>
ACS Allocation Accept Confirm Report to Carry Firm (GCC Accept)
<FIXML>
<AllocRpt
BizDt="2006-12-26" Å Business Date
MsgEvtSrc="CMESys" Å Message Source (CME Systems)
TxnTm="2006-12-26T10:37:25-06:00" Å Execution Time
InptDev="API" Å API/UI Indicator
TrdSubTyp="6" Å Onset dut to an allocation
RptTyp="12" Å RptType=Complete
AvgPx="1430.25" Å Group Price
RptID="500562" Å Trade ID (to be replaced by TrdID)
Side="1" Å Buy/Sell Indicator
ID="500562" Å Firm Group ID (Firm supplied)
Stat="0" Å AllocStat=Accepted (in Clearing)
TransTyp="0" Å AllocTransType=New
MLegRptTyp=”2” Å Single Leg of multi-leg trade
Qty="9" Å Qty
TrdDt="2006-12-26" Å Trade Date
SesSub="E" Å Trade Venue is Electronic
SesID="RTH"> Å Session is during RTH
<Hdr
Snt="2006-12-26T10:37:25-06:00" Å Message Transmission Time (UTC)
SID="CME" Å Sender ID
TID="102" Å Target ID
SSub="CME" Å Sender Exchange
TSub="CME"/> Å Trader Exchange
<OrdAlloc
ClOrdID="0006M1B0"/> Å Customer Order
<Instrmt
ID="ES" Å Product Code
CFI="FFICSO" Å CFI
MMY="200703" Å Product Period
Exch="CME"/> Å Product Exchange
<Pty ID="CME" R="21"/> Å Clearing Exchange
<Pty ID="CME" R="22"/> Å Executing Firm Exchange
<Pty ID="770" R="1"/> Å Executing Firm
</Pty>
<Pty ID="7G2L" R="12"/> Å Executing Broker
<Pty ID="2464" R="44"/> Å Executing Operator ID
<Alloc
IndAllocID="500563" Å ID sent by Clearing (Optional)
IndAllocID2="500001" Å Allocation ID (Clearing system
generated)
CustCpcty="4" Å CTI
Qty="9"> Å Quantity
<Pty ID="CME" R="22"/> Å Carry Exchange
<Pty ID="102" R="1"/> Å Carry Firm
<Pty ID=" 50036933" R="24"> Å Carry Firm Account
<Sub ID="1" Typ="26"/> Å Carry Firm Origin
</Pty>
</Alloc>
</AllocRpt>
Page 71 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
</FIXML>
7.7.3 Allocation Claim Confirm to Carry Firm (GCC Reject)
Each allocation acceptance request will be confirmed by the clearing system. All trade information will be
provided.
Allocation Reject Confirm to Carry Firm (GCC)
<FIXML>
<AllocRpt
TransTyp =”0 Å AllocTransType=New
Stat=”1 Å AllocStat=Rejected (in Clearing)
RptTyp=”12 Å RptType=Complete
BizDt=”2004-05-14 Å Business Date
ID="1000" Å Firm Group ID (Firm supplied)
RptID=”500102 Å Rpt ID (Clearing generated Allocation ID)
ID2 =”2001 Å Clearing Assigned Specific Group ID
Qty=”100 Å Group Quantity
TrdDt=”2003-01-13 Å Trade Date
TrdTyp=”0 Å TradeType
TrdSubTyp=”8 Å TradeSubType
MLegRptTyp=”2 Å Single Leg of multi-leg trade
Side=”1 Å Buy/ Sell (Buy)
SesSub=”P Å Trade Venue
InptDev=”API Å API/UI Indicator
MsgEvtSrc=“CMESys Å Message Source (CME Systems)
AvgPxInd=”2 Å AveragePriceInd
RndPx=”1097.00 Å Rounded Price
AvgPx=”1097.55625 Å Average Price
TxnTm=”2007-02-26T08:15:00” > Å Execution Time
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
TID = “456” Å Target Firm ID
TSub = “CME Å Target Firm Exchange
SID=”CME /> Å Sender ID
<OrdAlloc
ClOrdID=”A456721 /> Å Order Number
<Instrmt
Exch="CME" Å Product Exchange
ID="SP" Å Product Code
CFI="FXXXXX"
MMY="200703"/> Å Contract Period
<Pty ID=”CME” R=”22”/> Å Allocating Firm Exchange
<Pty ID=”123R=”1”/> Å Allocating Firm
<Pty ID=”ABCR=”2” /> Å Executing Broker
<Pty ID="123456" R="24" /> Å Customer Account
<Amt Typ="CRES" Amt=".55625" Ccy="USD" /> Å Residual Amount
<Alloc
IndAllocID=”15000 Å ID assigned by Carry Firm (Optional)
IndAllocID2=”500102 Å Allocation ID (Clearing system generated)
Qty=”100
CustCpcty=”4”> Å CTI Code
<Pty ID=”CME” R=”22 /> Å Carry Firm Exchange
<Pty ID=”456” R=”1”/> Å Carry Firm
Page 72 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
<Pty ID=”G104A” R=”24> Å Carry Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
</Alloc>
</AllocRpt>
</FIXML>
ACS Allocation Reject Confirm Report to Carry Firm (GCC Rejectt)
<FIXML>
<AllocRpt
BizDt="2006-12-26" Å Business Date
MsgEvtSrc="CMESys" Å Message Source (CME Systems)
TxnTm="2006-12-26T10:37:25-06:00" Å Execution Time
InptDev="API" Å API/UI Indicator
TrdSubTyp="6" Å Onset dut to an allocation
RptTyp="12" Å RptType=Complete
AvgPx="1430.25" Å Group Price
RptID="500562" Å Trade ID (to be replaced by TrdID)
Side="1" Å Buy/Sell Indicator
ID="500562" Å Firm Group ID (Firm supplied)
Stat="1" Å AllocStat=Rejected (in Clearing)
MLegRptTyp=”2 Å Single Leg of multi-leg trade
TransTyp="0" Å AllocTransType=New
Qty="9" Å Qty
TrdDt="2006-12-26" Å Trade Date
SesSub="E" Å Trade Venue is Electronic
SesID="RTH"> Å Session is during RTH
<Hdr
Snt="2006-12-26T10:37:25-06:00" Å Message Transmission Time (UTC)
SID="CME" Å Sender ID
TID="102" Å Target ID
SSub="CME" Å Sender Exchange
TSub="CME"/> Å Trader Exchange
<OrdAlloc
ClOrdID="0006M1B0"/> Å Customer Order
<Instrmt
ID="ES" Å Product Code
CFI="FFICSO" Å CFI
MMY="200703" Å Product Period
Exch="CME"/> Å Product Exchange
<Pty ID="CME" R="21"/> Å Clearing Exchange
<Pty ID="CME" R="22"/> Å Executing Firm Exchange
<Pty ID="770" R="1"/> Å Executing Firm
</Pty>
<Pty ID="7G2L" R="12"/> Å Executing Broker
<Pty ID="2464" R="44"/> Å Executing Operator ID
<Alloc
IndAllocID="500563" Å ID sent by Clearing (Optional)
IndAllocID2="500001" Å Allocation ID (Clearing system generated)
CustCpcty="4" Å CTI
Qty="9"> Å Quantity
<Pty ID="CME" R="22"/> Å Carry Exchange
<Pty ID="102" R="1"/> Å Carry Firm
<Pty ID=" 50036933" R="24"> Å Carry Firm Account
<Sub ID="1" Typ="26"/> Å Carry Firm Origin
</Pty>
</Alloc>
</AllocRpt>
</FIXML>
Page 73 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
All allocation accept or reject confirmations will have “TranTyp” enumeration of “0” (New) and a “Stat” of
either “0” (Received) or “1” (Rejected)
Note that the IndAllocID submitted by the Carry firm is sent back on the confirm.
7.7.4 Claim Alert to Allocating Firm
Once the designated carry firm claims an allocation, the allocating firm will receive an alert message
containing all trade and allocation information.
Accepted APS Allocation Alert Report (GCA)
<FIXML>
<AllocRpt
TransTyp =”0 Å AllocTransType=New
Stat=”0 Å AllocStat=Accepted
RptTyp=”9 Å RptType=Accept
BizDt=”2004-05-14 Å Clearing Business Date
RptID=”500001 Å Rpt ID (Clearing generated Allocation ID)
TrdDt=”2003-01-13 Å Trade Date
Qty=”100 Å Allocation Qty
TrdTyp=”0 Å Trade Type
TrdSubTyp=”8 Å Trade Sub Type
MLegRptTyp=”2 Å Single Leg of multi-leg trade
Side=”1 Å Buy/Sell (Buy)
SesSub=”P Å TradeVenue
InptDev=”API Å API/UI Indicator
MsgEvtSrc=MQM Å MessageEventSource
AvgPxInd=”2 Å AveragePriceInd
RndPx=”1097.00 Å Rounded Price
AvgPx=”1097.55625 Å Average Price
TxnTm=”2007-02-26T08:15:00” > Å Execution Time
<Hdr
Snt = 2007-02-26T08:20:00-05:00 Å Message Time
TID = “123” Å Target Firm ID
TSub = CME Å Target Firm Exchange
SID=”CME” /> Å Sender ID
<OrdAlloc
ClOrdID=”A456721 /> Å Order Number
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
CFI="FXXXXX"
MMY="200703"/> Å ProductPeriod
<Pty ID=”CMER=”22”/> Å Allocating Firm Exchange
< Pty ID=”123 R=”1”/> Å Allocating Firm
<Pty ID=”ABCR=”2” /> Å Executing Broker
<Pty ID="123456" R="24" > Å Customer Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
<Amt Typ="CRES" Amt=".25" Ccy="USD" /> Å Residual Amount
<Alloc
IndAllocID=”10001 Å Allocation ID (Firm generated sent in GC)
IndAllocID2=”500001 Å Allocation ID (Clearing generated)
Qty=”100 Å Allocation Qty
CustCpcty=”4”> Å CTI Code
<Pty ID=”CME R=”22” /> Å Carry Firm Exchange
<Pty ID=”456 R=”1”/> Å Carry Firm
Page 74 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
<Pty ID=”G104A R=”24”> Å Carry Firm Customer Account
<Sub ID="1" Typ="26"/> Å Carry Firm Origin
</Pty>
</Alloc>
</AllocRpt>
</FIXML>
Accepted ACS Allocation Alert Report (GCA)
<FIXML>
<AllocRpt
BizDt="2006-12-26" Å Clearing Business Date
MsgEvtSrc="CMESys" Å Message Source (CME Systems)
TxnTm="2006-12-26T10:37:25-06:00" Å Execution Time
InptDev="API" Å API/UI Indicator
TrdSubTyp="5" Å 5= Offset due to an allocation
RptTyp="9" Å RptType=Accept
AvgPx="1430.25" Å Group Price
RptID="500562" Å Trade ID (to be replaced by TrdID)
TrdID="500562" Å Trade ID
Side="2" Å Buy/Sell
ID="500562" Å Firm Group ID (Firm supplied)
Stat="0" Å AllocStat=Accepted
TransTyp="0" Å AllocTransType=New
Qty="9" Å Qty
TrdDt="2006-12-26" Å Trade Date
SesSub="E" Å Trade Venue is Electronic
SesID="RTH"> Å Session is during ETH
<Hdr
Snt="2006-12-26T10:37:25-06:00" Å Message Time
SID="CME" Å Sender ID
TID="770" Å Target Firm ID
SSub="CME" Å Sending Firm Exchange
TSub="CME"/> Å Target Firm Exchange
<OrdAlloc
ClOrdID="0006M1B0"/> Å Order Number
<Instrmt
ID="ES" Å ProductCode
CFI="FFICSO"
MMY="200703" Å ProductPeriod
Exch="CME"/> Å Product Exchange
<Pty ID="CME" R="21"/> Å Allocating Firm Exchange
<Pty ID="CME" R="22"/> Å Allocating Firm Exchange
<Pty ID="770" R="1"/> Å Carry Firm
<Pty ID="50036933" R="24"> ÅCarry Firm Customer Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
<Pty ID="7G2L" R="12"/>
<Pty ID="2464" R="44"/>
<Alloc
IndAllocID2="500563" Å Allocation ID (Clearing generated)
CustCpcty="4" Å CTI Code
Qty="9"> Å Allocation Qty
<Pty ID="CME" R="22"/> Å Carry Firm Exchange
<Pty ID="102" R="1"/> Å Carry Firm
<Pty ID=" 50036933" R="24"> Å Carry Firm Customer Account
<Sub ID="1" Typ="26"/> Å Carry Firm Origin
</Pty>
</Alloc>
</AllocRpt>
Page 75 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
</FIXML>
7.7.5 Claim (Reject) Alert to Allocating Firm
Once the designated carry firm claims an allocation, the allocating firm will receive an alert message
containing all trade and allocation information.
Rejected APS Allocation Alert Report (GCA Reject)
<FIXML>
<AllocRpt
TransTyp =”0 Å AllocTransType=New
Stat=”0 Å AllocStat=Accepted
RptTyp=”10 Å Allocation Report Type=Reject
RptID=”500001 Å Rpt ID (Clearing generated Allocation ID)
BizDt=”2004-05-14 Å Clearing Business Date
TrdDt=”2003-01-13 Å Trade Date
Qty=”100 Å Allocation Qty
TrdTyp=”0 Å Trade Type
TrdSubTyp=”8 Å Trade Sub Type
MLegRptTyp=”2 Å Single Leg of multi-leg trade
Side=”1 Å Buy/Sell (Buy)
SesSub=”P Å TradeVenue
InptDev=”API Å API/UI Indicator
MsgEvtSrc=MQM Å MessageEventSource
AvgPxInd=”2 Å AveragePriceInd
RndPx=”1097.00 Å Rounded Price
AvgPx=”1097.55625 Å Average Price
TxnTm=”2007-02-26T08:15:00” > Å Execution Time
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
TID = “123” Å Target Firm ID
TSub = “CME Å Target Firm Exchange
SID=”CME /> Å Sender ID
<OrdAlloc
ClOrdID=”A456721 /> Å Order Number
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
CFI="FXXXXX"
MMY="200703"/> Å ProductPeriod
<Pty ID=”CMER=”22/> Å Allocating Firm Exchange
< Pty ID=”123 R=”1”/> Å Allocating Firm
<Pty ID=”ABCR=”2” /> Å Executing Broker
<Pty ID="123456" R="24" > Å Customer Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
<Amt Typ="CRES" Amt=".25" Ccy="USD" /> Å Residual Amount
<Alloc
IndAllocID=”10001 Å Allocation ID (Firm generated sent in GC)
IndAllocID2=”500001 Å Allocation ID (Clearing generated)
Qty=”100 Å Allocation Qty
CustCpcty=”4”> Å CTI Code
<Pty ID=”CME R=”22” /> Å Carry Firm Exchange
Page 76 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
<Pty ID=”456 R=”1”/> Å Carry Firm
<Pty ID=”G104A R=”24”> Å Carry Firm Customer Account
<Sub ID="1" Typ="26"/> Å Carry Firm Origin
</Pty>
</Alloc>
</AllocRpt>
</FIXML>
Rejected ACS Allocation Alert Report (GCA Reject)
<FIXML>
<AllocRpt
BizDt="2006-12-26" Å Clearing Business Date
MsgEvtSrc="CMESys" Å Message Source (CME Systems)
TxnTm="2006-12-26T10:37:25-06:00" Å Execution Time
InptDev="API" Å API/UI Indicator
TrdSubTyp="5" Å 5= Offset due to an allocation
RptTyp="10" Å RptType=Reject
AvgPx="1430.25" Å Group Price
RptID="500562" Å Trade ID (to be replaced by TrdID)
TrdID="500562" Å Trade ID
Side="2" Å Buy/Sell
ID="500562" Å Firm Group ID (Firm supplied)
Stat="0" Å AllocStat=Accepted
TransTyp="0" Å AllocTransType=Replace
Qty="9" Å Allocation Qty
TrdDt="2006-12-26" Å TradeDate
SesSub="E" Å TradeVenue
SesID="RTH"> Å Session is during RTH
<Hdr
Snt="2006-12-26T10:37:25-06:00" Å Message Time
SID="CME" Å Sender ID
TID="770" Å Target Firm ID
SSub="CME" Å Sending Firm Exchange
TSub="CME"/> Å Target Firm Exchange
<OrdAlloc
ClOrdID="0006M1B0"/> Å Order Number
<Instrmt
ID="ES" Å ProductCode
CFI="FFICSO"
MMY="200703" Å ProductPeriod
Exch="CME"/> Å ProductExchange
<Pty ID="CME" R="21"/> Å Carry Firm Exchange
<Pty ID="CME" R="22"/> Å Carry Firm Exchange
<Pty ID="770" R="1"/> Å Carry Firm
<Pty ID="50036933" R="24"> Å Carry Firm Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
<Pty ID="7G2L" R="12"/>
<Pty ID="2464" R="44"/>
<Alloc
IndAllocID2="500563" Å Allocation ID (Clearing Assigned
CustCpcty="4" Å CTI Code
Qty="9"> Å Allocation Qty
<Pty ID="CME" R="22"/> Å Carry Firm Exchange
<Pty ID="102" R="1"/> Å Carry Firm
<Pty ID=" 50036933" R="24"> ÅCarry Firm Customer Account
<Sub ID="1" Typ="26"/>
</Pty>
</Alloc>
</AllocRpt>
Page 77 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
</FIXML>
All allocation accept or reject confirmations will have “TranTyp” enumeration of “0” (New) and an “Stat”
of either “0” (Accepted) or “1” (Rejected) and a ‘Typ’ of either “9” (Accept) or “10” (Reject).
All trade information is supplied on an Accepted Allocation Alert.
The allocation accept or reject alert can be differentiated from a confirm of an accept or reject request
by the presence of the “Typ” attribute with an enumeration of either “9” (Accept) or “10” (Reject).
Page 78 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.8 Update Allocations
7.8.1 Update Allocation Request from Allocating Firm (GA Chg)
The Allocating firm can update an un-accepted or rejected allocation. The Allocating uses the clearing
system assigned Allocation ID in the Alloc Block to specify which allocation should be updated and the
clearing system assigned Group ID.
Allocating Firm Update APS Allocation Request (GA Chg)
<FIXML>
<AllocInstrctn
TransTyp =”1 Å AllocTransType=Replace
Typ=”2 Å Alloc Type=Preliminary
ID="1000" Å Firm Group ID (Firm supplied)
ID2 =”3001 Å Specific Group ID ClearingGenerated
TrdDt=”2004-05-14 Å TradeDate
Qty=”100 Å Allocation Qty
TrdTyp=”0 Å TradeType
MLegRptTyp=”1 Å Single Leg of multi-leg trade
Side=”1 Å BuySell(Buy)
SesSub=”P Å TradeVenue
InptDev=”API Å API/UI Indicator
MsgEvtSrc=”MQM Å MessageEventSource
AvgPxInd=”2”> Å AveragePriceInd
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
SSub = CME Å Sending Firm Exchange
SID=”092” /> Å Sender ID
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
CFI="FXXXXX"
MMY="200703"/> Å ProductPeriod
<Pty ID=”CME” R=22” /> Å GiveupExchange
<Pty ID=”123” R=”1” /> Å GiveupFirm
<Pty ID=”DEF” R=”2” /> Å GiveupBroker
<Alloc
IndAllocID=”10001 Å Allocation ID (Firm supplied)
IndAllocID2=”500001 Å Allocation ID (Clearing Assigned
Qty=”100 Å Allocation Qty
CustCpcty=”4”> Å CTI Code
<Pty ID=”CME” R=”22” /> Å Carry Firm Exchange
<Pty ID=”789” R=”1”/> Å Carry Firm
<Pty ID=”G104A” R=”24”> Å Carry Firm Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
</Alloc>
</AllocInstrctn>
</FIXML>
Allocating Firm Update ACS Allocation Request (GA Chg)
<FIXML>
<AllocInstrctn
BizDt="2007-04-19" Å Clearing Business Date
MsgEvtSrc="MQM" Å MessageEventSource
TxnTm="2007-04-19T15:12:48-05:00" Å Execution Time
Typ="2" Å Alloc Type=Preliminary
Page 79 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
AvgPx="0.8333" Å Group Price
RptID="500035" Å Trade ID (to be replaced by TrdID)
Side="1" Å BuySell(Buy)
ID="500035" Å Carry Firm
TransTyp="1" Å AllocTransType=Replace
Qty="1" Å Allocation Qty
TrdDt="2007-04-19" Å TradeDate
SesSub="E" Å TradeVenue
SesID="ETH"> Å Session is during ETH
<Hdr
Snt="2007-04-19T15:12:48-05:00" Å Message Time
SID="770" Å Sender ID
SSub="CME" /> Å Sending Firm Exchange
<OrdAlloc
ClOrdID="818C8D2D"/>
<Instrmt
ID="E1" Å Carry Firm
CFI="FFCPSO"
MMY="200706" Å ProductPeriod
Exch="CME"/> Å ProductExchange
<Pty ID="CME" R="21"/> Å Allocating Firm Exchange
<Pty ID="CME" R="22"/> Å Allocating Firm Exchange
<Pty ID="770" R="1"/> Å Carry Firm
<Pty ID="50052039" R="24 Å GiveupFirm
<Sub ID="1" Typ="26"/>
</Pty>
<Pty ID="7G0L" R="12"/>
<Pty ID="DAWN-ALR" R="44"/>
<Alloc
IndAllocID2="500036" Å Allocation ID (Clearing Assigned
CustCpcty="4" Å CTI Code
Qty="1"> Å Allocation Qty
<Pty ID="CME" R="22"/> Å Allocating Firm Exchange
<Pty ID="805" R="1"/> Å Carry Firm
<Pty ID=" CARRY" R="24">
<Sub ID="1" Typ="26"/>
</Pty>
</Alloc>
</AllocInstrctn>
</FIXML>
Page 80 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.8.2 Update Allocation from Carry Firm (Post Claim) (GC Chg)
The Carry firm can change non-critical fields after they have claimed the allocation. The Carry firm will have
to send the Specific Allocation ID and the Firm information that they are referring to.
Update Allocation Request from Carry Firm for both APS and ACS (GC Chg)
<FIXML>
<AllocRptAck
ID=”1000
RptID=”500102 Å Rpt ID (Clearing generated Allocation ID)
TransTyp =”1 Å AllocTransType = Replace
RptTyp=”8 Å Allocation Report Type=Request
Side=”1 Å Buy/Sell (Buy)
Qty=”100 Å Group Quantity
TrdDt=”2003-01-13 Å TradeDate
MsgEvtSrc=”MQM”>
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
SSub=”CME Å Sender Firm Exchange ID
SID=”456” /> Å Sender ID
<Pty ID=”CME” R=22”/> Å Allocating Firm Exchange
<Pty ID=”123” R=”1”/> Å Allocating Firm
<AllocAck
IndAllocID2=”500102 Å
Qty=”100 Å Allocation Quantity
CustCpcty=”5”> Å CTI Code (CTI Change)
<Pty ID=”CME” R=”22” /> Å Carry Firm Exchange
<Pty ID=”456” R=”1”/> Å Carry Firm
<Pty ID=”G104A” R=”24”> Å Carry Account
<Sub ID="2" Typ="26"/> Å Origin (Origin change from 1 to 2)
</Pty>
</AllocAck>
</AllocRptAck>
</FIXML>
Page 81 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.8.3 Update Allocation Confirmation to Carry Firm (GCC Chg)
Update Allocation Confirmation to Carry Firm for APS and ACS (GCC Chg)
<FIXML>
<AllocRpt
RptID=”500102 Å Rpt ID (Clearing generated Allocation ID)
ID=”1000 Å APS Group ID
TransTyp =”1 Å AllocTransType=Replace
Stat=”0 Å AllocStat=Accepted
RptTyp=”12 Å Allocation Report Type=Complete
Side=”1 Å Buy/Sell (Buy)
BizDt=”2004-05-14 Å Clearing Business Date
Qty=”100 Å GroupQuantity
TrdDt=”2003-01-13 Å TradeDate
InptDev=”API Å API/UI Indicator
MsgEvtSrc=”MQM”>
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
TSub=”CME Å Target Firm Exchange ID
TID=”456 Å Target Firm ID
SID=”CME” /> Å Sender ID
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
CFI="FXXXXX"
MMY="200703"/> Å ProductPeriod
<Pty ID=”CME” R=22”/> Å Allocating Firm Exchange
<Pty ID=”123” R=”1”/> Å Allocating Firm
<Alloc
IndAllocID2=”500102 Å Carry Firm Individual Alloc ID (Provided
to them by the Clearing System)
Qty=”100 Å Allocation Quantity
CustCpcty=”5”> Å CTI Code (CTI Change)
<Pty ID=”CME” R=”22” /> Å Carry Firm Exchange
<Pty ID=”456” R=”1”/> Å Carry Firm
<Pty ID=”G104A” R=”24”> Å Carry Account
<Sub ID="2" Typ="26"/> Å Origin (Origin change from 1 to 2)
</Pty>
</Alloc>
</AllocRpt>
</FIXML>
Page 82 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.9 Reversing Allocations
The claiming firm can request that an accepted allocation be released on the same day that the allocation is
accepted. After the allocation is cleared it can only be released / reversed by a request from the allocating
firm. The Clearing System determines if it is a release or a reversal based on the Clearing date and the
Trade date and the Allocation Ids.
Release Request from Carry Firm (APS/ACS) (GI)
<FIXML>
<AllocInstrctn
TransTyp =”6 Å AllocTransType = Reversal/Release
Typ=”8 Å Alloc Type=Request
ID=”1000
Side=”1 Å Buy/Sell (Buy)
Qty=”100 Å Group Quantity
TrdDt=”2003-01-13 Å TradeDate
MsgEvtSrc=”MQM”>
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
SSub=”CME Å Sender Firm Exchange ID
SID=”456” /> Å Sender ID
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
CFI="FXXXXX"
MMY="200703"/> Å ProductPeriod
<Pty ID=”CME” R=22”/> Å Allocating Firm Exchange
<Pty ID=”123” R=”1” /> Å Allocating Firm
<Alloc
IndAllocID2=”500102 Å Clearing Assigned ID
Qty=”100 Å Allocation Quantity
CustCpcty=”5”> Å CTI Code (CTI Change)
<Pty ID=”CME” R=”22” /> Å Carry Firm Exchange
<Pty ID=”456” R=”1”/> Å Carry Firm
<Pty ID=”G104A” R=”24”> Å Carry Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
</Alloc>
</AllocInstrctn>
</FIXML>
Reverse Request from Allocating Firm (APS/ACS)(GI)
<FIXML>
<AllocInstrctn
BizDt="2007-04-18" Å Clearing Business Date
TxnTm="2007-04-18T17:01:48-05:00" Å Execution Time
InptDev="API" Å API/UI Indicator
Typ="8" Å Alloc Type=Request
AvgPx="0.09065" Å Group Price
RptID="500196" Å Rpt ID (Clearing generated Allocation
ID)
Side="2" Å Buy/Sell (sell)
ID="500196" Å APS Group ID
TransTyp="6" Å AllocTransType = Reversal/Release
Qty="22" Å Group Quantity
TrdDt="2007-04-18" Å TradeDate
Page 83 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
SesSub="E" Å TradeVenue
SesID="RTH"> Å Session is during RTH
<Hdr
Snt="2007-04-18T17:01:48-05:00"
SID="505" Å Sender ID
SSub="CME" /> Å Sender Firm Exchange ID
<OrdAlloc
ClOrdID="V-15"/> Å Order Number
<Instrmt
ID="MP" Å ProductCode
CFI="FFCPSO" Å CFI
MMY="200706" Å ProductPeriod
Exch="CME"/> Å ProductExchange
<Pty ID="CME" R="21"/> Å Carry Firm Exchange
<Pty ID="CME" R="22"/> Å Carry Firm Exchange
<Pty ID="505" R="1"/> Å Carry Firm
<Pty ID="MFT" R="24"> Å ProductCode
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
<Pty ID="VSOP" R="12"/>
<Alloc
IndAllocID2="500197" Å Clearing Assigned ID
CustCpcty="4" Å CTI Code (CTI Change)
Qty="22"> Å Allocation Quantity
<Pty ID="CME" R="22"/> Å Carry Firm Exchange
<Pty ID="660" R="1"/> Å Carry Firm
<Pty ID="MFT" R="24"> Å Carry Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
</Alloc>
</AllocInstrctn>
</FIXML>
Page 84 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.9.1 Release Request Confirm to Carry Firm (GIC)
Release Request Confirm to Carry Firm (GIC)
<FIXML>
<AllocRpt
TransTyp =”6 Å AllocTransType = Reversal/Release
Stat=”3 Å AllocStat=Received
RptTyp=”8 Å Alloc Report Type=Request
RptID=”500102 Å Report ID
Side=”1 Å Buy/Sell (Buy)
BizDt=”2004-05-14 Å Clearing Business Date
Qty=”100 Å GroupQuantity
TrdDt=”2003-01-13 Å TradeDate
InptDev=”API Å API/UI Indicator
MsgEvtSrc=”MQM>
<Hdr
Snt = 2007-02-26T08:20:00-05:00 Å Message Time
TID=”456 Å Target ID
TSub=”CME Å Target Firm Exchange ID
SID=”CME /> Å Sender ID
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
CFI="FXXXXX"
MMY="200703"/> Å ProductPeriod
<Pty ID=”CME” R=22”/> Å Allocating Firm Exchange
<Pty ID=”123” R=”1” /> Å Allocating Firm
<Alloc
IndAllocID2=”500102 Å Carry Firm Individual Alloc ID (Provided
to them by the Clearing System)
Qty=”100 Å Allocation Quantity
CustCpcty=”5”> Å CTI Code (CTI Change)
<Pty ID=”CME” R=”22” /> Å Carry Firm Exchange
<Pty ID=”456” R=”1”/> Å Carry Firm
<Pty ID=”G104A” R=”24”> Å Carry Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
</Alloc>
</AllocRpt>
</FIXML>
Page 85 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
Reverse Request Confirm to Carry Firm (ACS) (GIC)
<FIXML>
<AllocRpt
BizDt="2007-04-18" Å Clearing Business Date
MsgEvtSrc="CMESys"
TxnTm="2007-04-19T17:29:29-05:00" Å Execution Time
InptDev="API" Å API/UI Indicator
TrdSubTyp="5" Å 5= Offset due to an allocation
RptTyp="8" Å Alloc Report Type=Request
AvgPx="0.09065" Å Group Price
RptID="500196" Å Rpt ID (Clearing generated Allocation ID)
Side="2" Å Buy/Sell (sell)
ID="500196" Å ProductCode
Stat="3" Å AllocStat=Received
TransTyp="6" Å AllocTransType = Reversal/Release
Qty="22" Å GroupQuantity
TrdDt="2007-04-18" Å TradeDate
SesSub="E" Å TradeVenue
SesID="RTH"> Å Session is during RTH
<Hdr
Snt="2007-04-19T17:29:29-05:00" Å Message Time
SID="CME" Å Sender ID
TID="505" Å Target ID
SSub="CME" Å Sender Firm Exchange ID
TSub="CME"/> Å Target Firm Exchange ID
<OrdAlloc
ClOrdID="V-15"/> Å Order Number
<Instrmt
ID="MP" Å ID (Firm Group ID)
CFI="FFCPSO"
MMY="200706" Å ProductPeriod
Exch="CME"/> Å ProductExchange
<Pty
ID="CME" Å ProductCode
R="21"/> Å Allocating Firm Exchange
<Pty
ID="CME"
R="22"/> Å Allocating Firm Exchange
<Pty
ID="505"
R="1"/> Å Allocating Firm Exchange
<Pty
ID="MFT" Å ProductCode
R="24"> Å Allocating Firm Exchange
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
<Pty ID="VSOP" R="12"/>
<Alloc
IndAllocID2="500197" Å Carry Firm Individual Alloc ID
CustCpcty="4" Å CTI Code (CTI Change)
Qty="22"> Å Allocation Quantity
<Pty ID="CME" R="22"/> Å Carry Firm Exchange
<Pty ID="660" R="1"/> Å Carry Firm
Pty ID=" MFT" R="24"> Å Carry Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
</Alloc>
</AllocRpt>
Page 86 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
</FIXML>
7.10 Sub Allocations/ Third Party Allocations by Carry Firm
7.10.1 Sub Allocation request from Carry Firm
The carry firm communicates sub-allocation or third-party allocation requests using the Allocation Instruction
message. The original claiming firm specifies the sub allocating firm / third party information in an allocation
block. In the first allocation block the original claim firm identifies the original allocation it claimed. All
subsequent allocation blocks are used to indicate the third-party or sub-allocation instructions.
Carry Firm Sub Allocates a Claimed Allocation (ACS/APS) (GC)
<FIXML>
<AllocInstrctn
TransTyp =”1 Å AllocTransType = Replace
Typ=”8 Å Alloc Type=Request
Side=”1 Å Buy/Sell (Buy)
ID=”1000 Å ID (Firm Group ID)
ID2=”1001 Å ID2 (Clearing generated APS ID)
Qty=”100 Å Group Quantity
TrdDt=”2003-01-13
MsgEvtSrc=”MQM”>
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
SSub=”CME Å Sender Firm Exchange ID
SID=”456” /> Å Sender ID
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
CFI="FXXXXX"
MMY="200703"/> Å ProductPeriod
<Pty ID=”CME” R=22”/> Å Allocating Firm Exchange
<Pty ID=”123” R=”1”/> Å Allocating Firm
<Alloc
IndAllocID2=”500102 Å Clearing Assigned ID
Qty=”100 Å Allocation Quantity
CustCpcty=”5”> Å CTI Code (CTI Change)
<Pty ID=”CME” R=”22” /> Å Carry Firm Exchange
<Pty ID=”456” R=”1”/> Å Carry Firm
<Pty ID=”G104A” R=”24”> Å Carry Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
</Alloc>
<Alloc
Qty=”100 Å Allocation Quantity
CustCpcty=”5”> Å CTI Code (CTI Change)
<Pty ID=”CME” R=”22” /> Å Carry Firm Exchange
<Pty ID=”456” R=”1”/> Å Carry Firm
<Pty ID=”G104B” R=”24”> Å Carry Account
<Sub ID="2" Typ="26"/> Å Origin
</Pty>
</Alloc>
</AllocInstrctn>
</FIXML>
Page 87 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.10.2 Sub Allocation request confirm from Clearing System
The clearing firm acknowledges the Sub allocation request with a status of received. The clearing system
treats this as a new allocation request. A new group is created and the carry firm is notified. Allocation
request confirm is sent to the carry firm and an allocation alert is sent to the sub allocating firm.
Clearing System Acknowledges the Sub Allocation request (APS/ACS) (GCC)
<FIXML>
<AllocRpt
TransTyp =”0 Å AllocTransType = New
Stat=”3 Å Alloc Stat=Received
RptTyp=”2 Å Alloc Report Type=Preliminary
Side=”1 Å Buy/Sell (Buy)
Qty=”100 Å Group Quantity
TrdDt=”2003-01-13
MsgEvtSrc=”MQM
RptID = “500102” > Å Report ID
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
TID = “123 Å TargetID
TSub = “CME Å Target Firm Exchange
SID=”456” /> Å Sender ID
<Instrmt
Exch="CME" Å ProductExchange
ID="SP" Å ProductCode
CFI="FXXXXX"
MMY="200703"/> Å ProductPeriod
<Pty ID=”CME” R=22”/> Å Allocating Firm Exchange
<Pty ID=”123” R=”1”/> Å Allocating Firm
<Alloc
IndAllocID2=”500102 Å Clearing Assigned ID
Qty=”100 Å Allocation Quantity
CustCpcty=”5”> Å CTI Code (CTI Change)
<Pty ID=”CME” R=”22” /> Å Carry Firm Exchange
<Pty ID=”456” R=”1”/> Å Carry Firm
<Pty ID=”G104A” R=”24”> Å Carry Account
<Sub ID="1" Typ="26"/> Å Origin
</Pty>
</Alloc>
<Alloc
Qty=”100 Å Allocation Quantity
CustCpcty=”5”> Å CTI Code (CTI Change)
<Pty ID=”CME” R=”22” /> Å Carry Firm Exchange
<Pty ID=”456” R=”1”/> Å Carry Firm
<Pty ID=”G104B” R=”24”> Å Carry Account
<Sub ID="2" Typ="26"/> Å Origin
</Pty>
</Alloc>
</AllocRpt>
</FIXML>
Page 88 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.11 Transfers done thru Clearing UI
7.11.1 Transfer Add Acknowledgement to the executing Firm
The clearing system acknowledges each trade submission from the UI with a Trade Capture Report. This is
an add Acknowledgement of a Transfer trade submitted thru the UI to the executing firm.
Trade Capture Report Confirm for a Transfer (Add)
<?xml version=”1.0” encoding=”UTF-8” ?>
<FIXML>
<TrdCaptRpt
RptID=”10001 Å Trade ID for the Executing Firm
RptTyp=”0 Å Trade Report Type 0=Submit
TransTyp="0" Å TransTyp=New
TrdRptStat=”0 Å Trade Report Status 0=Accepted
TrdTyp=”3 Å TradeType 3=Transfer
MLegRptTyp=”1
TrnsfrRsn=”E Å This is the Order Type in TREX
MtchStat=”1 Å MtchStat 1=Unmatched
LastPx=”1098.00 Å Trade Price
TxnTm=”2007-02-26T08:15:00 Å Execution Time
LastQty=”150 Å Trade Quantity
BizDt=”2004-05-14 Å Clearing Business Date
TrdDt=”2007-02-26 Å Trade Date
AvgPx=”1098.4352 Å Average Price (for future use)
MsgEvtSrc=“CMESys”> Å MessageEventSource=CME System
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
TID=”123” Å Target Firm ID (Executing Firm)
TSub=”CME” Å Target Firm Exchange
SID=”CME” /> Å Sender ID
<Instrmt
Exch=”CME Å ProductExchange
ID=”SP Å ProductCode
CFI=”FXXXXX
MMY=”200703”/> Å ProductPeriod
<Amt Typ="CRES" Amt=".25" Ccy="USD" /> Å Residual Amount (Optional)
<RptSide
CustCpcty=”4
Side=”1
ClOrdID=” A456721
SesID=”RTH Å Business Cycle
SesSub=”X”> Å Venue is X-Pit
<Pty ID=”CME” R=”21”/> Å Clearing Org
<Pty ID=”CME” R=22”/> Å Exchange
<Pty ID=”123” R=”1”> Å Executing Firm (Required)
<Pty ID=”12345” R=”24”> Å Customer Acct Firm (Required)
<Sub ID=”1” Typ=”26”/> Å Origin (Required)
</Pty>
<Pty ID=”ABC” R=”12”/> Å Executing Trader (Optional)
<Pty ID=”CME” R=42”/> Å Contra Exchange
<Pty ID=”350” R=”17”/> Å Opposite Firm (Required)
</RptSide>
</TrdCaptRpt>
</FIXML>
Page 89 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.11.2 Transfer Claim Acceptance from the Claim Firm
When the Claim firm accepts the trade thru the Clearing System UI, they receive a TradeCaptRpt
acknowledging the Match and Claim.
Trade Capture Report Acceptance for a Transfer (Change)
<?xml version=”1.0” encoding=”UTF-8” ?>
<FIXML>
<TrdCaptRpt
RptID=”20001 Å Trade ID
RptTyp=”2 Å Trade Report Type 2=Accept
TransTyp="2" Å TransTyp=Change
TrdRptStat=”0 Å Trade Report Status 0=Accepted
TrdTyp=”3 Å TradeType 3=Transfer
MLegRptTyp=”1
TrnsfrRsn=”E Å This is the Order Type in TREX
MtchStat=”0 Å MtchStat 0=Match
LastPx=”1098.00 Å Trade Price
TxnTm=”2007-02-26T08:15:00 Å Execution Time
LastQty=”150 Å Trade Quantity
BizDt=”2004-05-14 Å Clearing Business Date
TrdDt=”2007-02-26 Å Trade Date
MsgEvtSrc=“CMESys”> Å MessageEventSource=CME System
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
TID=”350” Å Target Firm ID (Executing Firm)
TSub=”CME” Å Target Firm Exchange
SID=”CME” /> Å Sender ID
<Instrmt
Exch=”CME Å ProductExchange
ID=”SP Å ProductCode
CFI=”FXXXXX
MMY=”200703”/> Å ProductPeriod
<Amt Typ="CRES" Amt=".25" Ccy="USD" /> Å Residual Amount (Optional)
<RptSide
CustCpcty=”4
Side=”1
ClOrdID=” A456721
SesID=”RTH Å Business Cycle
SesSub=”X”> Å Venue is X-Pit
<Pty ID=”CME” R=21”/> Å Clearing Org
<Pty ID=”CME” R=22”/> Å Exchange
<Pty ID=”123” R=”1”/> Å Executing Firm (Required)
<Pty ID=”12345” R=24”>
Å
Customer Acct Firm (Optional)
<Sub ID=”1” Typ=”26”/>
Å
Origin (Optional)
</Pty>
<Pty ID=”ABC” R=”12”/>
Å
Executing Trader (Optional)
<Pty ID=”CME” R=42”/> Å Contra Exchange (Required)
<Pty ID=”350” R=”17”> Å Opposite Firm (Required)
<Pty ID=”67890” R=”24”> Å Customer Acct Firm (Required)
<Sub ID=”2” Typ=”26”/> Å Origin (Required)
</Pty>
<Pty ID=”BAT” R=”37”/>
Å
Opposite Trader (Optional)
</RptSide>
</TrdCaptRpt>
</FIXML>
Page 90 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.11.3 Transfer Claim Acceptance Alert to the Executing Firm
When the Claim firm accepts the trade thru the Clearing System UI, the executing firm receives an alert of
the Claim.
Trade Capture Report Acceptance Alert of the Transfer (Change)
<?xml version=”1.0” encoding=”UTF-8” ?>
<FIXML>
<TrdCaptRpt
RptID=”10001 Å Trade ID
RptTyp=”2 Å Trade Report Type 2=Accept
TransTyp="2" Å TransTyp=Change
TrdRptStat=”0 Å Trade Report Status 0=Accepted
TrdTyp=”3 Å TradeType 3=Transfer
MLegRptTyp=”1
TrnsfrRsn=”E Å This is the Order Type in TREX
MtchStat=”0 Å MtchStat 0=Match
LastPx=”1098.00 Å Trade Price
TxnTm=”2007-02-26T08:15:00 Å Execution Time
LastQty=”150 Å Trade Quantity
BizDt=”2004-05-14 Å Clearing Business Date
TrdDt=”2007-02-26 Å Trade Date
MsgEvtSrc=“CMESys”> Å MessageEventSource=CME System
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
TID=”123” Å Target Firm ID (Executing Firm)
TSub=”CME” Å Target Firm Exchange
SID=”CME” /> Å Sender ID
<Instrmt
Exch=”CME Å ProductExchange
ID=”SP Å ProductCode
CFI=”FXXXXX
MMY=”200703”/> Å ProductPeriod
<Amt Typ="CRES" Amt=".25" Ccy="USD" /> Å Residual Amount (Optional)
<RptSide
CustCpcty=”4
Side=”1
ClOrdID=” A456721
SesID=”RTH Å Business Cycle
SesSub=”X”> Å Venue is X-Pit
<Pty ID=”CME” R=21”/> Å Clearing Org
<Pty ID=”CME” R=22”/> Å Executing Exchange (Required)
<Pty ID=”123” R=”1”/> Å Executing Firm (Required)
<Pty ID=”12345” R=24”>
Å
Customer Acct Firm (Optional)
<Sub ID=”1” Typ=”26”/>
Å
Origin (Optional)
</Pty>
<Pty ID=”ABC” R=”12”/>
Å
Executing Trader (Optional)
<Pty ID=”CME” R=42”/> Å Contra Exchange (Required)
<Pty ID=”350” R=”17”> Å Opposite Firm (Required)
<Pty ID=”67890” R=24”>
Å
Customer Acct Firm (Optional)
<Sub ID=”2” Typ=”26”/>
Å
Origin (Optional)
</Pty>
<Pty ID=”BAT” R=”37”/>
Å
Opposite Trader (Optional)
</RptSide>
</TrdCaptRpt>
</FIXML>
Page 91 of 113 FIXML Allocation API User’s Guide March 2005
©Chicago Mercantile Exchange, 2005
7.11.4 Transfer Release Acceptance Confirm to the Executing Firm
When and Executing Firm accepts the transfer release from the UI the executing Firm gets a delete and the
claim firm gets a
Trade Capture Report Release Acceptance Confirm of the Transfer
<?xml version=”1.0” encoding=”UTF-8” ?>
<FIXML>
<TrdCaptRpt
RptID=”10001 Å Trade ID
RptTyp=”2 Å Trade Report Type 2=Accept
TransTyp="2" Å TransTyp=Change
TrdRptStat=”0 Å Trade Report Status 0=Accepted
TrdTyp=”3 Å TradeType 3=Transfer
MLegRptTyp=”1
TrnsfrRsn=”E Å This is the Order Type in TREX
MtchStat=”1 Å 1=Unmatch
LastPx=”1098.00 Å Trade Price
TxnTm=”2007-02-26T08:15:00 Å Execution Time
LastQty=”150 Å Trade Quantity
BizDt=”2004-05-14 Å Clearing Business Date
TrdDt=”2007-02-26 Å Trade Date
MsgEvtSrc=“CMESys”> Å MessageEventSource=CME System
<Hdr
Snt = “2007-02-26T08:20:00-05:00 Å Message Time
TID=”123” Å Target Firm ID (Executing Firm)
TSub=”CME” Å Target Firm Exchange
SID=”CME” /> Å Sender ID
<Instrmt
Exch=”CME Å ProductExchange
ID=”SP Å ProductCode
CFI=”FXXXXX
MMY=”200703”/> Å ProductPeriod
<Amt Typ="CRES" Amt=".25" Ccy="USD" /> Å Residual Amount (Optional)
<RptSide
CustCpcty=”4
Side=”1
ClOrdID=” A456721
SesID=”RTH Å Business Cycle
SesSub=”X”> Å Venue is X-Pit
<Pty ID=”CME” R=21”/> Å Clearing Org
<Pty ID=”CME” R=22”/> Å Executing Exchange (Required)
<Pty ID=”123” R=”1”/> Å Executing Firm (Required)
<Pty ID=”12345” R=24”>
Å
Customer Acct Firm (Optional)
<Sub ID=”1” Typ=”26”/>
Å
Origin (Optional)
</Pty>
<Pty ID=”ABC” R=”12”/>
Å
Executing Trader (Optional)
<Pty ID=”CME” R=42”/> Å Contra Exchange (Required)
<Pty ID=”350” R=”17”> Å Opposite Firm (Required)
<Pty ID=”67890” R=24”>
Å
Customer Acct Firm (Optional)
<Sub ID=”2” Typ=”26”/>
Å
Origin (Optional)
</Pty>
<Pty ID=”BAT” R=”37”/>
Å
Opposite Trader (Optional)
</RptSide>
</TrdCaptRpt>
</FIXML>
Page 92 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
8 Required Fields
8.1 Required Fields on Inbound Allocation Instruction Messages
Create Allocation (GA) Update Allocation
(GA Chg)
Allocation Reversal
(GI)
Element Attribute
Reqd
(Y/N) FIXML Value Reqd
(Y/N) FIXML Value Reqd
(Y/N) FIXML Value
Comments
/AllocInstrctn/ @TransTyp Y @TransTyp=”0”
New
Y @TransTyp=”1”
Replace
Y @TransTyp=”6”
Reversal
The Allocation Trans
Type.
@Typ Y @Typ=”2”
Preliminary
Y @Typ=”2”
Preliminary
Y @Typ=”8”
Request
N/A Allocation Type of
the allocation. This is
not set in messages
@Stat N N/A N N/A N N/A N/A (Attribute is not set
on messages sent by
firms)
@ID Y @ID=value Y @ID=value Y @ID=value If the firm generated
APS ID is not provided it
will be set to 0.
@ID2 Y @ID=value Y @ID=value Y @ID=value The Clearing System
generated
@TrdDt Y @TrdDt=YYYY-
MM-DD
Y @TrdDt=YYYY-
MM-DD
Y @TrdDt=YYYY-
MM-DD
The Trade date of the
Trade
@TrdTyp N N Y @TrdTyp=value This attribute is required
if the allocation is a
Specific allocation.
@TrdSubTyp N @TrdSubTyp=
value
N @TrdSubTyp=
value
N @TrdSubTyp=
value
The Trade Subtype
additionally qualifies the
Trade.
@MlegRptTyp N @MlegRptTyp=
value
N @MlegRptTyp=val
ue
N @MlegRptTyp=val
ue
Additionally the trade
and instrument.
@CustCpcty N N N
Page 93 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
Create Allocation (GA) Update Allocation
(GA Chg)
Allocation Reversal
(GI)
Element Attribute
Reqd
(Y/N) FIXML Value Reqd
(Y/N) FIXML Value Reqd
(Y/N) FIXML Value
Comments
@SesSub N @SesSub=valu
e
N @SesSub=value N @SesSub=value This is the venue of the
trade. If the allocation is
a specific Allocation, it is
required. (This is the
trade venue). It is a fee
specific attribute
@SesID N @SesID=value N @SesID=value N @SesID=value This is te trading
session.
@Qty Y @Qty=value N @Qty=value N @Qty=value The allocation Quantity
@Side Y @Side=value N @Side=value N @Side=value
@MsgEvtSrc Y @MsgEvtSrc=”
MQM”
Y @MsgEvtSrc=”MQ
M”
Y @MsgEvtSrc=”MQ
M”
The Source of the
Message. The firm send
a value of MQM always.
@InptDev Y @InptDev=”API” Y @InptDev=”API” Y @InptDev=”API” If the allocation is sent
using an API this is set
to “API”.
@AvgPxInd Y 1=Incomplete Y 1=Incomplete Y 2=Complete The presence of this
attribute implies that this
is an APS Allocation.
@AvgPx N @AvgPx=value N @AvgPx=value N @AvgPx=value The firm may provide
the Average Price but
will be ignored by
Clearing
@RndPx N @AvgPx=value N @AvgPx=value N @AvgPx=value The Rounded Average
Price
/AllocInstrctn/Hdr/ @Snt Y Y Y The firm sends the
Message Time. Its is
required for Audit
purpose. The format is
GMT or CST with an
Offset.
@SID Y @SID=Firm ID Y SID=Firm ID Y SID=Firm ID The Firm will send its ID
here
Page 94 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
Create Allocation (GA) Update Allocation
(GA Chg)
Allocation Reversal
(GI)
Element Attribute
Reqd
(Y/N) FIXML Value Reqd
(Y/N) FIXML Value Reqd
(Y/N) FIXML Value
Comments
@SSub Y @SSub
=Sending Firm
Exchange
Y @SSub =Sending
Firm Exchange
Y @SSub =Sending
Firm Exchange
The Exchange of the
sending Firm
/AllocInstrctn/Instrmt/ Though this element is
not required in Change
and Reversal messages
it is recommended
sending it.
@Exch Y @Exch=CME N N The Product Exchange
Code
@Exch=”CBT”
@ID Y N N The Product ID (as
required by CME)
@CFI Y N N Refer to CFI code
@MMY Y N N
/AllocIInstrctn/Pty[1]/ @ID, @R Y ID =”value”,
R=22
Y ID =”value”, R=22 Y ID =”value”, R=22 Give-up Exchange
/AllocIInstrctn/Pty[2]/ @ID, @R Y ID =”value”, R=1 Y ID =”value”, R=1 Y ID =”value”, R=1 Give-up Firm
/AllocIInstrctn/Pty[3]/ @ID, @R N ID =”value”, R=2 N ID =”value”, R=2 N ID =”value”, R=2 Give-up Broker
/AllocInstrctn/Pty[3]/Sub/ @ID, @Typ N ID=value,
Typ=26
N ID=value, Typ=26 N ID=value, Typ=26 Typ=26 is Account Type
/AllocInstrctn/Amt/ N N N This element is
Optional. This is used
by the Clearing System
to transmit the Residual
Price
@Typ N @Typ=”CRES” N @Typ=”CRES” N @Typ=”CRES” The Amount Type. The
valid value for APS
messages is “CRES”
Page 95 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
Create Allocation (GA) Update Allocation
(GA Chg)
Allocation Reversal
(GI)
Element Attribute
Reqd
(Y/N) FIXML Value Reqd
(Y/N) FIXML Value Reqd
(Y/N) FIXML Value
Comments
@Amt N @Amt=value N @Amt=value N @Amt=value The Cash Residual
Amount
@Ccy N @Ccy=value N @Ccy=value N @Ccy=value
/AllocInstrctn/Alloc/ This block is the
Allocation Block.
@IndAllocID N @IndAllocID=val
ue
N @IndAllocID=value N @IndAllocID=value Firm supplied Allocation
ID
@IndAllocID2 N @IndAllocID2=v
alue
Y @IndAllocID2=valu
e
Y @IndAllocID2=valu
e
Clearing System
generated Allocation ID
@Qty Y N
@CustCpcty
/AllocInstrctn/Alloc/Pty[1]/ @ID, @R Y ID =value, R=22 Y ID =”value”, R=22 Y ID =”value”, R=22 Carry Exchange
/AllocInstrctn/Alloc/Pty[2]/ @ID, @R Y ID =value, R=1 Y ID =”value”, R=1 Y ID =”value”, R=1 Carry Firm
/AllocInstrctn/Alloc/Pty[3]/ @ID, @R N ID =value, R=24 N ID =”value”, R=24 Y ID =”value”, R=24 Carry Account
/AllocInstrctn/Alloc/Pty[3]/
Sub/
@ID, @Typ N ID=value,
Typ=26
N ID=value, Typ=26 Y ID=value, Typ=26 Typ=26 is Account Type
Page 96 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
8.2 Required Fields on Inbound Allocation Report Acknowledgement Messages
Claim
(GC)
Reversal Acceptance
(GI)
Element Attribute
Reqd
(Y/N) FIXML Value Reqd
(Y/N) FIXML Value
Comments
/AllocRptAck/ @TransTyp Y @TransTyp=”0” Y @TransTyp=”6” The Allocation Trans
Type.
@RptID Y
@RptTyp Y @Typ=”9” Y @Typ=”9” Accept
@Typ=”10” @Typ=”10” Reject
@Stat N N The Status is set only
on confirms and Alerts
@ID Y @ID=value N If the firm generated
APS ID.This is not
required
@ID2 Y @ID=value Y @ID=value The Clearing System
generated Group ID.
@TrdDt Y @TrdDt=YYYY-
MM-DD
Y @TrdDt=YYYY-
MM-DD
The Trade date of the
Trade
@TxnTm Y @TxnTm=”
YYYY-MM-
DDTHH:MM:SS.
00”
Y @TxnTm=” YYYY-
MM-
DDTHH:MM:SS.00
Format is ”YYYY-MM-
DDTHH:MM:SS.00”
@BizDt N @BizDt=YYYY-
MM-DD
N @BizDt=YYYY-
MM-DD
The Clearing Business
date of the Trade
@Qty N @Qty=value N @Qty=value The total allocation
Quantity
@MsgEvtSrc Y @MsgEvtSrc=”
MQM”
Y @MsgEvtSrc=”MQ
M”
The Source of the
Message. The firm send
a value of MQM always.
@AvgPxInd Y 2=Complete Y 2=Complete The presence of this
attribute implies that this
Page 97 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
is an APS Allocation.
/AllocRptAck/Hdr/ @Snt Y Y The firm sends the
Message Time. Its is
required for Audit
purpose. The format is
GMT or CST with an
Offset.
@SID Y @SID=value Y @SID=value The Sending Firm ID
@SSub Y @SSub=value Y @SID=value The Sending Exchange
/AllocRptAck/Pty[1]/ @ID, @R Y ID =”value”,
R=”22”
Y ID =”value”, R=”22” Give-up Exchange
/ AllocRptAck/Pty[2]/ @ID, @R Y ID =”value”,
R=”1”
Y ID =”value”, R=”1” Give-up Firm
/AllocRptAck/Pty[3]/ @ID, @R N ID =”value”,
R=”2”
N ID =”value”, R=”2” Give-up Broker
/AllocRptAck/AllocAck/ This block is the
Allocation Ack Block
equivalent to the
Allocation Block in the
Allocation messages.
@IndAllocID N @IndAllocID=val
ue
Firm supplied Allocation
ID
@IndAllocID2 Y @IndAllocID2=v
alue
Y Clearing System
generated Allocation ID
@Qty Y @Qty=value Y @Qty=value Allocation Qty
@CustCpcty N @Qty=value N @CustCpcty=value
/AllocInstrctnAck/AllocAck/
Pty[1]/
@ID, @R Y ID =value, R=22 Y ID =value, R=22 Carry Exchange
/AllocInstrctnAck/Alloc/Ack
Pty[2]/
@ID, @R Y ID =value, R=1 Y ID =value, R=1 Carry Firm
/AllocInstrctnAck/AllocAck/
Pty[3]/
@ID, @R Y ID =value, R=24 Y ID =value, R=24 Carry Account
/AllocInstrctnAck/Alloc/Pty[ @ID, @Typ Y ID=value, Y ID=value, Typ=26 Typ=26 is Account Type
Page 98 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
3]/Sub/ Typ=26
Page 99 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
8.3 APS Routing File to FIXML mapping
Currently the firms receive an APS Routing File at the end of the day on all the APS activity. This is going to be replaced by real-time allocation Confirms/Alerts and real-time
Claim Confirms/Alerts, which can be used by the firms to update their books. The Legacy interface and the FIXML confirms do not map one-one.
APS Record Type = 0 (Header record)
The information in APS Header record will be available in all the FIXML confirms and Alerts.
APS Record Type = 1 (Group Status Record)
This will be replaced by the Group Summary Alerts or the Allocation Instruction Alert which notifies the firm of Group Creation and transmits the group ID to be used by
them.
APS Record Type 2 & 3 (Trade related information)
No corresponding FIXML message available in the APS API.
APS Record Type 4 & 6 (Allocation and Claim information to Give-up Firm)
The information available in the record types 4 & 6 have been combined into a single FIXML message and is transmitted to the Give-up firm. These would be the
allocation confirms (GAC) and the Claim Alerts (GCA). The message used is an Allocation Instruction Acknowledgement.
APS Record Type 5 & 6 (Allocation and Claim information to Carry Firm).
The information available in the record types 5 & 6 have been combined into a single FIXML message and is transmitted to the Carry firm. These would be the
allocation Alerts (GAA) and the Claim Confirms (GCC). The message used is an Allocation Instruction Acknowledgement.
Note: A mapping is provided so that the firms can co-relate the Routing file information to real-time FIXML messages
Page 100 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
8.3.1 Mapping for Record Type 0 & 1
Position Field Name
From To
FIXML Element FIXML Attribute APS Routing
File value FIXML Value Comments
Header Record
File Name Indicator 1 2
Header Record Indicator 3 3 N/A
Firm Number 4 6 /AllocInstrctnAlert/Pty/ @ID, @R @ID=value
@R=”1”
Mapping to Executing Firm ???
Record Create Date 48 50 /AllocInstrctnAlert/Hdr/ @Snt
Record Create Time 51 56 /AllocInstrctnAlert/Hdr/ @Snt
# of APS Transaction
Records
63 68 N/A
Session Indicator 69 69 /AllocInstrctnAlert / @SesSub R @SesSub=”RTH”
E @SesSub=”ETH
Main Routing Transaction Record
Transaction Identifier 1 1 N/A
Action Code 2 2 /AllocInstrctnAlert/ @TransTyp A=Add @TransTyp=”0” If new group is created it is 0
@TransTyp=”1” If trades are added to an existing
group, the TransTyp is set to 1
(Replace)
Transaction Type 3 3 N/A
Clearing Firm 4 6 /AllocInstrctnAlert/Pty[1] @ID, @R @ID=value,
@R=1
If the Executing and the Clearing
Firm are the same, use this
mapping.
Otherwise Clearing Firm is not
set on the messages .
Trade Date 9 14 /AllocInstrctnAlert/ @TrdDt
Transaction ID 15 19 N/A Allocation ID not applicable to
Group Summary Alert
messages.
Page 101 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
Position Field Name
From To
FIXML Element FIXML Attribute APS Routing
File value FIXML Value Comments
Session Indicator 20 20 /AllocInstrctnAlert/ @SesSub R @SesSub=”RTH”
E @SesSub=”ETH
Group ID 21 25 /AllocInstrctnAlert/ @ID2 @ID2=value The Group ID generated by the
Clearing System
Exchange ID 26 27 /AllocInstrctnAlert/Instrmt/ @Exch @Exch=”CME” If this is the Product Exchange
use this mapping
@Exch=”CBT”
/AllocInstrctnAlert/Pty[2]/ @ID, @R @ID=value,
@R=22
If this attribute has the Give-up
Exchange, then use this
mapping.
Commodity Code 29 29 /AllocInstrctnAlert/Instrmt/ @ID Product ID
Put/Call Indicator 33 33 /AllocInstrctnAlert/Instrmt/ @CFI See CFI Code mapping
Contract Year 34 35 /AllocInstrctnAlert/Instrmt/ @MMY This attribute replaces
Contract Month 36 37
Contract Day 38 39
Strike Price 40 46 /AllocInstrctnAlert/Instrmt/ @StrkPx Set for Options
Buy Sell Indicator 47 47 /AllocInstrctnAlert/ @Side 1 = Buy
2 = Sell
Group Summary/Status (Record Type 1)
Transaction Quantity 48 52 /AllocInstrctnAlert/ @Qty @Qty=value Group Summary Qty
Allocated Quantity 53 57 N/A .
UnAllocated Quantity 58 62 N/A The Unallocated Quantity is not
applicable to this message
Group Mode 63 63 N/A
Group Status 64 68 /AllocInstrctnAlert/ @Stat Work=Working 4 = Incomplete
Group Cash Residual
Amount
69 77 /AllocInstrctnAlert/Amt/ @Typ, @Amt, @Ccy @Typ=”CRES”
@Amt=value
Page 102 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
Position Field Name
From To
FIXML Element FIXML Attribute APS Routing
File value FIXML Value Comments
@Ccy=value
/AllocInstrctnAlert/ @AvgPx Additional mapping (True
Average Price calculated and
sent to firms as trades are added
to the group)
/AllocInstrctnAlert/ @RndPx Additional mapping (The
rounded Price) will also be
provided
Page 103 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
8.3.2 Mapping for Record Type 0, 4 & 6 (Allocation & Claim information to Give-up Firm)
Position Field Name
From To
FIXML Element FIXML Attribute APS Routing
File value FIXML Value Comments
Header Record
File Name Indicator 1 2
Header Record Indicator 3 3 N/A
Firm Number 4 6 /AllocRpt/Pty/ @ID, @R @ID=value
@R=”1”
Mapping to the Executing Firm
???
Record Create Date 48 50 /AllocRpt/Hdr/ @Snt
Record Create Time 51 56 /AllocRpt/Hdr/ @Snt
# of APS Transaction
Records
63 68 N/A
Session Indicator 69 69 /AllocRpt/ @SesSub R @SesSub=”RTH”
E @SesSub=”ETH”
Main Routing Transaction Record
Transaction Identifier 1 1 N/A
Action Code 2 2 /AllocRpt/ @TransTyp A=Add @TransTyp=”0” If new group is created it is 0
@TransTyp=”1” If trades are added to an
existing group, the TransTyp is
set to 1 (Replace)
Transaction Type 3 3 N/A
Clearing Firm 4 6 /AllocRpt/Pty[1] @ID, @R @ID=value,
@R=1
If the Executing and the
Clearing Firm are the same, use
this mapping.
Otherwise Clearing Firm is not
set on the messages .
Trade Date 9 14 /AllocRpt/ @TrdDt
Transaction ID 15 19 /AllocRpt/Alloc/ @IndAllocID2 Allocation ID generated by
Clearing System for the Give-up
firm
Page 104 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
Position Field Name
From To
FIXML Element FIXML Attribute APS Routing
File value FIXML Value Comments
Session Indicator 20 20 /AllocRpt/ @SesSub R @SesSub=”RTH”
E @SesSub=”ETH”
Group ID 21 25 /AllocRpt/ @ID2 @ID2=value The Group ID generated by the
Clearing System for the Generic
or Specific Group
Exchange ID 26 27 /AllocRpt/Instrmt/ @Exch @Exch=”CME If this is the Product Exchange
use this mapping
@Exch=”CBT”
/AllocRpt/Pty[2]/ @ID, @R @ID=value,
@R=22
If this attribute has the Give-up
Exchange, then use this
mapping.
Commodity Code 29 29 /AllocRpt/Instrmt/ @ID Product ID
Put/Call Indicator 33 33 /AllocRpt/Instrmt/ @CFI See CFI Code mapping
Contract Year 34 35 /AllocRpt/Instrmt/ @MMY This attribute replaces
Contract Month 36 37
Contract Day 38 39
Strike Price 40 46 /AllocRpt/Instrmt/ @StrkPx Set for Options
Buy Sell Indicator 47 47 /AllocRpt/ @Side 1 = Buy
2 = Sell
Group Summary/Status (Record Type 4)
Carrying Firm Code 48 50 /AllocRpt/Alloc/Pty[1] @ID, @R @ID=value,
@R=1
This is the Carry Firm that is
being allocated
Executing Broker (Filling
Broker)
53 55 /AllocRpt//Pty[1] @ID, @R @ID=value,
@R=12
Executing Broker
Transaction Quantity 58 62 /AllocRpt/Alloc/ @Qty @Qty=value Allocated Quantity to the Carry
Firm
Account Number 63 72 /AllocRpt/Alloc/Pty[2]/ @ID, @R @ID=value,
@R=24
Carry Firm Customer Account
Page 105 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
Position Field Name
From To
FIXML Element FIXML Attribute APS Routing
File value FIXML Value Comments
Origin Type 73 73 /AllocRpt/Alloc/Pty[2]/Sub/ @ID, @Typ 1=Cust @ID=1,
@Typ=26
Carry Firm Customer Account
“Cust” Origin
,2=Hous @ID=2,
@Typ=26
Carry Firm Customer Account
“Cust” Origin
Customer Type Indicator 74 74 /AllocRpt/Alloc/ @CustCpcty
Clearing Fee Indicator 75 75 N/A
Give-up Status 76 80 /AllocRpt/ @Stat
Average Price / Residual Price (Record Type 6)
Average Price 48 63 /AllocRpt/ @AvgPx @AvgPx=value True Average Price
Rounded Price 64 72 /AllocRpt/ @RndPx @RndPx=value Rounded Price
Group Cash Residual
Amount
73
80 /AllocInstrctnAck/Amt/ @Typ, @Amt, @Ccy @Typ=”CRES
@Amt=value
Page 106 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
8.3.3 Mapping for Record Type 0, 5 & 6 (Allocation & Claim information to Carry Firm)
Position Field Name
From To
FIXML Element FIXML Attribute APS Routing
File value FIXML Value Comments
Header Record
File Name Indicator 1 2
Header Record Indicator 3 3 N/A
Firm Number 4 6 /AllocRpt/Pty/ @ID, @R @ID=value
@R=”1”
Mapping to the Executing Firm
???
Record Create Date 48 50 /AllocRpt/Hdr/ @Snt
Record Create Time 51 56 /AllocRpt/Hdr/ @Snt
# of APS Transaction
Records
63 68 N/A
Session Indicator 69 69 /AllocRpt/ @SesSub R @SesSub=”RTH”
E @SesSub=”ETH”
Main Routing Transaction Record
Transaction Identifier 1 1 N/A
Action Code 2 2 /AllocRpt/ @TransTyp A=Add @TransTyp=”0” If new group is created it is 0
@TransTyp=”1” If trades are added to an
existing group, the TransTyp is
set to 1 (Replace)
Transaction Type 3 3 N/A
Clearing Firm 4 6 /AllocRpt/Pty[1] @ID, @R @ID=value, If the Executing and the
Clearing Firm are the same, use
Page 107 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
Position Field Name
From To
FIXML Element FIXML Attribute APS Routing
File value FIXML Value Comments
@R=1 this mapping.
Otherwise Clearing Firm is not
set on the messages .
Trade Date 9 14 /AllocRpt/ @TrdDt
Transaction ID 15 19 /AllocRpt/Alloc/ @IndAllocID2 Allocation ID generated by
Clearing System for the Carry
firm
Session Indicator 20 20 /AllocRpt/ @SesSub R @SesSub=”RTH”
E @SesSub=”ETH”
Group ID 21 25 /AllocRpt/ @ID2 @ID2=value The Group ID generated by the
Clearing System for the Generic
or Specific Group
Exchange ID 26 27 /AllocRpt/Instrmt/ @Exch @Exch=”CME If this is the Product Exchange
use this mapping
@Exch=”CBT”
/AllocRpt/Pty[2]/ @ID, @R @ID=value,
@R=22
If this attribute has the Give-up
Exchange, then use this
mapping.
Commodity Code 29 29 /AllocRpt/Instrmt/ @ID Product ID
Put/Call Indicator 33 33 /AllocRpt/Instrmt/ @CFI See CFI Code mapping
Contract Year 34 35 /AllocRpt/Instrmt/ @MMY This attribute replaces
Contract Month 36 37
Contract Day 38 39
Strike Price 40 46 /AllocRpt/Instrmt/ @StrkPx Set for Options
Buy Sell Indicator 47 47 /AllocRpt/ @Side 1 = Buy
2 = Sell
Group Summary/Status (Record Type 5)
Executing Firm Code 48 50 /AllocRpt//Pty[1] @ID, @R @ID=value, This is the Executing Firm that is
being allocated
Page 108 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
Position Field Name
From To
FIXML Element FIXML Attribute APS Routing
File value FIXML Value Comments
@R=1
Executing Broker (Filling
Broker)
53 55 /AllocRpt//Pty[1] @ID, @R @ID=value,
@R=12
Executing Broker
Transaction Quantity 58 62 /AllocRpt/Alloc/ @Qty @Qty=value Allocated Quantity to the Carry
Firm
Account Number 63 72 /AllocRpt/Alloc/Pty[2]/ @ID, @R @ID=value,
@R=24
Carry Firm Customer Account
Origin Type 73 73 /AllocRpt/Alloc/Pty[2]/Sub/ @ID, @Typ 1=Cust @ID=1,
@Typ=26
Carry Firm Customer Account
“Cust” Origin
,2=Hous @ID=2,
@Typ=26
Carry Firm Customer Account
“Cust” Origin
Customer Type Indicator 74 74 /AllocRpt/Alloc/ @CustCpcty
Clearing Fee Indicator 75 75 N/A
Give-up Status 76 80 /AllocRpt/ @Stat
Average Price / Residual Price (Record Type 6)
Average Price 48 63 /AllocRpt/ @AvgPx @AvgPx=value True Average Price
Rounded Price 64 72 /AllocRpt/ @RndPx @RndPx=value Rounded Price
Group Cash Residual
Amount
73
80 /AllocRpt/Amt/ @Typ, @Amt, @Ccy @Typ=”CRES”
@Amt=value
Residual Price and Currency
Page 109 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
9 Appendix
9.1 Table 8.1 – FIX Value Conversion used in APS API
FIX Translation Table
Attribute Name FIX Value CME Value
@TransTyp (used on all the
Allocation messages)
0 New (Create)
1 Replace (Change)
2 Cancel (Delete)
6 Reversal
@Typ (Allocation Type) 2 Preliminary
8 Request
9 Accept
10 Reject
11 Accept Pending
12 Incomplete Group
13 Complete Group
14 Reversal Pending
@Stat (Allocation Status) 0 Accepted and Successfully
processed
1 Block Level Reject
2 Account level Reject
3 Received (not yet processed)
4 Incomplete
5 Rejected by Intermediary
6 Allocation Pending
7 Reversed
@RptTyp 2 Request
9 Accept
10 Reject
11 Accept Pending
12 Complete
Page 110 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
14 Reversal Pending
/Pty/Sub/@ID 1 CUST
2 HOUS
/Pty/@R 1 Executing Firm ID/
Trading Firm ID
4 Clearing Firm ID
12 Executing Broker
17 Contra Firm
18 Contra Clearing Firm
21 Clearing Org ID
22 Exchange ID
23 Contra Exchange ID
24 Customer Account
25 Contra Clearing Org
26 Contra Broker
36 Entering Broker / BK Broker
38 Position Account
40 3rd Party Allocating Firm
41 Contra Position Account
42 Contra Exchange
43 Internal Carry Account
/Amt/@Typ CRES Cash Residual Amount
CFI for Option
/Instrmt/@CFI
Product Type Col1
O Product Type - OPT
/Instrmt/@CFI
Put/Call – Col2
P
C
Option Right - Call
Option Right - Put
/Instrmt/@CFI
Opt Type - Col3
A
E
Option Type - American
Option Type - European
Page 111 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
/Instrmt/@CFI
Underlying - Col4
B=Basket
S=Stock-Equities
D=Interest
rate/notional debt
sec
T=Commodiites
C=Currencies
I=Indices
O=Options
F=Futures
W=Swaps
M=Other
X=Unknown(n/a)
Market Indicator Values
SSF
Int
Curr
Ind
/Instrmt/@CFI
Delivery Method Col 5
P=Physical
C=Cash
X=Unknown(n/a)
Phys
Cash
/Instrmt/@CFI
Standard/Non-Std – Col 6
S=Standardized
terms (maturity
date, strike price,
contract size)
N=Non-
standardized
terms
X=Unknown(n/a)
Flexible Indicator
'N'
'Y'
CFI for Future
/Instrmt/@CFI
Product Type - Col1
F Product Type - FUT
/Instrmt/@CFI
Group – Col2
F=Financial
Futures
C=Commodity
Futures
M=Others
X=Unknown(n/a)
Page 112 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
/Instrmt/@CFI
Underlying - Col3
A=Agriculture,
forestry, and
fishing
B=Basket
S=Stock-Equities
(for financial
future) or Services
(for commodities
futures)
D=Interest
rate/notional debt
sec
C=Currencies
I=Indices (for
financial futures )
or Industrial
Products (for
commodities
futures)
O=Options
F=Futures
W=Swaps
M=Other
X=Unknown(n/a)
/Instrmt/@CFI
Delivery Method - Col4
P=Physical
C=Cash
X=Unknown(n/a)
Phys
Cash
/Instrmt/@CFI
Standard/Non-Std – Col5
S=Standardized
terms (maturity
date, strike price,
contract size)
N=Non-
standardized
terms
X=Unknown(n/a)
Flexible Indicator
'N'
'Y'
@SetSesID EOD Cycle Code - RTH
ITD Cycle Code - ITD
/AllocInstrctn/@AvgPxIndic
ator
0 No Average Pricing
Page 113 of 113 FIXML Allocate and Claim Services User’s Guide December 2004
©Chicago Mercantile Exchange, 2004
1 Average Price/Group Incomplete
2 Average Price / Group Complete
/*/Alloc/@Meth 1 Automatic
2 Guarantor
3 Manual
/AllocRpt/@RptTyp 2 Request to Intermediary
3 SellsideCalculatedUsingPreliminary
4 SellsideCalculatedWithoutPrelimina
ry
5 WarehouseRecap
8 RequestToIntermediary
9 Accept
10 Reject
11 Accept Pending
12 Complete
14 Reversal Pending

Navigation menu