ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

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

TagNameFormatUsage
:25D:Status Code:4!c/[8c]/4!cEXST//RECE, EXST//MTCH, EXST//PACK, EXST//FAIL…
:24B:Reason Code:4!c/[8c]/4!cEXST/PACK/INSF (insufficient quantity available), EXST/FAIL/LACK (lack of securities), EXST/RJCT/DSEC…
:36B:Quantity:4!c//4!c/15dCONF (confirmed/executed quantity).
:90A:Price:4!c//3!a/15dEXEC (execution price).
:98A:Date:4!c//8!nEXEC (execution date), SETT (expected settlement).
:70E:Narrative10*35xEXST/… — 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:

text mt509-partial-fill.txt
{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.
  • MT502 — the original order.
  • MT515 — Client Confirmation of Purchase or Sale, final confirmation.
  • MT540 to MT543 — triggered settlement instructions.
  • ISO 20022: sese.024, sese.032.