FIX 4.0 : Allocation <J> message

Structure | Related Messages


The allocation record is used to instruct a broker on how to allocate executed shares to sub-accounts. The allocation record can also be used as a confirmation message through which third parties can communicate execution and settlement instructions between trading partners.

An Allocation <J> message can be submitted as new, cancel or replace. The AllocTransType <71> field indicates the purpose of the message. When submitting replace or cancel AllocTransType <71> messages the RefAllocID <72> field is required. Replacement Allocation <J> messages must contain all data for the replacement allocation.

The allocation record contains repeating fields for each order, sub-account and individual execution; the repeating fields are shown below marked with => . The relative position of the repeating fields is important in this record, i.e. each instance of allocation must be in the order shown below.

  • The total shares allocated must equal the Shares <53> value which must equal the total executed quantity of the original order. If present, the total shares in the execution section must also be equal to this value.
  • The number of sub-account instances is indicated in NoAllocs <78>.
  • Multiple orders can be combined for allocation by identifying the number of orders in the NoOrders <73> field and each individual order in the OrderID <37> fields. Combined orders must have the same ticker, trade date, settlement date and side.


Tag Field Name Req'd Comments
<MessageHeader> Y MsgType <35> = J
70 AllocID Y
71 AllocTransType Y
72 RefAllocID N

Required for AllocTransType <71> ='1' (Replace) or '2' (Cancel).

73 NoOrders Y

Indicates number of orders to be combined for allocation. If order(s) were manually delivered set to 1 (one).

=> 11 ClOrdID Y

Order ID assigned by client if order(s) were electronically delivered and executed. If order(s) were manually delivered this field should contain string 'MANUAL'.

=> 37 OrderID N
=> 66 ListID N

Required for List Orders.

=> 105 WaveNo N
124 NoExecs N

Indicates number of individual execution record groups to follow. Absence of this field indicates that no individual execution records are included.

=> 17 ExecID N
=> 32 LastShares N

Number of shares in individual execution. Required if NoExecs <124> > 0

=> 31 LastPx N

Price of individual execution. Required if NoExecs <124> > 0

=> 30 LastMkt N

Market of individual execution.

54 Side Y
55 Symbol Y
65 SymbolSfx N
48 SecurityID N
22 IDSource N
106 Issuer N
107 SecurityDesc N
53 Shares Y

Total number of shares allocated to all accounts

6 AvgPx Y
15 Currency N

Currency of AvgPx <6>, absence of this field indicates US dollars

74 AvgPrxPrecision N

Absence of this field indicates that default precision arranged by the broker/institution is to be used

75 TradeDate Y
60 TransactTime N

Date/time when allocation is generated

63 SettlmntTyp N

Absence of this field is interpreted as Regular

64 FutSettDate N

Required with SettlmntTyp <63> other than regular

118 NetMoney N

Expressed in same currency as AvgPx <6>

136 NoMiscFees N

Required if any miscellaneous fees are reported. Indicates number of repeating entries

=> 137 MiscFeeAmt N

Required if NoMiscFees <136> > 0

=> 138 MiscFeeCurr N

Required if NoMiscFees <136> > 0

=> 139 MiscFeeType N

Required if NoMiscFees <136> > 0

119 SettlCurrAmt N
120 SettlCurrency N
77 OpenClose N
58 Text N
78 NoAllocs Y

Indicates number of allocation groups to follow.

=> 79 AllocAccount Y
=> 80 AllocShares Y
=> 81 ProcessCode N
=> 76 ExecBroker N

Required for step-in and step-out trades

=> 109 ClientID N

Used for firm identification in third-party transactions.

=> 12 Commission N
=> 13 CommType N
=> 85 NoDlvyInst N

Repeating group within allocation group

=> 92 BrokerOfCredit N
=> 86 DlvyInst N

Required if NoDlvyInst <85> > 0

<MessageTrailer> Y