Confirmation (MsgType = AK, FIXML = Cnfm)

The Confirmation (AK) messages are used to provide individual trade level confirmations from the sell side to the buy side. In versions of FIX prior to version 4.4, this role was performed by the allocation message. Unlike the allocation message, the confirmation message operates at an allocation account (trade) level rather than block level, allowing for the affirmation or rejection of individual confirmations.

This message is also used to report back, confirm or exception, the booking status of each allocation instance. When the buy-side, in response, "affirms" with the Confirmation Ack (AU) message, the trade is ready to settle.

Because each message reports the details of a single "ticket", Account names, fees, net money, and settlement information are reported using fields designated for single-account trades.

Every Confirmation (AK) message has a unique ConfirmID (664) . It is recommended that the sellside system trade reference be used as ConfirmID (664) where possible, in order to enable the ConfirmID (664) to be used as a mutually understood trade reference (e.g. for use in manual conversations regarding specific trades).

The capacity or capacities of the firm executing the order or orders covered by this confirmation is represented in a repeating group. This is to support confirmations covering orders executed under more than one capacity (e.g. a mixture of agency and principal execution). The OrderCapacityQty (863) field (inside this repeating group) gives the quantity executed under each OrderCapacity (528) . The sum of the OrderCapacityQty (863) values must equal the confirmation's AllocQty (80) .

Tag Field Name FIXML Req'd Comments
<Standard Message Header> Y MsgType = AK
664 ConfirmID @CnfmID Y Unique ID for this message
772 ConfirmRefID @CnfmRefID C Mandatory if ConfirmTransType (666) is Replace or Cancel
859 ConfirmReqID @CnfmReqID N Only used when this message is used to respond to a confirmation request (to which this ID refers)
666 ConfirmTransType @CnfmTransTyp Y New, Cancel or Replace
773 ConfirmType @CnfmTyp Y Denotes whether this message represents a confirmation or a trade status message
797 CopyMsgIndicator @CopyMsgInd N Denotes whether or not this message represents copy confirmation (or status message). Absence of this field indicates message is not a drop copy.
650 LegalConfirm @LegalCnfm N Denotes whether this message represents the legally binding confirmation. Absence of this field indicates message is not a legal confirm.
665 ConfirmStatus @CnfmStat Y
<Parties> N Required for fixed income. Also to be used in associated with ProcessCode (81) for broker of credit (e.g. for directed brokerage trades). Also to be used to specify party-specific regulatory details (e.g. full legal name of contracting legal entity, registered address, regulatory status, any registration details)
73 NoOrders OrdAlloc N Indicates number of orders to be combined for allocation. If order(s) were manually delivered set to 1 (one).
=> 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)
70 AllocID @AllocID N Used to refer to an earlier Allocation Instruction (J) .
793 SecondaryAllocID @AllocID2 N Used to refer to an earlier Allocation Instruction (J) via its secondary identifier
467 IndividualAllocID @IndAllocID N Used to refer to an allocation account within an earlier Allocation Instruction (J) .
60 TransactTime @TxnTm Y Represents the time this message was generated
75 TradeDate @TrdDt Y
<TrdRegTimestamps> N
<Instrument> Y
<Instrument Extension> N
<Financing Details> N
711 NoUnderlyings Undly N
=> <Underlying Instrument> C
555 NoLegs Leg N
=> <Instrument Leg> C
<Yield Data> N If traded on Yield, price must be calculated "to worst" and the YieldData component block must specify how calculated, redemption date and price (if not par). If traded on Price, the YieldData component block must specify how calculated - "Worst", and include redemptiondate and price (if not par).
80 AllocQty @Qty Y The quantity being confirmed by this message (not this is at a trade level, not block or order level)
854 QtyType @QtyTyp N
54 Side @Side Y
15 Currency @Ccy N
30 LastMkt @LastMkt N
862 NoCapacities Cpcty Y Indicates number of repeating entries.
=> 528 OrderCapacity @Cpcty Y Specifies the capacity of the firm executing the order(s)
=> 529 OrderRestrictions @Rstctions N
=> 863 OrderCapacityQty @CpctyQty Y The quantity that was executed under this capacity (e.g. quantity executed as agent, as principal etc.). Sum of OrderCapacityQty (863) values must equal this message's AllocQty (80) .
79 AllocAccount @Acct Y Account number for the trade being confirmed by this message
661 AllocAcctIDSource @ActIDSrc N
798 AllocAccountType @AcctTyp N
6 AvgPx @AvgPx Y Gross price for the trade being confirmed. Always expressed in percent-of-par for Fixed Income
74 AvgPxPrecision @AvgPxPrcsn N Absence of this field indicates that default precision arranged by the broker/institution is to be used
423 PriceType @PxTyp N Price type for the AvgPx (6) field
860 AvgParPx @AvgParPx N
<Spread or Benchmark Curve Data> N
861 ReportedPx @RptedPx N Reported price (may be different to AvgPx (6) in the event of a marked-up or marked-down principal trade)
58 Text @Txt N
354 EncodedTextLen @EncTxtLen C
355 EncodedText @EncTxt C
81 ProcessCode @ProcCode N Used to identify whether the trade was a soft dollar trade, step in/out etc. Broker of credit, where relevant, can be specified using the Parties nested block above.
381 GrossTradeAmt @GrossTrdAmt Y
157 NumDaysInterest @NumDaysInt N
230 ExDate @ExDt N Optional "next coupon date" for Fixed Income.
158 AccruedInterestRate @AcrdIntRt N
159 AccruedInterestAmt @AcrdIntAmt N Required for Fixed Income products that trade with accrued interest.
738 InterestAtMaturity @IntAtMat N Required for Fixed Income products that pay lump sum interest 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
238 Concession @Concession N
237 TotalTakedown @TotTakedown N
118 NetMoney @NetMny Y
890 MaturityNetMoney @MatNetMny N Net Money at maturity if Zero Coupon and maturity value is different from par value
119 SettlCurrAmt @SettlCurrAmt N
120 SettlCurrency @SettlCcy N
155 SettlCurrFxRate @SettlCurrFxRt N
156 SettlCurrFxRateCalc @SettlCurrFxRtCalc N
63 SettlType @SettlTyp N
64 SettlDate @SettlDt C
<SettlInstructionsData> N Used to communicate settlement instructions for this Confirmation (AK) .
<Commission Data> N
858 SharedCommission @SharedComm N Used to identify any commission shared with a third party (e.g. directed brokerage)
<Stipulations> N
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
<Standard Message Trailer> Y