ZagTrader

Category 5: Securities markets

MT548 Settlement Status and Processing Advice

Written and maintained by ZagTrader. Last reviewed . How this page is sourced and checked

The MT548 is the status message a custodian or CSD participant sends to its client about a securities settlement instruction: whether the instruction was accepted or rejected, whether it has matched with the counterparty, and whether it is pending or failing settlement, each with a coded reason. The account servicer sends it to the account owner after an MT540, MT541, MT542 or MT543 (or a request to cancel one), every time the status changes, until settlement is confirmed by an MT544 to MT547.

Message type
MT548
Category
5
Structure
17 sequences, 83 fields listed
ISO 20022
sese.024, sese.025

When MT548 is used

An account owner (a broker, investment manager, bank or global custodian) instructs its account servicer with an MT540 to MT543. From that moment the account servicer reports what happens to the instruction in MT548 messages: first whether it accepted the instruction, then whether the market matched it with the counterparty’s instruction, then, around the settlement date, whether settlement is pending or failing and why. Settlement itself is not reported in an MT548: it is confirmed by MT544, MT545, MT546 or MT547. Most account servicers send an MT548 on every change of status without being asked; the account owner can also request one with an MT549.

Field 23G says what the advice is about. INST reports on an instruction. CAST reports on a cancellation request, that is an MT540 to MT543 with 23G CANC, and carries 25D::CPRC. A subfunction can mark a COPY sent to a third party or a DUPL re-send.

The MT548 is tied to your instruction by references. The LINK sequence carries 20C::RELA with the 20C::SEME of the instruction (or of the cancellation request for CAST), usually with :13A::LINK//543 or the relevant message type next to it. Other LINK blocks can add the market infrastructure reference (MITI, for example the T2S or CSD transaction id) and the processor reference (PCTI). Optional sequence B repeats the key trade details (ISIN, quantity, amount, account, dates, direction and payment type), which helps when RELA cannot be found.

Each status sits in a STAT block (sequence A2). Field 25D gives a qualifier and a code: the qualifier says which dimension the status describes (IPRC instruction processing, MTCH matching, SETT settlement, CPRC cancellation, and a few more) and the code gives the status (PACK, NMAT, PEND and so on). Reasons sit in REAS blocks (sequence A2a) inside the STAT block: field 24B repeats the status code as its qualifier and adds the reason, for example :24B::PEND//LACK, and 70D::REAS can add free text.

A typical lifecycle for a delivery against payment: PACK (instruction accepted), NMAT with CMIS (no counterparty instruction yet), MACH (matched), PEND with FUTU (waiting for the settlement date), then either settlement confirmed by MT547 or a problem: PEND with LACK (your account is short of securities) while settlement on the intended date is still possible, and PENF (failing) once it is not. An unmatched instruction can show differences such as DDAT (settlement date) or DMON (amount); a rejected one comes as REJT with a reason like SAFE or DSEC. See the securities settlement lifecycle.

The MT548 does not report allegements. When a counterparty’s instruction is waiting for yours, the account servicer reports it in an MT578 Settlement Allegement. The MT537 Statement of Pending Transactions gives the same statuses for all open instructions at once.

MT548 format: sequences and fields

Sequence AGeneral InformationMandatory

Identifies the advice and what it reports on, and holds the linkages and the statuses.

TagQualifierNameStatusFormatMeaning
16RStart of blockMGENLOpens the General Information block.
20CSEMESender's Message ReferenceM:4!c//16xThe account servicer’s reference for this status advice.
23GFunction of the MessageM4!c[/4!c]INST: status of an instruction. CAST: status of a cancellation request. Optional subfunction COPY (copy for a third party), DUPL (duplicate re-send) or CODU (copy of a duplicate).
98aPREPPreparation Date/TimeOA: :4!c//8!n C: :4!c//8!n6!n E: :4!c//8!n6!n[,3n][/[N]2!n[2!n]]When the advice was prepared. Use it to keep only the latest status when several advices for the same instruction arrive close together.
16SEnd of blockMGENLCloses the General Information block.

Sequence A1LinkagesMandatory, repeatable

At least one LINK block. Each block holds one 20C reference; the qualifier is a choice. Only the commonly used qualifiers are listed.

TagQualifierNameStatusFormatMeaning
16RStart of blockMLINKOpens the Linkages block.
13aLINKLinked MessageOA: :4!c//3!c B: :4!c/[8c]/30xMessage type of the linked message, for example :13A::LINK//541.
20CRELARelated ReferenceC:4!c//16xThe 20C::SEME of the instruction (MT540 to MT543) this advice reports on, or of the cancellation request when 23G is CAST. This is the key to match the advice to your instruction.
20CMITIMarket Infrastructure Transaction IdentificationO:4!c//16xThe transaction id given by the market infrastructure, for example T2S or the CSD. Quote it when you investigate with the market.
20CPCTIProcessor Transaction IdentificationO:4!c//16xReference of a processor other than the account owner, the account servicer and the market infrastructure.
20CCOMMCommon ReferenceO:4!c//16xThe common reference agreed by the trade counterparties.
20CTRRFDeal ReferenceO:4!c//16xThe deal reference of the investment manager or broker.
20CPOOLPool ReferenceO:4!c//16xReference of a group of instructions that belong together.
16SEnd of blockMLINKCloses the Linkages block.

Sequence A2StatusMandatory, repeatable

One STAT block per status. 25D is mandatory in every block and its qualifier is a choice: one row per qualifier below, with the status codes it allows. Repeat the block to report several dimensions (for example matched and pending) in one advice.

TagQualifierNameStatusFormatMeaning
16RStart of blockMSTATOpens the Status block.
25DIPRCInstruction Processing StatusC:4!c/[8c]/4!cWhat the account servicer did with the instruction: PACK accepted, REJT rejected, REPR accepted but in repair, PPRC processing pending, CAND cancelled, CANP your cancellation pending, CGEN transaction generated by the account servicer or a third party, CPRC the counterparty asked to cancel and waits for your cancellation, MPRC the counterparty asked to modify.
25DMTCHMatching StatusC:4!c/[8c]/4!cMACH matched with the counterparty’s instruction, or NMAT not matched.
25DINMHInferred Matching StatusC:4!c/[8c]/4!cSame codes as MTCH (MACH, NMAT), used when the account servicer derives the matching status indirectly instead of receiving it from a matching facility.
25DSETTSettlement StatusC:4!c/[8c]/4!cPEND pending: settlement on the intended settlement date is still possible. PENF pending/failing: settlement on that date is no longer possible.
25DCPRCCancellation Processing StatusC:4!c/[8c]/4!cUsed with 23G CAST to report on your cancellation request: PACK accepted, REJT rejected, CANP pending, CAND cancellation completed, DEND denied (will not be executed, for example because the instruction already settled).
25DTPRCProcessing Change Command StatusC:4!c/[8c]/4!cStatus of a request to change an instruction, such as a hold or release sent with an MT530: PACK, REJT, MOPN modification pending, MODC modification completed, DEND denied.
25DCALLRepo Call Request StatusC:4!c/[8c]/4!cStatus of a repo call request: CACK acknowledged/accepted or DEND denied.
25DSPRCRequest for Statement/Status Advice StatusC:4!c/[8c]/4!cOnly REJT: your MT549 request for a statement or status advice was rejected.
16SEnd of blockMSTATCloses the Status block.

Sequence A2aReasonOptional, repeatable

Inside a STAT block. The 24B qualifier is the status code being explained (PEND, NMAT, REJT and so on); one row per qualifier, with frequent reason codes. A status can carry several REAS blocks.

TagQualifierNameStatusFormatMeaning
16RStart of blockMREASOpens the Reason block.
24BPENDPending ReasonC:4!c/[8c]/4!cWhy settlement is pending. Your side: LACK not enough securities, MONY not enough cash or credit, PREA your instruction on hold, BLOC account blocked, YCOL collateral shortage, LALO securities on loan. Counterparty side: CLAC they lack securities, CMON they lack cash, PRCY their instruction on hold, BOTH both on hold. Neutral: FUTU awaiting settlement date, CYCL awaiting next settlement cycle, LINK waiting for a linked instruction, CSDH or CVAL held by the CSD, PART settling in partials.
24BPENFPending/Failing ReasonC:4!c/[8c]/4!cWhy settlement is failing. Mostly the same codes as PEND (LACK, CLAC, MONY, CMON, PREA, PRCY), plus codes only seen on fails such as BYIY (buy-in started) and MLAT (cash or securities arrived too late), and CLAT (counterparty too late).
24BNMATUnmatched ReasonC:4!c/[8c]/4!cWhy the instruction has not matched: CMIS no counterparty instruction found, or a disagreement on a matching field: DDAT settlement date, DTRD trade date, DQUA quantity, DMON amount, NCRR amount currency, DSEC security, DELN direction, DDEA price, DEPT place of settlement, ICAG counterparty agent, ICUS custodian, IEXE buyer or seller, SETR transaction type, SAFE safekeeping account, ACRU accrued interest. Also CPCA counterparty cancelled, CLAT counterparty too late for matching, PODU possible duplicate, NMAS matching not started.
24BREJTRejection ReasonC:4!c/[8c]/4!cWhy the instruction or request was rejected: SAFE unknown or invalid safekeeping account, DSEC unknown security, DDAT invalid settlement date, DQUA invalid quantity, DMON invalid amount, DEPT invalid place of settlement, ICAG invalid agent, SETR invalid transaction type, LATE after the market deadline, ADEA after the account servicer’s deadline, REFE duplicate reference, NRGN instruction to cancel not found.
24BREPRRepair ReasonC:4!c/[8c]/4!cWhich data is being repaired: the same kind of codes as for rejection, for example DDAT, DSEC, ICAG or SAFE.
24BPACKAcknowledgement ReasonC:4!c/[8c]/4!cRare: ADEA accepted after the account servicer’s deadline (best effort), SMPG accepted although it does not follow market practice, or NARR.
24BPPRCPending Processing ReasonC:4!c/[8c]/4!cWhy the account servicer has not passed the instruction on yet, for example LACK, MONY, BLOC or DOCY (documents awaited from you).
24BCANDCancellation ReasonC:4!c/[8c]/4!cWho or what cancelled: CANI at your request, CANS by the settlement system, CSUB by the agent, CTHP by a third party, EXPI expired, CANZ replaced to allow partial settlement, CANT replaced after a transformation.
24BCANPPending Cancellation ReasonC:4!c/[8c]/4!cWhy a cancellation is still pending, for example CONF awaiting the counterparty’s cancellation (bilateral cancellation of a matched instruction).
24BDENDDenied ReasonC:4!c/[8c]/4!cWhy a cancellation or change was denied: DSET already settled, DCAN already cancelled, DPRG settlement in progress, LATE after the deadline.
24BCGENGenerated ReasonC:4!c/[8c]/4!cWhy a transaction was generated for you: CLAI market claim, TRAN transformation after a corporate action, SPLI split to allow settlement, THRD generated by a third party such as a CCP.
70DREASReason NarrativeO:4!c//6*35xFree text that explains the reason. Expected when the reason code is NARR.
16SEnd of blockMREASCloses the Reason block.

Sequence BSettlement Transaction DetailsOptional

Optional, but when present the security, quantity, account, transaction type, direction, payment type and settlement date are mandatory. Many account servicers send it so the advice can be read on its own.

TagQualifierNameStatusFormatMeaning
16RStart of blockMSETTRANOpens the Settlement Transaction Details block.
94aSAFEPlace of SafekeepingRepeatableOB: :4!c/[8c]/4!c[/30x] C: :4!c//2!a F: :4!c//4!c/4!a2!a2!c[3!c] L: :4!c//18!c2!nWhere the securities are held.
35BIdentification of the Financial InstrumentM[ISIN1!e12!c] [4*35x]The security of the instruction: ISIN and the ISIN, optionally with a description.
36BSETTQuantity of Financial Instrument to be SettledRepeatableM:4!c//4!c/15dThe quantity of the instruction: UNIT for shares and units, FAMT for face amount. Recent releases also allow option D (:4!c//4!c/30d) with DITU for digital token units.
19ASETTSettlement AmountO:4!c//[N]3!a15dThe cash amount of an against payment instruction.
95aACOWAccount OwnerOP: :4!c//4!a2!a2!c[3!c] R: :4!c/8c/34xOwner of the safekeeping account, when it is not the receiver of the advice.
97aSAFESafekeeping AccountMA: :4!c//35x B: :4!c/[8c]/4!c/35xThe securities account of the instruction. Recent releases allow a blockchain address or wallet (97D::BCAW, :4!c/[8c]/140x) in its place.
22FSETRType of Settlement Transaction IndicatorM:4!c/[8c]/4!cTransaction type from the instruction, for example TRAD.
22HREDEReceive/Deliver IndicatorM:4!c//4!cRECE for a receipt, DELI for a delivery.
22HPAYMPayment IndicatorM:4!c//4!cAPMT against payment or FREE free of payment. With REDE this tells you which of the MT540 to MT543 the advice relates to.
22FSTCOSettlement Transaction Condition IndicatorRepeatableO:4!c/[8c]/4!cConditions from the instruction, for example NPAR (no partial settlement).
98aSETTSettlement Date/TimeMA: :4!c//8!n B: :4!c/[8c]/4!c C: :4!c//8!n6!nThe intended settlement date of the instruction.
98aTRADTrade Date/TimeOA: :4!c//8!n B: :4!c/[8c]/4!c C: :4!c//8!n6!n E: :4!c//8!n6!n[,3n][/[N]2!n[2!n]]The trade date.
98aASTSAcknowledged Status TimestampOC: :4!c//8!n6!n E: :4!c//8!n6!n[,3n][/[N]2!n[2!n]]When the instruction was acknowledged (accepted) by the account servicer or the market.
98aMTCHMatched Status TimestampOC: :4!c//8!n6!n E: :4!c//8!n6!n[,3n][/[N]2!n[2!n]]When the instruction matched. Useful to check late matching, which can lead to penalties.
98aEXSEExpected Settlement Date/TimeOA: :4!c//8!n C: :4!c//8!n6!nWhen the account servicer now expects the instruction to settle, useful on failing trades.
98aADELLate Delivery Date/TimeOA: :4!c//8!n C: :4!c//8!n6!nDate and time of a late delivery.
70ESPROSettlement Instruction Processing NarrativeO:4!c//10*35xFree text about the processing of the instruction.
16SEnd of blockMSETTRANCloses the Settlement Transaction Details block.

Sequence B1Settlement PartiesOptional, repeatable

The settlement chain from the instruction. Only the commonly used qualifiers are listed.

TagQualifierNameStatusFormatMeaning
16RStart of blockMSETPRTYOpens the Settlement Parties block.
95aPSETPlace of SettlementOC: :4!c//2!a P: :4!c//4!a2!a2!c[3!c] Q: :4!c//4*35xThe CSD or ICSD where the instruction settles.
95aDEAGDelivering AgentOP: :4!c//4!a2!a2!c[3!c] Q: :4!c//4*35x R: :4!c/8c/34xThe delivering participant (the counterparty on a receipt).
95aREAGReceiving AgentOP: :4!c//4!a2!a2!c[3!c] Q: :4!c//4*35x R: :4!c/8c/34xThe receiving participant (the counterparty on a delivery).
97aSAFESafekeeping AccountCA: :4!c//35x B: :4!c/[8c]/4!c/35xAccount of the party in this block.
20CPROCProcessing ReferenceO:4!c//16xA reference this party gave the transaction.
16SEnd of blockMSETPRTYCloses the Settlement Parties block.

Sequence CPenaltiesOptional

Added to the MT548 for reporting cash penalties that a CSD calculates on instructions that matched late or failed to settle (in the EU, the CSDR settlement discipline regime). Penalties are also reported in the MT537. Sequences C to C1a1B1a1 are shown at field level only; their qualifiers and codes follow your CSD’s or custodian’s penalty guide.

TagQualifierNameStatusFormatMeaning
16RStart of blockMPENAOpens the Penalties block.
69aPeriodOA: :4!c//8!n/8!n B: :4!c//8!n6!n/8!n6!nThe period the penalty report covers.
22FIndicatorM:4!c/[8c]/4!cCoded indicator that qualifies the penalty report.
95aPartyOP: :4!c//4!a2!a2!c[3!c] L: :4!c//18!c2!nA party for the whole penalty report, by BIC or LEI.
16SEnd of blockMPENACloses the Penalties block.

Sequence C1Penalties per Currency for a PartyOptional

Groups the penalties of one party in one currency.

TagQualifierNameStatusFormatMeaning
16RStart of blockMPENACUROpens the Penalties per Currency for a Party block.
11ACurrencyO:4!c//3!aCurrency of the penalties in this group.
98aDate/TimeOA: :4!c//8!n C: :4!c//8!n6!nA date that applies to the penalties in this group.
95aPartyRepeatableMP: :4!c//4!a2!a2!c[3!c] Q: :4!c//4*35x R: :4!c/8c/34xThe party whose penalties are reported.
22FIndicatorM:4!c/[8c]/4!cCoded indicator for this group of penalties.
16SEnd of blockMPENACURCloses the Penalties per Currency for a Party block.

Sequence C1aPenalties per CounterpartyOptional

Groups the penalties per counterparty, with an amount for the group.

TagQualifierNameStatusFormatMeaning
16RStart of blockMPENACOUNTOpens the Penalties per Counterparty block.
95aPartyRepeatableMP: :4!c//4!a2!a2!c[3!c] Q: :4!c//4*35x R: :4!c/8c/34xThe counterparty the penalties relate to.
22FIndicatorM:4!c/[8c]/4!cCoded indicator for this counterparty group.
19AAmountM:4!c//[N]3!a15dAmount for this counterparty group.
16SEnd of blockMPENACOUNTCloses the Penalties per Counterparty block.

Sequence C1a1Penalty DetailsOptional, repeatable

One block per penalty.

TagQualifierNameStatusFormatMeaning
16RStart of blockMPENDETOpens the Penalty Details block.
20CReferenceRepeatableM:4!c//16xReferences that identify the penalty.
22HIndicatorRepeatableM:4!c//4!cCoded indicators that describe the penalty.
25DStatusO:4!c/[8c]/4!cStatus of the penalty.
24BReasonO:4!c/[8c]/4!cReason for the penalty status.
19AAmountM:4!c//[N]3!a15dAmount of the penalty.
99ANumber CountM:4!c//[N]3!nA count that belongs to the penalty.
16SEnd of blockMPENDETCloses the Penalty Details block.

Sequence C1a1ACalculation DetailsOptional, repeatable

How the penalty was calculated, per calculation date.

TagQualifierNameStatusFormatMeaning
16RStart of blockMCALDETOpens the Calculation Details block.
98aDate/TimeMA: :4!c//8!n C: :4!c//8!n6!n E: :4!c//8!n6!n[,3n][/[N]2!n[2!n]]The date the calculation applies to.
19AAmountO:4!c//[N]3!a15dAmounts used in or produced by the calculation.
16SEnd of blockMCALDETCloses the Calculation Details block.

Sequence C1a1A1Financial Instrument AttributesOptional

The security and its attributes used in the calculation.

TagQualifierNameStatusFormatMeaning
16RStart of blockMFIAOpens the Financial Instrument Attributes block.
35BIdentification of the Financial InstrumentM[ISIN1!e12!c] [4*35x]The security the penalty was calculated on.
90aPriceOA: :4!c//4!c/[N]15d B: :4!c//4!c/3!a15dPrice used in the calculation.
16SEnd of blockMFIACloses the Financial Instrument Attributes block.

Sequence C1a1BRelated TransactionOptional

The settlement instruction the penalty relates to.

TagQualifierNameStatusFormatMeaning
16RStart of blockMRELTRANOpens the Related Transaction block.
20CReferenceRepeatableM:4!c//16xReferences of the related instruction, so the penalty can be tied back to your MT540 to MT543.
16SEnd of blockMRELTRANCloses the Related Transaction block.

Sequence C1a1B1Transaction DetailsOptional

Key details of the related instruction. A few fields shown.

TagQualifierNameStatusFormatMeaning
16RStart of blockMTRANOpens the Transaction Details block.
22aIndicatorRepeatableMF: :4!c/[8c]/4!c H: :4!c//4!cIndicators of the related instruction, such as its direction and payment type.
98aDate/TimeRepeatableMA: :4!c//8!n B: :4!c/[8c]/4!c C: :4!c//8!n6!n E: :4!c//8!n6!n[,3n][/[N]2!n[2!n]]Dates of the related instruction, such as its intended settlement date.
36BQuantity of Financial InstrumentRepeatableM:4!c//4!c/15dQuantity of the related instruction.
19AAmountO:4!c//[N]3!a15dAmount of the related instruction.
16SEnd of blockMTRANCloses the Transaction Details block.

Sequence C1a1B1aStatusOptional, repeatable

Status of the related instruction.

TagQualifierNameStatusFormatMeaning
16RStart of blockMSTATOpens the Status block.
25DStatusM:4!c/[8c]/4!cStatus of the related instruction, in the same form as in sequence A2.
16SEnd of blockMSTATCloses the Status block.

Sequence C1a1B1a1ReasonOptional, repeatable

Reason for the status of the related instruction.

TagQualifierNameStatusFormatMeaning
16RStart of blockMREASOpens the Reason block.
24BReasonM:4!c/[8c]/4!cReason code, in the same form as in sequence A2a.
70DNarrativeO:4!c//6*35xFree text about the reason.
16SEnd of blockMREASCloses the Reason block.

Sequence DAdditional InformationOptional, repeatable

Other parties related to the advice.

TagQualifierNameStatusFormatMeaning
16RStart of blockMADDINFOOpens the Additional Information block.
95aMEOROriginator of MessageOP: :4!c//4!a2!a2!c[3!c] Q: :4!c//4*35x R: :4!c/8c/34xThe party that originated the instruction, when sent through a service bureau or platform.
95aMERERecipient of MessageOP: :4!c//4!a2!a2!c[3!c] Q: :4!c//4*35x R: :4!c/8c/34xThe party the advice is ultimately meant for.
95aINVEInvestorOC: :4!c//2!a P: :4!c//4!a2!a2!c[3!c] Q: :4!c//4*35x R: :4!c/8c/34xThe investor, where the market requires it.
16SEnd of blockMADDINFOCloses 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

  • The 24B qualifier is the status code it explains, in the same STAT block: :25D::SETT//PEND is explained by :24B::PEND//..., :25D::MTCH//NMAT by :24B::NMAT//..., :25D::IPRC//REJT by :24B::REJT//... and :25D::CPRC//DEND by :24B::DEND//....
  • The reason code must come from the list allowed for that qualifier: LACK is valid under PEND, PENF and PPRC but not under NMAT; DDAT is valid under NMAT, REJT and REPR but not under PEND.
  • When the middle part of 25D or 24B holds a data source scheme, for example :24B::PEND/ABCD/X123, the code comes from that issuer’s proprietary list, not from the standard list. Ask the account servicer for its code table.
  • PEND or PENF depends on time, not on the reason: the same LACK is reported under PEND while settlement on the intended date is still possible and under PENF once it is not. Expect the switch at the market’s end of day on the settlement date.
  • One advice can hold several STAT blocks (for example MTCH//MACH and SETT//PEND) and a status can carry several REAS blocks. Statuses for different dimensions are independent: keep the latest status per qualifier rather than overwriting the whole instruction status.
  • There is no "settled" status in the MT548. Settlement is confirmed with an MT544, MT545, MT546 or MT547; a partially settled instruction keeps receiving MT548 advices for the open quantity.
  • Sequence B is optional. When present, 35B, 36B::SETT, 97a::SAFE, 22F::SETR, 22H::REDE, 22H::PAYM and 98a::SETT are mandatory in it.
  • With reason code NARR, put the explanation in 70D::REAS in the same REAS block.

MT548 example

ZAGTAEADXXX sold 10,000 shares of a test equity and sent its custodian CUSTAEADXXX an MT543 Deliver Against Payment with the reference ZT2610200123, to settle on 22 October 2026. On the morning of the settlement date the custodian reports that the instruction is matched but pending, because the safekeeping account does not hold enough shares (LACK). Settlement on the day is still possible, so the status is PEND, not PENF.

{1:F01CUSTAEADAXXX0000000000}{2:I548ZAGTAEADXXXXN}{4:
:16R:GENL
:20C::SEME//CA548-0004711
:23G:INST
:98C::PREP//20261022093015
:16R:LINK
:13A::LINK//543
:20C::RELA//ZT2610200123
:16S:LINK
:16R:STAT
:25D::MTCH//MACH
:16S:STAT
:16R:STAT
:25D::SETT//PEND
:16R:REAS
:24B::PEND//LACK
:70D::REAS//AVAILABLE BALANCE 6000 UNITS
REQUIRED 10000 UNITS
:16S:REAS
:16S:STAT
:16S:GENL
:16R:SETTRAN
:35B:ISIN AEZAGT000016
ZAGTRADER TEST HOLDING PJSC
:36B::SETT//UNIT/10000,
:19A::SETT//AED254500,
:97A::SAFE//ZAG-SAFE-0001
:22F::SETR//TRAD
:22H::REDE//DELI
:22H::PAYM//APMT
:98A::SETT//20261022
:98A::TRAD//20261020
:16R:SETPRTY
:95P::REAG//BRKRAEADXXX
:16S:SETPRTY
:16R:SETPRTY
:95P::PSET//CSDXAEADXXX
:16S:SETPRTY
:16S:SETTRAN
-}
Decode this example in the parser

Line by line

LineWhat it says
{1:F01CUSTAEADAXXX0000000000}{2:I548ZAGTAEADXXXXN}{4:Basic header: sender CUSTAEADXXX (the account servicer). Application header: input MT548 to ZAGTAEADXXX (the account owner), normal priority.
:16R:GENL
:20C::SEME//CA548-0004711The custodian’s reference for this advice.
:23G:INSTStatus of an instruction (not of a cancellation request).
:98C::PREP//20261022093015Prepared on the settlement date at 09:30:15.
:16R:LINK
:13A::LINK//543The linked instruction is an MT543.
:20C::RELA//ZT2610200123The 20C::SEME of the MT543: this is how you find the instruction.
:16S:LINK
:16R:STATFirst status block: matching.
:25D::MTCH//MACHMatched with the buyer’s instruction.
:16S:STAT
:16R:STATSecond status block: settlement.
:25D::SETT//PENDPending: settlement today is still possible.
:16R:REAS
:24B::PEND//LACKReason: lack of securities in your account. The 24B qualifier repeats the status code PEND.
:70D::REAS//AVAILABLE BALANCE 6000 UNITSOptional narrative from the custodian.
REQUIRED 10000 UNITS
:16S:REAS
:16S:STAT
:16S:GENL
:16R:SETTRANOptional trade details, repeated from the instruction.
:35B:ISIN AEZAGT000016The security (test ISIN).
ZAGTRADER TEST HOLDING PJSC
:36B::SETT//UNIT/10000,Quantity instructed.
:19A::SETT//AED254500,Settlement amount instructed: AED 254,500.00.
:97A::SAFE//ZAG-SAFE-0001Safekeeping account.
:22F::SETR//TRADSettlement of a trade.
:22H::REDE//DELIA delivery.
:22H::PAYM//APMTAgainst payment. DELI plus APMT means the instruction was an MT543.
:98A::SETT//20261022Intended settlement date.
:98A::TRAD//20261020Trade date.
:16R:SETPRTY
:95P::REAG//BRKRAEADXXXReceiving agent: the buyer’s participant.
:16S:SETPRTY
:16R:SETPRTY
:95P::PSET//CSDXAEADXXXPlace of settlement: the local CSD.
:16S:SETPRTY
:16S:SETTRAN
-}End of block 4.

If the shares do not arrive before the end of the settlement day, the next advice will carry :25D::SETT//PENF with :24B::PENF//LACK. If 6,000 shares settle as a partial, the custodian confirms them with an MT547 carrying 22F::PARS//PAIN and keeps reporting the remaining 4,000 here.

An unmatched variant of the same advice would carry :25D::MTCH//NMAT with :24B::NMAT//DDAT if the buyer instructed a different settlement date, or :24B::NMAT//CMIS if no buyer instruction was found yet.

All BICs, references, accounts and the ISIN are made up; the ISIN has a valid check digit.

Common errors and rejects

  1. Instruction rejected (IPRC//REJT)

    The account servicer did not accept the instruction, so nothing reaches the market. The 24B::REJT reason names the field: SAFE (account), DSEC (security), DDAT (settlement date), ICAG (counterparty agent), LATE or ADEA (deadline). Correct the data and send a new instruction with a new SEME; do not cancel a rejected instruction.

    How to fix it
  2. Instruction unmatched (MTCH//NMAT)

    The market has no matching counterparty instruction (CMIS) or the two differ on a matching field (DDAT, DQUA, DMON, DSEC, DEPT, ICAG). Compare your instruction with the trade confirmation and call the counterparty before the settlement date.

    How to fix it
  3. Pending for lack of securities (PEND//LACK)

    Your account does not hold enough securities to deliver. Check for receipts that have not settled yet (LAAW or a linked receipt), securities on loan (LALO) or blocked (SBLO), and decide whether to borrow, partial-settle or move the settlement date.

    How to fix it
  4. Failing settlement (SETT//PENF)

    The settlement date has passed, or settlement on that date is no longer possible. Look at the reason: on your side LACK or MONY, on the counterparty side CLAC or CMON. Failing trades can attract penalties and buy-ins in many markets, so chase the cause the same day.

    How to fix it
  5. The advice cannot be tied to an instruction

    RELA is missing, NONREF, or not one of your references (for example a transaction generated for you, reported as CGEN). Match on sequence B (ISIN, quantity, settlement date, REDE and PAYM) and on MITI, and ask the account servicer to quote your SEME.

  6. Statuses arrive out of order

    Advices for different dimensions are independent, and two advices can cross. Keep the latest status per 25D qualifier using 98a::PREP, so an old NMAT does not overwrite a newer MACH.

MT548 in ISO 20022

The ISO 20022 equivalent is sese.024 Securities Settlement Transaction Status Advice. Each 25D qualifier has its own element: IPRC becomes PrcgSts (for example PrcgSts/AckdAccptd for PACK or PrcgSts/Rjctd for REJT), MTCH becomes MtchgSts (Mtchd or Umtchd), INMH becomes IfrrdMtchgSts, and SETT becomes SttlmSts with Pdg for PEND and Flng for PENF. Reason codes keep their four-letter values, for example SttlmSts/Pdg/Rsn/Cd/Cd = LACK or MtchgSts/Umtchd/Rsn/Cd/Cd = DDAT. The 20C::RELA reference becomes TxId/AcctOwnrTxId.

The status of a cancellation request (23G CAST, 25D::CPRC) has its own ISO 20022 message, sese.027 Securities Transaction Cancellation Request Status Advice. Settlement confirmations move to sese.025.

Securities messages were not part of the November 2025 payments deadline. The MT548 remains in use on FIN, while T2S and its directly connected participants receive sese.024. Many custodians receive sese.024 from the market and send MT548 to clients, so a status or reason that looks odd may be a translation issue: compare the code with the original sese.024 when in doubt.

MT548 questions

What is an MT548 message?
A Settlement Status and Processing Advice: the message in which a custodian or CSD participant tells its client what is happening to a settlement instruction. It reports acceptance or rejection, matching, and pending or failing settlement, each with a reason code.
What is the difference between PEND and PENF in an MT548?
PEND means settlement is pending but can still happen on the intended settlement date. PENF means it is failing: settlement on that date is no longer possible. The reason code, for example LACK, can be the same in both.
What does NMAT mean and how do I fix it?
NMAT means your instruction has not matched the counterparty’s. The 24B::NMAT reason tells you why: CMIS (no counterparty instruction) or a difference such as DDAT or DQUA. Agree the details with the counterparty, then one side corrects its instruction. See unmatched instructions.
How do I link an MT548 to my MT543?
Use 20C::RELA in the linkage sequence: it carries the 20C::SEME of your MT543 (or other MT540 to MT543). :13A::LINK//543 tells you the message type. Sequence B, when present, repeats the trade details as a fallback.
What is the difference between 23G INST and CAST?
INST reports the status of an instruction. CAST reports the status of a cancellation request, with 25D::CPRC: accepted, pending, completed (CAND) or denied (DEND).
Does an MT548 confirm settlement?
No. Settlement is confirmed by MT544, MT545, MT546 or MT547. The MT548 covers everything before that, and the open part of a partially settled instruction.

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:

All MT messages · Category 5 messages · ISO 20022 messages · Codes · Troubleshooting