seev.023.001.01
Scope This message is sent by a CSD to an issuer (or its agent) to provide information about the certification and/or the delivery details to the issuer (or its agent). Usage This message can be used in the case of a corporate action event without an election. This message can also be used in the case of a corporate action event with election when the election details and the additional information cannot be provided in the same message. In this case, the Agent Corporate Action Election Advice Identification must be used to link this message to the election advice for which additional information is provided.
Message Construction
Every ISO20022 message has at the highest level what we call ‘building blocks’. Because the message is constructed as immutable records, the association is by composition. Below you can see the relationship between the message and its constituent building blocks: For comparison, see the ISO20022 official specification
classDiagram direction LR %% AgentCAInformationAdviceV01 recursion level 0 with max 0 AgentCAInformationAdviceV01 *-- "1..1" DocumentIdentification8 : Identification AgentCAInformationAdviceV01 *-- "0..1" DocumentIdentification8 : AgentCAElectionAdviceIdentification AgentCAInformationAdviceV01 *-- "1..1" CorporateActionInformation1 : CorporateActionGeneralInformation AgentCAInformationAdviceV01 *-- "1..1" SecuritiesAccount7 : AccountDetails AgentCAInformationAdviceV01 *-- "1..1" CorporateActionAdditionalInformation1 : CorporateActionAdditionalInformation AgentCAInformationAdviceV01 *-- "0..1" ContactPerson1 : ContactDetails
Now, we will zero-in one-by-one on each of these building blocks.
Identification building block
Identification assigned by the Sender to unambiguously identify the advice. Identifies the document by providing a unique identification and optionally the date/time of the creation of the document. For comparison, see the ISO20022 official specification
classDiagram direction tb %% DocumentIdentification8 recursion level 0 with max 1 class DocumentIdentification8{ Identification IsoMax35Text CreationDateTime IsoISODateTime }
DocumentIdentification8 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Identification | Unique identification of the document. | IsoMax35Text - Required 1..1 |
CreationDateTime | Date/time of the creation of the document. | IsoISODateTime - Optional 0..1 |
AgentCAElectionAdviceIdentification building block
Identification of the linked Agent CA Election Advice Identification. Identifies the document by providing a unique identification and optionally the date/time of the creation of the document. For comparison, see the ISO20022 official specification
classDiagram direction tb %% DocumentIdentification8 recursion level 0 with max 1 class DocumentIdentification8{ Identification IsoMax35Text CreationDateTime IsoISODateTime }
DocumentIdentification8 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Identification | Unique identification of the document. | IsoMax35Text - Required 1..1 |
CreationDateTime | Date/time of the creation of the document. | IsoISODateTime - Optional 0..1 |
CorporateActionGeneralInformation building block
General information about the corporate action event. General information about the corporate action event. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CorporateActionInformation1 recursion level 0 with max 1 class CorporateActionInformation1{ IssuerCorporateActionIdentification IsoMax35Text CorporateActionProcessingIdentification IsoMax35Text } CorporateActionInformation1 *-- "1..1" IPartyIdentification2Choice : AgentIdentification CorporateActionInformation1 *-- "1..1" ICorporateActionEventType2FormatChoice : EventType CorporateActionInformation1 *-- "1..1" ICorporateActionMandatoryVoluntary1FormatChoice : MandatoryVoluntaryEventType CorporateActionInformation1 *-- "0..1" ICorporateActionEventProcessingType1FormatChoice : EventProcessingType CorporateActionInformation1 *-- "1..1" FinancialInstrumentDescription3 : UnderlyingSecurity %% IPartyIdentification2Choice recursion level 1 with max 1 %% ICorporateActionEventType2FormatChoice recursion level 1 with max 1 %% ICorporateActionMandatoryVoluntary1FormatChoice recursion level 1 with max 1 %% ICorporateActionEventProcessingType1FormatChoice recursion level 1 with max 1 %% FinancialInstrumentDescription3 recursion level 1 with max 1 class FinancialInstrumentDescription3{ PlaceOfListing IsoMICIdentifier } FinancialInstrumentDescription3 *-- "1..1" SecurityIdentification7 : SecurityIdentification FinancialInstrumentDescription3 *-- "0..1" IPartyIdentification2Choice : SafekeepingPlace
CorporateActionInformation1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
AgentIdentification | Identification of the issuer agent. | IPartyIdentification2Choice - Required 1..1 |
IssuerCorporateActionIdentification | Reference given to the event by the CA event issuer (agent). | IsoMax35Text - Optional 0..1 |
CorporateActionProcessingIdentification | Reference assigned by the account servicer to unambiguously identify a corporate action event. | IsoMax35Text - Optional 0..1 |
EventType | Type of corporate action event. | ICorporateActionEventType2FormatChoice - Required 1..1 |
MandatoryVoluntaryEventType | Specifies whether the event is mandatory, mandatory with options or voluntary. | ICorporateActionMandatoryVoluntary1FormatChoice - Required 1..1 |
EventProcessingType | Type of processing involved by a Corporate Action. | ICorporateActionEventProcessingType1FormatChoice - Optional 0..1 |
UnderlyingSecurity | Identification of the underlying financial instrument, ie, the financial instrument affected by the corporate action event. | FinancialInstrumentDescription3 - Required 1..1 |
AccountDetails building block
Information about the account for which additional information is provided. Provides information about the account identification and the account owner. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SecuritiesAccount7 recursion level 0 with max 1 class SecuritiesAccount7{ AccountIdentification IsoMax35Text } SecuritiesAccount7 *-- "0..1" IPartyIdentification2Choice : AccountOwnerIdentification %% IPartyIdentification2Choice recursion level 1 with max 1
SecuritiesAccount7 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
AccountOwnerIdentification | Identification of the party that owns the account. | IPartyIdentification2Choice - Optional 0..1 |
AccountIdentification | Idenfitication of the account where financial instruments are maintained. | IsoMax35Text - Required 1..1 |
CorporateActionAdditionalInformation building block
Additional information about the corporate action such as the delivery details. Provides additional information about the delivery details, beneficial owner details, etc. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CorporateActionAdditionalInformation1 recursion level 0 with max 1 class CorporateActionAdditionalInformation1{ RegistrationDetails IsoMax350Text CertificationIndicator IsoYesNoIndicator AdditionalInstruction IsoMax350Text } CorporateActionAdditionalInformation1 *-- "0..0" BeneficialOwner1 : BeneficialOwnerDetails CorporateActionAdditionalInformation1 *-- "0..1" IPartyIdentification2Choice : ReceiverIdentification CorporateActionAdditionalInformation1 *-- "0..1" IBeneficiaryCertificationType1FormatChoice : CertificationType CorporateActionAdditionalInformation1 *-- "0..0" ProceedsDelivery1 : DeliveryDetails %% BeneficialOwner1 recursion level 1 with max 1 class BeneficialOwner1{ Nationality CountryCode DomicileCountry CountryCode NonDomicileCountry CountryCode CertificationIndicator IsoYesNoIndicator DeclarationDetails IsoMax350Text } BeneficialOwner1 *-- "1..1" IPartyIdentification2Choice : BeneficialOwnerIdentification BeneficialOwner1 *-- "0..1" GenericIdentification16 : AdditionalIdentification BeneficialOwner1 *-- "0..1" IBeneficiaryCertificationType1FormatChoice : CertificationType BeneficialOwner1 *-- "0..1" SecurityIdentification7 : SecurityIdentification BeneficialOwner1 *-- "1..1" IUnitOrFaceAmount1Choice : ElectedSecuritiesQuantity %% IPartyIdentification2Choice recursion level 1 with max 1 %% IBeneficiaryCertificationType1FormatChoice recursion level 1 with max 1 %% ProceedsDelivery1 recursion level 1 with max 1 class ProceedsDelivery1{ SecuritiesAccountIdentification IsoMax35Text } ProceedsDelivery1 *-- "1..1" ICashAccountIdentification1Choice : CashAccountIdentification ProceedsDelivery1 *-- "0..1" IPartyIdentification2Choice : AccountOwnerIdentification ProceedsDelivery1 *-- "0..1" IPartyIdentification2Choice : AccountServicerIdentification
CorporateActionAdditionalInformation1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
BeneficialOwnerDetails | Provides information about the beneficial owner of the securities. | BeneficialOwner1 - Unknown 0..0 |
RegistrationDetails | Provides information required for the registration. | IsoMax350Text - Optional 0..1 |
ReceiverIdentification | Identification of the receiver of outturned resources (cash/securities) in case the resources need to be delivered outside the CSD. | IPartyIdentification2Choice - Optional 0..1 |
CertificationIndicator | Whether or not certification is required from the account owner. | Y: certification required |
CertificationType | Type of certification which is required. | IBeneficiaryCertificationType1FormatChoice - Optional 0..1 |
DeliveryDetails | Provides information about the delivery details of proceeds. | ProceedsDelivery1 - Unknown 0..0 |
AdditionalInstruction | Provides additional details pertaining to the corporate action instruction. | IsoMax350Text - Optional 0..1 |
ContactDetails building block
Contact responsible for the transaction identified in the message. Contains information about the contact responsible for the transaction identified in the message. For comparison, see the ISO20022 official specification
classDiagram direction tb %% ContactPerson1 recursion level 0 with max 1 ContactPerson1 *-- "1..1" ContactIdentification4 : ContactPerson ContactPerson1 *-- "0..1" IPartyIdentification2Choice : InstitutionIdentification %% ContactIdentification4 recursion level 1 with max 1 class ContactIdentification4{ Name IsoMax350Text NamePrefix NamePrefix1Code GivenName IsoMax350Text Role IsoMax35Text PhoneNumber IsoPhoneNumber FaxNumber IsoPhoneNumber EmailAddress IsoMax256Text } %% IPartyIdentification2Choice recursion level 1 with max 1
ContactPerson1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
ContactPerson | Provides additional information regarding the party, eg, the contact unit or person responsible for the transaction identified in the message. | ContactIdentification4 - Required 1..1 |
InstitutionIdentification | Identification of the institution that the contact person represents. | IPartyIdentification2Choice - Optional 0..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the AgentCAInformationAdviceV01 implementation follows a specific implementaiton pattern. First of all, AgentCAInformationAdviceV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, AgentCAInformationAdviceV01Document implements IOuterDocument. Because AgentCAInformationAdviceV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type AgentCAInformationAdviceV01.
classDiagram class IOuterRecord AgentCAInformationAdviceV01 --|> IOuterRecord : Implements AgentCAInformationAdviceV01Document --|> IOuterDocument~AgentCAInformationAdviceV01~ : Implements class IOuterDocument~AgentCAInformationAdviceV01~ { AgentCAInformationAdviceV01 Message }
Document wrapper for serialization
The only real purpose AgentCAInformationAdviceV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:seev.023.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using AgentCAInformationAdviceV01.ToDocument() method. The returned AgentCAInformationAdviceV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram AgentCAInformationAdviceV01Document *-- AgentCAInformationAdviceV01 : Document
Sample of message format
This is an abbreviated version of what the message should look like.
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:seev.023.001.01">
<AgtCAInfAdvc>
<Id>
<!-- Identification inner content -->
</Id>
<AgtCAElctnAdvcId>
<!-- AgentCAElectionAdviceIdentification inner content -->
</AgtCAElctnAdvcId>
<CorpActnGnlInf>
<!-- CorporateActionGeneralInformation inner content -->
</CorpActnGnlInf>
<AcctDtls>
<!-- AccountDetails inner content -->
</AcctDtls>
<CorpActnAddtlInf>
<!-- CorporateActionAdditionalInformation inner content -->
</CorpActnAddtlInf>
<CtctDtls>
<!-- ContactDetails inner content -->
</CtctDtls>
</AgtCAInfAdvc>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_TODKy9EwEd-BzquC8wXy7w_-190409931"
name="AgentCAInformationAdviceV01"
definition="Scope
This message is sent by a CSD to an issuer (or its agent) to provide information about the certification and/or the delivery details to the issuer (or its agent).
Usage
This message can be used in the case of a corporate action event without an election.
This message can also be used in the case of a corporate action event with election when the election details and the additional information cannot be provided in the same message. In this case, the Agent Corporate Action Election Advice Identification must be used to link this message to the election advice for which additional information is provided."
registrationStatus="Registered"
messageSet="_wRe70k2rEeG_I4xRYCA_7g"
xmlTag="AgtCAInfAdvc"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_TODKzNEwEd-BzquC8wXy7w_1736726928"
name="Identification"
definition="Identification assigned by the Sender to unambiguously identify the advice."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="Id"
complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
<messageBuildingBlock
xmi:id="_TODKzdEwEd-BzquC8wXy7w_1770899654"
name="AgentCAElectionAdviceIdentification"
definition="Identification of the linked Agent CA Election Advice Identification."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="AgtCAElctnAdvcId"
complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
<messageBuildingBlock
xmi:id="_TODKztEwEd-BzquC8wXy7w_582576991"
name="CorporateActionGeneralInformation"
definition="General information about the corporate action event."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="CorpActnGnlInf"
complexType="_TdxFY9p-Ed-ak6NoX_4Aeg_1155832018" />
<messageBuildingBlock
xmi:id="_TODKz9EwEd-BzquC8wXy7w_-559361420"
name="AccountDetails"
definition="Information about the account for which additional information is provided."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="AcctDtls"
complexType="_QUmVBdp-Ed-ak6NoX_4Aeg_-1140481020" />
<messageBuildingBlock
xmi:id="_TOM7wNEwEd-BzquC8wXy7w_196544282"
name="CorporateActionAdditionalInformation"
definition="Additional information about the corporate action such as the delivery details."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="CorpActnAddtlInf"
complexType="_UMZtCNp-Ed-ak6NoX_4Aeg_302800554" />
<messageBuildingBlock
xmi:id="_TOM7wdEwEd-BzquC8wXy7w_485761108"
name="ContactDetails"
definition="Contact responsible for the transaction identified in the message."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="CtctDtls"
complexType="_QDnStdp-Ed-ak6NoX_4Aeg_-2124213178" />
<messageDefinitionIdentifier
businessArea="seev"
messageFunctionality="023"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.