seev.018.001.01
Scope This message is sent by an issuer (or its agent) to the CSD to authorise/prohibit the CSD to process the entitlement movements. Usage This message is used to authorise/prohibit the CSD to process the movements requested in the Global Distribution Authorisation Request message. Once the amendment request has been accepted by the issuer (or its agent), the CSD will process any resource movement and send an Agent Corporate Action Election Advice message with the function, option change, to confirm that the amendment has been booked at the CSD. The issuer (or its agent) can provide the status in 2 different ways:
- Provide a global status, in which case the building block Global Movement Status must be present; or
- Provide a status by individual movements, in which case, the building block Individual Movement Status must be present. An individual movement cannot be rejected.
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 %% AgentCAGlobalDistributionStatusAdviceV01 recursion level 0 with max 0 AgentCAGlobalDistributionStatusAdviceV01 *-- "1..1" DocumentIdentification8 : Identification AgentCAGlobalDistributionStatusAdviceV01 *-- "1..1" DocumentIdentification8 : AgentCAGlobalDistributionAuthorisationRequestIdentification AgentCAGlobalDistributionStatusAdviceV01 *-- "1..1" CorporateActionInformation1 : CorporateActionGeneralInformation AgentCAGlobalDistributionStatusAdviceV01 *-- "1..1" GlobalDistributionStatus1 : GlobalMovementStatus AgentCAGlobalDistributionStatusAdviceV01 *-- "1..1" IndividualMovementStatus1 : IndividualMovementStatus
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 |
AgentCAGlobalDistributionAuthorisationRequestIdentification building block
Identification of the linked Agent CA Global Distribution Authorisation 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 |
GlobalMovementStatus building block
Provides information about the status of the global movement. Provides information about the status of the global movement. For comparison, see the ISO20022 official specification
classDiagram direction tb %% GlobalDistributionStatus1 recursion level 0 with max 1 GlobalDistributionStatus1 *-- "1..1" DistributionProcessingStatus1 : ProcessedStatus GlobalDistributionStatus1 *-- "1..1" DistributionRejectionStatus1 : RejectedStatus %% DistributionProcessingStatus1 recursion level 1 with max 1 class DistributionProcessingStatus1{ AdditionalInformation IsoMax350Text } DistributionProcessingStatus1 *-- "1..1" IProcessedStatus3FormatChoice : Status %% DistributionRejectionStatus1 recursion level 1 with max 1 class DistributionRejectionStatus1{ AdditionalInformation IsoMax350Text } DistributionRejectionStatus1 *-- "1..0" IRejectionReason19FormatChoice : Reason
GlobalDistributionStatus1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
ProcessedStatus | Provides information about the processing status of the global movement. | DistributionProcessingStatus1 - Required 1..1 |
RejectedStatus | Provides information about the rejection status. | DistributionRejectionStatus1 - Required 1..1 |
IndividualMovementStatus building block
Provides information about the status of an individual movement. Provides information about the processing status. For comparison, see the ISO20022 official specification
classDiagram direction tb %% IndividualMovementStatus1 recursion level 0 with max 1 class IndividualMovementStatus1{ MovementIdentification IsoMax35Text } IndividualMovementStatus1 *-- "1..1" MovementProcessingStatus1 : ProcessedStatus IndividualMovementStatus1 *-- "1..1" DistributionRejectionStatus1 : RejectedStatus %% MovementProcessingStatus1 recursion level 1 with max 1 class MovementProcessingStatus1{ AdditionalInformation IsoMax350Text } MovementProcessingStatus1 *-- "1..1" IProcessedStatus3FormatChoice : Status %% DistributionRejectionStatus1 recursion level 1 with max 1 class DistributionRejectionStatus1{ AdditionalInformation IsoMax350Text } DistributionRejectionStatus1 *-- "1..0" IRejectionReason19FormatChoice : Reason
IndividualMovementStatus1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
MovementIdentification | Identification of the movement. | IsoMax35Text - Optional 0..1 |
ProcessedStatus | Provides information about the processing status of individual movement. | MovementProcessingStatus1 - Required 1..1 |
RejectedStatus | Provides information about the rejection status. | DistributionRejectionStatus1 - Required 1..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the AgentCAGlobalDistributionStatusAdviceV01 implementation follows a specific implementaiton pattern. First of all, AgentCAGlobalDistributionStatusAdviceV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, AgentCAGlobalDistributionStatusAdviceV01Document implements IOuterDocument. Because AgentCAGlobalDistributionStatusAdviceV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type AgentCAGlobalDistributionStatusAdviceV01.
classDiagram class IOuterRecord AgentCAGlobalDistributionStatusAdviceV01 --|> IOuterRecord : Implements AgentCAGlobalDistributionStatusAdviceV01Document --|> IOuterDocument~AgentCAGlobalDistributionStatusAdviceV01~ : Implements class IOuterDocument~AgentCAGlobalDistributionStatusAdviceV01~ { AgentCAGlobalDistributionStatusAdviceV01 Message }
Document wrapper for serialization
The only real purpose AgentCAGlobalDistributionStatusAdviceV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:seev.018.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using AgentCAGlobalDistributionStatusAdviceV01.ToDocument() method. The returned AgentCAGlobalDistributionStatusAdviceV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram AgentCAGlobalDistributionStatusAdviceV01Document *-- AgentCAGlobalDistributionStatusAdviceV01 : 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.018.001.01">
<AgtCAGblDstrbtnStsAdvc>
<Id>
<!-- Identification inner content -->
</Id>
<AgtCAGblDstrbtnAuthstnReqId>
<!-- AgentCAGlobalDistributionAuthorisationRequestIdentification inner content -->
</AgtCAGblDstrbtnAuthstnReqId>
<CorpActnGnlInf>
<!-- CorporateActionGeneralInformation inner content -->
</CorpActnGnlInf>
<GblMvmntSts>
<!-- GlobalMovementStatus inner content -->
</GblMvmntSts>
<IndvMvmntSts>
<!-- IndividualMovementStatus inner content -->
</IndvMvmntSts>
</AgtCAGblDstrbtnStsAdvc>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_TN5ZxdEwEd-BzquC8wXy7w_893376547"
name="AgentCAGlobalDistributionStatusAdviceV01"
definition="Scope
This message is sent by an issuer (or its agent) to the CSD to authorise/prohibit the CSD to process the entitlement movements.
Usage
This message is used to authorise/prohibit the CSD to process the movements requested in the Global Distribution Authorisation Request message.
Once the amendment request has been accepted by the issuer (or its agent), the CSD will process any resource movement and send an Agent Corporate Action Election Advice message with the function, option change, to confirm that the amendment has been booked at the CSD.
The issuer (or its agent) can provide the status in 2 different ways:
- Provide a global status, in which case the building block Global Movement Status must be present; or
- Provide a status by individual movements, in which case, the building block Individual Movement Status must be present. An individual movement cannot be rejected."
registrationStatus="Registered"
messageSet="_wRe70k2rEeG_I4xRYCA_7g"
xmlTag="AgtCAGblDstrbtnStsAdvc"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<xors
xmi:id="_TN5Zy9EwEd-BzquC8wXy7w_-1824992088"
name="GlobalMovementStatusOrIndividualMovementStatusRule"
definition="Either GlobalMovementStatus or IndividualMovementStatus must be present."
registrationStatus="Provisionally Registered"
impactedMessageBuildingBlocks="_TN5ZydEwEd-BzquC8wXy7w_-2081880842 _TN5ZytEwEd-BzquC8wXy7w_-1885018018" />
<messageBuildingBlock
xmi:id="_TN5ZxtEwEd-BzquC8wXy7w_1263163020"
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="_TN5Zx9EwEd-BzquC8wXy7w_1294561939"
name="AgentCAGlobalDistributionAuthorisationRequestIdentification"
definition="Identification of the linked Agent CA Global Distribution Authorisation Request for which a status is given."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="AgtCAGblDstrbtnAuthstnReqId"
complexType="_RXNBiNp-Ed-ak6NoX_4Aeg_-320016249" />
<messageBuildingBlock
xmi:id="_TN5ZyNEwEd-BzquC8wXy7w_1839061522"
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="_TN5ZydEwEd-BzquC8wXy7w_-2081880842"
name="GlobalMovementStatus"
definition="Provides information about the status of the global movement."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="GblMvmntSts"
complexType="_Ri-zsNp-Ed-ak6NoX_4Aeg_-2092963403" />
<messageBuildingBlock
xmi:id="_TN5ZytEwEd-BzquC8wXy7w_-1885018018"
name="IndividualMovementStatus"
definition="Provides information about the status of an individual movement."
registrationStatus="Provisionally Registered"
minOccurs="1"
xmlTag="IndvMvmntSts"
complexType="_RjkpkNp-Ed-ak6NoX_4Aeg_-1988452432" />
<messageDefinitionIdentifier
businessArea="seev"
messageFunctionality="018"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.