In versions of FIX prior to version 4.4, this message was known as the Allocation ACK message.
The Allocation Instruction Ack (P) message is used to acknowledge the receipt and status of an Allocation Instruction (J) message.
The status is indicated by the AllocStatus (87) field as follows:
| AllocStatus (87) value | Description |
|---|---|
| 3 = received, not yet processed | Used to acknowledge receipt of an Allocation Instruction (J) message. This should always be followed by a second Allocation Instruction Ack (P) of status 0, 1 or 2 as follows or an allocation report message. |
| 0 = accepted | The Allocation Instruction (J) has been validated and processed successfully. |
| 1 = block level reject | The entire Allocation Instruction (J) has been rejected. The AllocRejCode (88) field must be populated when performing a block level reject; this gives the reason for rejecting the Allocation Instruction (J) . |
| 2 = account level reject | The Allocation Instruction (J) has been validated and one or more of the AllocAccount (79) details in the NoAllocs (78) repeating group has failed validation (e.g. account not found). In this case, it is possible (though not mandatory) to include a list of the AllocAccount (79) details that failed validation together with reject reasons. |
For an Allocation Instruction Ack (P) message with AllocStatus (87) of 'Accepted' in response to an Allocation Instruction (J) with AllocType (626) of 'Calculated, it is recommended that the MatchStatus (573) field be used to denote whether any financial details provided in the 'Calculated' Allocation Instruction (J) were matched by the Respondent. If a match takes place and succeeds, then the match status will be '0-Compared and affirmed'. If the match takes place and fails, or no match takes place, then the match status will be '1-Uncompared or unaffirmed'.
| Tag | Field Name | FIXML | Req'd | Comments | |||
|---|---|---|---|---|---|---|---|
| <Standard Message Header> | Y | MsgType = P | |||||
| 70 | AllocID | @AllocID | Y | ||||
| <Parties> | N | ||||||
| 793 | SecondaryAllocID | @AllocID2 | N | Optional second identifier for the allocation instruction (J) being acknowledged (need not be unique) | |||
| 75 | TradeDate | @TrdDt | N | ||||
| 60 | TransactTime | @TxnTm | Y | Date/Time Allocation Instruction Ack (P) generated | |||
| 87 | AllocStatus | @Stat | Y | Denotes the status of the Allocation Instruction (J) ; received (but not yet processed), rejected (at block or account level) or accepted (and processed). | |||
| 88 | AllocRejCode | @RejCode | C | Required for AllocStatus (87) = 1 (block level reject) and for AllocStatus (87) 2 (account level reject) if the individual accounts and reject reasons are not provided in this message | |||
| 626 | AllocType | @AllocType | N | ||||
| 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) | |||
| 573 | MatchStatus | @MtchStat | C | Required for AllocStatus (87) = 0 (accepted). Denotes whether the financial details provided on the allocation instruction were successfully matched. | |||
| 460 | Product | @Prod | N | ||||
| 167 | SecurityType | @SecTyp | N | ||||
| 58 | Text | @Txt | N | Can include explanation for AllocRejCode (88) = 7 (other) | |||
| 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. | |||
| 78 | NoAllocs | AllocAck | N | This repeating group is optionally used for messages with AllocStatus (87) = 2 (account level reject) to provide details of the individual accounts that caused the rejection, together with reject reasons. This group should not be populated when AllocStatus (87) has any other value. Indicates number of allocation groups to follow. | |||
| => | 79 | AllocAccount | @Acct | C | Required if NoAllocs (78) > 0. Must be first field in repeating group. | ||
| => | 661 | AllocAcctIDSource | @ActIDSrc | C | Required if NoAllocs (78) > 0. | ||
| => | 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) . | ||
| => | 467 | IndividualAllocID | @IndAllocID | N | |||
| => | 776 | IndividualAllocRejCode | @IndAllocRejCode | C | Required if NoAllocs (78) > 0. | ||
| => | 161 | AllocText | @Txt | N | Free format text field related to this AllocAccount (79) (can be used here to hold text relating to the rejection of 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. | ||
| <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.