seev: Securities events
seev.031 Corporate Action Notification
Written and maintained by ZagTrader. Last reviewed . How this page is sourced and checked
The seev.031 is the ISO 20022 message an account servicer (custodian, CSD or ICSD) sends to tell an account owner about a corporate action event: what happens, to which security, on which dates and with which options. It is the MX counterpart of the MT564 and also carries the free text that an MT568 would hold. A first notification can be preliminary and is then replaced as details are confirmed.
- Message
- CorporateActionNotification
- Root element
- CorpActnNtfctn
- Common version
- seev.031.001.15
When seev.031 is used
An issuer announces an event, for example a cash dividend (DVCA), a tender offer (TEND) or a rights issue (RHTS). Each custodian in the holding chain sends a seev.031 down to its own clients: the CSD to the global custodian, the global custodian to the local broker or asset manager. Each one gives the event its own reference in CorpActnGnlInf/CorpActnEvtId, and the official reference, when there is one, goes in OffclCorpActnEvtId.
The notification can describe the event for all accounts (AcctDtls/ForAllAccts) or per account with balances (AcctDtls/AcctsListAndBalDtls). Once positions are known on record date, the account servicer usually sends a replacement (NtfctnTp = REPL) with eligible balances and entitlements per option. RMDR is a reminder, typically for an elective event where the account owner has not yet instructed.
For elective events (MndtryVlntryEvtTp = CHOS or VOLU) the account owner answers with a seev.033 instruction, quoting the event reference and an option number from CorpActnOptnDtls/OptnNb. Payment and delivery are later confirmed with a seev.036. A preliminary advice of payment travels in seev.035 (Corporate Action Movement Preliminary Advice), the status of the event in seev.032 (Corporate Action Event Processing Status Advice), and a cancelled or withdrawn event in seev.039 (Corporate Action Cancellation Advice). See the corporate action lifecycle.
In the Eurosystem collateral management system (ECMS), live since 16 June 2025 under the SCoRE corporate action standards, the system sends seev.031, seev.035 and seev.036 to its counterparties. Clearstream has said it keeps supporting ISO 15022 for client communication alongside ISO 20022 until further notice, so most custodians still run MT564 and seev.031 side by side.
Versions in common use
| Version | Where it is used |
|---|---|
| seev.031.001.15 | Version of Swift Standards Release 2025 (live November 2025). The element tree and multiplicities on this page follow this version, and the example validates against it. |
| seev.031.002.15 | The variant 002 published with the same release: a narrower version kept aligned with ISO 15022 for coexistence with MT564. Ask your counterparty or check its usage guidelines to know which variant it expects. |
| seev.031.001.16 | Standards Release 2026 version (adds, among others, a reverse Dutch auction indicator in CorpActnDtls). Swift deferred the 2026 securities and corporate action changes to 14 June 2027, according to Clearstream’s October 2026 release information. |
seev.031 key elements
Paths are relative to Document/CorpActnNtfctn. Occurrence is from the base message (seev.031.001.15); market practice such as CBPR+ or a CSD’s rules can make an optional element mandatory or forbid it.
| Element | Occurs | Meaning |
|---|---|---|
| PgntnPagination | [0..1] | Page number and last page flag when a long notification is split over several messages, like 28E in the MT564. |
| NtfctnGnlInfNotification General Information | [1..1] | What kind of notification this is and how final the event data is. |
| NtfctnIdNotification Identification | [0..1] | An optional reference for the notification itself. The message reference of the transport normally sits in the Business Application Header. |
| NtfctnTpNotification Type | [1..1] | NEWM for a new notification, REPL to replace an earlier one, RMDR for a reminder. The MT564 function codes CANC and WITH have no value here: a cancelled or withdrawn event goes in seev.039. |
| PrcgStsProcessing Status | [1..1] | How complete and how confirmed the event details are. A choice between a code pair (Cd) and a proprietary status (Prtry). |
| EvtCmpltnsStsEvent Completeness Status | [1..1] | COMP when all details are known, INCO when the notification is still preliminary. |
| EvtConfStsEvent Confirmation Status | [1..1] | CONF when the event has been confirmed by the servicer’s official source, UCON when it has not. With the completeness status it expresses what 25D::PROC says in the MT564 (COMP, COMU, PREC, PREU). |
| PrvsNtfctnIdPrevious Notification Identification | [0..1] | Reference of the notification this one replaces or follows. Fill it on every replacement so the receiver can chain the versions. |
| EvtsLkgEvents Linkage | [0..n] | Links to other events, for example the RHTS distribution and the EXRI subscription that follows it. |
| CorpActnGnlInfCorporate Action General Information | [1..1] | Event references, event type, mandatory/voluntary flag and the underlying security. |
| CorpActnEvtIdCorporate Action Event Identification | [1..1] | The sender’s reference for the event, the same value as 20C::CORP. The account owner must quote it in instructions. |
| OffclCorpActnEvtIdOfficial Corporate Action Event Identification | [0..1] | A market-wide event reference from an official source, the same as 20C::COAF. It lets every party in the chain match the same event. |
| EvtPrcgTpEvent Processing Type | [0..1] | Broad processing class: GENL (general), DISN (distribution) or REOR (reorganisation), like 22F::CAEP. |
| CdEvent Type Code | [0..1] | The event code, for example DVCA, TEND, RHTS, INTR or REDM. Same code list as 22F::CAEV; see the corporate action event codes. The parent EvtTp (1..1) is a choice of Cd or Prtry. |
| CdMandatory Voluntary Event Type Code | [0..1] | MAND (no election needed), CHOS (mandatory with options, a default applies) or VOLU (the holder chooses whether to take part), like 22F::CAMV. The parent is 1..1. |
| FinInstrmIdFinancial Instrument Identification | [1..1] | The security the event applies to. |
| ISINISIN | [0..1] | ISIN of the underlying security, the ISIN in field 35B. Other identifiers go in OthrId and a description in Desc. |
| AcctDtlsAccount Details | [1..1] | Either all accounts (ForAllAccts) or a list of accounts with balances. One of the two must be there. |
| ForAllAcctsFor All Accounts | [0..1] | Used with code GENR when the notification is general and not tied to one safekeeping account, like 97C::SAFE//GENR. |
| AcctsListAndBalDtlsAccounts List And Balance Details | [0..n] | One entry per safekeeping account, with its balances. |
| SfkpgAcctSafekeeping Account | [0..1] | The account at the servicer, the value of 97A::SAFE. |
| TtlElgblBalTotal Eligible Balance | [0..1] | Position that takes part in the event, usually on record date (93B::ELIG). |
| UinstdBalUninstructed Balance | [0..1] | Part of the eligible position for which no instruction has been received yet (93B::UNBA). Useful in reminders before the deadline. |
| IntrmdtSctyIntermediate Securities | [0..1] | Rights or other interim securities created by the event, with expiry and posting dates (sequence C of the MT564). |
| CorpActnDtlsCorporate Action Details | [0..1] | Event-level dates, periods, rates, prices and indicators that apply to every option. |
| ExDvddDtEx Dividend Date | [0..1] | From this date the security trades without the right to the distribution (98A::XDTE). Each date is a choice of an actual date (Dt) or a date code such as UKWN. |
| RcrdDtRecord Date | [0..1] | Date on which the issuer or its agent takes the holder positions that are entitled (98A::RDTE). |
| PmtDtPayment Date | [0..1] | Date the issuer pays, at event level (98A::PAYD in sequence D). The payment date per movement sits in the cash and securities movements. |
| CorpActnOptnDtlsCorporate Action Option Details | [0..n] | One block per option the holder has or is given, like sequence E of the MT564. |
| OptnNbOption Number | [1..1] | Three-character option number such as 001 (13A::CAON). The instruction must quote the same number. |
| OptnTpOption Type | [1..1] | What the option does: CASH, SECU, CASE (cash and securities), EXER, LAPS, NOAC (no action) and others (22F::CAOP). |
| DfltPrcgOrStgInstrDefault Processing Or Standing Instruction | [1..1] | Whether this option is applied when the holder does not instruct (DfltOptnInd, 17B::DFLT) or whether a standing instruction applies (StgInstrInd, 17B::STIN). |
| MktDdlnMarket Deadline | [0..1] | The issuer’s or agent’s deadline for elections (98a::MKDT). |
| RspnDdlnResponse Deadline | [0..1] | The deadline the account servicer sets for its own clients, earlier than the market deadline (98a::RDDT). Operations teams should work to this date. |
| SctiesMvmntDtlsSecurities Movement Details | [0..n] | Securities credited or debited under the option (sequence E1), with the security, CdtDbtInd, entitled quantity and dates. |
| EntitldQtyEntitled Quantity | [0..1] | Quantity of new securities the account will receive (36B::ENTL). |
| CshMvmntDtlsCash Movement Details | [0..n] | Cash credited or debited under the option (sequence E2). |
| CdtDbtIndCredit Debit Indicator | [1..1] | CRDT for money to the holder, DBIT for money taken, such as a subscription price (22H::CRDB with CRED or DEBT). |
| EntitldAmtEntitled Amount | [0..1] | Cash amount the account is entitled to, with the currency in the Ccy attribute (19B::ENTL). Present once balances are known. |
| PmtDtPayment Date | [1..1] | Date the cash is paid (98a::PAYD in sequence E2). Mandatory in every cash movement; use the date code UKWN if it is not yet known. |
| GrssDstrbtnRateGross Distribution Rate | [0..n] | Gross amount per share before tax (92F::GRSS), for example AED 0.25. Can carry a rate type and an ACTU/INDI status. |
| NetDstrbtnRateNet Distribution Rate | [0..n] | Amount per share after tax (92F::NETT). |
| WhldgTaxRateWithholding Tax Rate | [0..n] | Tax rate the servicer expects to withhold, as a percentage or with a rate type (92A::TAXR). |
| AddtlInfAdditional Information | [0..1] | Narrative: offer text, conditions, tax conditions, disclaimers, contacts. This is where content that MT users send in a separate MT568 goes. |
| IssrAgtIssuer Agent | [0..n] | The issuer’s agent, by BIC, LEI, proprietary id or name. Paying agent, registrar, offeror and other parties have their own elements after it. |
| SplmtryDataSupplementary Data | [0..n] | Market or community extensions that are not in the base message. |
Rules worth knowing
- The Document has no mandatory message reference or creation date (
NtfctnGnlInf/NtfctnIdis optional). On Swift these travel in the Business Application Header (head.001), which usually carries what an MT user would put in 20C::SEME and 98a::PREP. AcctDtlsholds exactly one ofForAllAcctsorAcctsListAndBalDtls.- Each choice element (
EvtTp,MndtryVlntryEvtTp,OptnTp, each date) holds exactly one child: a code or a proprietary value, an actual date or a date code. - Every cash movement needs
CdtDbtIndandDtDtls/PmtDt; every securities movement needs the security,CdtDbtIndand a payment date. - Amounts carry the currency as an attribute (
<EntitldAmt Ccy="AED">25000.00</EntitldAmt>) and use a dot as the decimal mark, unlike the comma in MT fields.
seev.031 XML example
CUSTAEADXXX, the custodian, notifies its client ZagTrader Test Bank (ZAGTAEADXXX) of a cash dividend of AED 0.25 per share on ISIN AEZAGT000016. The client holds 100,000 shares in safekeeping account ZAG-SAFE-0001, so it is entitled to AED 25,000.00. Ex-date 27 October 2026, record date 28 October 2026, payment 5 November 2026. The event is mandatory with one cash option, and the details are complete and confirmed. This is the Document only; the Business Application Header would carry the message reference and the two BICs.
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:seev.031.001.15">
<CorpActnNtfctn>
<NtfctnGnlInf>
<NtfctnTp>NEWM</NtfctnTp>
<PrcgSts>
<Cd>
<EvtCmpltnsSts>COMP</EvtCmpltnsSts>
<EvtConfSts>CONF</EvtConfSts>
</Cd>
</PrcgSts>
</NtfctnGnlInf>
<CorpActnGnlInf>
<CorpActnEvtId>ZT26DVCA0001</CorpActnEvtId>
<EvtTp>
<Cd>DVCA</Cd>
</EvtTp>
<MndtryVlntryEvtTp>
<Cd>MAND</Cd>
</MndtryVlntryEvtTp>
<UndrlygScty>
<FinInstrmId>
<ISIN>AEZAGT000016</ISIN>
<Desc>ZAGTRADER TEST HOLDING ORD SHS</Desc>
</FinInstrmId>
</UndrlygScty>
</CorpActnGnlInf>
<AcctDtls>
<AcctsListAndBalDtls>
<SfkpgAcct>ZAG-SAFE-0001</SfkpgAcct>
<Bal>
<TtlElgblBal>
<Bal>
<QtyChc>
<SgndQty>
<ShrtLngPos>LONG</ShrtLngPos>
<Qty>
<Unit>100000</Unit>
</Qty>
</SgndQty>
</QtyChc>
</Bal>
</TtlElgblBal>
</Bal>
</AcctsListAndBalDtls>
</AcctDtls>
<CorpActnDtls>
<DtDtls>
<RcrdDt>
<Dt>2026-10-28</Dt>
</RcrdDt>
<ExDvddDt>
<Dt>2026-10-27</Dt>
</ExDvddDt>
<PmtDt>
<Dt>2026-11-05</Dt>
</PmtDt>
</DtDtls>
</CorpActnDtls>
<CorpActnOptnDtls>
<OptnNb>001</OptnNb>
<OptnTp>
<Cd>CASH</Cd>
</OptnTp>
<DfltPrcgOrStgInstr>
<DfltOptnInd>true</DfltOptnInd>
</DfltPrcgOrStgInstr>
<CshMvmntDtls>
<CdtDbtInd>CRDT</CdtDbtInd>
<AmtDtls>
<GrssAmt Ccy="AED">25000.00</GrssAmt>
<EntitldAmt Ccy="AED">25000.00</EntitldAmt>
</AmtDtls>
<DtDtls>
<PmtDt>
<Dt>2026-11-05</Dt>
</PmtDt>
</DtDtls>
<RateAndAmtDtls>
<GrssDstrbtnRate>
<Amt Ccy="AED">0.25</Amt>
</GrssDstrbtnRate>
</RateAndAmtDtls>
</CshMvmntDtls>
</CorpActnOptnDtls>
</CorpActnNtfctn>
</Document>Decode this example in the parserNEWM with COMP and CONF is the MX way of saying 23G:NEWM with 25D::PROC//COMP in an MT564.
The record date sits before the ex-dividend date inside DtDtls because the schema fixes the order of the date elements, not because of the business sequence.
The dividend is mandatory, so there is a single CASH option flagged as the default. A dividend with a currency or stock choice would be DVOP with CHOS and two or more options.
The BICs, references and ISIN are made up; the ISIN carries a valid check digit.
seev.031 and its MT equivalent
The seev.031 is the ISO 20022 counterpart of the MT564 Corporate Action Notification. Free text that MT users send in a separate MT568 fits inside the seev.031 AddtlInf block, so one MX message can do the job of an MT564 plus MT568; see MT564 vs MT568. The ISO 20022 corporate action messages were built from the ISO 15022 ones, so most fields map one to one, but the function of the message is split differently: MT564 CANC and WITH become seev.039, and an MT564 used as a preliminary advice of payment becomes seev.035.
Securities messages were not part of the November 2025 payments deadline. MT564 remains in use on FIN, and custodians that offer seev.031 usually run both formats. Before switching a counterparty, agree which version and variant (001 or 002) it expects and test the elements your system needs, such as balances and option deadlines. See ISO 20022 migration for securities vs payments.
| ISO 20022 element | MT field | Note |
|---|---|---|
NtfctnGnlInf/NtfctnTp | 23G (NEWM, REPL, RMDR) | CANC and WITH move to seev.039. |
NtfctnGnlInf/PrcgSts/Cd | 25D::PROC | COMP = COMP + CONF, COMU = COMP + UCON, PREC = INCO + CONF, PREU = INCO + UCON. |
PrvsNtfctnId/Id | 20C::PREV (sequence A1) | |
CorpActnGnlInf/CorpActnEvtId | 20C::CORP | |
CorpActnGnlInf/OffclCorpActnEvtId | 20C::COAF | |
CorpActnGnlInf/EvtTp/Cd | 22F::CAEV | |
CorpActnGnlInf/MndtryVlntryEvtTp/Cd | 22F::CAMV | |
CorpActnGnlInf/UndrlygScty/FinInstrmId/ISIN | 35B (sequence B) | |
AcctDtls/AcctsListAndBalDtls/SfkpgAcct | 97A::SAFE (sequence B2) | 97C::SAFE//GENR maps to AcctDtls/ForAllAccts. |
AcctDtls/AcctsListAndBalDtls/Bal/TtlElgblBal | 93B::ELIG | |
CorpActnDtls/DtDtls/ExDvddDt | 98A::XDTE (sequence D) | |
CorpActnDtls/DtDtls/RcrdDt | 98A::RDTE (sequence D) | |
CorpActnOptnDtls/OptnNb | 13A::CAON (sequence E) | |
CorpActnOptnDtls/OptnTp/Cd | 22F::CAOP | |
CorpActnOptnDtls/DfltPrcgOrStgInstr/DfltOptnInd | 17B::DFLT | true = Y, false = N. |
CorpActnOptnDtls/DtDtls/RspnDdln | 98a::RDDT | |
CorpActnOptnDtls/SctiesMvmntDtls/EntitldQty | 36B::ENTL (sequence E1) | |
CorpActnOptnDtls/CshMvmntDtls/CdtDbtInd | 22H::CRDB (sequence E2) | CRDT = CRED, DBIT = DEBT. |
CorpActnOptnDtls/CshMvmntDtls/AmtDtls/EntitldAmt | 19B::ENTL (sequence E2) | |
CorpActnOptnDtls/CshMvmntDtls/DtDtls/PmtDt | 98a::PAYD (sequence E2) | |
CorpActnOptnDtls/CshMvmntDtls/RateAndAmtDtls/GrssDstrbtnRate | 92F::GRSS | |
CorpActnOptnDtls/CshMvmntDtls/RateAndAmtDtls/WhldgTaxRate | 92A::TAXR | |
AddtlInf | 70E in sequence F, or a separate MT568 |
Common errors and rejects
Replacement that cannot be linked
A
How to fix itREPLnotification withoutPrvsNtfctnId, or with a reference the receiver never got, leaves two versions of the event in the receiver’s system. Always send the reference of the notification being replaced and keepCorpActnEvtIdunchanged for the life of the event.Event code and mandatory/voluntary flag do not agree
A dividend with a currency or stock choice sent as DVCA with
MAND, or a tender offer sent asMAND, makes the receiver skip the election. Check the event against the issuer’s terms: an elective dividend is DVOP withCHOS, a tender offer is TEND withVOLU.Option numbers change between versions
If a replacement renumbers the options, instructions the clients already sent against option
How to fix it001or002point to the wrong choice and come back rejected with an option number reason. Keep option numbers stable and add new options with new numbers.Gross and net rates mixed up
Putting the net amount per share in
GrssDstrbtnRate(or the reverse) makes every entitlement wrong by the tax rate and only shows up when the seev.036 arrives. Check the rate type against the issuer announcement and fillNetDstrbtnRateonly when tax is known.Deadlines missing or in the wrong element
A voluntary event without
RspnDdlnleaves clients working to the market deadline, which is too late for the custodian. Fill both deadlines and give times with the time zone when the servicer’s cut-off is intraday.Narrative lost when converting to MT
Long
How to fix itAddtlInftext does not fit in the MT564 sequence F and is often moved to an MT568 or cut. If your clients still take MT, check what the translation keeps. See truncation in MX to MT translation.
seev.031 questions
- What is the difference between seev.031 and MT564?
- They carry the same business content: event, security, account, dates, options and entitlements. The seev.031 is XML with named elements and also holds the narrative that MT users send in an MT568. Cancellations and withdrawals, which the MT564 does with 23G CANC or WITH, have their own message in ISO 20022 (seev.039).
- Where is the message reference in a seev.031?
- Usually not in the Document:
NtfctnGnlInf/NtfctnIdis optional, and the sender’s message reference and creation date travel in the Business Application Header (head.001) that goes with the message on Swift. The event reference, which matters most for matching, isCorpActnGnlInf/CorpActnEvtId. - How do I know if a seev.031 is final?
- Look at
NtfctnGnlInf/PrcgSts/Cd.COMPwithCONFmeans the details are complete and confirmed by the servicer’s source.INCOorUCONmeans more updates will come, usually as aREPLnotification. - Which seev.031 version should I use?
- The one your counterparty supports. Swift’s 2025 release uses seev.031.001.15 (and the 002 variant seev.031.002.15); the 2026 version seev.031.001.16 was deferred to June 2027. Market infrastructures publish their own usage guidelines.
All ISO 20022 messages · MT messages · MT to ISO 20022 migration