reda.019.001.01
The SecuritiesAccountQuery message sent by an instructing party to the executing party to request the details related to the securities account.
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 %% SecuritiesAccountQueryV01 recursion level 0 with max 0 SecuritiesAccountQueryV01 *-- "0..1" MessageHeader2 : MessageHeader SecuritiesAccountQueryV01 *-- "1..1" SecuritiesAccountSearchCriteria2 : SearchCriteria SecuritiesAccountQueryV01 *-- "0..1" SecuritiesAccountReturnCriteria1 : ReturnCriteria SecuritiesAccountQueryV01 *-- "0..1" SupplementaryData1 : SupplementaryData
Now, we will zero-in one-by-one on each of these building blocks.
MessageHeader building block
Point to point reference elements, as assigned by the instructing party, to unambiguously identify the query message. Set of characteristics, such as the identification or the creation date and time, specific to the message. For comparison, see the ISO20022 official specification
classDiagram direction tb %% MessageHeader2 recursion level 0 with max 1 class MessageHeader2{ MessageIdentification IsoMax35Text CreationDateTime IsoISODateTime } MessageHeader2 *-- "0..1" IRequestType2Choice : RequestType %% IRequestType2Choice recursion level 1 with max 1
MessageHeader2 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
MessageIdentification | Point to point reference, as assigned by the sender, to unambiguously identify the message. | Usage: The sender has to make sure that MessageIdentification is unique for a pre-agreed period. |
CreationDateTime | Date and time at which the message was created. | IsoISODateTime - Optional 0..1 |
RequestType | Specific actions to be executed through the request. | IRequestType2Choice - Optional 0..1 |
SearchCriteria building block
Defines the criteria to be used to query the securities account reference data by the executing system. Set of search criteria for querying securities account reference data. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SecuritiesAccountSearchCriteria2 recursion level 0 with max 1 class SecuritiesAccountSearchCriteria2{ AccountIdentification IsoMax35Text EndInvestorFlag IsoExact4AlphaNumericText PricingScheme IsoExact4AlphaNumericText } SecuritiesAccountSearchCriteria2 *-- "0..1" PartyIdentification136 : AccountServicer SecuritiesAccountSearchCriteria2 *-- "0..1" SystemPartyIdentification8 : AccountOwner SecuritiesAccountSearchCriteria2 *-- "0..1" ISystemPartyType1Choice : PartyType SecuritiesAccountSearchCriteria2 *-- "0..1" IDatePeriodSearch1Choice : OpeningDate SecuritiesAccountSearchCriteria2 *-- "0..1" IDatePeriodSearch1Choice : ClosingDate SecuritiesAccountSearchCriteria2 *-- "0..1" ISystemSecuritiesAccountType1Choice : AccountType %% PartyIdentification136 recursion level 1 with max 1 class PartyIdentification136{ LEI IsoLEIIdentifier } PartyIdentification136 *-- "1..1" IPartyIdentification120Choice : Identification %% SystemPartyIdentification8 recursion level 1 with max 1 SystemPartyIdentification8 *-- "1..1" PartyIdentification136 : Identification SystemPartyIdentification8 *-- "0..1" PartyIdentification136 : ResponsiblePartyIdentification %% ISystemPartyType1Choice recursion level 1 with max 1 %% IDatePeriodSearch1Choice recursion level 1 with max 1 %% IDatePeriodSearch1Choice recursion level 1 with max 1 %% ISystemSecuritiesAccountType1Choice recursion level 1 with max 1
SecuritiesAccountSearchCriteria2 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
AccountIdentification | Unique and unambiguous identification for the account between the account owner and the account servicer. | IsoMax35Text - Optional 0..1 |
AccountServicer | Party that services the account. | PartyIdentification136 - Optional 0..1 |
AccountOwner | Party that legally owns the account. | SystemPartyIdentification8 - Optional 0..1 |
PartyType | Specifies the type of the party for which securities account data have been queried. | ISystemPartyType1Choice - Optional 0..1 |
OpeningDate | Legal opening date for the securities account. | IDatePeriodSearch1Choice - Optional 0..1 |
ClosingDate | Legal closing date for the securities account. | IDatePeriodSearch1Choice - Optional 0..1 |
AccountType | Specifies the type of securities account. | ISystemSecuritiesAccountType1Choice - Optional 0..1 |
EndInvestorFlag | Specifies information to identify securities accounts where allocation instructions are posted. | IsoExact4AlphaNumericText - Optional 0..1 |
PricingScheme | Defines how the price is applied to the securities account. | IsoExact4AlphaNumericText - Optional 0..1 |
ReturnCriteria building block
Defines the expected securities account reference data to be returned. Return criteria for information to be returned in the report deriving from a query about securities account reference data. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SecuritiesAccountReturnCriteria1 recursion level 0 with max 1 class SecuritiesAccountReturnCriteria1{ AccountIdentification IsoRequestedIndicator PartyIdentification IsoRequestedIndicator PartyType IsoRequestedIndicator AccountServicer IsoRequestedIndicator AccountType IsoRequestedIndicator OpeningDate IsoRequestedIndicator ClosingDate IsoRequestedIndicator EndInvestorFlag IsoRequestedIndicator PricingScheme IsoRequestedIndicator }
SecuritiesAccountReturnCriteria1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
AccountIdentification | Indicates whether the identification of the account is requested. | IsoRequestedIndicator - Optional 0..1 |
PartyIdentification | Indicates whether the identification of the party owning the account is requested. | IsoRequestedIndicator - Optional 0..1 |
PartyType | Indicates whether the type of the party owning the account is requested. | IsoRequestedIndicator - Optional 0..1 |
AccountServicer | Indicates whether the account servicer is requested. | IsoRequestedIndicator - Optional 0..1 |
AccountType | Indicates whether the account type is requested. | IsoRequestedIndicator - Optional 0..1 |
OpeningDate | Indicates whether the opening date for the account is requested. | IsoRequestedIndicator - Optional 0..1 |
ClosingDate | Indicates whether the closing date for the account is requested. | IsoRequestedIndicator - Optional 0..1 |
EndInvestorFlag | Specifies information to identify securities accounts where allocation instructions are posted. | IsoRequestedIndicator - Optional 0..1 |
PricingScheme | Defines how the price is applied to the securities account. | IsoRequestedIndicator - Optional 0..1 |
SupplementaryData building block
Additional information that cannot be captured in the structured elements and/or any other specific block. Additional information that can not be captured in the structured fields and/or any other specific block. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SupplementaryData1 recursion level 0 with max 1 class SupplementaryData1{ PlaceAndName IsoMax350Text } SupplementaryData1 *-- "1..1" IsoSupplementaryDataEnvelope1 : Envelope %% IsoSupplementaryDataEnvelope1 recursion level 1 with max 1
SupplementaryData1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | Unambiguous reference to the location where the supplementary data must be inserted in the message instance. In the case of XML, this is expressed by a valid XPath. | IsoMax350Text - Optional 0..1 |
Envelope | Technical element wrapping the supplementary data. | IsoSupplementaryDataEnvelope1 - Required 1..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the SecuritiesAccountQueryV01 implementation follows a specific implementaiton pattern. First of all, SecuritiesAccountQueryV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, SecuritiesAccountQueryV01Document implements IOuterDocument. Because SecuritiesAccountQueryV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type SecuritiesAccountQueryV01.
classDiagram class IOuterRecord SecuritiesAccountQueryV01 --|> IOuterRecord : Implements SecuritiesAccountQueryV01Document --|> IOuterDocument~SecuritiesAccountQueryV01~ : Implements class IOuterDocument~SecuritiesAccountQueryV01~ { SecuritiesAccountQueryV01 Message }
Document wrapper for serialization
The only real purpose SecuritiesAccountQueryV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:reda.019.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using SecuritiesAccountQueryV01.ToDocument() method. The returned SecuritiesAccountQueryV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram SecuritiesAccountQueryV01Document *-- SecuritiesAccountQueryV01 : 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:reda.019.001.01">
<SctiesAcctQry>
<MsgHdr>
<!-- MessageHeader inner content -->
</MsgHdr>
<SchCrit>
<!-- SearchCriteria inner content -->
</SchCrit>
<RtrCrit>
<!-- ReturnCriteria inner content -->
</RtrCrit>
<SplmtryData>
<!-- SupplementaryData inner content -->
</SplmtryData>
</SctiesAcctQry>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_KAu-wZ2fEem_Be8NuxvF7Q"
name="SecuritiesAccountQueryV01"
definition="The SecuritiesAccountQuery message sent by an instructing party to the executing party to request the details related to the securities account."
registrationStatus="Registered"
messageSet="_Fl3iMBHREeqzEaNIFJIN-g"
xmlTag="SctiesAcctQry"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_KAu-yZ2fEem_Be8NuxvF7Q"
name="MessageHeader"
definition="Point to point reference elements, as assigned by the instructing party, to unambiguously identify the query message."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="MsgHdr"
complexType="_746poqMgEeCJ6YNENx4h-w_-152680373" />
<messageBuildingBlock
xmi:id="_KAu-z52fEem_Be8NuxvF7Q"
name="SearchCriteria"
definition="Defines the criteria to be used to query the securities account reference data by the executing system."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="SchCrit"
complexType="_U5MuUTp1Eemk2e6qGBk8IQ" />
<messageBuildingBlock
xmi:id="_KAu-0Z2fEem_Be8NuxvF7Q"
name="ReturnCriteria"
definition="Defines the expected securities account reference data to be returned."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="RtrCrit"
complexType="_X5rHEeX3EeWawO9uAAThyQ" />
<messageBuildingBlock
xmi:id="_KAu-052fEem_Be8NuxvF7Q"
name="SupplementaryData"
definition="Additional information that cannot be captured in the structured elements and/or any other specific block."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="SplmtryData"
complexType="_Qn0zC9p-Ed-ak6NoX_4Aeg_468227563" />
<messageDefinitionIdentifier
businessArea="reda"
messageFunctionality="019"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.