sese: Securities settlement
sese.024 Securities Settlement Transaction Status Advice
Written and maintained by ZagTrader. Last reviewed . How this page is sourced and checked
The sese.024 is the ISO 20022 status advice an account servicer (a custodian, CSD or T2S) sends to the account owner about a settlement instruction: whether it was accepted or rejected, whether it matched, and why it has not settled yet. It answers a sese.023 and is the ISO 20022 counterpart of the MT548. Operations teams read it to find out what is blocking a trade before the settlement date passes.
- Message
- SecuritiesSettlementTransactionStatusAdvice
- Root element
- SctiesSttlmTxStsAdvc
- Common version
- sese.024.001.12
- MT equivalent
- MT548
When sese.024 is used
Once the account servicer receives a sese.023, every change in the life of that instruction can produce a sese.024: accepted or rejected after validation, matched or unmatched against the counterparty, pending or failing settlement, cancelled. Some account servicers also send one on request or on a schedule, for example every morning for each instruction still open.
One sese.024 can report three status dimensions side by side: the processing status (PrcgSts), the matching status (MtchgSts) and the settlement status (SttlmSts). In the MT548 each of these is a separate STAT block with its own :25D: qualifier (IPRC, MTCH, SETT).
Each status can carry one or more reasons. A reason is a code from the ISO list for that status (Rsn/Cd/Cd, for example LACK), a proprietary code with its issuer (Rsn/Cd/Prtry), or the explicit statement that no reason is given (NoSpcfdRsn = NORE). Free text goes in AddtlRsnInf. Reading the reason, not just the status, is what tells operations whether to act or wait.
In T2S, T2S sends sese.024 messages to CSDs and directly connected participants as validation, matching and settlement take place; holds and releases (party hold, CSD hold) are reported the same way. Indirectly connected clients usually receive the same information from their CSD or custodian, as a sese.024 or translated into an MT548.
A status advice about a cancellation request is a different message (sese.027, the MX form of an MT548 with :23G:CAST). Settled instructions are confirmed in sese.025; a list of everything still pending is a statement of pending transactions (MT537).
Versions in common use
| Version | Where it is used |
|---|---|
| sese.024.001.12 | Used by T2S since release R2026.JUN (first business day 15 June 2026), replacing sese.024.001.10 (change request T2S-0809-SYS, ISO maintenance releases 2020 to 2024). Element paths on this page follow this version. |
| sese.024.001.14 | Latest version in the ISO 20022 model and the target of T2S release R2026.NOV (via sese.024.001.13; change requests T2S-0841-SYS and T2S-0859-SYS). Clearstream reports the deployment as postponed to business day 30 November 2026. It adds optional elements in TxDtls, such as the unique transaction identifier (UnqTxIdr). |
| sese.024.001.10 | The T2S version until R2026.JUN (ISO maintenance release 2019 basis). |
sese.024 key elements
Paths are relative to Document/SctiesSttlmTxStsAdvc. Occurrence is from the base message (sese.024.001.12); market practice such as CBPR+ or a CSD’s rules can make an optional element mandatory or forbid it.
| Element | Occurs | Meaning |
|---|---|---|
| TxIdTransaction Identification | [1..1] | Identifies the instruction the status is about. |
| AcctOwnrTxIdAccount Owner Transaction Identification | [1..1] | Your own reference from the instruction (TxId of the sese.023). Match status advices to instructions on this field. |
| AcctSvcrTxIdAccount Servicer Transaction Identification | [0..1] | The custodian’s or CSD’s reference for the instruction. Quote it when you call them. |
| MktInfrstrctrTxIdMarket Infrastructure Transaction Identification | [0..1] | The reference given by the market infrastructure (for example the T2S reference). Same as :20C::MITI in the MT548. |
| CtrPtyMktInfrstrctrTxIdCounterparty Market Infrastructure Transaction Identification | [0..1] | The infrastructure reference of the counterparty’s matched instruction. |
| CmonIdCommon Identification | [0..1] | The common reference both parties put in their instructions, if any. |
| PrcgStsProcessing Status | [0..1] | Where the instruction stands in the account servicer’s processing. A choice: exactly one of the statuses below. |
| AckdAccptdAcknowledged Accepted | [0..1] | The instruction passed validation and is accepted. MT548 :25D::IPRC//PACK. |
| PdgPrcgPending Processing | [0..1] | Received but not yet fully processed, for example waiting for a manual check. MT548 :25D::IPRC//PPRC. |
| RjctdRejected | [0..1] | The instruction will not be processed. MT548 :25D::IPRC//REJT. Fix and send a new instruction. |
| CdRejection Reason Code | [0..1] | Why it was rejected, for example SAFE (safekeeping account), DSEC (security), DDAT (settlement date), SETR (transaction type), LATE (deadline missed). |
| RprRepair | [0..1] | Accepted but held for repair by the account servicer. MT548 :25D::IPRC//REPR. |
| CancCancelled | [0..1] | The instruction has been cancelled. MT548 :25D::IPRC//CAND. |
| PdgCxlPending Cancellation | [0..1] | Your cancellation request is waiting, for example for the counterparty to cancel too. MT548 :25D::IPRC//CANP. |
| CxlReqdCancellation Requested | [0..1] | The counterparty has asked to cancel the matched transaction and is waiting for your cancellation. MT548 :25D::IPRC//CPRC. |
| ModReqdModification Requested | [0..1] | The counterparty has asked to modify the transaction. MT548 :25D::IPRC//MPRC. |
| PrtryProprietary | [0..1] | A status and reason defined by the account servicer, with the issuer named. |
| IfrrdMtchgStsInferred Matching Status | [0..1] | A matching status the account servicer derives itself rather than receives from the market. MT548 qualifier :25D::INMH. |
| MtchgStsMatching Status | [0..1] | Whether the instruction has matched the counterparty’s instruction. MT548 qualifier :25D::MTCH. |
| MtchdMatched | [0..1] | Matched (MACH). There is no ISO reason code list here, only an optional proprietary reason, so it is often sent as an empty <Mtchd/>. |
| UmtchdUnmatched | [0..1] | Not matched (NMAT). The reasons say which field differs or that no counterparty instruction was found. |
| CdUnmatched Reason Code | [0..1] | For example CMIS (no matching instruction found), DDAT (settlement date), DQUA (quantity), DSEC (security), DMON (amount), DEPT (place of settlement), ICAG (agent), DELN (direction), NMAS (no matching started). |
| AddtlRsnInfAdditional Reason Information | [0..1] | Free text, often the counterparty’s value of the field that differs. MT548 :70D::REAS. |
| SttlmStsSettlement Status | [0..1] | Whether a matched instruction can still settle on time. MT548 qualifier :25D::SETT. |
| PdgPending | [0..1] | Not settled yet, but settlement on the intended date is still possible (PEND). |
| CdPending Reason Code | [0..1] | What it is waiting for: FUTU (settlement date not reached), LACK (your securities), MONY (your cash), CLAC or CMON (counterparty short), PREA (your instruction on hold), PRCY (counterparty on hold), LINK (linked instruction), CSDH (CSD hold). |
| PrtryProprietary Pending Reason | [0..1] | A reason defined by the account servicer or market, with Id and Issr (for example a CSD-specific code). |
| FlngFailing | [0..1] | Settlement on the intended date is no longer possible (PENF). Same reason codes as pending, plus a few that only make sense after the date, such as CYCL. |
| CdFailing Reason Code | [0..1] | Why the instruction failed, for example LACK, CLAC, MONY, CMON or BLOC. |
| PrtryProprietary | [0..1] | A settlement status defined by the account servicer. |
| TxDtlsTransaction Details | [0..1] | A copy of the main data of the instruction, so the reader can identify the trade without looking it up. |
| SfkpgAcctSafekeeping Account | [0..1] | The securities account concerned. |
| FinInstrmIdFinancial Instrument Identification | [1..1] | The security (ISIN). |
| SttlmQtySettlement Quantity | [1..1] | The instructed quantity. |
| PrtlyRlsdQtyPartially Released Quantity | [0..1] | The part of an instruction on hold that has been released for settlement. |
| SttlmAmtSettlement Amount | [0..1] | The cash amount and direction (CdtDbtInd) of an against-payment instruction. |
| XpctdSttlmDtExpected Settlement Date | [0..1] | When the account servicer now expects settlement. MT548 :98a::EXSE. |
| SttlmDtSettlement Date | [1..1] | The intended settlement date of the instruction. |
| SctiesMvmntTpSecurities Movement Type | [1..1] | RECE or DELI, as instructed. |
| PmtPayment | [1..1] | FREE or APMT, as instructed. |
| SttlmParamsSettlement Parameters | [1..1] | At least the securities transaction type (SctiesTxTp, for example TRAD). |
| RcvgSttlmPtiesReceiving Settlement Parties | [0..1] | The receiving chain as instructed or as matched. |
| DlvrgSttlmPtiesDelivering Settlement Parties | [0..1] | The delivering chain as instructed or as matched. |
Rules worth knowing
PrcgSts,MtchgStsandSttlmStsare each a choice: one status per dimension per message. To report two settlement reasons, repeatRsninside the one status, not the status itself.- Reason code lists depend on the status. In sese.024.001.12, for example,
CYCLis in the failing reason list but not in the pending one, andMtchdhas no ISO reason list at all. A code that is valid in an MT548 under one qualifier can be invalid in the MX under another status. - The MT548 code
NARR(see narrative) has no MX code: the text goes inAddtlRsnInf. Where the MT548 has no reason sequence, the MX usesNoSpcfdRsnwithNORE. - Partial release of an instruction on hold has its own pending and failing reason code,
PREL, which T2S introduced through change request T2S-0823-SYS (part of release R2026.JUN). The quantity released can be shown inTxDtls/PrtlyRlsdQty. - The Document carries no message reference of its own. The ID of the advice itself is in the business application header; the instruction is identified by
TxId/AcctOwnrTxId.
sese.024 XML example
The custodian CUSTAEADXXX reports on the morning of 22 October 2026 on the delivery instructed in the sese.023 example: 10,000 shares of AEZAGT000016 to BANKAEADXXX at CSDXAEADXXX against AED 254,500.00. The instruction is accepted and matched, but pending because only 6,000 shares are in the account (lack of securities). In MT terms this is an MT548 with three STAT blocks: IPRC//PACK, MTCH//MACH and SETT//PEND with reason LACK.
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:sese.024.001.12">
<SctiesSttlmTxStsAdvc>
<TxId>
<AcctOwnrTxId>ZTDEL2610200001</AcctOwnrTxId>
<AcctSvcrTxId>CUST2610-778812</AcctSvcrTxId>
<MktInfrstrctrTxId>CSDX261021004417</MktInfrstrctrTxId>
</TxId>
<PrcgSts>
<AckdAccptd>
<NoSpcfdRsn>NORE</NoSpcfdRsn>
</AckdAccptd>
</PrcgSts>
<MtchgSts>
<Mtchd/>
</MtchgSts>
<SttlmSts>
<Pdg>
<Rsn>
<Cd>
<Cd>LACK</Cd>
</Cd>
<AddtlRsnInf>6000 UNITS AVAILABLE, 10000 REQUIRED</AddtlRsnInf>
</Rsn>
</Pdg>
</SttlmSts>
<TxDtls>
<SfkpgAcct>
<Id>ZAG-SAFE-0001</Id>
</SfkpgAcct>
<FinInstrmId>
<ISIN>AEZAGT000016</ISIN>
</FinInstrmId>
<SttlmQty>
<Qty>
<Unit>10000</Unit>
</Qty>
</SttlmQty>
<SttlmAmt>
<Amt Ccy="AED">254500.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
</SttlmAmt>
<SttlmDt>
<Dt>
<Dt>2026-10-22</Dt>
</Dt>
</SttlmDt>
<TradDt>
<Dt>
<Dt>2026-10-20</Dt>
</Dt>
</TradDt>
<SctiesMvmntTp>DELI</SctiesMvmntTp>
<Pmt>APMT</Pmt>
<SttlmParams>
<SctiesTxTp>
<Cd>TRAD</Cd>
</SctiesTxTp>
</SttlmParams>
<RcvgSttlmPties>
<Dpstry>
<Id>
<AnyBIC>CSDXAEADXXX</AnyBIC>
</Id>
</Dpstry>
<Pty1>
<Id>
<AnyBIC>BANKAEADXXX</AnyBIC>
</Id>
</Pty1>
</RcvgSttlmPties>
</TxDtls>
</SctiesSttlmTxStsAdvc>
</Document>Decode this example in the parserAcctOwnrTxId is the TxId of the original sese.023, so the advice can be matched to the instruction automatically.
Three statuses in one message: accepted (AckdAccptd, no reason), matched (Mtchd), pending with LACK. The MT548 needs three :25D: lines in three STAT blocks to say the same.
Pending, not failing: settlement on 22 October is still possible if the shares arrive. If the date passes without settlement the next advice moves to Flng (PENF). Because the instruction allows partial settlement, the 6,000 shares available can settle first; see the sese.025 example.
The BICs, references, accounts and ISIN are made up.
sese.024 and its MT equivalent
The MT equivalent is the MT548 Settlement Status and Processing Advice with :23G:INST (status of an instruction). An MT548 with :23G:CAST (status of a cancellation request) corresponds to sese.027 instead. The MT548 puts each status in its own repeating STAT block (:25D: with a qualifier) and each reason in a REAS sub-block (:24B: with the same qualifier as the status, plus optional :70D::REAS narrative). The sese.024 groups them by dimension under PrcgSts, MtchgSts and SttlmSts.
Securities messages were not part of Swift’s November 2025 ISO 20022 deadline for payments; MT548 remains in use on FIN, while T2S and its directly connected participants receive sese.024. Many custodians therefore generate both from the same status events. See ISO 20022 migration: securities versus payments.
| ISO 20022 element | MT field | Note |
|---|---|---|
AppHdr/BizMsgIdr (business application header) | :20C::SEME// | The advice’s own reference is not in the Document. |
TxId/AcctOwnrTxId | :20C::RELA// (sequence A1) | Reference of the instruction being reported on. |
TxId/MktInfrstrctrTxId | :20C::MITI// (sequence A1) | |
TxId/CmonId | :20C::COMM// (sequence A1) | |
PrcgSts/AckdAccptd | :25D::IPRC//PACK | |
PrcgSts/PdgPrcg | :25D::IPRC//PPRC | |
PrcgSts/Rjctd | :25D::IPRC//REJT | |
PrcgSts/Rpr | :25D::IPRC//REPR | |
PrcgSts/Canc | :25D::IPRC//CAND | |
PrcgSts/PdgCxl | :25D::IPRC//CANP | |
PrcgSts/CxlReqd | :25D::IPRC//CPRC | |
PrcgSts/ModReqd | :25D::IPRC//MPRC | |
MtchgSts/Mtchd | :25D::MTCH//MACH | |
MtchgSts/Umtchd | :25D::MTCH//NMAT | |
IfrrdMtchgSts/Mtchd or Umtchd | :25D::INMH//MACH or NMAT | |
SttlmSts/Pdg | :25D::SETT//PEND | |
SttlmSts/Flng | :25D::SETT//PENF | |
<status>/Rsn/Cd/Cd | :24B::<status code>//<reason> | For example SttlmSts/Pdg/Rsn/Cd/Cd = LACK is :24B::PEND//LACK. |
<status>/Rsn/Cd/Prtry (Id, Issr) | :24B::<status code>/<issuer>/<reason> | Reason with a data source scheme. |
<status>/Rsn/AddtlRsnInf | :70D::REAS// | |
<status>/NoSpcfdRsn = NORE | No REAS sequence | |
TxDtls/FinInstrmId | :35B: (sequence B) | |
TxDtls/SttlmQty | :36B::SETT// (sequence B) | |
TxDtls/SttlmAmt | :19A::SETT// (sequence B) | |
TxDtls/SfkpgAcct | :97A::SAFE// (sequence B) | |
TxDtls/SctiesMvmntTp and TxDtls/Pmt | :22H::REDE//RECE or DELI and :22H::PAYM//FREE or APMT | |
TxDtls/SttlmParams/SctiesTxTp | :22F::SETR// | |
TxDtls/SttlmDt and TxDtls/XpctdSttlmDt | :98a::SETT// and :98a::EXSE// | |
TxDtls/RcvgSttlmPties and DlvrgSttlmPties | Sequence B1 SETPRTY: :95a::REAG, DEAG, BUYR, SELL, PSET |
Common errors and rejects
Rejected (REJT): instruction never entered processing
Read
How to fix itPrcgSts/Rjctd/Rsn. Common codes: SAFE (account unknown or not allowed), DSEC (ISIN), DDAT (date), DQUA (quantity), SETR (transaction type), LATE or ADEA (deadline). A rejected instruction is dead: correct it and send a new one with a new reference.Unmatched (NMAT) close to settlement date
The reason code names the differing field. CMIS means the counterparty has not instructed: ask your broker or the counterparty to instruct. Field mismatches (DDAT, DQUA, DMON, ICAG) need one side to cancel and re-instruct.
How to fix itPending with LACK on the delivery side
Your account does not hold enough securities. Check incoming receipts that should settle first, recalls of lent securities and blocked positions (SBLO). If the instruction allows partial settlement, the available part may settle.
How to fix itFailing (PENF) after the settlement date
The trade missed its intended date. Find the reason (for example LACK, CLAC, MONY), agree a fix with the counterparty and watch for buy-in rules and settlement fail penalties where your market applies them.
How to fix itInstruction on hold (PREA, PRCY, CSDH)
Matched but not settling because an instruction is on hold: PREA yours, PRCY the counterparty’s, CSDH a hold set by the CSD. Release your own hold or ask the counterparty or CSD to release theirs before the cut-off.
How to fix itReason code not accepted when translating from MT548
A converter that copies every :24B: code into the MX can produce an invalid sese.024: reason lists are specific to each status in the MX, and
NARRdoes not exist. Map narrative toAddtlRsnInfand check each code against the list for that status in the version you send.
sese.024 questions
- What is the difference between sese.024 and MT548?
- They report the same thing. The MT548 uses one STAT block per status (:25D::IPRC, MTCH, SETT) and :24B: for reasons. The sese.024 groups the statuses under
PrcgSts,MtchgStsandSttlmSts, uses code lists specific to each status, and puts the instruction’s reference inTxId/AcctOwnrTxId. - What is the difference between pending and failing in sese.024?
SttlmSts/Pdg(PEND) means the instruction has not settled but can still settle on its intended date.SttlmSts/Flng(PENF) means settlement on that date is no longer possible. The reason codes in both say what is missing.- Where is the reason code in a sese.024?
- Under the status it explains: for example
SttlmSts/Pdg/Rsn/Cd/Cdfor a pending reason,MtchgSts/Umtchd/Rsn/Cd/Cdfor an unmatched reason,PrcgSts/Rjctd/Rsn/Cd/Cdfor a rejection. A market-specific code sits inRsn/Cd/Prtrywith its issuer, and text inRsn/AddtlRsnInf. - Which sese.024 version does T2S send?
- sese.024.001.12 since release R2026.JUN (business day 15 June 2026), replacing sese.024.001.10. Release R2026.NOV moves T2S to sese.024.001.14; Clearstream reports that deployment for business day 30 November 2026.
- Does a sese.024 report a cancellation request?
- It reports the effect on the instruction, for example cancelled (
PrcgSts/Canc) or cancellation pending (PrcgSts/PdgCxl). The status of the cancellation request message itself is asese.027, the MX form of an MT548 with :23G:CAST.
The trading side of the trade: FIX
Before a settlement instruction is sent, the trade is usually executed, allocated and confirmed over FIX, and the instruction must copy what was agreed there. Read those messages on the free ZagTrader FIX Parser:
- From FIX execution to settlement: which FIX field becomes which settlement field, and where breaks start
- Allocation Instruction (35=J): how a block trade is split across accounts
- Confirmation (35=AK): the confirmed economics per allocation
- Settlement Instructions (35=T): standing settlement instructions over FIX
All ISO 20022 messages · MT messages · MT to ISO 20022 migration