seev.021.001.01
Scope This message is sent by a CSD to an issuer (or its agent) to confirm the settlement of resource movements. Usage This message is used to confirm the settlement of the movements resulting from an:
- Agent Corporate Action Movement Instruction message. It confirms the settlement of the exercised resources and/or proceeds movements in which case the building block Agent Corporate Action Movement Instruction Identification must be present. An Agent Corporate Action Movement Instruction message may be responded to by more than one Agent Corporate Action Movement Confirmation messages.
- Agent Corporate Action Global Distribution Status Advice authorising the global distribution. It confirms the settlement of the exercised resources and/or proceeds movements. The building block Agent Corporate Action Global Distribution Status Advice Identification must be present. An Agent Corporate Action Global Distribution Status Advice message may be responded to by more than one Agent Corporate Action Movement Confirmation messages.
- Agent Corporate Action Election Status Advice that rejects an election advice. It confirms the return of the exercised resources. The building block Agent Corporate Action Election Status Advice Identification must be present. An Agent Corporate Action Election Status Advice message may be responded to by more than one Agent Corporate Action Movement Confirmation messages.
- Agent Corporate Action Election Status Advice where an election cancellation request has been accepted. It confirms the return of the exercised resources. The building block Agent Corporate Action Election Status Advice Identification must be present. An Agent Corporate Action Election Status Advice message may be responded to by more than one Agent Corporate Action Movement Confirmation messages.
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 %% AgentCAMovementConfirmationV01 recursion level 0 with max 0 AgentCAMovementConfirmationV01 *-- "1..1" DocumentIdentification8 : Identification AgentCAMovementConfirmationV01 *-- "1..1" DocumentIdentification8 : AgentCAMovementInstructionIdentification AgentCAMovementConfirmationV01 *-- "1..1" DocumentIdentification8 : AgentCAElectionStatusAdviceIdentification AgentCAMovementConfirmationV01 *-- "1..1" DocumentIdentification8 : AgentCAGlobalDistributionStatusAdviceIdentification AgentCAMovementConfirmationV01 *-- "1..1" CorporateActionInformation1 : CorporateActionGeneralInformation AgentCAMovementConfirmationV01 *-- "0..1" CorporateActionSecuritiesMovement1 : SecuritiesMovementDetails AgentCAMovementConfirmationV01 *-- "0..1" CashMovement3 : CashMovementDetails
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 confirmation. 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 |
AgentCAMovementInstructionIdentification building block
Identification of the Agent CA Movement Instruction that triggered the movement(s). 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 |
AgentCAElectionStatusAdviceIdentification building block
Identification of the Agent CA Election Status Advice that triggered the movement(s). 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 |
AgentCAGlobalDistributionStatusAdviceIdentification building block
Identification of the Agent CA Global Distribution Status Advice that triggered the movement(s). 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 |
SecuritiesMovementDetails building block
Information about the securities movements. Information about the securities movements. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CorporateActionSecuritiesMovement1 recursion level 0 with max 1 CorporateActionSecuritiesMovement1 *-- "0..1" IDateAndDateTimeChoice : PostingDateTime CorporateActionSecuritiesMovement1 *-- "1..1" SecurityIdentification7 : SecurityIdentification CorporateActionSecuritiesMovement1 *-- "1..1" IUnitOrFaceAmount1Choice : PostingQuantity CorporateActionSecuritiesMovement1 *-- "1..2" SecuritiesAccount8 : AccountDetails %% IDateAndDateTimeChoice recursion level 1 with max 1 %% SecurityIdentification7 recursion level 1 with max 1 class SecurityIdentification7{ ISIN IsoISINIdentifier Description IsoMax140Text } SecurityIdentification7 *-- "1..1" AlternateSecurityIdentification3 : OtherIdentification %% IUnitOrFaceAmount1Choice recursion level 1 with max 1 %% SecuritiesAccount8 recursion level 1 with max 1 class SecuritiesAccount8{ CreditDebitIndicator CreditDebitCode AccountIdentification IsoMax35Text OptionNumber IsoExact3NumericText SecurityHoldingForm FormOfSecurity1Code } SecuritiesAccount8 *-- "0..1" IPartyIdentification2Choice : AccountOwnerIdentification SecuritiesAccount8 *-- "0..1" ISecuritiesBalanceType10FormatChoice : BalanceType SecuritiesAccount8 *-- "0..1" ICorporateActionOption1FormatChoice : OptionType SecuritiesAccount8 *-- "0..1" IStampDutyType1FormatChoice : StampDuty
CorporateActionSecuritiesMovement1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PostingDateTime | Date and time of the posting. | IDateAndDateTimeChoice - Optional 0..1 |
SecurityIdentification | Identification of the financial instrument. | SecurityIdentification7 - Required 1..1 |
PostingQuantity | Quantity of securities that is posted. | IUnitOrFaceAmount1Choice - Required 1..1 |
AccountDetails | Provides information about the account which is debited/credited. | SecuritiesAccount8 - Collection 1..2 |
CashMovementDetails building block
Information about the cash movement. Provides information about the cash movement. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CashMovement3 recursion level 0 with max 1 class CashMovement3{ ValueDate IsoISODate PostingAmount IsoActiveCurrencyAndAmount } CashMovement3 *-- "0..1" IDateAndDateTimeChoice : PostingDateTime CashMovement3 *-- "1..2" CashAccount18 : AccountDetails %% IDateAndDateTimeChoice recursion level 1 with max 1 %% CashAccount18 recursion level 1 with max 1 class CashAccount18{ CreditDebitIndicator CreditDebitCode } CashAccount18 *-- "0..1" IPartyIdentification2Choice : AccountOwnerIdentification CashAccount18 *-- "1..1" IAccountIdentification2Choice : AccountIdentification CashAccount18 *-- "0..1" CashBalanceType1FormatType : BalanceType
CashMovement3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PostingDateTime | Date and time of the posting. | IDateAndDateTimeChoice - Optional 0..1 |
ValueDate | Value date. | IsoISODate - Required 1..1 |
PostingAmount | Cash amount that is posted. | IsoActiveCurrencyAndAmount - Required 1..1 |
AccountDetails | Provides information about the account which is debited/credited. | CashAccount18 - Collection 1..2 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the AgentCAMovementConfirmationV01 implementation follows a specific implementaiton pattern. First of all, AgentCAMovementConfirmationV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, AgentCAMovementConfirmationV01Document implements IOuterDocument. Because AgentCAMovementConfirmationV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type AgentCAMovementConfirmationV01.
classDiagram class IOuterRecord AgentCAMovementConfirmationV01 --|> IOuterRecord : Implements AgentCAMovementConfirmationV01Document --|> IOuterDocument~AgentCAMovementConfirmationV01~ : Implements class IOuterDocument~AgentCAMovementConfirmationV01~ { AgentCAMovementConfirmationV01 Message }
Document wrapper for serialization
The only real purpose AgentCAMovementConfirmationV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:seev.021.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using AgentCAMovementConfirmationV01.ToDocument() method. The returned AgentCAMovementConfirmationV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram AgentCAMovementConfirmationV01Document *-- AgentCAMovementConfirmationV01 : 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.021.001.01">
<AgtCAMvmntConf>
<Id>
<!-- Identification inner content -->
</Id>
<AgtCAMvmntInstrId>
<!-- AgentCAMovementInstructionIdentification inner content -->
</AgtCAMvmntInstrId>
<AgtCAElctnStsAdvcId>
<!-- AgentCAElectionStatusAdviceIdentification inner content -->
</AgtCAElctnStsAdvcId>
<AgtCAGblDstrbtnStsAdvcId>
<!-- AgentCAGlobalDistributionStatusAdviceIdentification inner content -->
</AgtCAGblDstrbtnStsAdvcId>
<CorpActnGnlInf>
<!-- CorporateActionGeneralInformation inner content -->
</CorpActnGnlInf>
<SctiesMvmntDtls>
<!-- SecuritiesMovementDetails inner content -->
</SctiesMvmntDtls>
<CshMvmntDtls>
<!-- CashMovementDetails inner content -->
</CshMvmntDtls>
</AgtCAMvmntConf>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_TOf2vdEwEd-BzquC8wXy7w_550595772"
name="AgentCAMovementConfirmationV01"
definition="Scope
This message is sent by a CSD to an issuer (or its agent) to confirm the settlement of resource movements.
Usage
This message is used to confirm the settlement of the movements resulting from an:
- Agent Corporate Action Movement Instruction message. It confirms the settlement of the exercised resources and/or proceeds movements in which case the building block Agent Corporate Action Movement Instruction Identification must be present. An Agent Corporate Action Movement Instruction message may be responded to by more than one Agent Corporate Action Movement Confirmation messages.
- Agent Corporate Action Global Distribution Status Advice authorising the global distribution. It confirms the settlement of the exercised resources and/or proceeds movements. The building block Agent Corporate Action Global Distribution Status Advice Identification must be present. An Agent Corporate Action Global Distribution Status Advice message may be responded to by more than one Agent Corporate Action Movement Confirmation messages.
- Agent Corporate Action Election Status Advice that rejects an election advice. It confirms the return of the exercised resources. The building block Agent Corporate Action Election Status Advice Identification must be present. An Agent Corporate Action Election Status Advice message may be responded to by more than one Agent Corporate Action Movement Confirmation messages.
- Agent Corporate Action Election Status Advice where an election cancellation request has been accepted. It confirms the return of the exercised resources. The building block Agent Corporate Action Election Status Advice Identification must be present. An Agent Corporate Action Election Status Advice message may be responded to by more than one Agent Corporate Action Movement Confirmation messages."
registrationStatus="Registered"
messageSet="_wRe70k2rEeG_I4xRYCA_7g"
xmlTag="AgtCAMvmntConf"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<xors
xmi:id="_TQbwYNEwEd-BzquC8wXy7w_146930355"
name="MovementInstructionIDOrElectionStatusAdviceIDOrGlobalDistributionStatusAdviceIDRule"
definition="Either AgentCAMovementInstructionIdentification or AgentCAElectionStatusAdviceIdentification or AgentCAGlobalDistributionStatusAdviceIdentification must be present."
registrationStatus="Provisionally Registered"
impactedMessageBuildingBlocks="_TOpAodEwEd-BzquC8wXy7w_2124804747 _TOpAotEwEd-BzquC8wXy7w_-1143801782 _TOpAo9EwEd-BzquC8wXy7w_1161636580" />
<messageBuildingBlock
xmi:id="_TOpAoNEwEd-BzquC8wXy7w_2121112833"
name="Identification"
definition="Identification assigned by the Sender to unambiguously identify the confirmation."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="Id"
complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
<messageBuildingBlock
xmi:id="_TOpAodEwEd-BzquC8wXy7w_2124804747"
name="AgentCAMovementInstructionIdentification"
definition="Identification of the Agent CA Movement Instruction that triggered the movement(s)."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="AgtCAMvmntInstrId"
complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
<messageBuildingBlock
xmi:id="_TOpAotEwEd-BzquC8wXy7w_-1143801782"
name="AgentCAElectionStatusAdviceIdentification"
definition="Identification of the Agent CA Election Status Advice that triggered the movement(s)."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="AgtCAElctnStsAdvcId"
complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
<messageBuildingBlock
xmi:id="_TOpAo9EwEd-BzquC8wXy7w_1161636580"
name="AgentCAGlobalDistributionStatusAdviceIdentification"
definition="Identification of the Agent CA Global Distribution Status Advice that triggered the movement(s)."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="AgtCAGblDstrbtnStsAdvcId"
complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
<messageBuildingBlock
xmi:id="_TOpApNEwEd-BzquC8wXy7w_-279320255"
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="_TOpApdEwEd-BzquC8wXy7w_1725377056"
name="SecuritiesMovementDetails"
definition="Information about the securities movements."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="SctiesMvmntDtls"
complexType="_UIYIptp-Ed-ak6NoX_4Aeg_1464286927" />
<messageBuildingBlock
xmi:id="_TQR_YNEwEd-BzquC8wXy7w_-1609125049"
name="CashMovementDetails"
definition="Information about the cash movement."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="CshMvmntDtls"
complexType="_UI00l9p-Ed-ak6NoX_4Aeg_-1613745533" />
<messageDefinitionIdentifier
businessArea="seev"
messageFunctionality="021"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.