seev.022.001.01
Scope This message is sent by a CSD to an issuer (or its agent) to report the status, or a change in status, of
- a global distribution status advice released by an issuer (or its agent);
- a movement instruction released by an issuer (or its agent);
- a movement cancellation request sent by the issuer (or its agent); and
- the non-settlement of the movements at the CSD. Usage This message is used to report the status of:
- the movements resulting from a movement instruction message, in which case, the Agent Corporate Action Movement Instruction Identification must be present;
- the movements resulting from a global distribution status advice message (with the status, authorised), in which case, the Agent Corporate Action Global Distribution Status Advice Identification must be present;
- the movement cancellation request, in which case, the Agent Corporate Action Movement Cancellation Request Identification must be present; and
- the movements resulting from an election status advice (if the status of the election advice is rejected or if the status of the election cancellation request or amendment request is accepted) in case there is a settlement problem. The Election Status Advice Identification must be present. In the case of a failed settlement, the message contains details of the movement, such as account details, securities or cash information and the reason of the failure. This message should not be used to provide the confirmation of the settlement; the Agent Corporate Action Movement Confirmation message should be used instead.
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 %% AgentCAMovementStatusAdviceV01 recursion level 0 with max 0 AgentCAMovementStatusAdviceV01 *-- "1..1" DocumentIdentification8 : Identification AgentCAMovementStatusAdviceV01 *-- "1..1" DocumentIdentification8 : AgentCAElectionStatusAdviceIdentification AgentCAMovementStatusAdviceV01 *-- "1..1" DocumentIdentification8 : AgentCAGlobalDistributionStatusAdviceIdentification AgentCAMovementStatusAdviceV01 *-- "1..1" DocumentIdentification8 : AgentCAMovementInstructionIdentification AgentCAMovementStatusAdviceV01 *-- "1..1" DocumentIdentification8 : AgentCAMovementCancellationRequestIdentification AgentCAMovementStatusAdviceV01 *-- "1..1" CorporateActionInformation1 : CorporateActionGeneralInformation AgentCAMovementStatusAdviceV01 *-- "1..1" ICorporateActionMovementStatus1Choice : MovementStatusDetails AgentCAMovementStatusAdviceV01 *-- "1..1" CorporateMovementStatus2 : MovementCancellationStatusDetails
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 status 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 |
AgentCAElectionStatusAdviceIdentification building block
Identification of the Agent Corporate Action Election Status 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 |
AgentCAGlobalDistributionStatusAdviceIdentification building block
Identification of the Agent Corporate Action Global Distribution Status 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 |
AgentCAMovementInstructionIdentification building block
Identification of the linked Agent CA Movement Instruction for which a status is given. 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 |
AgentCAMovementCancellationRequestIdentification building block
Identification of the linked Agent CA Movement Cancellation Request for which a status is given. 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 |
MovementStatusDetails building block
Status of the movement instruction. Choice between the different statuses of a movement. For comparison, see the ISO20022 official specification
classDiagram direction tb %% ICorporateActionMovementStatus1Choice recursion level 0 with max 1
CorporateActionMovementStatus1Choice members
Member name | Description | Data Type / Multiplicity |
---|
MovementCancellationStatusDetails building block
Status of the movement cancellation request. Provides status of the movement. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CorporateMovementStatus2 recursion level 0 with max 1 CorporateMovementStatus2 *-- "1..1" CorporationActionMovementProcessingStatus2 : ProcessedStatus CorporateMovementStatus2 *-- "1..1" CorporateActionMovementRejectionStatus2 : RejectedStatus %% CorporationActionMovementProcessingStatus2 recursion level 1 with max 1 class CorporationActionMovementProcessingStatus2{ AdditionalInformation IsoMax350Text } CorporationActionMovementProcessingStatus2 *-- "1..1" IProcessedStatus2FormatChoice : Status %% CorporateActionMovementRejectionStatus2 recursion level 1 with max 1 class CorporateActionMovementRejectionStatus2{ AdditionalInformation IsoMax350Text } CorporateActionMovementRejectionStatus2 *-- "1..0" IRejectionReason14FormatChoice : Reason
CorporateMovementStatus2 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
ProcessedStatus | Provides information about the processing status of the cancellation request. | CorporationActionMovementProcessingStatus2 - Required 1..1 |
RejectedStatus | Provides information about the rejection status. | CorporateActionMovementRejectionStatus2 - Required 1..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the AgentCAMovementStatusAdviceV01 implementation follows a specific implementaiton pattern. First of all, AgentCAMovementStatusAdviceV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, AgentCAMovementStatusAdviceV01Document implements IOuterDocument. Because AgentCAMovementStatusAdviceV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type AgentCAMovementStatusAdviceV01.
classDiagram class IOuterRecord AgentCAMovementStatusAdviceV01 --|> IOuterRecord : Implements AgentCAMovementStatusAdviceV01Document --|> IOuterDocument~AgentCAMovementStatusAdviceV01~ : Implements class IOuterDocument~AgentCAMovementStatusAdviceV01~ { AgentCAMovementStatusAdviceV01 Message }
Document wrapper for serialization
The only real purpose AgentCAMovementStatusAdviceV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:seev.022.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using AgentCAMovementStatusAdviceV01.ToDocument() method. The returned AgentCAMovementStatusAdviceV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram AgentCAMovementStatusAdviceV01Document *-- AgentCAMovementStatusAdviceV01 : 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.022.001.01">
<AgtCAMvmntStsAdvc>
<Id>
<!-- Identification inner content -->
</Id>
<AgtCAElctnStsAdvcId>
<!-- AgentCAElectionStatusAdviceIdentification inner content -->
</AgtCAElctnStsAdvcId>
<AgtCAGblDstrbtnStsAdvcId>
<!-- AgentCAGlobalDistributionStatusAdviceIdentification inner content -->
</AgtCAGblDstrbtnStsAdvcId>
<AgtCAMvmntInstrId>
<!-- AgentCAMovementInstructionIdentification inner content -->
</AgtCAMvmntInstrId>
<AgtCAMvmntCxlReqId>
<!-- AgentCAMovementCancellationRequestIdentification inner content -->
</AgtCAMvmntCxlReqId>
<CorpActnGnlInf>
<!-- CorporateActionGeneralInformation inner content -->
</CorpActnGnlInf>
<MvmntStsDtls>
<!-- MovementStatusDetails inner content -->
</MvmntStsDtls>
<MvmntCxlStsDtls>
<!-- MovementCancellationStatusDetails inner content -->
</MvmntCxlStsDtls>
</AgtCAMvmntStsAdvc>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_TQurWdEwEd-BzquC8wXy7w_-1045499600"
name="AgentCAMovementStatusAdviceV01"
definition="Scope
This message is sent by a CSD to an issuer (or its agent) to report the status, or a change in status, of
- a global distribution status advice released by an issuer (or its agent);
- a movement instruction released by an issuer (or its agent);
- a movement cancellation request sent by the issuer (or its agent); and
- the non-settlement of the movements at the CSD.
Usage
This message is used to report the status of:
- the movements resulting from a movement instruction message, in which case, the Agent Corporate Action Movement Instruction Identification must be present;
- the movements resulting from a global distribution status advice message (with the status, authorised), in which case, the Agent Corporate Action Global Distribution Status Advice Identification must be present;
- the movement cancellation request, in which case, the Agent Corporate Action Movement Cancellation Request Identification must be present; and
- the movements resulting from an election status advice (if the status of the election advice is rejected or if the status of the election cancellation request or amendment request is accepted) in case there is a settlement problem. The Election Status Advice Identification must be present.
In the case of a failed settlement, the message contains details of the movement, such as account details, securities or cash information and the reason of the failure.
This message should not be used to provide the confirmation of the settlement; the Agent Corporate Action Movement Confirmation message should be used instead."
registrationStatus="Registered"
messageSet="_wRe70k2rEeG_I4xRYCA_7g"
xmlTag="AgtCAMvmntStsAdvc"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<constraint
xmi:id="_TQ4cW9EwEd-BzquC8wXy7w_-1818817613"
name="MovementStatusDetailsRule"
definition="If AgentCAElectionStatusAdviceIdentification, AgentCAGlobalDistributionStatusAdviceIdentification or AgentCAMovementInstructionIdentification is present, then MovementStatusDetails must be present."
registrationStatus="Provisionally Registered" />
<constraint
xmi:id="_TQ4cXtEwEd-BzquC8wXy7w_-1313650786"
name="MovementCancellationStatusDetailsRule"
definition="If AgentCAMovementCancellationRequestIdentification is present then MovementCancellationStatusDetails must be present."
registrationStatus="Provisionally Registered" />
<xors
xmi:id="_TQ4cVdEwEd-BzquC8wXy7w_649582072"
name="StatusIdentificationRule"
definition="Either AgentCAElectionStatusAdviceIdentification or AgentCAGlobalDistributionStatusAdviceIdentification or AgentCAMovementInstructionIdentification or AgentCAMovementCancellationRequestIdentification must be present."
registrationStatus="Provisionally Registered"
impactedMessageBuildingBlocks="_TQurW9EwEd-BzquC8wXy7w_-1429169217 _TQurXNEwEd-BzquC8wXy7w_-1486425039 _TQ4cUNEwEd-BzquC8wXy7w_-1745342942 _TQ4cUdEwEd-BzquC8wXy7w_-1588344197" />
<xors
xmi:id="_TQ4cWNEwEd-BzquC8wXy7w_-768836875"
name="MovementStatusDetailsOrMovementCancellationStatusDetailsRule"
definition="Either MovementStatusDetails or MovementCancellationStatusDetails must be present but not both."
registrationStatus="Provisionally Registered"
impactedMessageBuildingBlocks="_TQ4cU9EwEd-BzquC8wXy7w_-2031490064 _TQ4cVNEwEd-BzquC8wXy7w_1041846719" />
<messageBuildingBlock
xmi:id="_TQurWtEwEd-BzquC8wXy7w_-1742571317"
name="Identification"
definition="Identification assigned by the Sender to unambiguously identify the status advice."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="Id"
complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
<messageBuildingBlock
xmi:id="_TQurW9EwEd-BzquC8wXy7w_-1429169217"
name="AgentCAElectionStatusAdviceIdentification"
definition="Identification of the Agent Corporate Action Election Status Advice."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="AgtCAElctnStsAdvcId"
complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
<messageBuildingBlock
xmi:id="_TQurXNEwEd-BzquC8wXy7w_-1486425039"
name="AgentCAGlobalDistributionStatusAdviceIdentification"
definition="Identification of the Agent Corporate Action Global Distribution Status Advice."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="AgtCAGblDstrbtnStsAdvcId"
complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
<messageBuildingBlock
xmi:id="_TQ4cUNEwEd-BzquC8wXy7w_-1745342942"
name="AgentCAMovementInstructionIdentification"
definition="Identification of the linked Agent CA Movement Instruction for which a status is given."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="AgtCAMvmntInstrId"
complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
<messageBuildingBlock
xmi:id="_TQ4cUdEwEd-BzquC8wXy7w_-1588344197"
name="AgentCAMovementCancellationRequestIdentification"
definition="Identification of the linked Agent CA Movement Cancellation Request for which a status is given."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="AgtCAMvmntCxlReqId"
complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
<messageBuildingBlock
xmi:id="_TQ4cUtEwEd-BzquC8wXy7w_529102850"
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="_TQ4cU9EwEd-BzquC8wXy7w_-2031490064"
name="MovementStatusDetails"
definition="Status of the movement instruction."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="MvmntStsDtls"
complexType="_RiPM1dp-Ed-ak6NoX_4Aeg_-2034263409" />
<messageBuildingBlock
xmi:id="_TQ4cVNEwEd-BzquC8wXy7w_1041846719"
name="MovementCancellationStatusDetails"
definition="Status of the movement cancellation request."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="MvmntCxlStsDtls"
complexType="_Ri-zttp-Ed-ak6NoX_4Aeg_728771721" />
<messageDefinitionIdentifier
businessArea="seev"
messageFunctionality="022"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.