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 (AS) and Confirmation (AK) messages.,The Allocation Report (AS) 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:
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:
General guidelines applicable to this message:
The allocation message contains repeating fields for each order, sub-account and individual execution. 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.
See Volume 5: "Example Usage of Allocations and Ready-to-Book" of FIX specification for more examples and details.
| Tag | Field Name | FIXML | Req'd | Comments | |||
|---|---|---|---|---|---|---|---|
| <Standard Message Header> | Y | MsgType = J | |||||
| 70 | AllocID | @AllocID | Y | Unique identifier for this Allocation Instruction (J) message | |||
| 71 | AllocTransType | @TransTyp | Y | i.e. New, Cancel, Replace | |||
| 626 | AllocType | @AllocType | Y | Specifies the purpose or type of Allocation Instruction (J) message | |||
| 793 | SecondaryAllocID | @AllocID2 | N | Optional second identifier for this allocation instruction (J) (need not be unique) | |||
| 72 | RefAllocID | @RefAllocID | C | Required for AllocTransType (71) = Replace or Cancel | |||
| 796 | AllocCancReplaceReason | @CxlRplcRsn | C | Required for AllocTransType (71) = Replace or Cancel. Gives the reason for replacing or cancelling the Allocation Instruction (J) | |||
| 808 | AllocIntermedReqType | @IntermedReqTyp | C | Required if AllocType (626) = 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 Instruction (J) messages (each with unique AllocID (70) ) together, i.e. for F/X "Netting" or "Swaps" | |||
| 197 | AllocLinkType | @LinkTyp | C | Can be used to link two different Allocation Instruction (J) messages and identifies the type of link. Required if AllocLinkID (196) is specified. | |||
| 466 | BookingRefID | @BkngRefID | N | Can be used with AllocType (626) =" Ready-To-Book " | |||
| 857 | AllocNoOrdersType | @NoOrdsTyp | Y | Indicates how the orders being booked and allocated by this message are identified, i.e. by explicit definition in the NoOrders (73) group or not. | |||
| 73 | NoOrders | OrdAlloc | C | Indicates number of orders to be combined for allocation. If order(s) were manually delivered set to 1 (one).Required when AllocNoOrdersType (857) = 1 | |||
| => | 11 | ClOrdID | @ClOrdID | C | 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". Note where an order has undergone one or more cancel/replaces, this should be the ClOrdID (11) of the most recent version of the order. Required when NoOrders (73) > 0 and must be the first repeating field in the group. | ||
| => | 37 | OrderID | @OrdID | N | |||
| => | 198 | SecondaryOrderID | @OrdID2 | N | Can be used to provide order id used by exchange or executing system. | ||
| => | 526 | SecondaryClOrdID | @ClOrdID2 | N | |||
| => | 66 | ListID | @ListID | N | Required for List Orders. | ||
| => | <Nested Parties 2> | N | This is used to identify the executing broker for step in/give in trades | ||||
| => | 38 | OrderQty | @Qty | N | |||
| => | 799 | OrderAvgPx | @AvgPx | N | Average price for this order | ||
| => | 800 | OrderBookingQty | @BkngQty | N | Quantity of this order that is being booked out by this message (will be equal to or less than this order's OrderQty (38) ). Note that the sum of the OrderBookingQty (800) values in this repeating group must equal the total quantity being allocated (in Quantity (53) field) | ||
| 124 | NoExecs | AllExc | C | Indicates number of individual execution repeating group entries to follow. Absence of this field indicates that no individual execution entries are included. Primarily used to support step-outs. | |||
| => | 32 | LastQty | @LastQty | C | Amount of quantity (e.g. number of shares) in individual execution. Required if NoExecs (124) > 0 | ||
| => | 17 | ExecID | @ExecID | N | |||
| => | 527 | SecondaryExecID | @ExecID2 | N | |||
| => | 31 | LastPx | @LastPx | C | Price of individual execution. Required if NoExecs (124) > 0 | ||
| => | 669 | LastParPx | @LastParPx | C | Last price expressed in percent-of-par. Conditionally required for Fixed Income trades when LastPx (31) is expressed in Yield, Spread, Discount or any other price type. | ||
| 570 | PreviouslyReported | @PrevlyRpted | N | ||||
| 700 | ReversalIndicator | @ReversalInd | N | ||||
| 574 | MatchType | @MtchTyp | N | ||||
| 54 | Side | @Side | Y | ||||
| <Instrument> | Y | ||||||
| <Instrument Extension> | N | ||||||
| <Financing Details> | N | ||||||
| 711 | NoUnderlyings | Undly | N | ||||
| => | <Underlying Instrument> | C | Required if NoUnderlyings (711) > 0 | ||||
| 555 | NoLegs | Leg | N | ||||
| => | <Instrument Leg> | C | Required if NoLegs (555) > 0 | ||||
| 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 | ||||
| 30 | LastMkt | @LastMkt | N | Market of the executions. | |||
| 229 | TradeOriginationDate | @OrignDt | N | ||||
| 336 | TradingSessionID | @SesID | N | ||||
| 625 | TradingSessionSubID | @SesSub | N | ||||
| 423 | PriceType | @PxTyp | N | ||||
| 6 | AvgPx | @AvgPx | Y | For F/X orders, should be the "all-in" rate (spot rate adjusted for forward points). | |||
| 860 | AvgParPx | @AvgParPx | N | ||||
| <Spread or Benchmark Curve Data> | N | ||||||
| 15 | Currency | @Ccy | N | Currency of AvgPx (6) . Should be the currency of the local market or exchange where the trade was conducted. | |||
| 74 | AvgPxPrecision | @AvgPxPrcsn | N | Absence of this field indicates that default precision arranged by the broker/institution is to be used | |||
| <Parties> | N | ||||||
| 75 | TradeDate | @TrdDt | Y | ||||
| 60 | TransactTime | @TxnTm | N | Date/time when allocation is generated | |||
| 63 | SettlType | @SettlTyp | N | ||||
| 64 | SettlDate | @SettlDt | C | Takes precedence over SettlType (63) value and conditionally required/omitted for specific SettlType (63) values. | |||
| 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) . Sum of ( AllocShares (80) * AllocAvgPx (153) or AllocPrice (366) ). | |||
| 238 | Concession | @Concession | N | ||||
| 237 | TotalTakedown | @TotTakedown | N | ||||
| 118 | NetMoney | @NetMny | N | Expressed in same currency as AvgPx (6) . Sum of AllocNetMoney (154) . | |||
| 77 | PositionEffect | @PosEfct | N | ||||
| 754 | AutoAcceptIndicator | @AutoAcceptInd | N | Indicates if Allocation Instruction (J) has been automatically accepted on behalf of the Carry Firm by the Clearing House. | |||
| 58 | Text | @Txt | N | ||||
| 354 | EncodedTextLen | @EncTxtLen | C | Must be set if EncodedText (355) field is specified and must immediately precede it. | |||
| 355 | EncodedText | @EncTxt | C | Encoded (non-ASCII characters) representation of the Text (58) field in the encoded format specified via the MessageEncoding (347) 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 | Sum of AllocAccruedInterestAmt (742) within repeating group. | |||
| 540 | TotalAccruedInterestAmt | @TotAcrdIntAmt | N | (Deprecated) Use AccruedInterestAmt (159) . | |||
| 738 | InterestAtMaturity | @IntAtMat | N | ||||
| 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 | ||||
| <Stipulations> | N | ||||||
| <Yield Data> | N | ||||||
| 892 | TotNoAllocs | @TotNoAllocs | N | Indicates total number of allocation groups (used to support fragmentation). Must equal the sum of all NoAllocs (78) 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. | |||
| 78 | NoAllocs | Alloc | C | Indicates number of allocation groups to follow. Not required for AllocTransType (71) =Cancel. Not required for AllocType (626) ="Buyside Ready-To-Book" or "Warehouse instruction". | |||
| => | 79 | AllocAccount | @Acct | C | May be the same value as BrokerOfCredit if ProcessCode (81) is step-out or soft-dollar step-out and Institution does not wish to disclose individual account breakdowns to the ExecBroker. Required if NoAllocs (78) > 0. Must be first field in repeating group. Not required for AllocTransType (71) =Cancel. Not required for AllocType (626) ="Buyside Ready-To-Book" or "Warehouse instruction". | ||
| => | 661 | AllocAcctIDSource | @ActIDSrc | N | |||
| => | 573 | MatchStatus | @MtchStat | N | |||
| => | 366 | AllocPrice | @Px | N | Used when performing "executed price" vs. "average price" allocations (e.g. Japan). AllocAccount (79) plus AllocPrice (366) form a unique Allocs entry. Used in lieu of AllocAvgPx (153) . | ||
| => | 80 | AllocQty | @Qty | C | Not required for AllocTransType (71) =Cancel. Not required for AllocType (626) ="Buyside Ready-To-Book" or "Warehouse instruction". | ||
| => | 467 | IndividualAllocID | @IndAllocID | N | |||
| => | 81 | ProcessCode | @ProcCode | N | |||
| => | <Nested Parties> | N | Used for NestedPartyRole (538) =BrokerOfCredit, ExecBroker, ClientID, Settlement location (PSET), etc.Note: this field can be used for settlement location (PSET) information. | ||||
| => | 208 | NotifyBrokerOfCredit | @NotifyBrkrOfCredit | N | |||
| => | 209 | AllocHandlInst | @HandlInst | N | |||
| => | 161 | AllocText | @Txt | N | Free format text field related to this AllocAccount (79) | ||
| => | 360 | EncodedAllocTextLen | @EncAllocTextLen | C | Must be set if EncodedAllocText (361) field is specified and must immediately precede it. | ||
| => | 361 | EncodedAllocText | @EncAllocText | C | Encoded (non-ASCII characters) representation of the AllocText (161) field in the encoded format specified via the MessageEncoding (347) field. | ||
| => | <Commission Data> | N | |||||
| => | 153 | AllocAvgPx | @AvgPx | N | AvgPx (6) for this AllocAccount (79) . For F/X orders, should be the "all-in" rate (spot rate adjusted for forward points) for this allocation. For Fixed Income always express value as "percent of par". | ||
| => | 154 | AllocNetMoney | @NetMny | N | NetMoney (118) for this AllocAccount (79) . (( AllocShares (80) * AllocAvgPx (153) ) - Commission (12) - sum of MiscFeeAmt (137) + AccruedInterestAmt (159) ) if a Sell. (( AllocShares (80) * AllocAvgPx (153) ) + Commission (12) + sum of MiscFeeAmt (137) + AccruedInterestAmt (159) ) if a Buy | ||
| => | 119 | SettlCurrAmt | @SettlCurrAmt | N | (Deprecated) Replaced by AllocSettlCurrAmt (737) . AllocNetMoney (154) in SettlCurrency (120) for this AllocAccount (79) if SettlCurrency (120) is different from "overall" Currency (15) . | ||
| => | 737 | AllocSettlCurrAmt | @AllocSettlCurrAmt | N | AllocNetMoney (154) in AllocSettlCurrency (736) for this AllocAccount (79) if AllocSettlCurrency (736) is different from "overall" Currency (15) . | ||
| => | 120 | SettlCurrency | @SettlCcy | C | (Deprecated) Replaced by AllocSettlCurrency (736) . SettlCurrency (120) for this AllocAccount (79) if different from "overall" Currency (15) . Required if SettlCurrAmt (119) is specified. | ||
| => | 736 | AllocSettlCurrency | @AllocSettlCcy | C | AllocSettlCurrency (736) for this AllocAccount (79) if different from "overall" Currency (15) . Required if AllocSettlCurrAmt (737) is specified. | ||
| => | 155 | SettlCurrFxRate | @SettlCurrFxRt | N | Foreign exchange rate used to compute AllocSettlCurrAmt (737) from Currency (15) to AllocSettlCurrency (736) | ||
| => | 156 | SettlCurrFxRateCalc | @SettlCurrFxRtCalc | N | Specifies whether the SettlCurrFxRate (155) should be multiplied or divided | ||
| => | 742 | AllocAccruedInterestAmt | @AcrdIntAmt | N | Applicable for Convertible Bonds and fixed income. | ||
| => | 741 | AllocInterestAtMaturity | @IntAtMat | N | Applicable for securities that pay interest in lump-sum at maturity. | ||
| => | 136 | NoMiscFees | MiscFees | N | Required if any miscellaneous fees are reported. Indicates number of repeating entries. Repeating group within Alloc repeating group. | ||
| => | => | 137 | MiscFeeAmt | @Amt | C | Required if NoMiscFees (136) > 0 | |
| => | => | 138 | MiscFeeCurr | @Curr | N | ||
| => | => | 139 | MiscFeeType | @Typ | C | Required if NoMiscFees (136) > 0 | |
| => | => | 891 | MiscFeeBasis | @Basis | N | ||
| => | 576 | NoClearingInstructions | ClrInst | N | |||
| => | => | 577 | ClearingInstruction | @ClrngInstrctn | C | Required if NoClearingInstructions (576) > 0. | |
| => | 635 | ClearingFeeIndicator | @ClrFeeInd | N | |||
| => | 780 | AllocSettlInstType | @SettlInstTyp | N | Used to indicate whether settlement instructions are provided on this message, and if not, how they are to be derived. Absence of this field implies use of default instructions. | ||
| => | <SettlInstructionsData> | C | Used to communicate settlement instructions for this AllocAccount (79) detail. Required if AllocSettlInstType (780) = 2 or 3. | ||||
| <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.