setr.018.001.02
Scope The RequestForOrderStatusReport is sent by an instructing party, eg, an investment manager or its authorised representative, to the executing party, eg, a transfer agent. There may be one or more intermediary parties between the instructing party and the executing party. This message requests the status of one or several order instruction or order cancellation messages. Usage The RequestForOrderStatusReport message is used to request the status of:
- one or several order messages,
- one or several cancellation messages,
- one or several individual orders within a bulk or multiple order message. If the RequestForOrderStatusReport message is used to request the status of several messages, then the instructing party will receive several reply messages from the executing party, ie, several OrderInstructionStatusReport messages and/or OrderCancellationStatusReport messages. The number of reply messages will match the number of references stated in the RequestForOrderStatusReport message. The RequestForOrderStatusReport message may not be used to request the status of an investment account, a transfer or the status of a financial instrument.
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 %% RequestForOrderStatusReportV02 recursion level 0 with max 0 RequestForOrderStatusReportV02 *-- "1..1" MessageAndBusinessReference2 : RequestDetails
Now, we will zero-in one-by-one on each of these building blocks.
RequestDetails building block
Information to identify the order(s) for which the status is requested. Information about the message reference of the message for which the status is requested and the business reference of the order. For comparison, see the ISO20022 official specification
classDiagram direction tb %% MessageAndBusinessReference2 recursion level 0 with max 1 class MessageAndBusinessReference2{ IndividualOrderReference IsoMax35Text } MessageAndBusinessReference2 *-- "1..1" AdditionalReference3 : OtherReference MessageAndBusinessReference2 *-- "1..1" AdditionalReference3 : PreviousReference MessageAndBusinessReference2 *-- "0..1" InvestmentAccount13 : InvestmentAccount %% AdditionalReference3 recursion level 1 with max 1 class AdditionalReference3{ Reference IsoMax35Text MessageName IsoMax35Text } AdditionalReference3 *-- "0..1" IPartyIdentification2Choice : ReferenceIssuer %% AdditionalReference3 recursion level 1 with max 1 class AdditionalReference3{ Reference IsoMax35Text MessageName IsoMax35Text } AdditionalReference3 *-- "0..1" IPartyIdentification2Choice : ReferenceIssuer %% InvestmentAccount13 recursion level 1 with max 1 class InvestmentAccount13{ AccountName IsoMax35Text AccountDesignation IsoMax35Text } InvestmentAccount13 *-- "1..1" AccountIdentification1 : AccountIdentification InvestmentAccount13 *-- "0..0" IPartyIdentification2Choice : OwnerIdentification InvestmentAccount13 *-- "0..1" IPartyIdentification2Choice : AccountServicer
MessageAndBusinessReference2 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
OtherReference | Reference to a linked message sent in a proprietary way or reference of a system. | AdditionalReference3 - Required 1..1 |
PreviousReference | Reference to a linked message that was previously sent. | AdditionalReference3 - Required 1..1 |
IndividualOrderReference | Unique and unambiguous identifier for an order, as assigned by the instructing party. | IsoMax35Text - Unknown 0..0 |
InvestmentAccount | Account information of the order message for which the status is requested. | InvestmentAccount13 - Optional 0..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the RequestForOrderStatusReportV02 implementation follows a specific implementaiton pattern. First of all, RequestForOrderStatusReportV02 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, RequestForOrderStatusReportV02Document implements IOuterDocument. Because RequestForOrderStatusReportV02 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type RequestForOrderStatusReportV02.
classDiagram class IOuterRecord RequestForOrderStatusReportV02 --|> IOuterRecord : Implements RequestForOrderStatusReportV02Document --|> IOuterDocument~RequestForOrderStatusReportV02~ : Implements class IOuterDocument~RequestForOrderStatusReportV02~ { RequestForOrderStatusReportV02 Message }
Document wrapper for serialization
The only real purpose RequestForOrderStatusReportV02Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:setr.018.001.02’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using RequestForOrderStatusReportV02.ToDocument() method. The returned RequestForOrderStatusReportV02Document value will serialize correctly according to ISO 20022 standards.
classDiagram RequestForOrderStatusReportV02Document *-- RequestForOrderStatusReportV02 : 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:setr.018.001.02">
<setr.018.001.02>
<ReqDtls>
<!-- RequestDetails inner content -->
</ReqDtls>
</setr.018.001.02>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_wWrFyNE7Ed-BzquC8wXy7w_-1373686594"
nextVersions="_wy_OWNE7Ed-BzquC8wXy7w_1331513670"
name="RequestForOrderStatusReportV02"
definition="Scope
The RequestForOrderStatusReport is sent by an instructing party, eg, an investment manager or its authorised representative, to the executing party, eg, a transfer agent. There may be one or more intermediary parties between the instructing party and the executing party.
This message requests the status of one or several order instruction or order cancellation messages.
Usage
The RequestForOrderStatusReport message is used to request the status of:
- one or several order messages,
- one or several cancellation messages,
- one or several individual orders within a bulk or multiple order message.
If the RequestForOrderStatusReport message is used to request the status of several messages, then the instructing party will receive several reply messages from the executing party, ie, several OrderInstructionStatusReport messages and/or OrderCancellationStatusReport messages. The number of reply messages will match the number of references stated in the RequestForOrderStatusReport message.
The RequestForOrderStatusReport message may not be used to request the status of an investment account, a transfer or the status of a financial instrument."
registrationStatus="Registered"
messageSet="_urpIICeJEeOCeO5e7islRQ"
xmlName="setr.018.001.02"
xmlTag="setr.018.001.02"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_wWrFydE7Ed-BzquC8wXy7w_93958643"
name="RequestDetails"
definition="Information to identify the order(s) for which the status is requested."
registrationStatus="Provisionally Registered"
minOccurs="1"
xmlTag="ReqDtls"
complexType="_UvH_lNp-Ed-ak6NoX_4Aeg_-1303328661" />
<messageDefinitionIdentifier
businessArea="setr"
messageFunctionality="018"
flavour="001"
version="02" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.