reda.010.001.01
SCOPE An instructing party sends a SecurityQuery message to an executing/servicing party to request a report of financial instrument details in their system.
The instructing party - executing/servicing party relationship may be:
- Central Securities Depositories (CSD) who would like to publish security static data, or
- a Corporate, or
- a Bank, or
- a Market Infrastructure, or
- a Market Data Provider.
USAGE The request is sent when the instructing party needs to see data of a security data within the executing/servicing party system.
Initiator: instructing party.
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 %% SecurityQueryV01 recursion level 0 with max 0 SecurityQueryV01 *-- "0..1" MessageHeader1 : MessageHeader SecurityQueryV01 *-- "0..1" GenericIdentification1 : RequestType SecurityQueryV01 *-- "1..1" SecuritiesSearchCriteria4 : SearchCriteria SecurityQueryV01 *-- "0..1" SecuritiesReturnCriteria1 : SmallSetReturnCriteria SecurityQueryV01 *-- "0..1" SupplementaryData1 : SupplementaryData
Now, we will zero-in one-by-one on each of these building blocks.
MessageHeader building block
Common business identification for the 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 %% MessageHeader1 recursion level 0 with max 1 class MessageHeader1{ MessageIdentification IsoMax35Text CreationDateTime IsoISODateTime }
MessageHeader1 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. | IsoMax35Text - Required 1..1 |
CreationDateTime | Date and time at which the message was created. | IsoISODateTime - Optional 0..1 |
RequestType building block
Defines the type of action to be performed in the request. Information related to an identification, for example party identification or account identification. For comparison, see the ISO20022 official specification
classDiagram direction tb %% GenericIdentification1 recursion level 0 with max 1 class GenericIdentification1{ Identification IsoMax35Text SchemeName IsoMax35Text Issuer IsoMax35Text }
GenericIdentification1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Identification | Identification assigned by an institution. | IsoMax35Text - Required 1..1 |
SchemeName | Name of the identification scheme. | IsoMax35Text - Optional 0..1 |
Issuer | Entity that assigns the identification. | IsoMax35Text - Optional 0..1 |
SearchCriteria building block
Defines the criteria to be used to query the securities reference data by the executing system. Criteria for a query about securities reference data. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SecuritiesSearchCriteria4 recursion level 0 with max 1 class SecuritiesSearchCriteria4{ ClassificationFinancialInstrument IsoCFIOct2015Identifier IssueCurrency ActiveOrHistoricCurrencyCode CountryOfIssue CountryCode } SecuritiesSearchCriteria4 *-- "0..1" SecurityIdentification39 : FinancialInstrumentIdentification SecuritiesSearchCriteria4 *-- "0..1" IDatePeriodSearch1Choice : MaturityDate SecuritiesSearchCriteria4 *-- "0..1" IDatePeriodSearch1Choice : IssueDate SecuritiesSearchCriteria4 *-- "0..1" ISecurityStatus3Choice : SecurityStatus SecuritiesSearchCriteria4 *-- "0..1" ISystemPartyIdentification2Choice : MaintainingCSD SecuritiesSearchCriteria4 *-- "0..1" ISystemPartyIdentification2Choice : InvestorCSD SecuritiesSearchCriteria4 *-- "0..1" ISystemPartyIdentification2Choice : IssuerCSD SecuritiesSearchCriteria4 *-- "0..1" ISystemPartyIdentification2Choice : TechnicalIssuerCSD SecuritiesSearchCriteria4 *-- "0..1" ISystemPartyIdentification2Choice : CSD %% SecurityIdentification39 recursion level 1 with max 1 class SecurityIdentification39{ ISIN IsoISIN2021Identifier Description IsoMax140Text } SecurityIdentification39 *-- "0..0" OtherIdentification1 : OtherIdentification %% IDatePeriodSearch1Choice recursion level 1 with max 1 %% IDatePeriodSearch1Choice recursion level 1 with max 1 %% ISecurityStatus3Choice recursion level 1 with max 1 %% ISystemPartyIdentification2Choice recursion level 1 with max 1 %% ISystemPartyIdentification2Choice recursion level 1 with max 1 %% ISystemPartyIdentification2Choice recursion level 1 with max 1 %% ISystemPartyIdentification2Choice recursion level 1 with max 1 %% ISystemPartyIdentification2Choice recursion level 1 with max 1
SecuritiesSearchCriteria4 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
FinancialInstrumentIdentification | Way(s) of identifying the security. | SecurityIdentification39 - Optional 0..1 |
ClassificationFinancialInstrument | Classification type of the financial instrument, as per the ISO Classification of Financial Instrument (CFI) codification, for example, common share with voting rights, fully paid, or registered. | IsoCFIOct2015Identifier - Optional 0..1 |
MaturityDate | Planned final repayment date at the time of issuance. | IDatePeriodSearch1Choice - Optional 0..1 |
IssueDate | Date/time at which the security was made available. | IDatePeriodSearch1Choice - Optional 0..1 |
IssueCurrency | Currency in which a security is issued or redenominated. | ActiveOrHistoricCurrencyCode - Optional 0..1 |
CountryOfIssue | Primary market or country where a security is issued by the issuer or its agent. | CountryCode - Optional 0..1 |
SecurityStatus | Specifies the status of the security within its lifecycle. | ISecurityStatus3Choice - Optional 0..1 |
MaintainingCSD | Entity involved in an activity. | ISystemPartyIdentification2Choice - Optional 0..1 |
InvestorCSD | Entity involved in an activity. | ISystemPartyIdentification2Choice - Optional 0..1 |
IssuerCSD | Entity involved in an activity. | ISystemPartyIdentification2Choice - Optional 0..1 |
TechnicalIssuerCSD | Technical issuer of a security. | ISystemPartyIdentification2Choice - Optional 0..1 |
CSD | CSD of a security. | ISystemPartyIdentification2Choice - Optional 0..1 |
SmallSetReturnCriteria building block
Defines the expected securities reference data to be returned. Return criteria for information to be returned in the report deriving from a query about securities reference data. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SecuritiesReturnCriteria1 recursion level 0 with max 1 class SecuritiesReturnCriteria1{ FinancialInstrumentIdentification IsoRequestedIndicator ISOSecurityLongName IsoRequestedIndicator ISOSecurityShortName IsoRequestedIndicator ClassificationFinancialInstrument IsoRequestedIndicator MaturityDate IsoRequestedIndicator IssueDate IsoRequestedIndicator IssueCurrency IsoRequestedIndicator CountryOfIssue IsoRequestedIndicator SecurityStatus IsoRequestedIndicator InvestorCSD IsoRequestedIndicator IssuerCSD IsoRequestedIndicator TechnicalIssuerCSD IsoRequestedIndicator CSD IsoRequestedIndicator SecuritiesQuantityType IsoRequestedIndicator MinimumDenomination IsoRequestedIndicator MinimumMultipleQuantity IsoRequestedIndicator DeviatingSettlementUnit IsoRequestedIndicator }
SecuritiesReturnCriteria1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
FinancialInstrumentIdentification | Identification of a security. | IsoRequestedIndicator - Required 1..1 |
ISOSecurityLongName | Name of the security. | IsoRequestedIndicator - Required 1..1 |
ISOSecurityShortName | Short name of the security expressed as ISO 18773/18774. | IsoRequestedIndicator - Required 1..1 |
ClassificationFinancialInstrument | Classification type of the financial instrument, as per the ISO Classification of Financial Instrument (CFI) codification, for example, common share with voting rights, fully paid, or registered. | IsoRequestedIndicator - Required 1..1 |
MaturityDate | Planned final repayment date at the time of issuance. | IsoRequestedIndicator - Required 1..1 |
IssueDate | Date/time at which the security was made available. | IsoRequestedIndicator - Required 1..1 |
IssueCurrency | Currency in which a security is issued or redenominated. | IsoRequestedIndicator - Required 1..1 |
CountryOfIssue | Primary market or country where a security is issued by the issuer or its agent. | IsoRequestedIndicator - Required 1..1 |
SecurityStatus | Specifies the status of the security within its lifecycle. | IsoRequestedIndicator - Required 1..1 |
InvestorCSD | CSD Investor of a security. | IsoRequestedIndicator - Required 1..1 |
IssuerCSD | CSD Issuer of a security. | IsoRequestedIndicator - Required 1..1 |
TechnicalIssuerCSD | Technical issuer of a security. | IsoRequestedIndicator - Required 1..1 |
CSD | CSD of a security. | IsoRequestedIndicator - Required 1..1 |
SecuritiesQuantityType | Quantity of a security. | IsoRequestedIndicator - Required 1..1 |
MinimumDenomination | Indicates the minimum quantity (unit or nominal) of a security. | IsoRequestedIndicator - Required 1..1 |
MinimumMultipleQuantity | Minimum multiple quantity (unit or nominal) of securities. | IsoRequestedIndicator - Required 1..1 |
DeviatingSettlementUnit | Minimum quantity of securities that can be purchased without incurring a larger fee. For example, if the round lot size is 100 and the trade is for 125 shares, then 100 will be processed without a fee and the remaining 25 will incur a service fee for being an odd lot size. | IsoRequestedIndicator - Required 1..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 SecurityQueryV01 implementation follows a specific implementaiton pattern. First of all, SecurityQueryV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, SecurityQueryV01Document implements IOuterDocument. Because SecurityQueryV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type SecurityQueryV01.
classDiagram class IOuterRecord SecurityQueryV01 --|> IOuterRecord : Implements SecurityQueryV01Document --|> IOuterDocument~SecurityQueryV01~ : Implements class IOuterDocument~SecurityQueryV01~ { SecurityQueryV01 Message }
Document wrapper for serialization
The only real purpose SecurityQueryV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:reda.010.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using SecurityQueryV01.ToDocument() method. The returned SecurityQueryV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram SecurityQueryV01Document *-- SecurityQueryV01 : 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.010.001.01">
<SctyQry>
<MsgHdr>
<!-- MessageHeader inner content -->
</MsgHdr>
<ReqTp>
<!-- RequestType inner content -->
</ReqTp>
<SchCrit>
<!-- SearchCriteria inner content -->
</SchCrit>
<SmlSetRtrCrit>
<!-- SmallSetReturnCriteria inner content -->
</SmlSetRtrCrit>
<SplmtryData>
<!-- SupplementaryData inner content -->
</SplmtryData>
</SctyQry>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_jTvN8x62Eeu31YsWNiv_cw"
name="SecurityQueryV01"
definition="SCOPE
An instructing party sends a SecurityQuery message to an executing/servicing party to request a report of financial instrument details in their system.

The instructing party - executing/servicing party relationship may be:
- Central Securities Depositories (CSD) who would like to publish security static data, or 
- a Corporate, or
- a Bank, or
- a Market Infrastructure, or 
- a Market Data Provider.

USAGE
The request is sent when the instructing party needs to see data of a security data within the executing/servicing party system.

Initiator: instructing party."
registrationStatus="Registered"
messageSet="_XwWqJB62Eeu31YsWNiv_cw"
xmlTag="SctyQry"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<constraint
xmi:id="_jTvN-x62Eeu31YsWNiv_cw"
name="FullSetRules"
definition="If SmallSetReturnCriteria is not present then the full set of security reference data is expected."
registrationStatus="Provisionally Registered" />
<messageBuildingBlock
xmi:id="_Vmf7QZIxEeuAlLVx8pyt3w"
name="MessageHeader"
definition="Common business identification for the message."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="MsgHdr"
complexType="_75DzkaMgEeCJ6YNENx4h-w_-613853819" />
<messageBuildingBlock
xmi:id="_16GBoZI1EeuAlLVx8pyt3w"
name="RequestType"
definition="Defines the type of action to be performed in the request."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="ReqTp"
complexType="_QALkN9p-Ed-ak6NoX_4Aeg_-1748202225" />
<messageBuildingBlock
xmi:id="_jTv02x62Eeu31YsWNiv_cw"
name="SearchCriteria"
definition="Defines the criteria to be used to query the securities reference data by the executing system."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="SchCrit"
complexType="_QETUpZJKEeuAlLVx8pyt3w" />
<messageBuildingBlock
xmi:id="_jTv03R62Eeu31YsWNiv_cw"
name="SmallSetReturnCriteria"
definition="Defines the expected securities reference data to be returned."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="SmlSetRtrCrit"
complexType="_hXQrSWliEeGaMcKyqKNRfQ_-1281740246" />
<messageBuildingBlock
xmi:id="_jTv04x62Eeu31YsWNiv_cw"
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="010"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.