AgentCAElectionAdviceV01

seev.012.001.01

Scope This message is sent by a CSD to the issuer (or its agent) to provide information about the clients’ election instruction, the registration details, the delivery details, etc. In case of an election with underlying resource movements, it also confirms that these have been completed. This message may also be sent in case of an amendment of an election, once the CSD has completed the required resource movements. Usage This message can be used for a new election advice or an amended election advice. If this message is used for a new election advice, the function of the message must be ’new election’. If this message is used for an amended election advice, the function of the message must be ‘option change’ and the identification of the previously sent election advice must be present. This message can include the cash movements and/or securities movements in the case of an election with underlying resource movements. Additionally, this message can include delivery, certification and beneficial owner details. Note: this information can be also sent separately in the Agent Corporate Action Information advice message.

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
%% AgentCAElectionAdviceV01 recursion level 0 with max 0
AgentCAElectionAdviceV01 *-- "1..1" DocumentIdentification8 : Identification
AgentCAElectionAdviceV01 *-- "1..1" ElectionAdviceFunction1 : ElectionAdviceTypeAndLinkage
AgentCAElectionAdviceV01 *-- "1..1" CorporateActionInformation1 : CorporateActionGeneralInformation
AgentCAElectionAdviceV01 *-- "1..1" CorporateActionElection3 : ElectionDetails
AgentCAElectionAdviceV01 *-- "0..1" CorporateActionAdditionalInformation1 : AdditionalInformation
AgentCAElectionAdviceV01 *-- "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

ElectionAdviceTypeAndLinkage building block

Provides information about the type of election advice and linked messages. Provides information about the type of election advice and linked messages. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% ElectionAdviceFunction1 recursion level 0 with max 1
class ElectionAdviceFunction1{
    ElectionType ElectionType1Code
}
ElectionAdviceFunction1 *-- "0..1" DocumentIdentification8 : PreviousAgentCAElectionAdviceIdentification
ElectionAdviceFunction1 *-- "0..1" DocumentIdentification8 : AgentCAElectionStatusAdviceIdentification
ElectionAdviceFunction1 *-- "0..1" DocumentIdentification8 : AgentCAElectionAmendmentRequestIdentification
%% DocumentIdentification8 recursion level 1 with max 1
class DocumentIdentification8{
    Identification IsoMax35Text
    CreationDateTime IsoISODateTime
}
%% DocumentIdentification8 recursion level 1 with max 1
class DocumentIdentification8{
    Identification IsoMax35Text
    CreationDateTime IsoISODateTime
}
%% DocumentIdentification8 recursion level 1 with max 1
class DocumentIdentification8{
    Identification IsoMax35Text
    CreationDateTime IsoISODateTime
}
  

ElectionAdviceFunction1 members

Member name Description Data Type / Multiplicity
ElectionType Type of election advice. ElectionType1Code - Required 1..1
PreviousAgentCAElectionAdviceIdentification Identification of the previous Agent Corporate Action Election Advice that is being amended. DocumentIdentification8 - Optional 0..1
AgentCAElectionStatusAdviceIdentification Identification of the Agent Corporate Action Election Status Advice by which the issuer (agent) accepts the election amendment request. DocumentIdentification8 - Optional 0..1
AgentCAElectionAmendmentRequestIdentification Identification of the Agent Corporate Action Election Amendment Request by which the CSD request the authorisation to amend an election. DocumentIdentification8 - 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

ElectionDetails building block

Provides information about the election(s). Provides information about a corporate action election. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CorporateActionElection3 recursion level 0 with max 1
class CorporateActionElection3{
    OptionNumber IsoExact3NumericText
    ProposedRate IsoPercentageRate
}
CorporateActionElection3 *-- "0..1" SecuritiesAccount7 : AccountDetails
CorporateActionElection3 *-- "0..1" ICorporateActionOption1FormatChoice : OptionType
CorporateActionElection3 *-- "0..1" IUnitOrFaceAmount1Choice : InstructedUnderlyingSecuritiesQuantity
CorporateActionElection3 *-- "0..1" IUnitOrFaceAmount1Choice : InstructedSecuritiesQuantityToReceive
CorporateActionElection3 *-- "0..0" CorporateActionCashMovements2 : CashMovementDetails
CorporateActionElection3 *-- "0..0" CorporateActionSecuritiesMovement2 : SecuritiesMovementDetails
%% SecuritiesAccount7 recursion level 1 with max 1
class SecuritiesAccount7{
    AccountIdentification IsoMax35Text
}
SecuritiesAccount7 *-- "0..1" IPartyIdentification2Choice : AccountOwnerIdentification
%% ICorporateActionOption1FormatChoice recursion level 1 with max 1
%% IUnitOrFaceAmount1Choice recursion level 1 with max 1
%% IUnitOrFaceAmount1Choice recursion level 1 with max 1
%% CorporateActionCashMovements2 recursion level 1 with max 1
class CorporateActionCashMovements2{
    PostingIdentification IsoMax35Text
    PostingAmount IsoActiveCurrencyAndAmount
}
CorporateActionCashMovements2 *-- "0..1" IDateAndDateTimeChoice : PostingDateTime
CorporateActionCashMovements2 *-- "1..2" CashAccount19 : AccountDetails
%% CorporateActionSecuritiesMovement2 recursion level 1 with max 1
class CorporateActionSecuritiesMovement2{
    PostingIdentification IsoMax35Text
}
CorporateActionSecuritiesMovement2 *-- "1..1" SecurityIdentification7 : SecurityIdentification
CorporateActionSecuritiesMovement2 *-- "0..1" IDateAndDateTimeChoice : PostingDateTime
CorporateActionSecuritiesMovement2 *-- "1..1" IUnitOrFaceAmount1Choice : PostingQuantity
CorporateActionSecuritiesMovement2 *-- "1..2" SecuritiesAccount9 : AccountDetails
  

CorporateActionElection3 members

Member name Description Data Type / Multiplicity
AccountDetails Provides information about the account. SecuritiesAccount7 - Optional 0..1
OptionType Specifies the corporate action options available to the account owner. ICorporateActionOption1FormatChoice - Optional 0..1
OptionNumber Number identifying the available corporate action options. IsoExact3NumericText - Optional 0..1
InstructedUnderlyingSecuritiesQuantity Quantity of underlying securities to which this instruction applies. IUnitOrFaceAmount1Choice - Optional 0..1
InstructedSecuritiesQuantityToReceive Quantity of the benefits that the account owner wants to receive, eg, as a result of dividend reinvestment. IUnitOrFaceAmount1Choice - Optional 0..1
ProposedRate Rate proposed in a remarketing of variable rate notes. IsoPercentageRate - Optional 0..1
CashMovementDetails Provides information about the cash movement resulting from the election instruction. CorporateActionCashMovements2 - Unknown 0..0
SecuritiesMovementDetails Provides information about the securities movement resulting from the election instruction. CorporateActionSecuritiesMovement2 - Unknown 0..0

AdditionalInformation building block

Provides additional information about the delivery details, beneficial owner details, etc. 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 AgentCAElectionAdviceV01 implementation follows a specific implementaiton pattern. First of all, AgentCAElectionAdviceV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, AgentCAElectionAdviceV01Document implements IOuterDocument. Because AgentCAElectionAdviceV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type AgentCAElectionAdviceV01.

classDiagram
    class IOuterRecord
    AgentCAElectionAdviceV01 --|> IOuterRecord : Implements
    AgentCAElectionAdviceV01Document --|> IOuterDocument~AgentCAElectionAdviceV01~ : Implements
    class IOuterDocument~AgentCAElectionAdviceV01~ {
        AgentCAElectionAdviceV01 Message
     }
  

Document wrapper for serialization

The only real purpose AgentCAElectionAdviceV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:seev.012.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using AgentCAElectionAdviceV01.ToDocument() method. The returned AgentCAElectionAdviceV01Document value will serialize correctly according to ISO 20022 standards.

classDiagram
    AgentCAElectionAdviceV01Document *-- AgentCAElectionAdviceV01 : 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.012.001.01">
    <AgtCAElctnAdvc>
        <Id>
            <!-- Identification inner content -->
        </Id>
        <ElctnAdvcTpAndLkg>
            <!-- ElectionAdviceTypeAndLinkage inner content -->
        </ElctnAdvcTpAndLkg>
        <CorpActnGnlInf>
            <!-- CorporateActionGeneralInformation inner content -->
        </CorpActnGnlInf>
        <ElctnDtls>
            <!-- ElectionDetails inner content -->
        </ElctnDtls>
        <AddtlInf>
            <!-- AdditionalInformation inner content -->
        </AddtlInf>
        <CtctDtls>
            <!-- ContactDetails inner content -->
        </CtctDtls>
    </AgtCAElctnAdvc>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_TMtG-tEwEd-BzquC8wXy7w_1166385439"
  name="AgentCAElectionAdviceV01"
  definition="Scope&#xD;&#xA;This message is sent by a CSD to the issuer (or its agent) to provide information about the clients' election instruction, the registration details, the delivery details, etc. In case of an election with underlying resource movements, it also confirms that these have been completed. This message may also be sent in case of an amendment of an election, once the CSD has completed the required resource movements.&#xD;&#xA;Usage&#xD;&#xA;This message can be used for a new election advice or an amended election advice.&#xD;&#xA;If this message is used for a new election advice, the function of the message must be 'new election'.&#xD;&#xA;If this message is used for an amended election advice, the function of the message must be 'option change' and the identification of the previously sent election advice must be present.&#xD;&#xA;This message can include the cash movements and/or securities movements in the case of an election with underlying resource movements. Additionally, this message can include delivery, certification and beneficial owner details.&#xD;&#xA;Note: this information can be also sent separately in the Agent Corporate Action Information advice message."
  registrationStatus="Registered"
  messageSet="_wRe70k2rEeG_I4xRYCA_7g"
  xmlTag="AgtCAElctnAdvc"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <constraint
    xmi:id="_TM239dEwEd-BzquC8wXy7w_-740409473"
    name="OptionTypeRule"
    definition="If ElectionDetails/OptionType is present, then OptionType is not allowed in any occurrences of ElectionDetails/SecuritiesMovementDetails/DebitAccountDetails and/or ElectionDetails/SecuritiesMovementDetails/CreditAccountDetails.&#xA;&#xA;If ElectionDetails/SecuritiesMovementDetails/DebitAccountDetails/OptionType is present at least once and/or ElectionDetails/SecuritiesMovementDetails/CreditAccountDetails/OptionType is present at least once then ElectionDetails/CorporateActionOptionType is not allowed."
    registrationStatus="Provisionally Registered" />
  <constraint
    xmi:id="_TM23-NEwEd-BzquC8wXy7w_124005289"
    name="OptionNumberRule"
    definition="If ElectionDetails/OptionNumber is present, then OptionNumber is not allowed in any occurrences of ElectionDetails/SecuritiesMovementDetails/DebitAccountDetails and/or ElectionDetails/SecuritiesMovementDetails/CreditAccountDetails.&#xA;&#xA;If ElectionDetails/SecuritiesMovementDetails/DebitAccountDetails/OptionNumber is present at least once and/or ElectionDetails/SecuritiesMovementDetails/CreditAccountDetails/OptionNumber is present at least once then ElectionDetails/CorporateActionOptionNumber is not allowed."
    registrationStatus="Provisionally Registered" />
  <constraint
    xmi:id="_TNAo8tEwEd-BzquC8wXy7w_-2125308601"
    name="ElectionType2Rule"
    definition="If ElectionAdviceTypeAndLinkages/ElectionType is CHAN, then ElectionDetails/SecuritiesMovementDetails/CreditAccountDetails/OptionNumber, ElectionDetails/SecuritiesMovementDetails/CreditAccountDetails/OptionType, ElectionDetails/SecuritiesMovementDetails/DebitAccountDetails/OptionNumber and ElectionDetails/SecuritiesMovementDetails/DebitAccountDetails/OptionType must be present."
    registrationStatus="Provisionally Registered" />
  <messageBuildingBlock
    xmi:id="_TMtG-9EwEd-BzquC8wXy7w_-42698000"
    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="_TM238NEwEd-BzquC8wXy7w_-1990867488"
    name="ElectionAdviceTypeAndLinkage"
    definition="Provides information about the type of election advice and linked messages."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="ElctnAdvcTpAndLkg"
    complexType="_Rjkpmtp-Ed-ak6NoX_4Aeg_1579470167" />
  <messageBuildingBlock
    xmi:id="_TM238dEwEd-BzquC8wXy7w_1272192692"
    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="_TM238tEwEd-BzquC8wXy7w_-1547276927"
    name="ElectionDetails"
    definition="Provides information about the election(s)."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="ElctnDtls"
    complexType="_UJ39d9p-Ed-ak6NoX_4Aeg_-1634086378" />
  <messageBuildingBlock
    xmi:id="_TM2389EwEd-BzquC8wXy7w_-1731981881"
    name="AdditionalInformation"
    definition="Provides additional information about the delivery details, beneficial owner details, etc."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="AddtlInf"
    complexType="_UMZtCNp-Ed-ak6NoX_4Aeg_302800554" />
  <messageBuildingBlock
    xmi:id="_TM239NEwEd-BzquC8wXy7w_-741674043"
    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="012"
    flavour="001"
    version="01" />
</messageDefinition>

ISO Building Blocks

The following items are used as building blocks to construct this message.