Category 5: Securities markets
MT509 Trade Status Message
Written and maintained by ZagTrader. Last reviewed . How this page is sourced and checked
The MT509 reports the status of a trade-side message: whether an order (MT502) was accepted, rejected, cancelled or replaced, or whether a confirmation (MT515, MT518) was matched, affirmed or rejected. Brokers send it to their clients, clients and electronic trade confirmation (ETC) providers send it back to brokers, and fund platforms use it to acknowledge fund orders.
- Message type
- MT509
- Category
- 5
- Structure
- 7 sequences, 29 fields listed
When MT509 is used
The MT509 is the status message of the trade initiation and confirmation flow, the counterpart of what the MT548 is for settlement instructions. In the order direction, the executing party (broker, transfer agent) tells the instructing party what happened to its MT502: received and accepted, rejected with a reason, cancellation done or denied, replacement done. In the confirmation direction, the client (or an ETC service provider acting for it) tells the broker that an MT515 was rejected or is not affirmed, and why. Positive affirmation itself is sent with an MT517. The standard also lets an instructing party send an MT509 to its custodian to update the trade status behind a settlement instruction it sent earlier.
23G says what the status is about. INST reports on an instruction (an order or a confirmation), CAST on a cancellation request, REST on a replacement request. Sequence A1 (LINK) carries the reference of the message being reported on, normally 20C::RELA with the SEME of that message and 13A::LINK with its type (for example 502 or 515).
Sequence A2 (STAT) holds the status in field 25D, and the qualifier says which kind of status it is: IPRC (instruction processing: PACK accepted, REJT rejected, REPR in repair), CPRC (cancellation processing: CAND cancelled, CANP pending, DEND denied, PARF partially filled with the rest cancelled), RPRC (replacement processing: REPL done, PEND, DEND, REJT), MTCH (matching: MACH or NMAT) and AFFM (affirmation: AFFI affirmed or NAFI unaffirmed). Several A2 occurrences can report several statuses at once.
Reasons go in sequence A2a (REAS) inside the status, as 24B with a qualifier that follows the status: REJT for a rejection, NMAT for unmatched, NAFI for unaffirmed and REPR for repair. Typical reason codes are DSEC (financial instrument), SAFE (account), BUSE (type of order), DDAT (settlement date), DQUA (quantity), DDEA (deal price), DMON (settlement amount), EXEC (commission), ULNK (unknown linked reference), REFE (duplicate reference), LATE (market deadline missed) and NARR, with the text in 70D::REAS.
Sequence B (TRADE) can repeat the trade so that the receiver can identify it without the original: direction (22H::BUSE), payment type (22H::PAYM), the security (35B), and quantities or amounts such as the quantity ordered (36B::ORDR), executed so far (PREX), remaining or cancelled (CANC, AFCA) and the related amounts in 19A.
Fund platforms use the MT509 to acknowledge or reject fund subscriptions and redemptions and to report on cancellation requests. A fund order router may also use it to report whether an incoming message passed its own validation.
MT509 format: sequences and fields
Sequence AGeneral InformationMandatory
Identifies the status message. A2 (status) is mandatory inside A.
| Tag | Qualifier | Name | Status | Format | Meaning |
|---|---|---|---|---|---|
| 16R | Start of block | M | GENL | Opens the General Information block. | |
| 20C | SEME | Sender's Message Reference | M | :4!c//16x | Your unique reference for this status message. The reference of the message being reported on goes in A1, not here. |
| 23G | Function of the Message | M | 4!c[/4!c] | INST (status of an instruction such as an order or confirmation), CAST (status of a cancellation request) or REST (status of a replacement request). COPY, DUPL or CODU as subfunction mark a copy or duplicate. | |
| 98a | PREP | Preparation Date/Time | O | A: :4!c//8!n C: :4!c//8!n6!n E: :4!c//8!n6!n[,3n][/[N]2!n[2!n]] | When the status message was created. |
| 16S | End of block | M | GENL | Closes the General Information block. |
Sequence A1LinkagesOptional, repeatable
References of the message being reported on. Field 20C is mandatory in every A1, one qualifier per occurrence. Newer releases also allow an option U for this reference. Common qualifiers only.
| Tag | Qualifier | Name | Status | Format | Meaning |
|---|---|---|---|---|---|
| 16R | Start of block | M | LINK | Opens the Linkages block. | |
| 13a | LINK | Linked Message | O | A: :4!c//3!c B: :4!c/[8c]/30x | Type of the message reported on in option A, for example :13A::LINK//502 for an order or 515 for a confirmation. |
| 20C | RELA | Related Message Reference | M | :4!c//16x | The SEME of the message this status reports on. Without a correct RELA the receiver cannot attach the status to its order or confirmation. |
| 20C | PREV | Previous Message Reference | M | :4!c//16x | Reference of a previous message, for example the original order when the status is about a cancellation. |
| 20C | MAST | Master Reference | M | :4!c//16x | A grouping reference, for example of a block or a fund switch. BASK, INDX, LIST, PROG, TRRF (deal), COMM (common), BMRB (block matching) and ALMR (allocation matching) are the other references. |
| 16S | End of block | M | LINK | Closes the Linkages block. |
Sequence A2StatusMandatory, repeatable
One status per occurrence; at least one occurrence. 25D is mandatory; the qualifier names the kind of status.
| Tag | Qualifier | Name | Status | Format | Meaning |
|---|---|---|---|---|---|
| 16R | Start of block | M | STAT | Opens the Status block. | |
| 25D | IPRC | Instruction Processing Status | M | :4!c/[8c]/4!c | Status of the order or confirmation: PACK (accepted for processing), REJT (rejected) or REPR (in repair). The code list also has values that report the progress of an order at the exchange or intermediary. |
| 25D | CPRC | Cancellation Processing Status | M | :4!c/[8c]/4!c | Status of a cancellation request: PACK (accepted), CAND (cancellation completed), CANP (pending), DEND (denied, for example the order was already executed), PARF (partly filled, the rest cancelled), REJT or REPR. |
| 25D | RPRC | Replacement Processing Status | M | :4!c/[8c]/4!c | Status of a replacement request (an MT502 with REPL): REPL (replacement completed), PACK, PEND, PART (partly filled, replacement accepted for the rest), DEND, REJT or REPR. |
| 25D | MTCH | Matching Status | M | :4!c/[8c]/4!c | Whether a confirmation matched the counterparty’s data: MACH or NMAT. |
| 25D | AFFM | Affirmation Status | M | :4!c/[8c]/4!c | Whether a confirmation was affirmed: AFFI (affirmed) or NAFI (unaffirmed, with the reason in A2a). |
| 16S | End of block | M | STAT | Closes the Status block. |
Sequence A2aReasonOptional, repeatable
Reason for the status in the enclosing A2, one per occurrence. The 24B qualifier follows the status.
| Tag | Qualifier | Name | Status | Format | Meaning |
|---|---|---|---|---|---|
| 16R | Start of block | M | REAS | Opens the Reason block. | |
| 24B | REJT | Rejection Reason | M | :4!c/[8c]/4!c | Why the order, confirmation or request was rejected, for example DSEC (instrument), SAFE (account), BUSE (type of order), DDAT (settlement date), DQUA (quantity), ULNK (unknown linked reference), REFE (duplicate reference), LATE (after the market deadline) or NARR. |
| 24B | NMAT | Unmatched Reason | M | :4!c/[8c]/4!c | Which data did not match, for example DDEA (deal price), DQUA (quantity), DMON (settlement amount), DTRD (trade date), DDAT (settlement date), EXEC (commission), ACRU (accrued interest) or CMIS (no matching data found). |
| 24B | NAFI | Unaffirmed Reason | M | :4!c/[8c]/4!c | Why a confirmation is not affirmed. |
| 24B | REPR | Repair Reason | M | :4!c/[8c]/4!c | What is being repaired, with the same kind of codes as for rejections. |
| 70D | REAS | Reason Narrative | O | :4!c//6*35x | Free text explaining the reason, required in practice when the reason code is NARR. |
| 16S | End of block | M | REAS | Closes the Reason block. |
Sequence BTrade DetailsOptional
Repeats the trade being reported on. When B is present, 22H::BUSE, 22H::PAYM and 35B are mandatory. The quantity and amount qualifiers are conditional: which ones fit depends on the status reported. Common qualifiers only.
| Tag | Qualifier | Name | Status | Format | Meaning |
|---|---|---|---|---|---|
| 16R | Start of block | M | TRADE | Opens the Trade Details block. | |
| 98a | TRAD | Trade Date/Time | O | A: :4!c//8!n B: :4!c/[8c]/4!c C: :4!c//8!n6!n | Trade date, when known. Fund platforms can show a provisional trade date here. |
| 98a | SETT | Settlement Date/Time | O | A: :4!c//8!n B: :4!c/[8c]/4!c C: :4!c//8!n6!n | Settlement date, when known or provisional. XCDT gives the date a confirmation is expected. |
| 22H | BUSE | Buy/Sell Indicator | M | :4!c//4!c | Direction of the trade or order: BUYI, SELL, or SUBS, REDM, SWIF, SWIT for funds. |
| 22H | PAYM | Payment Indicator | M | :4!c//4!c | APMT (against payment) or FREE. |
| 97a | SAFE | Safekeeping Account | O | A: :4!c//35x B: :4!c/[8c]/4!c/35x | The account the order or trade is for. 95a::ACOW names the account owner. |
| 19A | ORDR | Original Ordered Amount | C | :4!c//[N]3!a15d | Amount ordered, for orders given as an amount. Other qualifiers: PREX (executed), CANC (to be cancelled), AFCA (cancelled), REPL and REMA (replacement), DBAM (debit blocked amount). |
| 90a | DEAL | Deal PriceRepeatable | O | A: :4!c//4!c/[N]15d B: :4!c//4!c/3!a15d | Price, for example of an executed part. |
| 36B | ORDR | Original Ordered QuantityRepeatable | C | :4!c//4!c/15d | Quantity ordered. Other qualifiers: PREX (executed so far), CANC (to be cancelled), AFCA (cancelled), REPL and REMA (replacement). |
| 35B | Identification of the Financial Instrument | M | [ISIN1!e12!c] [4*35x] | The security of the order or trade, ISIN first. | |
| 16S | End of block | M | TRADE | Closes the Trade Details block. |
Sequence B1Trading PartiesOptional, repeatable
Trading parties of the order or trade, one per occurrence. Common qualifiers only.
| Tag | Qualifier | Name | Status | Format | Meaning |
|---|---|---|---|---|---|
| 16R | Start of block | M | TRADPRTY | Opens the Trading Parties block. | |
| 95a | BUYR | Buyer | M | P: :4!c//4!a2!a2!c[3!c] Q: :4!c//4*35x R: :4!c/8c/34x | The buyer. SELL, INVE, CLBR, STBR, INBR, BRCR, RQBR, DEAG and REAG are the other qualifiers. |
| 20C | PROC | Processing Reference | O | :4!c//16x | The party’s own reference. |
| 16S | End of block | M | TRADPRTY | Closes the Trading Parties block. |
Sequence CAdditional InformationOptional
Originator and final recipient when the status is relayed by an intermediary.
| Tag | Qualifier | Name | Status | Format | Meaning |
|---|---|---|---|---|---|
| 16R | Start of block | M | ADDINFO | Opens the Additional Information block. | |
| 95a | MEOR | Originator of Message | O | P: :4!c//4!a2!a2!c[3!c] Q: :4!c//4*35x R: :4!c/8c/34x | The party that originated the status, for example the transfer agent behind a fund order router. MERE is the recipient. |
| 16S | End of block | M | ADDINFO | Closes the Additional Information block. |
Format notation: n digits, a upper-case letters, c upper-case letters and digits, x any character of the Swift character set, d a decimal number with a comma, ! fixed length, [ ] optional, 4*35x up to 4 lines of 35 characters. M mandatory, O optional, C conditional (a rule decides).
Rules worth knowing
- Sequence A with at least one A2 is mandatory. A1, A2a, B, B1 and C are optional; if B is present it must contain 22H::BUSE, 22H::PAYM and 35B.
- Use the 24B qualifier that fits the status in the same A2: REJT reasons with a rejection, NMAT with unmatched, NAFI with unaffirmed, REPR with repair.
- The quantities and amounts in sequence B are conditional under network rules: which ones may appear depends on the status reported. Search for the error code your interface reports, since rule numbers differ between releases.
- A rejection is final: the rejected order or confirmation is not processed. Send a corrected message with a new reference rather than a cancellation of the rejected one.
MT509 example
The broker (BRKRAEADXXX) acknowledges the MT502 buy order NW502261020007 of Northwind Asset Management (FUNDGB2LXXX) for 40,000 shares: the order is accepted for execution.
{1:F01BRKRAEADAXXX0000000000}{2:I509FUNDGB2LXXXXN}{4:
:16R:GENL
:20C::SEME//BRK509261020014
:23G:INST
:98C::PREP//20261020083215
:16R:LINK
:13A::LINK//502
:20C::RELA//NW502261020007
:16S:LINK
:16R:STAT
:25D::IPRC//PACK
:16S:STAT
:16S:GENL
:16R:TRADE
:22H::BUSE//BUYI
:22H::PAYM//APMT
:36B::ORDR//UNIT/40000,
:35B:ISIN AEZAGT000016
ZAGTRADER DEMO PJSC
:16S:TRADE
-}Decode this example in the parserLine by line
| Line | What it says |
|---|---|
| {1:F01BRKRAEADAXXX0000000000}{2:I509FUNDGB2LXXXXN}{4: | Sender BRKRAEADXXX (the broker), receiver FUNDGB2LXXX (the manager). |
| :16R:GENL | |
| :20C::SEME//BRK509261020014 | |
| :23G:INST | Status of an instruction (the order). |
| :98C::PREP//20261020083215 | |
| :16R:LINK | |
| :13A::LINK//502 | The message reported on is an MT502. |
| :20C::RELA//NW502261020007 | Its reference (the manager’s SEME). |
| :16S:LINK | |
| :16R:STAT | |
| :25D::IPRC//PACK | Accepted for processing. |
| :16S:STAT | |
| :16S:GENL | |
| :16R:TRADE | |
| :22H::BUSE//BUYI | |
| :22H::PAYM//APMT | |
| :36B::ORDR//UNIT/40000, | Quantity ordered. |
| :35B:ISIN AEZAGT000016 | |
| ZAGTRADER DEMO PJSC | |
| :16S:TRADE | |
| -} |
A rejection would carry :25D::IPRC//REJT and, inside the STAT block, a REAS block such as :24B::REJT//DSEC (unknown instrument).
When the manager rejects a confirmation, the direction reverses: the manager sends the MT509 to the broker with :13A::LINK//515, the broker’s SEME in 20C::RELA and a reason such as :24B::REJT//EXEC for a commission it does not accept.
All BICs and the ISIN are made up. The ISIN carries a valid check digit.
Common errors and rejects
Status cannot be attached to an order (wrong RELA)
If 20C::RELA does not carry the exact SEME of the order or confirmation, the receiver’s system cannot link the status and it lands in an exception queue. Always quote the reference exactly as received, and add 13A::LINK with the type.
Rejection without a usable reason
A REJT with only NARR and no 70D text, or a reason qualifier that does not fit the status, leaves the other side guessing. Use the most specific 24B code and add 70D only where it adds facts.
Cancellation denied (DEND) after execution
A cancellation request for an order that has already been executed comes back with 25D::CPRC//DEND. The trade will be confirmed with an MT515; if it must be undone, a new opposite order is needed.
Confirmation not affirmed for a commission or amount difference
A client that disagrees with the commission, fees or settlement amount of an MT515 reports NAFI or a rejection with reasons EXEC, CHAR or DMON. The broker must agree the figures and resend the confirmation (cancel and new).
MT509 confused with MT548
The MT509 reports on orders and confirmations; the status of a settlement instruction (MT540 to MT543) comes in an MT548 from the custodian. A settlement problem such as LACK is never reported in an MT509.
How to fix it
MT509 in ISO 20022
For investment funds, Swift’s MT and MX equivalence table (8 May 2024) maps the MT509 funds template to setr.016 (OrderInstructionStatusReport) and setr.017 (OrderCancellationStatusReport). Clearstream’s Vestima user guide pairs MT509 INST with setr.016, MT509 CAST with setr.017, and also uses setr.057 (order confirmation status report) and semt.001 (securities message rejection) where an MT509 was used before.
For other trade status reporting the table lists no ISO 20022 equivalent of the MT509, and it remains in use on FIN.
MT509 questions
- What is an MT509 message?
- A Swift trade status message. It reports whether an order, a cancellation or replacement request, or a trade confirmation was accepted, rejected, cancelled, matched or affirmed, with reason codes when something is wrong.
- What is the difference between MT509 and MT548?
- The MT509 reports on trade-side messages (orders and confirmations: MT502, MT515, MT518). The MT548 reports on settlement instructions (MT540 to MT543) and comes from the custodian.
- Who sends an MT509?
- Both sides. The broker or transfer agent sends it to the client about orders; the client or its ETC service provider sends it to the broker about confirmations it rejects or has not affirmed.
- Does an MT509 affirm a trade?
- It can report an affirmation status (25D::AFFM//AFFI), but positive affirmation of a confirmation is normally sent with an MT517. The MT509 is mostly used for rejections and for the status of orders and requests.
- What is the ISO 20022 equivalent of MT509?
- For fund orders,
setr.016(order instruction status report) andsetr.017(order cancellation status report). For other trade status there is no equivalent in Swift’s equivalence table.
All MT messages · Category 5 messages · ISO 20022 messages · Codes · Troubleshooting