OrderInstructionStatusReportV02

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:

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&#xD;&#xA;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.&#xD;&#xA;This message reports the status of an order from the time the executing party receives the order until the order is executed.&#xD;&#xA;Usage&#xD;&#xA;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.&#xD;&#xA;The message can be used to report one of the following:&#xD;&#xA;- a received status, or&#xD;&#xA;- an accepted status, or&#xD;&#xA;- a sent to next party status, or&#xD;&#xA;- an already executed status, or&#xD;&#xA;- a cancelled status, or&#xD;&#xA;- a conditionally accepted status, or&#xD;&#xA;- a rejected status, or&#xD;&#xA;- a suspended status, or&#xD;&#xA;- an in-repair status (at the individual order level only), or&#xD;&#xA;- repaired conditions (at the individual order level only).&#xD;&#xA;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.&#xD;&#xA;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. &#xA;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.&#xA;&#xA;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.