Definition
In versions of FIX prior to version 4.4, this message was known as the Allocation ACK message. The Allocation Instruction Ack message is used to acknowledge the receipt of and provide status for an Allocation Instruction message.
Message structure 78 distinct fields
Source order, including nested components and groups. Group counts precede the repeated entries. “Required here” is relative to the enclosing component or group, not unconditional in the message. A dash means not marked required; conditional requirements remain in the source notes. This is a reference, not a counterparty-specific validator.
StandardHeaderComponentRequired
MsgType = P
StandardHeader definition & usage →
FIXT.1.1 (Always unencrypted, must be first field in message)
(Always unencrypted, must be second field in message)
(Always unencrypted, must be third field in message)
Indicates application version using a service pack identifier. The ApplVerID applies to a specific message occurrence.
Used to support bilaterally agreed custom functionality
(Always unencrypted)
(Always unencrypted)
Trading partner company ID used when sending messages via a third party (Can be embedded within encrypted data section.)
Trading partner company ID used when sending messages via a third party (Can be embedded within encrypted data section.)
Required to identify length of encrypted section of message. (Always unencrypted)
Required when message body is encrypted. Always immediately follows SecureDataLen field.
(Can be embedded within encrypted data section.)
(Can be embedded within encrypted data section.)
Sender's LocationID (i.e. geographic location and/or desk) (Can be embedded within encrypted data section.)
"ADMIN" reserved for administrative messages not intended for a specific user. (Can be embedded within encrypted data section.)
Trading partner LocationID (i.e. geographic location and/or desk) (Can be embedded within encrypted data section.)
Trading partner SubID used when delivering messages via a third party. (Can be embedded within encrypted data section.)
Trading partner LocationID (i.e. geographic location and/or desk) used when delivering messages via a third party. (Can be embedded within encrypted data section.)
Trading partner SubID used when delivering messages via a third party. (Can be embedded within encrypted data section.)
Trading partner LocationID (i.e. geographic location and/or desk) used when delivering messages via a third party. (Can be embedded within encrypted data section.)
Always required for retransmitted messages, whether prompted by the sending system or as the result of a resend request. (Can be embedded within encrypted data section.)
Required when message may be duplicate of another message sent under a different sequence number. (Can be embedded within encrypted data section.)
(Can be embedded within encrypted data section.)
Required for message resent as a result of a ResendRequest. If data is not available set to same value as SendingTime (Can be embedded within encrypted data section.)
Required when specifying XmlData to identify the length of a XmlData message block. (Can be embedded within encrypted data section.)
Can contain a XML formatted message block (e.g. FIXML). Always immediately follows XmlDataLen field. (Can be embedded within encrypted data section.) See Volume 1: FIXML Support
Type of message encoding (non-ASCII characters) used in a message's "Encoded" fields. Required if any "Encoding" fields are used.
The last MsgSeqNum value received by the FIX engine and processed by downstream application, such as trading system or order routing system. Can be specified on every message sent. Useful for detecting a backlog with a counterparty.
HopGrpRepeating groupCount tag 627—
Number of repeating groups of historical "hop" information. Only applicable if OnBehalfOfCompID is used, however, its use is optional. Note that some market regulations or counterparties may require tracking of message hops.
PartiesRepeating groupCount tag 453—
Repeating group below should contain unique combinations of PartyID, PartyIDSource, and PartyRole
Used to identify source of PartyID. Required if PartyIDSource is specified. Required if NoPartyIDs > 0.
Used to identify class source of PartyID value (e.g. BIC). Required if PartyID is specified. Required if NoPartyIDs > 0.
Identifies the type of PartyID (e.g. Executing Broker). Required if NoPartyIDs > 0.
PtysSubGrpRepeating groupCount tag 802—
Repeating group of Party sub-identifiers.
PtysSubGrp definition & usage →
Optional second identifier for the allocation instruction being acknowledged (need not be unique)
Date/Time Allocation Instruction Ack generated
Denotes the status of the allocation instruction; received (but not yet processed), rejected (at block or account level) or accepted (and processed).
Required for AllocStatus = 1 ( block level reject) and for AllocStatus 2 (account level reject) if the individual accounts and reject reasons are not provided in this message
Required if AllocType = 8 (Request to Intermediary) Indicates status that is requested to be transmitted to counterparty by the intermediary (i.e. clearing house)
Denotes whether the financial details provided on the Allocation Instruction were successfully matched.
Can include explanation for AllocRejCode = 7 (other)
Must be set if EncodedText field is specified and must immediately precede it.
Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.
AllocAckGrpRepeating groupCount tag 78—
This repeating group is optionally used for messages with AllocStatus = 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 has any other value. Indicates number of allocation groups to follow.
AllocAckGrp definition & usage →
This repeating group is optionally used for messages with AllocStatus = 2 (account level reject), AllocStatus = 0 (accepted), to provide details of the individual accounts that were accepted or rejected. In the case of a reject, the reasons for the rejection should be specified. This group should not be populated where AllocStatus has any other value. Indicates number of allocation groups to follow.
Required if NoAllocs > 0. Must be first field in repeating group.
Used when performing "executed price" vs. "average price" allocations (e.g. Japan). AllocAccount plus AllocPrice form a unique Allocs entry. Used in lieu of AllocAvgPx.
Required if NoAllocs > 0.
NestedPartiesRepeating groupCount tag 539—
NestedParties definition & usage →
Repeating group below should contain unique combinations of NestedPartyID, NestedPartyIDSource, and NestedPartyRole
Used to identify source of NestedPartyID. Required if NestedPartyIDSource is specified. Required if NoNestedPartyIDs > 0.
Used to identify class source of NestedPartyID value (e.g. BIC). Required if NestedPartyID is specified. Required if NoNestedPartyIDs > 0.
Identifies the type of NestedPartyID (e.g. Executing Broker). Required if NoNestedPartyIDs > 0.
NstdPtysSubGrpRepeating groupCount tag 804—
Repeating group of NestedParty sub-identifiers.
NstdPtysSubGrp definition & usage →
Free format text field related to this AllocAccount (can be used here to hold text relating to the rejection of this AllocAccount)
Must be set if EncodedAllocText field is specified and must immediately precede it.
Encoded (non-ASCII characters) representation of the AllocText field in the encoded format specified via the MessageEncoding field.
Will allow the intermediary to specify an allocation ID generated by the system
Will allow for granular reporting of separate allocation detail within a single trade report or allocation message.
Identifies whether the allocation is to be sub-allocated or allocated to a third party.
Quantity to be allocated to specific sub-account
StandardTrailerComponentRequired
StandardTrailer definition & usage →
Required when trailer contains signature. Note: Not to be included within SecureData field
Note: Not to be included within SecureData field
(Always unencrypted, always last field in message)