AgentCAInformationAdviceV01

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&#xD;&#xA;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).&#xD;&#xA;Usage&#xD;&#xA;This message can be used in the case of a corporate action event without an election.&#xD;&#xA;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.