setr.016.001.02
Scope The OrderInstructionStatusReport is sent by an executing party, eg, a transfer agent, to an instructing party, eg, an investment manager or its authorised representative. There may be one or more intermediary parties between the executing party and the instructing party. The intermediary party is, for example, an intermediary or a concentrator. This message reports the status of an order from the time the executing party receives the order until the order is executed. Usage The OrderInstructionStatusReport message is sent by an executing party to the instructing party to report on the status of a subscription, redemption or a switch order. The message can be used to report one of the following:
- a received status, or
- an accepted status, or
- a sent to next party status, or
- an already executed status, or
- a cancelled status, or
- a conditionally accepted status, or
- a rejected status, or
- a suspended status, or
- an in-repair status (at the individual order level only), or
- repaired conditions (at the individual order level only). For subscription and redemption orders, the OrderInstructionStatusReport message covers both bulk and multiple categories of orders, and this message may provide the status either at the bulk or at the individual level. For a switch order, this message provides the status of the whole order, ie, it is not possible to accept one leg and to reject the other leg, the entire switch order has to be rejected. In order to identify which leg within the switch is causing a problem, the redemption or subscription leg identification is used.
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 %% OrderInstructionStatusReportV02 recursion level 0 with max 0 OrderInstructionStatusReportV02 *-- "1..2" AdditionalReference3 : OtherReference OrderInstructionStatusReportV02 *-- "1..2" AdditionalReference3 : RelatedReference OrderInstructionStatusReportV02 *-- "0..1" AdditionalReference3 : MasterReference OrderInstructionStatusReportV02 *-- "1..1" OrderStatusAndReason3 : OrderDetailsReport OrderInstructionStatusReportV02 *-- "1..1" IndividualOrderStatusAndReason1 : IndividualOrderDetailsReport
Now, we will zero-in one-by-one on each of these building blocks.
OtherReference building block
Reference to a linked message sent in a proprietary way or reference of a system. References a related message or provides another reference, such as a pool reference, linking a set of messages. The party which issued the related reference may be the Sender of the referenced message or a party other than the Sender. For comparison, see the ISO20022 official specification
classDiagram direction tb %% AdditionalReference3 recursion level 0 with max 1 class AdditionalReference3{ Reference IsoMax35Text MessageName IsoMax35Text } AdditionalReference3 *-- "0..1" IPartyIdentification2Choice : ReferenceIssuer %% IPartyIdentification2Choice recursion level 1 with max 1
AdditionalReference3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Reference | Business reference of a message assigned by the party issuing the message. This reference must be unique amongst all messages of the same name sent by the same party. | IsoMax35Text - Required 1..1 |
ReferenceIssuer | Issuer of the reference. | IPartyIdentification2Choice - Optional 0..1 |
MessageName | Name of a message. | IsoMax35Text - Optional 0..1 |
RelatedReference building block
Reference to a linked message that was previously received. References a related message or provides another reference, such as a pool reference, linking a set of messages. The party which issued the related reference may be the Sender of the referenced message or a party other than the Sender. For comparison, see the ISO20022 official specification
classDiagram direction tb %% AdditionalReference3 recursion level 0 with max 1 class AdditionalReference3{ Reference IsoMax35Text MessageName IsoMax35Text } AdditionalReference3 *-- "0..1" IPartyIdentification2Choice : ReferenceIssuer %% IPartyIdentification2Choice recursion level 1 with max 1
AdditionalReference3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Reference | Business reference of a message assigned by the party issuing the message. This reference must be unique amongst all messages of the same name sent by the same party. | IsoMax35Text - Required 1..1 |
ReferenceIssuer | Issuer of the reference. | IPartyIdentification2Choice - Optional 0..1 |
MessageName | Name of a message. | IsoMax35Text - Optional 0..1 |
MasterReference building block
Reference to a multiple order or bulk order that represents the common reference of several individual orders. References a related message or provides another reference, such as a pool reference, linking a set of messages. The party which issued the related reference may be the Sender of the referenced message or a party other than the Sender. For comparison, see the ISO20022 official specification
classDiagram direction tb %% AdditionalReference3 recursion level 0 with max 1 class AdditionalReference3{ Reference IsoMax35Text MessageName IsoMax35Text } AdditionalReference3 *-- "0..1" IPartyIdentification2Choice : ReferenceIssuer %% IPartyIdentification2Choice recursion level 1 with max 1
AdditionalReference3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Reference | Business reference of a message assigned by the party issuing the message. This reference must be unique amongst all messages of the same name sent by the same party. | IsoMax35Text - Required 1..1 |
ReferenceIssuer | Issuer of the reference. | IPartyIdentification2Choice - Optional 0..1 |
MessageName | Name of a message. | IsoMax35Text - Optional 0..1 |
OrderDetailsReport building block
Status report details of a bulk or multiple or switch order that was previously received. Status report of a bulk or multiple or switch order that was previously received. For comparison, see the ISO20022 official specification
classDiagram direction tb %% OrderStatusAndReason3 recursion level 0 with max 1 class OrderStatusAndReason3{ Status OrderStatus2Code SwitchOrderLegIdentification IsoMax35Text } OrderStatusAndReason3 *-- "1..1" CancelledStatus1 : Cancelled OrderStatusAndReason3 *-- "1..1" ConditionallyAcceptedStatus1 : ConditionallyAccepted OrderStatusAndReason3 *-- "1..1" RejectedStatus3 : Rejected OrderStatusAndReason3 *-- "1..1" SuspendedStatus1 : Suspended OrderStatusAndReason3 *-- "0..1" IPartyIdentification2Choice : StatusInitiator %% CancelledStatus1 recursion level 1 with max 1 class CancelledStatus1{ NoReason NoReasonCode } CancelledStatus1 *-- "1..1" CancelledStatusReason1 : Reason CancelledStatus1 *-- "1..1" GenericIdentification1 : DataSourceScheme %% ConditionallyAcceptedStatus1 recursion level 1 with max 1 class ConditionallyAcceptedStatus1{ NoReason NoReasonCode } ConditionallyAcceptedStatus1 *-- "1..1" ConditionallyAcceptedStatusReason1 : Reason ConditionallyAcceptedStatus1 *-- "1..1" GenericIdentification1 : DataSourceScheme %% RejectedStatus3 recursion level 1 with max 1 RejectedStatus3 *-- "1..10" RejectedStatusReason6 : Reason RejectedStatus3 *-- "1..10" GenericIdentification1 : DataSourceScheme %% SuspendedStatus1 recursion level 1 with max 1 class SuspendedStatus1{ NoReason NoReasonCode } SuspendedStatus1 *-- "1..1" SuspendedStatusReason1 : Reason SuspendedStatus1 *-- "1..1" GenericIdentification1 : DataSourceScheme %% IPartyIdentification2Choice recursion level 1 with max 1
OrderStatusAndReason3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Status | Status of the order is accepted or already executed or sent to next party or received. There is no reason attached. | OrderStatus2Code - Required 1..1 |
Cancelled | Status of the order details is cancelled. This status is used for orders that have been accepted or that have been entered in an order book but that can not be executed. | CancelledStatus1 - Required 1..1 |
ConditionallyAccepted | Status of the order details is conditionally accepted. | ConditionallyAcceptedStatus1 - Required 1..1 |
Rejected | Status of the order details is rejected. This status is used for orders that have not been accepted or entered in an order book. | RejectedStatus3 - Required 1..1 |
Suspended | Status of the order details is suspended. | SuspendedStatus1 - Required 1..1 |
StatusInitiator | Party that initiates the status of the order. | IPartyIdentification2Choice - Optional 0..1 |
SwitchOrderLegIdentification | Unique and unambiguous technical identification of an instance of a leg within a switch. | IsoMax35Text - Optional 0..1 |
IndividualOrderDetailsReport building block
Status report details of the individual orders of a bulk or multiple order that was previously received. Status report of the individual orders of a bulk or multiple order that was previously received. For comparison, see the ISO20022 official specification
classDiagram direction tb %% IndividualOrderStatusAndReason1 recursion level 0 with max 1 class IndividualOrderStatusAndReason1{ Status OrderStatus2Code OrderReference IsoMax35Text } IndividualOrderStatusAndReason1 *-- "1..1" CancelledStatus1 : Cancelled IndividualOrderStatusAndReason1 *-- "1..1" ConditionallyAcceptedStatus1 : ConditionallyAccepted IndividualOrderStatusAndReason1 *-- "1..1" InRepairStatus1 : InRepair IndividualOrderStatusAndReason1 *-- "1..1" RejectedStatus3 : Rejected IndividualOrderStatusAndReason1 *-- "1..1" SuspendedStatus1 : Suspended IndividualOrderStatusAndReason1 *-- "1..1" RepairedConditions2 : RepairedConditions IndividualOrderStatusAndReason1 *-- "0..1" IPartyIdentification2Choice : StatusInitiator IndividualOrderStatusAndReason1 *-- "0..1" IInvestmentAccountOrFinancialInstrument1Choice : InvestmentAccountOrFinancialInstrument IndividualOrderStatusAndReason1 *-- "0..1" ExpectedExecutionDetails1 : NewDetails %% CancelledStatus1 recursion level 1 with max 1 class CancelledStatus1{ NoReason NoReasonCode } CancelledStatus1 *-- "1..1" CancelledStatusReason1 : Reason CancelledStatus1 *-- "1..1" GenericIdentification1 : DataSourceScheme %% ConditionallyAcceptedStatus1 recursion level 1 with max 1 class ConditionallyAcceptedStatus1{ NoReason NoReasonCode } ConditionallyAcceptedStatus1 *-- "1..1" ConditionallyAcceptedStatusReason1 : Reason ConditionallyAcceptedStatus1 *-- "1..1" GenericIdentification1 : DataSourceScheme %% InRepairStatus1 recursion level 1 with max 1 class InRepairStatus1{ NoReason NoReasonCode } InRepairStatus1 *-- "1..1" InRepairStatusReason1 : Reason InRepairStatus1 *-- "1..1" GenericIdentification1 : DataSourceScheme %% RejectedStatus3 recursion level 1 with max 1 RejectedStatus3 *-- "1..10" RejectedStatusReason6 : Reason RejectedStatus3 *-- "1..10" GenericIdentification1 : DataSourceScheme %% SuspendedStatus1 recursion level 1 with max 1 class SuspendedStatus1{ NoReason NoReasonCode } SuspendedStatus1 *-- "1..1" SuspendedStatusReason1 : Reason SuspendedStatus1 *-- "1..1" GenericIdentification1 : DataSourceScheme %% RepairedConditions2 recursion level 1 with max 1 RepairedConditions2 *-- "0..10" Charge11 : RepairedCharge RepairedConditions2 *-- "0..10" Commission7 : RepairedCommission %% IPartyIdentification2Choice recursion level 1 with max 1 %% IInvestmentAccountOrFinancialInstrument1Choice recursion level 1 with max 1 %% ExpectedExecutionDetails1 recursion level 1 with max 1 class ExpectedExecutionDetails1{ ExpectedSettlementDate IsoISODate } ExpectedExecutionDetails1 *-- "0..1" IDateAndDateTimeChoice : ExpectedTradeDateTime
IndividualOrderStatusAndReason1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Status | Status of the order is accepted or already executed or sent to next party or received. There is no reason attached. | OrderStatus2Code - Required 1..1 |
Cancelled | Status of the individual order details is cancelled. | CancelledStatus1 - Required 1..1 |
ConditionallyAccepted | Status of the individual order details is conditionally accepted. | ConditionallyAcceptedStatus1 - Required 1..1 |
InRepair | Status of the individual order details is in repair. | InRepairStatus1 - Required 1..1 |
Rejected | Status of the individual order details is rejected. | RejectedStatus3 - Required 1..1 |
Suspended | Status of the individual order details is suspended. | SuspendedStatus1 - Required 1..1 |
RepairedConditions | Elements from the original individual order details that have been repaired so that the order can be accepted. | RepairedConditions2 - Required 1..1 |
OrderReference | Unique and unambiguous identifier for an order, as assigned by the instructing party. | IsoMax35Text - Required 1..1 |
StatusInitiator | Party that initiates the status of the order. | IPartyIdentification2Choice - Optional 0..1 |
InvestmentAccountOrFinancialInstrument | Choice between the investment account and the financial instrument. | IInvestmentAccountOrFinancialInstrument1Choice - Optional 0..1 |
NewDetails | Information that has been added to the original order. | ExpectedExecutionDetails1 - Optional 0..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the OrderInstructionStatusReportV02 implementation follows a specific implementaiton pattern. First of all, OrderInstructionStatusReportV02 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, OrderInstructionStatusReportV02Document implements IOuterDocument. Because OrderInstructionStatusReportV02 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type OrderInstructionStatusReportV02.
classDiagram class IOuterRecord OrderInstructionStatusReportV02 --|> IOuterRecord : Implements OrderInstructionStatusReportV02Document --|> IOuterDocument~OrderInstructionStatusReportV02~ : Implements class IOuterDocument~OrderInstructionStatusReportV02~ { OrderInstructionStatusReportV02 Message }
Document wrapper for serialization
The only real purpose OrderInstructionStatusReportV02Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:setr.016.001.02’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using OrderInstructionStatusReportV02.ToDocument() method. The returned OrderInstructionStatusReportV02Document value will serialize correctly according to ISO 20022 standards.
classDiagram OrderInstructionStatusReportV02Document *-- OrderInstructionStatusReportV02 : 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.016.001.02">
<setr.016.001.02>
<OthrRef>
<!-- OtherReference inner content -->
</OthrRef>
<RltdRef>
<!-- RelatedReference inner content -->
</RltdRef>
<MstrRef>
<!-- MasterReference inner content -->
</MstrRef>
<OrdrDtlsRpt>
<!-- OrderDetailsReport inner content -->
</OrdrDtlsRpt>
<IndvOrdrDtlsRpt>
<!-- IndividualOrderDetailsReport inner content -->
</IndvOrdrDtlsRpt>
</setr.016.001.02>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_jH1s-NE7Ed-BzquC8wXy7w_1853868190"
nextVersions="_jk5cZdE7Ed-BzquC8wXy7w_-141988055"
name="OrderInstructionStatusReportV02"
definition="Scope
The OrderInstructionStatusReport is sent by an executing party, eg, a transfer agent, to an instructing party, eg, an investment manager or its authorised representative. There may be one or more intermediary parties between the executing party and the instructing party. The intermediary party is, for example, an intermediary or a concentrator.
This message reports the status of an order from the time the executing party receives the order until the order is executed.
Usage
The OrderInstructionStatusReport message is sent by an executing party to the instructing party to report on the status of a subscription, redemption or a switch order.
The message can be used to report one of the following:
- a received status, or
- an accepted status, or
- a sent to next party status, or
- an already executed status, or
- a cancelled status, or
- a conditionally accepted status, or
- a rejected status, or
- a suspended status, or
- an in-repair status (at the individual order level only), or
- repaired conditions (at the individual order level only).
For subscription and redemption orders, the OrderInstructionStatusReport message covers both bulk and multiple categories of orders, and this message may provide the status either at the bulk or at the individual level.
For a switch order, this message provides the status of the whole order, ie, it is not possible to accept one leg and to reject the other leg, the entire switch order has to be rejected. In order to identify which leg within the switch is causing a problem, the redemption or subscription leg identification is used."
registrationStatus="Registered"
messageSet="_urpIICeJEeOCeO5e7islRQ"
xmlName="setr.016.001.02"
xmlTag="setr.016.001.02"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<constraint
xmi:id="_jH_d9dE7Ed-BzquC8wXy7w_994217650"
name="MessageNameRule"
definition="If MasterReference is present, then MasterReference/MessageName is not allowed."
registrationStatus="Provisionally Registered" />
<constraint
xmi:id="_jH_d-NE7Ed-BzquC8wXy7w_994217945"
name="RelatedReferenceGuideline"
definition="If RelatedReference/MessageName is present, it must contain 502 or must start with setr.001 or setr.004 or setr.007 or setr.010 or setr.013 or setr.025 and Reference must contain the business reference of a message in this list."
registrationStatus="Provisionally Registered" />
<constraint
xmi:id="_jH_d-9E7Ed-BzquC8wXy7w_994218040"
name="OtherReferenceGuideline"
definition="OtherReference should be used for orders sent by proprietary way or for system references. 
If OtherReference is present, OtherReference/MessageName must contain 'fax' or 'phone' or 'email'."
registrationStatus="Provisionally Registered" />
<constraint
xmi:id="_jH_d_tE7Ed-BzquC8wXy7w_994218408"
name="StatusCancelledGuideline"
definition="Status 'cancelled' must be used to report a cancellation that is not originated by the instructing party.

If a cancellation has been originated by the instructing party then the message OrderCancellationStatusReport must be used to report the status of this cancellation request."
registrationStatus="Provisionally Registered" />
<xors
xmi:id="_jH_d8tE7Ed-BzquC8wXy7w_994217573"
name="OrderDetailsOrIndividualOrderDetailsRule"
definition="If OrderDetailsReport is present, then no occurrence of IndividualOrderDetailsReport is allowed. If OrderDetailsReport is not present, then at least one occurrence of IndividualOrderDetailsReport must be present."
registrationStatus="Provisionally Registered"
impactedMessageBuildingBlocks="_jH_d8NE7Ed-BzquC8wXy7w_178929891 _jH_d8dE7Ed-BzquC8wXy7w_289696390" />
<xors
xmi:id="_jH_eAdE7Ed-BzquC8wXy7w_994218520"
name="RelatedReferenceOrOtherReferenceRule"
definition="At least one occurrence of either RelatedReference or OtherReference must be present, but not both."
registrationStatus="Provisionally Registered"
impactedMessageBuildingBlocks="_jH1s-dE7Ed-BzquC8wXy7w_-220954983 _jH1s-tE7Ed-BzquC8wXy7w_81957477" />
<messageBuildingBlock
xmi:id="_jH1s-dE7Ed-BzquC8wXy7w_-220954983"
name="OtherReference"
definition="Reference to a linked message sent in a proprietary way or reference of a system."
registrationStatus="Provisionally Registered"
maxOccurs="2"
minOccurs="1"
xmlTag="OthrRef"
complexType="_Q6vvAdp-Ed-ak6NoX_4Aeg_2101402955" />
<messageBuildingBlock
xmi:id="_jH1s-tE7Ed-BzquC8wXy7w_81957477"
name="RelatedReference"
definition="Reference to a linked message that was previously received."
registrationStatus="Provisionally Registered"
maxOccurs="2"
minOccurs="1"
xmlTag="RltdRef"
complexType="_Q6vvAdp-Ed-ak6NoX_4Aeg_2101402955" />
<messageBuildingBlock
xmi:id="_jH1s-9E7Ed-BzquC8wXy7w_-293915217"
name="MasterReference"
definition="Reference to a multiple order or bulk order that represents the common reference of several individual orders."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="MstrRef"
complexType="_Q6vvAdp-Ed-ak6NoX_4Aeg_2101402955" />
<messageBuildingBlock
xmi:id="_jH_d8NE7Ed-BzquC8wXy7w_178929891"
name="OrderDetailsReport"
definition="Status report details of a bulk or multiple or switch order that was previously received."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="OrdrDtlsRpt"
complexType="_Uvkrg9p-Ed-ak6NoX_4Aeg_-1625631905" />
<messageBuildingBlock
xmi:id="_jH_d8dE7Ed-BzquC8wXy7w_289696390"
name="IndividualOrderDetailsReport"
definition="Status report details of the individual orders of a bulk or multiple order that was previously received."
registrationStatus="Provisionally Registered"
minOccurs="1"
xmlTag="IndvOrdrDtlsRpt"
complexType="_Uu1Eptp-Ed-ak6NoX_4Aeg_-1083249158" />
<messageDefinitionIdentifier
businessArea="setr"
messageFunctionality="016"
flavour="001"
version="02" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.