MT509 — Trade Status Message
The technical status of an order or instruction in the post-trade space. A message designed to be talkative at every lifecycle step, from received to settled, from matched to failed — operational granularity at the heart of STP.
Purpose
MT509 informs the ordering party of the current status of its order (MT502) or
settlement instruction (MT540-543). Possible statuses in :25D::EXST//:
- RECE — Received (order received, in execution queue).
- MTCH — Matched (matching completed with the counterparty).
- UNMA — Unmatched (matching failed, gap to investigate).
- ACPT — Accepted (final acceptance).
- PACK — Partial Acknowledgment (partial fill).
- CANL — Cancelled (cancelled on request).
- FAIL — Failed (settlement failure, to investigate or resubmit).
- RJCT — Rejected (final reject).
A single order can generate multiple successive MT509s over time (RECE then MTCH then
ACPT then SETT). The :24B: tag specifies the reason when applicable.
Sequence structure
- GENL — General Information: reference (SEME), linked order reference (RELA), current status.
- STATDET — Status Details: security, confirmed quantity, execution price, date, detailed reason.
Block 4 tags
| Tag | Name | Format | Usage |
|---|---|---|---|
:25D: | Status Code | :4!c/[8c]/4!c | EXST//RECE, EXST//MTCH, EXST//PACK, EXST//FAIL… |
:24B: | Reason Code | :4!c/[8c]/4!c | EXST/PACK/INSF (insufficient quantity available), EXST/FAIL/LACK (lack of securities), EXST/RJCT/DSEC… |
:36B: | Quantity | :4!c//4!c/15d | CONF (confirmed/executed quantity). |
:90A: | Price | :4!c//3!a/15d | EXEC (execution price). |
:98A: | Date | :4!c//8!n | EXEC (execution date), SETT (expected settlement). |
:70E: | Narrative | 10*35x | EXST/… — status context. |
Real-world example
Northern Trust advises BNP Paribas that the 200 Apple shares buy order (MT502 of 15 May) was partially executed: 180 of the 200 requested, average price 189.75 USD, end-of-day, remainder expires:
{1:F01NTRSUS33XXXX0000000000}{2:I509BNPAFRPPXXXXN}{3:{108:TSM20260515002}}{4:
:16R:GENL
:20C::SEME//TSM20260515002
:20C::RELA//ORD20260515001
:23G:NEWM
:98A::PREP//20260515
:25D::EXST//PACK
:16S:GENL
:16R:STATDET
:35B:ISIN US0378331005
APPLE INC
:36B::CONF//UNIT/180,
:90A::EXEC//USD/189,75
:98A::EXEC//20260515
:25D::EXST//PACK
:24B::EXST/PACK/INSF
:70E::EXST//PARTIAL FILL 180 OUT OF 200 ORDERED PRICE 189.75 USD UNFILLED 20 EXPIRED EOD
:16S:STATDET} :20C::RELA//ORD20260515001— original MT502 reference.:25D::EXST//PACK— Partial Acknowledgment.:36B::CONF//UNIT/180,— 180 shares actually executed.:90A::EXEC//USD/189,75— average execution price.:24B::EXST/PACK/INSF— reason: insufficient liquidity (the remaining 20 shares found no counterparty).
Common pitfalls
- Missing RELA — without
:20C::RELA//, the ordering party does not know which order to attach the status to. ETL stuck. - PACK vs MTCH confusion — PACK = partial fill; MTCH = matching done (counterparty found but settlement still pending). Two distinct steps.
- FAIL without 24B — a FAIL status must carry a
:24B::EXST/FAIL/…reason or it's impossible to identify the corrective action (reissue, escalate, dispute). - Single execution price for multi-fill — on fragmented markets (MiFID II multiple venues), an execution happens at several prices.
:90A::EXEC//must then be a VWAP, never the last fill price. - Missing statuses in the sequence — an MT509 RECE should precede MTCH/ACPT. Skipping the RECE status can break some strict ETL parsers.
ISO 20022 equivalent
- sese.024 — Securities Settlement Transaction Status Advice (for settlement statuses).
- sese.032 — Securities Trade Status Query (for real-time status query).
- setr.014 — Subscription Order Status Report on the funds side.