InformationResponseSD1V01

supl.027.001.01

This extends the message InformationRequestResponse.

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
%% InformationResponseSD1V01 recursion level 0 with max 0
class InformationResponseSD1V01{
    InvestigationIdentification IsoMax35Text
    CreationDateTime IsoISODateTime
}
InformationResponseSD1V01 *-- "1..1" BranchAndFinancialInstitutionIdentification4 : AccountServicerIdentification
InformationResponseSD1V01 *-- "1..1" AccountAndParties2 : AccountAndParties
  

Now, we will zero-in one-by-one on each of these building blocks.

InvestigationIdentification building block

Information used to identify the request. Specifies a character string with a maximum length of 35 characters. For comparison, see the ISO20022 official specification This message is declared as Max35Text in the ISO specification. In our implementation, it is represented in source code as IsoMax35Text. Due to global using directives, it is treated as a System.String by the compiler and runtime.

CreationDateTime building block

Date and time of creation of the extension. A particular point in the progression of time defined by a mandatory date and a mandatory time component, expressed in either UTC time format (YYYY-MM-DDThh:mm:ss.sssZ), local time with UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), or local time format (YYYY-MM-DDThh:mm:ss.sss). These representations are defined in “XML Schema Part 2: Datatypes Second Edition - W3C Recommendation 28 October 2004” which is aligned with ISO 8601. Note on the time format:

  1. beginning / end of calendar day 00:00:00 = the beginning of a calendar day 24:00:00 = the end of a calendar day
  2. fractions of second in time format Decimal fractions of seconds may be included. In this case, the involved parties shall agree on the maximum number of digits that are allowed. For comparison, see the ISO20022 official specification This message is declared as ISODateTime in the ISO specification. In our implementation, it is represented in source code as IsoISODateTime. Due to global using directives, it is treated as a System.DateTime by the compiler and runtime.

AccountServicerIdentification building block

Identifies the account servicing institution. Set of elements used to uniquely and unambiguously identify a financial institution or a branch of a financial institution. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% BranchAndFinancialInstitutionIdentification4 recursion level 0 with max 1
BranchAndFinancialInstitutionIdentification4 *-- "1..1" FinancialInstitutionIdentification7 : FinancialInstitutionIdentification
BranchAndFinancialInstitutionIdentification4 *-- "0..1" BranchData2 : BranchIdentification
%% FinancialInstitutionIdentification7 recursion level 1 with max 1
class FinancialInstitutionIdentification7{
    BIC IsoBICIdentifier
    Name IsoMax140Text
}
FinancialInstitutionIdentification7 *-- "0..1" ClearingSystemMemberIdentification2 : ClearingSystemMemberIdentification
FinancialInstitutionIdentification7 *-- "0..1" PostalAddress6 : PostalAddress
FinancialInstitutionIdentification7 *-- "0..1" GenericFinancialIdentification1 : Other
%% BranchData2 recursion level 1 with max 1
class BranchData2{
    Identification IsoMax35Text
    Name IsoMax140Text
}
BranchData2 *-- "0..1" PostalAddress6 : PostalAddress
  

BranchAndFinancialInstitutionIdentification4 members

Member name Description Data Type / Multiplicity
FinancialInstitutionIdentification Unique and unambiguous identification of a financial institution, as assigned under an internationally recognised or proprietary identification scheme. FinancialInstitutionIdentification7 - Required 1..1
BranchIdentification Identifies a specific branch of a financial institution.

AccountAndParties building block

Requested account and its owners. Specifies the details of the account and the role of the party. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% AccountAndParties2 recursion level 0 with max 1
class AccountAndParties2{
    AdditionalInformation IsoMax256Text
}
AccountAndParties2 *-- "1..1" CustomerAccount1 : Account
AccountAndParties2 *-- "1..0" AccountRole1 : Role
%% CustomerAccount1 recursion level 1 with max 1
class CustomerAccount1{
    Name IsoMax70Text
    Status AccountStatus3Code
    Currency ActiveCurrencyCode
    MonthlyPaymentValue IsoImpliedCurrencyAndAmount
    MonthlyReceivedValue IsoImpliedCurrencyAndAmount
    MonthlyTransactionNumber IsoMax5NumericText
    AverageBalance IsoImpliedCurrencyAndAmount
    AccountPurpose IsoMax140Text
    FloorNotificationAmount IsoImpliedCurrencyAndAmount
    CeilingNotificationAmount IsoImpliedCurrencyAndAmount
    StatementCycle Frequency3Code
    ClosingDate IsoISODate
}
CustomerAccount1 *-- "1..1" IAccountIdentification4Choice : Identification
CustomerAccount1 *-- "0..1" CashAccountType2 : Type
CustomerAccount1 *-- "0..0" Restriction1 : Restriction
%% AccountRole1 recursion level 1 with max 1
class AccountRole1{
    StartDate IsoISODate
    EndDate IsoISODate
}
AccountRole1 *-- "1..1" PartyIdentification41 : Party
AccountRole1 *-- "1..1" OwnerType1 : OwnerType
  

AccountAndParties2 members

Member name Description Data Type / Multiplicity
Account Description of the account. CustomerAccount1 - Required 1..1
Role Specifies the role related to the account. AccountRole1 - Unknown 1..0
AdditionalInformation Additional information. IsoMax256Text - Unknown 0..0

Extensibility and generalization considerations

To facilitate generalized design patterns in the system, the InformationResponseSD1V01 implementation follows a specific implementaiton pattern. First of all, InformationResponseSD1V01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, InformationResponseSD1V01Document implements IOuterDocument. Because InformationResponseSD1V01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type InformationResponseSD1V01.

classDiagram
    class IOuterRecord
    InformationResponseSD1V01 --|> IOuterRecord : Implements
    InformationResponseSD1V01Document --|> IOuterDocument~InformationResponseSD1V01~ : Implements
    class IOuterDocument~InformationResponseSD1V01~ {
        InformationResponseSD1V01 Message
     }
  

Document wrapper for serialization

The only real purpose InformationResponseSD1V01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:supl.027.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using InformationResponseSD1V01.ToDocument() method. The returned InformationResponseSD1V01Document value will serialize correctly according to ISO 20022 standards.

classDiagram
    InformationResponseSD1V01Document *-- InformationResponseSD1V01 : 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:supl.027.001.01">
    <InfRspnSD1>
        <InvstgtnId>
            <!-- InvestigationIdentification inner content -->
        </InvstgtnId>
        <CreDtTm>
            <!-- CreationDateTime inner content -->
        </CreDtTm>
        <AcctSvcrId>
            <!-- AccountServicerIdentification inner content -->
        </AcctSvcrId>
        <AcctAndPties>
            <!-- AccountAndParties inner content -->
        </AcctAndPties>
    </InfRspnSD1>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_8nOCwC_7EeOKib24wnHaFg"
  name="InformationResponseSD1V01"
  definition="This extends the message InformationRequestResponse."
  registrationStatus="Registered"
  messageSet="_QB0RcDy5EeO-tdK14jsZag"
  xmlTag="InfRspnSD1"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <messageBuildingBlock
    xmi:id="_hWzaoJirEeO4o528ngEXuw"
    name="InvestigationIdentification"
    definition="Information used to identify the request."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="InvstgtnId"
    simpleType="_YW1tKdp-Ed-ak6NoX_4Aeg_1913463446" />
  <messageBuildingBlock
    xmi:id="_pfuCgJirEeO4o528ngEXuw"
    name="CreationDateTime"
    definition="Date and time of creation of the extension."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="CreDtTm"
    simpleType="_YW1tKtp-Ed-ak6NoX_4Aeg_-1624336183" />
  <messageBuildingBlock
    xmi:id="_oUIuoC_8EeOKib24wnHaFg"
    name="AccountServicerIdentification"
    definition="Identifies the account servicing institution."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="AcctSvcrId"
    complexType="_TFB1RNp-Ed-ak6NoX_4Aeg_-736060150" />
  <messageBuildingBlock
    xmi:id="_jqrv4C__EeOKib24wnHaFg"
    name="AccountAndParties"
    definition="Requested account and its owners."
    registrationStatus="Provisionally Registered"
    minOccurs="1"
    xmlTag="AcctAndPties"
    complexType="_ApDrEC_9EeOKib24wnHaFg" />
  <messageDefinitionIdentifier
    businessArea="supl"
    messageFunctionality="027"
    flavour="001"
    version="01" />
</messageDefinition>

ISO Building Blocks

The following items are used as building blocks to construct this message.