FundReferenceDataReportV06

reda.004.001.06

Scope The FundReferenceDataReport message is sent by a report provider, for example, a fund promoter, fund management company, transfer agent, or market data provider to the report recipient, for example, a professional investor, investment fund distributor, market data provider, regulator or other interested party, to provide the key reference data for financial instruments to facilitate trading. The message may also include reporting data concerning product governance, such as target market data, and a breakdown of the costs and fees. Usage A FundReferenceDataReport message should be prepared for each class of unit/share (for which an individual ISIN should have been allocated), in respect of its “home” market. Each time the fund data changes, the ‘product provider’ must provide the data to a product user, for example, the distributors, by sending a new funds reference data report. A single message may contain more than one report. When the FundReferenceDataReport message is sent to provide updated reference data, the message overwrites the previously sent data. The FundReferenceDataReport message may be used in various models or environments:

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
%% FundReferenceDataReportV06 recursion level 0 with max 0
class FundReferenceDataReportV06{
    FundReferenceDataReportIdentification IsoMax35Text
}
FundReferenceDataReportV06 *-- "1..1" MessageIdentification1 : MessageIdentification
FundReferenceDataReportV06 *-- "0..1" AdditionalReference10 : PreviousReference
FundReferenceDataReportV06 *-- "0..1" AdditionalReference10 : RelatedReference
FundReferenceDataReportV06 *-- "1..1" FundReferenceDataReport4 : Report
  

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

MessageIdentification building block

Reference that uniquely identifies the message from a business application standpoint. Identifies a message by a unique identifier and the date and time when the message was created by the sender. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% MessageIdentification1 recursion level 0 with max 1
class MessageIdentification1{
    Identification IsoMax35Text
    CreationDateTime IsoISODateTime
}
  

MessageIdentification1 members

Member name Description Data Type / Multiplicity
Identification Identification of the message. IsoMax35Text - Required 1..1
CreationDateTime Date of creation of the message. IsoISODateTime - Required 1..1

PreviousReference building block

Reference to a linked message that was previously sent. Reference and reference issuer. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% AdditionalReference10 recursion level 0 with max 1
class AdditionalReference10{
    Reference IsoMax35Text
    MessageName IsoMax35Text
}
AdditionalReference10 *-- "0..1" PartyIdentification139 : ReferenceIssuer
%% PartyIdentification139 recursion level 1 with max 1
class PartyIdentification139{
    LEI IsoLEIIdentifier
}
PartyIdentification139 *-- "1..1" IPartyIdentification125Choice : Party
  

AdditionalReference10 members

Member name Description Data Type / Multiplicity
Reference Reference issued by a party to identify an instruction, transaction or a message. IsoMax35Text - Required 1..1
ReferenceIssuer Issuer of the reference. PartyIdentification139 - Optional 0..1
MessageName Name of the message. IsoMax35Text - Optional 0..1

RelatedReference building block

Reference to a linked message that was previously received. Reference and reference issuer. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% AdditionalReference10 recursion level 0 with max 1
class AdditionalReference10{
    Reference IsoMax35Text
    MessageName IsoMax35Text
}
AdditionalReference10 *-- "0..1" PartyIdentification139 : ReferenceIssuer
%% PartyIdentification139 recursion level 1 with max 1
class PartyIdentification139{
    LEI IsoLEIIdentifier
}
PartyIdentification139 *-- "1..1" IPartyIdentification125Choice : Party
  

AdditionalReference10 members

Member name Description Data Type / Multiplicity
Reference Reference issued by a party to identify an instruction, transaction or a message. IsoMax35Text - Required 1..1
ReferenceIssuer Issuer of the reference. PartyIdentification139 - Optional 0..1
MessageName Name of the message. IsoMax35Text - Optional 0..1

FundReferenceDataReportIdentification building block

Unique and unambiguous identifier for the fund reference data report, as assigned by the issuer of the report. 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.

Report building block

Fund reference data. Fund reference data. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% FundReferenceDataReport4 recursion level 0 with max 1
class FundReferenceDataReport4{
    Identification IsoMax35Text
    GeneralReferenceDate IsoISODate
    TargetMarketIndicator IsoYesNoIndicator
    ExAnteIndicator IsoYesNoIndicator
    ExPostIndicator IsoYesNoIndicator
}
FundReferenceDataReport4 *-- "0..1" MarketPracticeVersion1 : Version
FundReferenceDataReport4 *-- "0..1" ContactAttributes6 : AuthorisedProxy
FundReferenceDataReport4 *-- "1..1" SecurityIdentification41 : SecurityIdentification
FundReferenceDataReport4 *-- "0..1" FundParties1 : FundParties
FundReferenceDataReport4 *-- "0..1" OrderDesk1 : MainFundOrderDesk
FundReferenceDataReport4 *-- "0..1" ContactAttributes5 : FundManagementCompany
FundReferenceDataReport4 *-- "0..1" FinancialInstrument96 : FundDetails
FundReferenceDataReport4 *-- "0..1" ValuationDealingProcessingCharacteristics3 : ValuationDealingCharacteristics
FundReferenceDataReport4 *-- "0..1" InvestmentRestrictions3 : InvestmentRestrictions
FundReferenceDataReport4 *-- "0..1" ProcessingCharacteristics8 : SubscriptionProcessingCharacteristics
FundReferenceDataReport4 *-- "0..1" ProcessingCharacteristics7 : RedemptionProcessingCharacteristics
FundReferenceDataReport4 *-- "0..1" ProcessingCharacteristics6 : SwitchProcessingCharacteristics
FundReferenceDataReport4 *-- "0..0" InvestmentPlanCharacteristics1 : PlanCharacteristics
FundReferenceDataReport4 *-- "0..0" PaymentInstrument16 : PaymentInstrument
FundReferenceDataReport4 *-- "0..0" CashAccount205 : CashSettlementDetails
FundReferenceDataReport4 *-- "0..0" LocalMarketAnnex5 : LocalMarketAnnex
FundReferenceDataReport4 *-- "0..1" TargetMarket3 : TargetMarket
FundReferenceDataReport4 *-- "0..1" DistributionStrategy1 : DistributionStrategy
FundReferenceDataReport4 *-- "0..2" CostsAndCharges2 : CostsAndCharges
FundReferenceDataReport4 *-- "0..1" AdditionalProductInformation1 : AdditionalProductInformationGermanMarket
FundReferenceDataReport4 *-- "0..1" AdditionalProductInformation2 : AdditionalProductInformationFrenchMarket
FundReferenceDataReport4 *-- "0..0" Extension1 : Extension
%% MarketPracticeVersion1 recursion level 1 with max 1
class MarketPracticeVersion1{
    Name IsoMax35Text
    Date IsoISOYearMonth
    Number IsoMax35Text
}
%% ContactAttributes6 recursion level 1 with max 1
class ContactAttributes6{
    Name IsoMax350Text
    PhoneNumber IsoPhoneNumber
    FaxNumber IsoPhoneNumber
    EmailAddress IsoMax256Text
    URLAddress IsoMax2048Text
    AnyBIC IsoAnyBICDec2014Identifier
    LEI IsoLEIIdentifier
}
ContactAttributes6 *-- "0..1" PostalAddress1 : PostalAddress
%% SecurityIdentification41 recursion level 1 with max 1
class SecurityIdentification41{
    Name IsoMax350Text
    ShortName IsoMax35Text
    ClassType IsoMax35Text
    UmbrellaName IsoMax35Text
    NewUmbrella IsoYesNoIndicator
    BaseCurrency ActiveCurrencyCode
    CountryOfDomicile CountryCode
    RegisteredDistributionCountry CountryCode
    ProductCategory IsoMax140Text
    ProductCategoryGermany IsoMax140Text
    LeveragedOrContigentLiability IsoYesNoIndicator
    NoRetrocessionIndicator IsoYesNoIndicator
}
SecurityIdentification41 *-- "1..1" SecurityIdentification40 : Identification
SecurityIdentification41 *-- "0..1" ISecurityClassificationType2Choice : ClassificationType
SecurityIdentification41 *-- "0..1" IProductStructure1Choice : ProductType
SecurityIdentification41 *-- "0..1" ContactAttributes5 : Issuer
SecurityIdentification41 *-- "0..1" IGovernanceProcess1Choice : IssuerProductGovernanceProcess
SecurityIdentification41 *-- "0..1" INotionalOrUnitBased1Choice : NotionalOrUnitBased
SecurityIdentification41 *-- "0..1" IQuotationType1Choice : QuotationType
SecurityIdentification41 *-- "0..1" IExPostCostCalculationBasis1Choice : ExPostCostCalculationBasis
SecurityIdentification41 *-- "0..0" AdditionalInformation15 : AdditionalInformation
%% FundParties1 recursion level 1 with max 1
FundParties1 *-- "0..1" ContactAttributes5 : Guarantor
FundParties1 *-- "0..1" ContactAttributes5 : Auditor
FundParties1 *-- "0..1" ContactAttributes5 : Trustee
FundParties1 *-- "0..0" ExtendedParty13 : OtherParty
%% OrderDesk1 recursion level 1 with max 1
class OrderDesk1{
    ClosureDates IsoISODate
}
OrderDesk1 *-- "0..1" ContactAttributes5 : OrderDesk
OrderDesk1 *-- "0..0" AdditionalInformation15 : AdditionalInformation
%% ContactAttributes5 recursion level 1 with max 1
class ContactAttributes5{
    Name IsoMax350Text
    PhoneNumber IsoPhoneNumber
    FaxNumber IsoPhoneNumber
    EmailAddress IsoMax256Text
    URLAddress IsoMax2048Text
    AnyBIC IsoAnyBICDec2014Identifier
    LEI IsoLEIIdentifier
}
ContactAttributes5 *-- "0..1" PostalAddress1 : PostalAddress
%% FinancialInstrument96 recursion level 1 with max 1
class FinancialInstrument96{
    PhysicalBearerSecurities IsoYesNoIndicator
    DematerialisedBearerSecurities IsoYesNoIndicator
    PhysicalRegisteredSecurities IsoYesNoIndicator
    DematerialisedRegisteredSecurities IsoYesNoIndicator
    DistributionPolicy DistributionPolicy1Code
    DividendPolicy DividendPolicy1Code
    DividendFrequency EventFrequency5Code
    ReinvestmentFrequency EventFrequency5Code
    FrontEndLoad IsoYesNoIndicator
    BackEndLoad IsoYesNoIndicator
    SwitchFee IsoYesNoIndicator
    EUSavingsDirective EUSavingsDirective1Code
    LaunchDate IsoISODate
    FundEndDate IsoISODate
    TerminationDate IsoISODate
    InitialOfferEndDate IsoISODate
    SuspensionStartDate IsoISODate
    SuspensionEndDate IsoISODate
    MaturityDate IsoISODate
    MayBeTerminatedEarly TargetMarket1Code
    ClosedEndFund IsoYesNoIndicator
    Equalisation IsoYesNoIndicator
    TaxEfficientProductEligible IsoYesNoIndicator
    Authorised IsoYesNoIndicator
    RDRCompliant IsoYesNoIndicator
    ManagementFeeSource AnnualChargePaymentType1Code
    PerformanceFee IsoYesNoIndicator
}
FinancialInstrument96 *-- "0..0" AdditionalInformation15 : AdditionalInformation
%% ValuationDealingProcessingCharacteristics3 recursion level 1 with max 1
class ValuationDealingProcessingCharacteristics3{
    ValuationFrequency EventFrequency5Code
    ValuationFrequencyDescription IsoMax350Text
    ValuationTime IsoISOTime
    DecimalisationUnits IsoNumber
    DecimalisationPrice IsoNumber
    DualFundIndicator IsoYesNoIndicator
    PriceMethod PriceMethod1Code
    PriceCurrency ActiveCurrencyCode
}
ValuationDealingProcessingCharacteristics3 *-- "0..0" AdditionalInformation15 : AdditionalInformation
%% InvestmentRestrictions3 recursion level 1 with max 1
class InvestmentRestrictions3{
    MinimumInitialSubscriptionAmount IsoActiveCurrencyAndAmount
    MinimumInitialSubscriptionUnits IsoNumber
    MinimumSubsequentSubscriptionAmount IsoActiveCurrencyAndAmount
    MinimumSubsequentSubscriptionUnits IsoNumber
    MaximumRedemptionAmount IsoActiveCurrencyAndAmount
    MaximumRedemptionUnits IsoDecimalNumber
    MinimumRedemptionPercentage IsoDecimalNumber
    OtherRedemptionRestrictions IsoMax350Text
    MinimumSwitchSubscriptionAmount IsoActiveCurrencyAndAmount
    MinimumSwitchSubscriptionUnits IsoDecimalNumber
    MaximumSwitchRedemptionAmount IsoActiveCurrencyAndAmount
    MaximumSwitchRedemptionUnits IsoDecimalNumber
    OtherSwitchRestrictions IsoMax350Text
    MinimumHoldingAmount IsoActiveCurrencyAndAmount
    MinimumHoldingUnits IsoDecimalNumber
    MinimumHoldingPeriod IsoMax70Text
    HoldingTransferable HoldingTransferable1Code
}
InvestmentRestrictions3 *-- "0..0" AdditionalInformation15 : AdditionalInformation
%% ProcessingCharacteristics8 recursion level 1 with max 1
class ProcessingCharacteristics8{
    DealingCurrencyAccepted ActiveCurrencyCode
    AmountIndicator IsoYesNoIndicator
    UnitsIndicator IsoYesNoIndicator
    Rounding RoundingDirection2Code
    DealingFrequency EventFrequency5Code
    DealingFrequencyDescription IsoMax350Text
    DealingCutOffTime IsoISOTime
    DealConfirmationTime IsoISOTime
    LimitedPeriod IsoMax350Text
}
ProcessingCharacteristics8 *-- "0..1" Forms1 : InitialInvestmentApplication
ProcessingCharacteristics8 *-- "0..1" Forms1 : SubsequentInvestmentApplication
ProcessingCharacteristics8 *-- "0..1" MainFundOrderDeskLocation1 : MainFundOrderDeskLocation
ProcessingCharacteristics8 *-- "0..1" TimeFrame4 : DealingCutOffTimeFrame
ProcessingCharacteristics8 *-- "0..1" TimeFrame7 : DealConfirmationTimeFrame
ProcessingCharacteristics8 *-- "0..1" ITimeFrame7Choice : SettlementCycle
ProcessingCharacteristics8 *-- "0..0" AdditionalInformation15 : AdditionalInformation
%% ProcessingCharacteristics7 recursion level 1 with max 1
class ProcessingCharacteristics7{
    DealingCurrencyAccepted ActiveCurrencyCode
    AmountIndicator IsoYesNoIndicator
    UnitsIndicator IsoYesNoIndicator
    Rounding RoundingDirection2Code
    PercentageIndicator IsoYesNoIndicator
    DealingFrequency EventFrequency5Code
    DealingFrequencyDescription IsoMax350Text
    DealingCutOffTime IsoISOTime
    DealConfirmationTime IsoISOTime
    LimitedPeriod IsoMax350Text
}
ProcessingCharacteristics7 *-- "0..1" Forms1 : RedemptionAuthorisation
ProcessingCharacteristics7 *-- "0..1" MainFundOrderDeskLocation1 : MainFundOrderDeskLocation
ProcessingCharacteristics7 *-- "0..1" TimeFrame4 : DealingCutOffTimeFrame
ProcessingCharacteristics7 *-- "0..1" TimeFrame6 : DealConfirmationTimeFrame
ProcessingCharacteristics7 *-- "0..1" ITimeFrame8Choice : SettlementCycle
ProcessingCharacteristics7 *-- "0..0" AdditionalInformation15 : AdditionalInformation
%% ProcessingCharacteristics6 recursion level 1 with max 1
class ProcessingCharacteristics6{
    DealingCurrencyAccepted ActiveCurrencyCode
    AmountIndicator IsoYesNoIndicator
    UnitsIndicator IsoYesNoIndicator
    Rounding RoundingDirection2Code
    DealingFrequency EventFrequency5Code
    DealingFrequencyDescription IsoMax350Text
    DealingCutOffTime IsoISOTime
    DealConfirmationTime IsoISOTime
    LimitedPeriod IsoMax350Text
}
ProcessingCharacteristics6 *-- "0..1" Forms1 : SwitchAuthorisation
ProcessingCharacteristics6 *-- "0..1" MainFundOrderDeskLocation1 : MainFundOrderDeskLocation
ProcessingCharacteristics6 *-- "0..1" TimeFrame4 : DealingCutOffTimeFrame
ProcessingCharacteristics6 *-- "0..1" TimeFrame5 : DealConfirmationTimeFrame
ProcessingCharacteristics6 *-- "0..1" ITimeFrame8Choice : SettlementCycle
ProcessingCharacteristics6 *-- "0..0" AdditionalInformation15 : AdditionalInformation
%% InvestmentPlanCharacteristics1 recursion level 1 with max 1
class InvestmentPlanCharacteristics1{
    TotalNumberOfInstalments IsoNumber
    PlanContinuation IsoYesNoIndicator
    AdditionalSubscription IsoYesNoIndicator
    AdditionalSubscriptionFunction IsoYesNoIndicator
}
InvestmentPlanCharacteristics1 *-- "1..1" IInvestmentFundPlanType1Choice : PlanType
InvestmentPlanCharacteristics1 *-- "0..1" IFrequency20Choice : Frequency
InvestmentPlanCharacteristics1 *-- "0..1" IUnitsOrAmount1Choice : Quantity
InvestmentPlanCharacteristics1 *-- "0..0" AdditionalInformation15 : AdditionalInformation
%% PaymentInstrument16 recursion level 1 with max 1
PaymentInstrument16 *-- "1..1" IFundOrderType5Choice : OrderType
PaymentInstrument16 *-- "1..1" IFundPaymentType1Choice : InstrumentType
PaymentInstrument16 *-- "0..0" AdditionalInformation15 : AdditionalInformation
%% CashAccount205 recursion level 1 with max 1
class CashAccount205{
    Currency ActiveCurrencyCode
}
CashAccount205 *-- "0..1" CashAccount206 : PrimaryAccount
CashAccount205 *-- "0..1" CashAccount206 : SecondaryAccount
%% LocalMarketAnnex5 recursion level 1 with max 1
class LocalMarketAnnex5{
    Country CountryCode
}
LocalMarketAnnex5 *-- "1..1" OrderDesk1 : LocalOrderDesk
LocalMarketAnnex5 *-- "0..1" ProcessingCharacteristics8 : SubscriptionProcessingCharacteristics
LocalMarketAnnex5 *-- "0..1" ProcessingCharacteristics5 : RedemptionProcessingCharacteristics
LocalMarketAnnex5 *-- "0..1" ProcessingCharacteristics6 : SwitchProcessingCharacteristics
LocalMarketAnnex5 *-- "0..0" CashAccount205 : CashSettlementDetails
LocalMarketAnnex5 *-- "0..0" AdditionalInformation15 : AdditionalInformation
%% TargetMarket3 recursion level 1 with max 1
class TargetMarket3{
    ReferenceDate IsoISODate
}
TargetMarket3 *-- "0..1" InvestorType2 : InvestorType
TargetMarket3 *-- "0..1" InvestorKnowledge1 : KnowledgeAndOrExperience
TargetMarket3 *-- "0..1" LossBearing2 : AbilityToBearLosses
TargetMarket3 *-- "0..1" RiskTolerance1 : RiskTolerance
TargetMarket3 *-- "0..1" InvestorRequirements3 : ClientObjectivesAndNeeds
TargetMarket3 *-- "0..0" OtherTargetMarket1 : Other
%% DistributionStrategy1 recursion level 1 with max 1
DistributionStrategy1 *-- "0..1" IDistributionStrategy1Choice : ExecutionOnly
DistributionStrategy1 *-- "0..1" IDistributionStrategy1Choice : ExecutionWithAppropriatenessTestOrNonAdvisedServices
DistributionStrategy1 *-- "0..1" IDistributionStrategy1Choice : InvestmentAdvice
DistributionStrategy1 *-- "0..1" IDistributionStrategy1Choice : PortfolioManagement
DistributionStrategy1 *-- "0..1" OtherDistributionStrategy1 : Other
%% CostsAndCharges2 recursion level 1 with max 1
class CostsAndCharges2{
    ExAnteReferenceDate IsoISODate
}
CostsAndCharges2 *-- "1..0" IndividualCostOrCharge2 : IndividualCostOrCharge
CostsAndCharges2 *-- "0..1" AdditionalInformation15 : AdditionalInformation
%% AdditionalProductInformation1 recursion level 1 with max 1
class AdditionalProductInformation1{
    ESGCategoryGermanFundMarket ESGCategoryGermanFundMarket1Code
    ESGCategoryGermanStructuredSecuritiesMarket ESGCategoryGermanStructuredSecuritiesMarket1Code
    ESGFocus ESGFocus1Code
    ESGLabelOrStandard ESGLabelOrStandard1Code
}
%% AdditionalProductInformation2 recursion level 1 with max 1
class AdditionalProductInformation2{
    AMFDoctrine AMFDoctrine1Code
}
%% Extension1 recursion level 1 with max 1
class Extension1{
    PlaceAndName IsoMax350Text
    Text IsoMax350Text
}
  

FundReferenceDataReport4 members

Member name Description Data Type / Multiplicity
Identification Unique technical identifier for an instance of a report within a fund reference data report, as assigned by the issuer of the report. IsoMax35Text - Optional 0..1
Version Version Number. When used in reference to MiFID, this is in the scope of the European MiFID Template (EMT) reference 00001 and is the version of the template for which the EMT data is provided. MarketPracticeVersion1 - Optional 0..1
AuthorisedProxy Party that reports the data on behalf of the issuer and the entry point e-mail address for contact. When used in reference to MiFID, this is in the scope of the European MiFID Template (EMT) references 00002, 00003 and 00004. ContactAttributes6 - Optional 0..1
GeneralReferenceDate Date to which the data refers. When used in reference to MiFID, this is in the scope of the European MiFID Template (EMT) reference 00050. IsoISODate - Required 1..1
TargetMarketIndicator Indicates whether target market data is included in the report. When used in reference to MiFID, this is in the scope of the European MiFID Template (EMT) reference 00006. IsoYesNoIndicator - Optional 0..1
ExAnteIndicator Indicates whether ex ante costs and charges are included in the report. When used in reference to MiFID, this is in the scope of the European MiFID Template (EMT) reference 00007. IsoYesNoIndicator - Optional 0..1
ExPostIndicator Indicates whether ex post costs and charges are included in the report. When used in reference to MiFID, this is in the scope of the European MiFID Template (EMT) reference 00008. IsoYesNoIndicator - Optional 0..1
SecurityIdentification Identification of the security. SecurityIdentification41 - Required 1..1
FundParties Parties related to the investment fund. FundParties1 - Optional 0..1
MainFundOrderDesk Principal entity appointed by the fund, to which orders should be submitted. Usually located in the country of domicile. OrderDesk1 - Optional 0..1
FundManagementCompany Company that is responsible for the management and operation of the fund, for example, determines the investment strategy, appoints the service providers, and makes major decisions for the fund. It is usually responsible for the distribution and marketing of the fund. For self-managed funds, this will often be a separate promoter or sponsor of the fund. ContactAttributes5 - Optional 0..1
FundDetails Security that is a sub-set of an investment fund, and is governed by the same investment fund policy, for example, dividend option or valuation currency. FinancialInstrument96 - Optional 0..1
ValuationDealingCharacteristics Processing characteristics linked to the instrument, that is, not to the market. ValuationDealingProcessingCharacteristics3 - Optional 0..1
InvestmentRestrictions Investment restrictions linked to the trading of the investment fund or an alternative/hedge fund. InvestmentRestrictions3 - Optional 0..1
SubscriptionProcessingCharacteristics Processing characteristics linked to a subscription to the investment fund or alternative/hedge fund. ProcessingCharacteristics8 - Optional 0..1
RedemptionProcessingCharacteristics Processing characteristics linked to a redemption from the investment fund or alternative/hedge fund. ProcessingCharacteristics7 - Optional 0..1
SwitchProcessingCharacteristics Processing characteristics linked to a switch of the investment fund or alternative/hedge fund. ProcessingCharacteristics6 - Optional 0..1
PlanCharacteristics Characteristics of the investment plan. InvestmentPlanCharacteristics1 - Unknown 0..0
PaymentInstrument Specifies, for a specific type of transaction, how amounts are to be paid in or paid out. PaymentInstrument16 - Unknown 0..0
CashSettlementDetails Account to be used for cash settlement. CashAccount205 - Unknown 0..0
LocalMarketAnnex Processing characteristics specific to a local fund order desk. LocalMarketAnnex5 - Unknown 0..0
TargetMarket Target market criteria. TargetMarket3 - Optional 0..1
DistributionStrategy Distribution strategy criteria. DistributionStrategy1 - Optional 0..1
CostsAndCharges Costs and charges associated with the distribution of selling of the financial instrument. These may be one-off or recurring. These may be ex ante (intended) or post ante (actual). CostsAndCharges2 - Collection 0..2
AdditionalProductInformationGermanMarket Additional information required for distribution in the German market. AdditionalProductInformation1 - Optional 0..1
AdditionalProductInformationFrenchMarket Additional information required for distribution in the French market. AdditionalProductInformation2 - Optional 0..1
Extension Additional information that cannot be captured in the structured elements and/or any other specific block. Extension1 - Unknown 0..0

Extensibility and generalization considerations

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

classDiagram
    class IOuterRecord
    FundReferenceDataReportV06 --|> IOuterRecord : Implements
    FundReferenceDataReportV06Document --|> IOuterDocument~FundReferenceDataReportV06~ : Implements
    class IOuterDocument~FundReferenceDataReportV06~ {
        FundReferenceDataReportV06 Message
     }
  

Document wrapper for serialization

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

classDiagram
    FundReferenceDataReportV06Document *-- FundReferenceDataReportV06 : 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.004.001.06">
    <FndRefDataRpt>
        <MsgId>
            <!-- MessageIdentification inner content -->
        </MsgId>
        <PrvsRef>
            <!-- PreviousReference inner content -->
        </PrvsRef>
        <RltdRef>
            <!-- RelatedReference inner content -->
        </RltdRef>
        <FndRefDataRptId>
            <!-- FundReferenceDataReportIdentification inner content -->
        </FndRefDataRptId>
        <Rpt>
            <!-- Report inner content -->
        </Rpt>
    </FndRefDataRpt>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_m-g3sc0QEeuAE-cYsQdwHQ"
  previousVersion="_CwT80ZEyEeqpOcPiYTdepQ"
  name="FundReferenceDataReportV06"
  definition="Scope&#xD;&#xA;The FundReferenceDataReport message is sent by a report provider, for example, a fund promoter, fund management company, transfer agent, or market data provider to the report recipient, for example, a professional investor, investment fund distributor, market data provider, regulator or other interested party, to provide the key reference data for financial instruments to facilitate trading. The message may also include reporting data concerning product governance, such as target market data, and a breakdown of the costs and fees.&#xD;&#xA;Usage&#xD;&#xA;A FundReferenceDataReport message should be prepared for each class of unit/share (for which an individual ISIN should have been allocated), in respect of its &quot;home&quot; market. Each time the fund data changes, the ‘product provider’ must provide the data to a product user, for example, the distributors, by sending a new funds reference data report. A single message may contain more than one report. When the FundReferenceDataReport message is sent to provide updated reference data, the message overwrites the previously sent data.&#xD;&#xA;The FundReferenceDataReport message may be used in various models or environments:&#xD;&#xA;-&#x9;in a standalone environment, for example, initiated by the Report Provider (fund promoter, fund manager and / or reference data vendors) sent on a regular frequency, or when changes are needed.&#xD;&#xA;-&#x9;in a request / response environment, with the InvestmentFundReportRequest, for example, initiated by report users (data vendors, professional investors, regulators or investment fund distributors) in enabling the user to control the flow and updates of information.&#xD;&#xA;-&#x9;in a reference data vendor environment, for example, market infrastructure and reference data providers may collate and store all fund reference data information centrally for access via database or regular distribution information. A reference data vendor may assume the role of both report provider and report user.&#xD;&#xA;The FundReferenceDataReport message may be used to provide data concerning product governance, such as target market data, and a breakdown of the costs and fees in the context of MiFID II, with respect to the European MiFID Template (EMT) version 3 and 3.1. Versions 3 and 3.1 will coexist until version 4 is available."
  registrationStatus="Registered"
  messageSet="_hijK0WiLEeOuqdLlpUIWBw"
  xmlTag="FndRefDataRpt"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <messageBuildingBlock
    xmi:id="_m-hexc0QEeuAE-cYsQdwHQ"
    previousVersion="_CwT815EyEeqpOcPiYTdepQ"
    name="MessageIdentification"
    definition="Reference that uniquely identifies the message from a business application standpoint."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="MsgId"
    complexType="_Q7pG5Np-Ed-ak6NoX_4Aeg_-967008570" />
  <messageBuildingBlock
    xmi:id="_m-hex80QEeuAE-cYsQdwHQ"
    previousVersion="_CwT82ZEyEeqpOcPiYTdepQ"
    name="PreviousReference"
    definition="Reference to a linked message that was previously sent."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="PrvsRef"
    complexType="_ZBypsWpTEeipaMTLlhaKMQ" />
  <messageBuildingBlock
    xmi:id="_m-heyc0QEeuAE-cYsQdwHQ"
    previousVersion="_CwT825EyEeqpOcPiYTdepQ"
    name="RelatedReference"
    definition="Reference to a linked message that was previously received."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="RltdRef"
    complexType="_ZBypsWpTEeipaMTLlhaKMQ" />
  <messageBuildingBlock
    xmi:id="_m-hey80QEeuAE-cYsQdwHQ"
    previousVersion="_CwT83ZEyEeqpOcPiYTdepQ"
    name="FundReferenceDataReportIdentification"
    definition="Unique and unambiguous identifier for the fund reference data report, as assigned by the issuer of the report."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="FndRefDataRptId"
    simpleType="_YW1tKdp-Ed-ak6NoX_4Aeg_1913463446" />
  <messageBuildingBlock
    xmi:id="_m-hezc0QEeuAE-cYsQdwHQ"
    previousVersion="_CwT835EyEeqpOcPiYTdepQ"
    name="Report"
    definition="Fund reference data."
    registrationStatus="Provisionally Registered"
    minOccurs="1"
    xmlTag="Rpt"
    complexType="_XBCccc0SEeuAE-cYsQdwHQ" />
  <messageDefinitionIdentifier
    businessArea="reda"
    messageFunctionality="004"
    flavour="001"
    version="06" />
</messageDefinition>

ISO Building Blocks

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