The Allocation Instruction (J) message provides the ability to specify how an order or set of orders should be subdivided amongst one or more accounts. In versions of FIX prior to version 4.4, this same message was known as the Allocation message. Note in versions of FIX prior to version 4.4, the allocation message was also used to communicate fee and expense details from the Sellside to the Buyside.This role has now been removed from the Allocation Instruction (J) and is now performed by the new (to version 4.4) Allocation Report and Confirmation (AK) messages.,TheAllocation Report message should be used for the Sell-side Initiated Allocation role as defined in previous versions of the protocol.
Note the response to the Allocation Instruction (J) message is the Allocation Instruction Ack (P) message. In versions of FIX prior to version 4.4, the Allocation Instruction Ack (P) message was known as the Allocation ACK message.
Allocation is typically communicated Post-Trade (after fills have been received and processed).It can, however, also be communicated Pre-Trade (at the time the order is being placed) to specify the account(s) and their respective order quantities which make up the order.This is a regulatory requirement in certain markets and for certain types of securities.
In the context of bilateral (buyside to sellside) communication, the buyside firm should be the "Initiator" of an Allocation Instruction (J) message and a Sellside firm would be the "Respondent". An Allocation Instruction (J) message can be submitted with AllocTransType (71) of new, cancel or replace.The AllocType (626) field indicates the type or purpose of the message:
Calculated (includes MiscFees and NetMoney)
Preliminary (without MiscFees and NetMoney)
Ready-To-Book
Warehouse instruction
It is possible either to specify, in the AllocSettlInstType (780) field, full settlement instruction details on the Allocation Instruction (J) message, to provide a reference to a settlement instruction held on a database of such instructions or to instruct the receiving party to perform one of the following actions:
Use default instructions
Derive the instructions from the parameters of the trade
Phone for instructions
General guidelines applicable to this message:
AllocID (70) should be unique for all Allocation messages with AllocTransType=New.When submitting replace or cancel AllocTransType (71) messages, the RefAllocID (72) and AllocCancReplaceReason (796) fields are required.
To reject an Allocation Instruction (J) message, an Allocation Instruction Ack (P) with AllocStatus (87) 'Block level reject' or 'Account level reject' should be used. Use of 'Block level reject' means the entire message has been rejected (e.g. due to one or more of the orders not matching, average price mismatch). 'Account level reject' is used when the block level matches successfully but one or more (or all) of the constituent account level details failed validation (e.g. account not found, incorrect MiscFees). In the latter case, the rejecting party can (optionally) notify the instructing party of those allocation details that are being rejected by listing the offending account IDs in the Allocation Instruction Ack (P) message (a new NoAllocs (78) repeating group has been introduced for this purpose).
The correct response to an Allocation Instruction Ack (P) of status 'Block level reject' is a new Allocation Instruction (J) with AllocTransType (71) 'New' (as the previous message has been rejected in entirety). In the case of an 'Account level reject', either the original Allocation Instruction (J) should be cancelled (a new Allocation Instruction (J) message referencing the original in RefAllocID, with AllocTransType (71) 'Cancel') and reinstated (a second new Allocation Instruction (J) message with AllocTransType (71) 'New'), or fully replaced (a new Allocation Instruction, referencing the original in RefAllocID, with AllocTransType (71) 'Replace'). Note a replacement allocation message (AllocTransType=Replace) must contain all data for the replacement allocation message. It is the responsibility of the recipient of the Replace message to identify which items have been changed.
It is permissible (though not mandatory) for the Respondent to reject an Allocation Instruction (J) with AllocTransType (71) = Cancel or Replace if the Allocation Instruction (J) ACK of status 'Accepted' has already been sent.Manual communication would then be required to effect the required changes.This approach would generally be required where the Respondent is using the generation of the 'Accepted' Allocation Instruction (J) ACK to move the allocation details into downstream processing (e.g. confirmation generation), in which case a subsequent cancellation of or amendment to the allocation details may require the details to be retrieved from the downstream process.
Where amendment or cancellation of an allocation instruction has taken place out of band (i.e. manually or via some other means outside FIX), an Allocation Report message can be sent from the recipient of the allocation/cancellation to confirm back to the initiator that the relevant action has taken place.
Where settling in markets where multiple alternative settlement locations exist, it is recommended that the settlement location (equivalent to ISO15022 'PSET' field) be identified on each allocation detail within the NoAllocs (78) repeating group. A nested parties component block is provided which can be used for this purpose.
The allocation message contains repeating fields for each order, sub-account and individual execution.The repeating fields are shown in the message definition below in typeface Bold-Italic and indented with the symbol.The field’s relative position within the repeating group in the message is important.For example, each instance of allocation must be in the order as shown in the message definition below.
The total quantity allocated must equal the Quantity (53) value*.If present, the total quantity in the execution section must also be equal to this value. *Note that the total quantity of the allocation does not necessarily have to equal the total quantity of the orders being allocated. Good examples of where this does not necessarily take place are GT orders, especially where multi-day average pricing is taking place (refer to the 'Equities' section of Volume 7 for more details on these flows). The quantity of each order being booked must also be specified on the message. This will be equal to the order quantity if the entire order is being booked, though can be less if only part of the order is being booked. The sum of the order booking quantities must equal the Quantity (53) value.
The number of sub-account instances is indicated in NoAllocs.
Multiple orders can be combined for allocation or for AllocType="Ready-To-Book" or for AllocType (626) ="Warehouse instruction".Note that combined orders must refer to the same instrument and have the same trade date, settlement date and side.The identification of the orders to be combined can be achieved in one of two ways:
By identifying the number of orders in the NoOrders (73) field and each individual order in the OrderID (37) fields.The AllocNoOrdersType (857) field is used to denote that this is happening and takes value "1=Explicit list provided". If any orders were handled outside FIX, the ClOrdID (11) must be set to 'MANUAL'. Regardless of whether the orders were handled within or outside FIX, the order quantity and average price must also be specified for each order. This is to assist in validating the message and, for manual orders, to help identify the correct orders to book.
By stating that an unspecified group of orders is to be combined. The NoOrders (73) field in this case is left blank. The AllocNoOrdersType (857) field is set to "0=Not specified" to specify that this is happening. Note use of this approach is only recommended where either the number of orders being booked is extremely large or some kind of aggregation rule is being used.
Multiple executions can be combined for allocation by identifying the number of executions in the NoExecs (124) field and each individual execution in the ExecID (17) fields. Combined executions must refer to the same instrument, trade date, settlement date and side.
Except where AllocTransType (71) = 'Cancel' or where AllocNoOrdersType (857) = "Not specified", the list of orders being booked or allocated must be specified by using their ClOrdID. If any orders were handled outside FIX, the ClOrdID (11) must be set to 'MANUAL'. Regardless of whether the orders were handled within or outside FIX, and where the orders are specified, the order quantity and average price must also be specified for each order. This is to assist in validating the message and, for manual orders, to help identify the correct orders to book
See "Example Usage of Allocations and Ready-to-Book" for more examples and details.
| Tag | Field Name | FIXML | Req'd | Comments | |||
|---|---|---|---|---|---|---|---|
| <Standard Message Header> | Y | MsgType = J | |||||
| 70 | AllocID | @AllocID | Y | Specifies the rounded price to quoted precision. | |||
| 2758 | AllocRequestID | @ReqID | N |
May be used to link to a previously submitted AllocationInstructionAlertRequest(35=DU) message. |
|||
| 71 | AllocTransType | @TransTyp | Y |
Identifies allocation transaction type *** SOME VALUES HAVE BEEN REPLACED - See "Replaced Features and Supported Approach" *** |
|||
| 626 | AllocType | @AllocType | Y |
Specifies the purpose or type of Allocation message |
|||
| 793 | SecondaryAllocID | @AllocID2 | N |
Optional second identifier for this allocation instruction (need not be unique) |
|||
| 72 | RefAllocID | @RefAllocID | C |
Required for AllocTransType = Replace or Cancel |
|||
| 796 | AllocCancReplaceReason | @CxlRplcRsn | C |
Required for AllocTransType = Replace or Cancel Gives the reason for replacing or cancelling the allocation instruction |
|||
| 808 | AllocIntermedReqType | @IntermedReqTyp | C |
Required if AllocType = 8 (Request to Intermediary) Indicates status that is requested to be transmitted to counterparty by the intermediary (i.e. clearing house) |
|||
| 196 | AllocLinkID | @LinkID | N |
Can be used to link two different Allocation messages (each with unique AllocID) together, i.e. for F/X "Netting" or "Swaps" |
|||
| 197 | AllocLinkType | @LinkTyp | C |
Can be used to link two different Allocation messages and identifies the type of link. Required if AllocLinkID is specified. |
|||
| 1730 | AllocGroupID | @GrpID | N |
Group identifier assigned by the clearinghouse |
|||
| 1728 | FirmGroupID | @FirmGrpID | N |
Group identifier assigned by the firm. |
|||
| 466 | BookingRefID | @BkngRefID | N |
Can be used with AllocType=" Ready-To-Book " |
|||
| 857 | AllocNoOrdersType | @NoOrdsTyp | N |
Indicates how the orders being booked and allocated by an AllocationInstruction or AllocationReport message are identified, e.g. by explicit definition in the OrdAllocGrp or ExecAllocGrp components, or not identified explicitly. |
|||
| <OrdAllocGrp> | C | Conditionally required except when AllocTransType (71) = Cancel, or when AllocType = "Ready-to-book" or "Warehouse instruction" | |||||
| <ExecAllocGrp> | N |
Indicates number of individual execution or trade entries. Absence indicates that no individual execution or trade entries are included. Primarily used to support step-outs. |
|||||
| 570 | PreviouslyReported | @PrevlyRpted | N |
Indicates if the transaction was previously reported to the counterparty or market. |
|||
| 700 | ReversalIndicator | @ReversalInd | N |
Indicates a trade that reverses a previous trade. |
|||
| 574 | MatchType | @MtchTyp | N |
The point in the matching process at which this trade was matched. |
|||
| 54 | Side | @Side | Y |
Side of order (see Volume : "Glossary" for value definitions) |
|||
| <Instrument> | Y | ||||||
| <InstrumentExtension> | N | ||||||
| <FinancingDetails> | N | ||||||
| <UndInstrmtGrp> | N |
Free form text to specify additional information or enumeration description when a standard value does not apply. |
|||||
| <InstrmtLegGrp> | N |
Relevant settled entity matrix source. |
|||||
| 53 | Quantity | @Qty | Y |
Total quantity (e.g. number of shares) allocated to all accounts, or that is Ready-To-Book |
|||
| 854 | QtyType | @QtyTyp | N |
Type of quantity specified in quantity field. ContractMultiplier (tag 231) is required when QtyType = 1 (Contracts). UnitOfMeasure (tag 996) and TimeUnit (tag 997) are required when QtyType = 2 (Units of Measure per Time Unit). |
|||
| 2974 | AllocGroupSubQtyID | @GrpSubQtyID | N |
May be used as an alternative to attribute based subgrouping. |
|||
| 30 | LastMkt | @LastMkt | N |
Market of the executions. |
|||
| 229 | TradeOriginationDate | @OrignDt | N |
Used with Fixed Income for Muncipal New Issue Market. Agreement in principal between counter-parties prior to actual trade date. (Note tag # was reserved in FIX 4.1, added in FIX 4.3) (prior to FIX 4.4 field was of type UTCDate) |
|||
| 336 | TradingSessionID | @SesID | N |
Identifier for a trading session. A trading session spans an extended period of time that can also be expressed informally in terms of the trading day. Usage is determined by market or counterparties. To specify good for session where session spans more than one calendar day, use TimeInForce = 0 (Day) in conjunction with TradingSessionID(336). Bilaterally agreed values of data type "String" that start with a character can be used for backward compatibility. |
|||
| 625 | TradingSessionSubID | @SesSub | N |
Optional market assigned sub identifier for a trading phase within a trading session. Usage is determined by market or counterparties. Used by US based futures markets to identify exchange specific execution time bracket codes as required by US market regulations. Bilaterally agreed values of data type "String" that start with a character can be used for backward compatibility |
|||
| 423 | PriceType | @PxTyp | N |
Code to represent the price type. |
|||
| <PriceQualifierGrp> | N |
Used for the calculated quantity of the other side of the currency for this leg. Can be derived from LegQty and LegLastPx. |
|||||
| 6 | AvgPx | @AvgPx | N |
For FX orders, should be the "all-in" rate (spot rate adjusted for forward points), expressed in terms of Currency(15). For 3rd party allocations used to convey either basic price or averaged price Optional for average price allocations in the listed derivatives markets where the central counterparty calculates and manages average price across an allocation group. |
|||
| 860 | AvgParPx | @AvgParPx | N |
Used to express average price as percent of par (used where AvgPx field is expressed in some other way) |
|||
| <SpreadOrBenchmarkCurveData> | N | ||||||
| 15 | Currency | @Ccy | N |
Currency of AvgPx. Should be the currency of the local market or exchange where the trade was conducted. |
|||
| 2897 | CurrencyCodeSource | @CcySrc | N |
Identifies class or source of the Currency(15) value. |
|||
| 74 | AvgPxPrecision | @AvgPxPrcsn | N |
Absence of this field indicates that default precision arranged by the broker/institution is to be used |
|||
| 2795 | OffshoreIndicator | @OffshrInd | N |
Indicates the type of the currency rate being used. This is relevant for currencies that have offshore rate that different from onshore rate. |
|||
| <Parties> | N |
Insert here the set of "Parties" (firm identification) fields defined in "Common Components of Application Messages" |
|||||
| 75 | TradeDate | @TrdDt | Y |
Indicates date of trading day. Absence of this field indicates current day (expressed in local time at place of trade). |
|||
| 60 | TransactTime | @TxnTm | N |
Date/time when allocation is generated |
|||
| 63 | SettlType | @SettlTyp | N |
Indicates order settlement period. If present, SettlDate (64) overrides this field. If both SettlType (63) and SettDate (64) are omitted, the default for SettlType (63) is 0 (Regular) Regular is defined as the default settlement period for the particular security on the exchange of execution. In Fixed Income the contents of this field may influence the instrument definition if the SecurityID (48) is ambiguous. In the US an active Treasury offering may be re-opened, and for a time one CUSIP will apply to both the current and "when-issued" securities. Supplying a value of "7" clarifies the instrument description; any other value or the absence of this field should cause the respondent to default to the active issue. Additionally the following patterns may be uses as well as enum values Dx = FX tenor expression for "days", e.g. "D5", where "x" is any integer > 0 Mx = FX tenor expression for "months", e.g. "M3", where "x" is any integer > 0 Wx = FX tenor expression for "weeks", e.g. "W13", where "x" is any integer > 0 Yx = FX tenor expression for "years", e.g. "Y1", where "x" is any integer > 0 Noted that for FX the tenors expressed using Dx, Mx, Wx, and Yx values do not denote business days, but calendar days. |
|||
| 64 | SettlDate | @SettlDt | C |
Takes precedence over SettlType value and conditionally required/omitted for specific SettlType values. Required for NDFs to specify the "value date". |
|||
| 775 | BookingType | @BkngTyp | N |
Method for booking. Used to provide notification that this is to be booked out as an OTC derivative (e.g. CFD or similar). Absence of this field implies regular booking. |
|||
| 381 | GrossTradeAmt | @GrossTrdAmt | N |
Expressed in same currency as AvgPx(6). (Quantity(53) * AvgPx(6) or AvgParPx(860)) or sum of (AllocQty(80) * AllocAvgPx(153) or AllocPrice(366)). For Fixed Income, AvgParPx(860) is used when AvgPx(6) is not expressed as "percent of par" price. |
|||
| 238 | Concession | @Concession | N |
Provides the reduction in price for the secondary market in Muncipals. (Note tag # was reserved in FIX 4.1, added in FIX 4.3) |
|||
| 237 | TotalTakedown | @TotTakedown | N |
The price at which the securities are distributed to the different members of an underwriting group for the primary market in Municipals, total gross underwriter's spread. (Note tag # was reserved in FIX 4.1, added in FIX 4.3) |
|||
| 118 | NetMoney | @NetMny | N |
Expressed in same currency as AvgPx. Sum of AllocNetMoney. For FX, if specified, expressed in terms of Currency(15). |
|||
| 77 | PositionEffect | @PosEfct | N |
Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together. |
|||
| 754 | AutoAcceptIndicator | @AutoAcceptInd | N |
Indicates if Allocation has been automatically accepted on behalf of the Take-up Firm by the Clearing House |
|||
| 58 | Text | @Txt | N |
Free format text string (Note: this field does not have a specified maximum length) |
|||
| 354 | EncodedTextLen | @EncTxtLen | C |
Must be set if EncodedText field is specified and must immediately precede it. |
|||
| 355 | EncodedText | @EncTxt | C |
Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field. |
|||
| 157 | NumDaysInterest | @NumDaysInt | N |
Applicable for Convertible Bonds and fixed income |
|||
| 158 | AccruedInterestRate | @AcrdIntRt | N |
Applicable for Convertible Bonds and fixed income |
|||
| 159 | AccruedInterestAmt | @AcrdIntAmt | N |
Applicable for Convertible Bonds and fixed income |
|||
| 540 | TotalAccruedInterestAmt | @TotAcrdIntAmt | N |
Total Amount of Accrued Interest for convertible bonds and fixed income |
|||
| 738 | InterestAtMaturity | @IntAtMat | N |
Amount of interest (i.e. lump-sum) at maturity. |
|||
| 920 | EndAccruedInterestAmt | @EndAcrdIntAmt | N |
For repurchase agreements the accrued interest on termination. |
|||
| 921 | StartCash | @StartCsh | N |
For repurchase agreements the start (dirty) cash consideration |
|||
| 922 | EndCash | @EndCsh | N |
For repurchase agreements the end (dirty) cash consideration |
|||
| 650 | LegalConfirm | @LegalCnfm | N |
Indicates that this message is to serve as the final and legal confirmation. |
|||
| <Stipulations> | N |
PartyID value within an instrument party repeating group. Same values as PartyID (448) |
|||||
| <YieldData> | N | ||||||
| <RegulatoryTradeIDGrp> | N |
Trade side of payout payer. |
|||||
| <TrdRegTimestamps> | N |
Used to report volume with a trade |
|||||
| <PositionAmountData> | N |
Insert here here the set of "Position Amount Data" fields defined in "Common Components of Application Messages" |
|||||
| 892 | TotNoAllocs | @TotNoAllocs | N |
Indicates total number of allocation groups (used to support fragmentation). Must equal the sum of all NoAllocs values across all message fragments making up this allocation instruction. Only required where message has been fragmented. |
|||
| 893 | LastFragment | @LastFragment | N |
Indicates whether this is the last fragment in a sequence of message fragments. Only required where message has been fragmented. |
|||
| <AllocGrp> | C |
Conditionally required except when AllocTransType(71) = 2 (Cancel), or when AllocType(626) = 5 (Ready-To-Book single order) or 7 (Warehouse instruction). |
|||||
| 819 | AvgPxIndicator | @AvgPxInd | N |
Indicates if an allocation is to be average priced. Is also used to indicate if average price allocation group is complete or incomplete. |
|||
| 1731 | AvgPxGroupID | @AvgPxGrpID | N |
Firm designated group identifier for average pricing |
|||
| 715 | ClearingBusinessDate | @BizDt | N |
Indicates Clearing Business Date for which transaction will be settled. |
|||
| 828 | TrdType | @TrdTyp | N |
Indicates trade type of allocation. May be used as an alternative to AllocGroupSubQtyID(2974) for subgrouping. |
|||
| 829 | TrdSubType | @TrdSubTyp | N |
Indicates trade subtype of allocation. |
|||
| 855 | SecondaryTrdType | @TrdTyp2 | N |
Type of trade assigned to a trade. Used in addition to TrdType(828). Must not be used when only one trade type needs to be assigned. |
|||
| 2896 | TertiaryTrdType | @TrdTyp3 | N |
Type of trade assigned to a trade. Used in addition to TrdType(828) and SecondaryTrdType(855). Must not be used when only one additional trade type needs to be assigned. |
|||
| 1390 | TradePublishIndicator | @TrdPubInd | N |
May be used as an alternative to AllocGroupSubQtyID(2974) for subgrouping. |
|||
| 1031 | CustOrderHandlingInst | @CustOrdHdlInst | N |
May be used as an alternative to AllocGroupSubQtyID(2974) for subgrouping. |
|||
| 1937 | TradeContinuation | @TrdContntn | N |
Specifies the post-execution trade continuation or lifecycle event. Additional values may be used by mutual agreement of the counterparties. |
|||
| 2374 | TradeContinuationText | @TrdContntnTxt | N |
Free form text to specify additional trade continuation information or data. |
|||
| 2372 | EncodedTradeContinuationTextLen | @EncTrdContntnTextLen | N |
Must be set if EncodedTradeContinuationText(2371) field is specified and must immediately precede it. |
|||
| 2371 | EncodedTradeContinuationText | @EncTrdContntnText | N |
Encoded (non-ASCII characters) representation of the TradeContinuationText(2374) field in the encoded format specified via the MessageEncoding(347) field. |
|||
| 582 | CustOrderCapacity | @CustCpcty | N |
Indicates CTI of original trade marked for allocation. |
|||
| 578 | TradeInputSource | @InptSrc | N |
Indicates input source of original trade marked for allocation. |
|||
| 442 | MultiLegReportingType | @MLegRptTyp | N |
Indicates MultiLegReportType of original trade marked for allocation. |
|||
| 1011 | MessageEventSource | @MsgEvtSrc | N |
Used to identify the event or source which gave rise to a message. |
|||
| 991 | RndPx | @RndPx | N |
Specifies the rounded price to quoted precision. |
|||
| <RateSource> | N |
Number of Underlying InstrumentPartySubID (1053) and InstrumentPartySubIDType (1054) entries |
|||||
| 1430 | VenueType | @VenuTyp | N |
Used to identify on what kind of venue the trade originated when communicating with a party that may not have access to all trade details, e.g. a clearing organization. |
|||
| 2334 | RefRiskLimitCheckID | @RefRiskLmtChkID | N |
Conditionally required when RefRiskLimitCheckIDType(2335) is specified. |
|||
| 2335 | RefRiskLimitCheckIDType | @RefRiskLmtChkIDTyp | N |
Conditionally required when RefRiskLimitCheckID(2334) is specified. |
|||
| 2343 | RiskLimitCheckStatus | @RiskLmtChkStat | N |
Indicates the status of the risk limit check performed on a trade. |
|||
| <Standard Message Trailer> | Y | ||||||
© 2026.
EPAM Systems. All Rights Reserved.
All material contained within the website is copyright of EPAM Systems, Inc. No material contained herein can be copied or otherwise used without the express permission of the copyright holder.