reda.004.001.05
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:
- 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.
- 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.
- 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. 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.
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
%% FundReferenceDataReportV05 recursion level 0 with max 0
class FundReferenceDataReportV05{
FundReferenceDataReportIdentification IsoMax35Text
}
FundReferenceDataReportV05 *-- "1..1" MessageIdentification1 : MessageIdentification
FundReferenceDataReportV05 *-- "0..1" AdditionalReference10 : PreviousReference
FundReferenceDataReportV05 *-- "0..1" AdditionalReference10 : RelatedReference
FundReferenceDataReportV05 *-- "1..1" FundReferenceDataReport3 : 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
%% FundReferenceDataReport3 recursion level 0 with max 1
class FundReferenceDataReport3{
Identification IsoMax35Text
GeneralReferenceDate IsoISODate
TargetMarketIndicator IsoYesNoIndicator
ExAnteIndicator IsoYesNoIndicator
ExPostIndicator IsoYesNoIndicator
}
FundReferenceDataReport3 *-- "0..1" MarketPracticeVersion1 : Version
FundReferenceDataReport3 *-- "0..1" ContactAttributes6 : AuthorisedProxy
FundReferenceDataReport3 *-- "1..1" SecurityIdentification37 : SecurityIdentification
FundReferenceDataReport3 *-- "0..1" FundParties1 : FundParties
FundReferenceDataReport3 *-- "0..1" OrderDesk1 : MainFundOrderDesk
FundReferenceDataReport3 *-- "0..1" ContactAttributes5 : FundManagementCompany
FundReferenceDataReport3 *-- "0..1" FinancialInstrument96 : FundDetails
FundReferenceDataReport3 *-- "0..1" ValuationDealingProcessingCharacteristics3 : ValuationDealingCharacteristics
FundReferenceDataReport3 *-- "0..1" InvestmentRestrictions3 : InvestmentRestrictions
FundReferenceDataReport3 *-- "0..1" ProcessingCharacteristics8 : SubscriptionProcessingCharacteristics
FundReferenceDataReport3 *-- "0..1" ProcessingCharacteristics7 : RedemptionProcessingCharacteristics
FundReferenceDataReport3 *-- "0..1" ProcessingCharacteristics6 : SwitchProcessingCharacteristics
FundReferenceDataReport3 *-- "0..0" InvestmentPlanCharacteristics1 : PlanCharacteristics
FundReferenceDataReport3 *-- "0..0" PaymentInstrument16 : PaymentInstrument
FundReferenceDataReport3 *-- "0..0" CashAccount202 : CashSettlementDetails
FundReferenceDataReport3 *-- "0..0" LocalMarketAnnex4 : LocalMarketAnnex
FundReferenceDataReport3 *-- "0..1" TargetMarket2 : TargetMarket
FundReferenceDataReport3 *-- "0..1" DistributionStrategy1 : DistributionStrategy
FundReferenceDataReport3 *-- "0..2" CostsAndCharges2 : CostsAndCharges
FundReferenceDataReport3 *-- "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
%% SecurityIdentification37 recursion level 1 with max 1
class SecurityIdentification37{
Name IsoMax350Text
ShortName IsoMax35Text
ClassType IsoMax35Text
UmbrellaName IsoMax35Text
NewUmbrella IsoYesNoIndicator
BaseCurrency ActiveCurrencyCode
CountryOfDomicile CountryCode
RegisteredDistributionCountry CountryCode
ProductCategory IsoMax140Text
ProductCategoryGermany IsoMax140Text
LeveragedOrContigentLiability IsoYesNoIndicator
NoRetrocessionIndicator IsoYesNoIndicator
}
SecurityIdentification37 *-- "1..1" SecurityIdentification19 : Identification
SecurityIdentification37 *-- "0..1" ISecurityClassificationType2Choice : ClassificationType
SecurityIdentification37 *-- "0..1" IProductStructure1Choice : ProductType
SecurityIdentification37 *-- "0..1" ContactAttributes5 : Issuer
SecurityIdentification37 *-- "0..1" IGovernanceProcess1Choice : IssuerProductGovernanceProcess
SecurityIdentification37 *-- "0..1" INotionalOrUnitBased1Choice : NotionalOrUnitBased
SecurityIdentification37 *-- "0..1" IQuotationType1Choice : QuotationType
SecurityIdentification37 *-- "0..1" IExPostCostCalculationBasis1Choice : ExPostCostCalculationBasis
SecurityIdentification37 *-- "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
%% CashAccount202 recursion level 1 with max 1
class CashAccount202{
Currency ActiveCurrencyCode
}
CashAccount202 *-- "0..1" CashAccount203 : PrimaryAccount
CashAccount202 *-- "0..1" CashAccount203 : SecondaryAccount
%% LocalMarketAnnex4 recursion level 1 with max 1
class LocalMarketAnnex4{
Country CountryCode
}
LocalMarketAnnex4 *-- "1..1" OrderDesk1 : LocalOrderDesk
LocalMarketAnnex4 *-- "0..1" ProcessingCharacteristics8 : SubscriptionProcessingCharacteristics
LocalMarketAnnex4 *-- "0..1" ProcessingCharacteristics5 : RedemptionProcessingCharacteristics
LocalMarketAnnex4 *-- "0..1" ProcessingCharacteristics6 : SwitchProcessingCharacteristics
LocalMarketAnnex4 *-- "0..0" CashAccount202 : CashSettlementDetails
LocalMarketAnnex4 *-- "0..0" AdditionalInformation15 : AdditionalInformation
%% TargetMarket2 recursion level 1 with max 1
class TargetMarket2{
ReferenceDate IsoISODate
}
TargetMarket2 *-- "0..1" InvestorType2 : InvestorType
TargetMarket2 *-- "0..1" InvestorKnowledge1 : KnowledgeAndOrExperience
TargetMarket2 *-- "0..1" LossBearing2 : AbilityToBearLosses
TargetMarket2 *-- "0..1" RiskTolerance1 : RiskTolerance
TargetMarket2 *-- "0..1" InvestorRequirements2 : ClientObjectivesAndNeeds
TargetMarket2 *-- "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
%% Extension1 recursion level 1 with max 1
class Extension1{
PlaceAndName IsoMax350Text
Text IsoMax350Text
}
FundReferenceDataReport3 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. | SecurityIdentification37 - 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. | CashAccount202 - Unknown 0..0 |
| LocalMarketAnnex | Processing characteristics specific to a local fund order desk. | LocalMarketAnnex4 - Unknown 0..0 |
| TargetMarket | Target market criteria. | TargetMarket2 - 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 |
| 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 FundReferenceDataReportV05 implementation follows a specific implementaiton pattern. First of all, FundReferenceDataReportV05 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, FundReferenceDataReportV05Document implements IOuterDocument. Because FundReferenceDataReportV05 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type FundReferenceDataReportV05.
classDiagram
class IOuterRecord
FundReferenceDataReportV05 --|> IOuterRecord : Implements
FundReferenceDataReportV05Document --|> IOuterDocument~FundReferenceDataReportV05~ : Implements
class IOuterDocument~FundReferenceDataReportV05~ {
FundReferenceDataReportV05 Message
}
Document wrapper for serialization
The only real purpose FundReferenceDataReportV05Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:reda.004.001.05’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using FundReferenceDataReportV05.ToDocument() method. The returned FundReferenceDataReportV05Document value will serialize correctly according to ISO 20022 standards.
classDiagram
FundReferenceDataReportV05Document *-- FundReferenceDataReportV05 : 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.05">
<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="_CwT80ZEyEeqpOcPiYTdepQ"
nextVersions="_m-g3sc0QEeuAE-cYsQdwHQ"
previousVersion="_16QE0ZDiEem7fvtoGpNpow"
name="FundReferenceDataReportV05"
definition="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:
-	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.
-	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.
-	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.
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."
registrationStatus="Registered"
messageSet="_wFQdsE2rEeG_I4xRYCA_7g _qCumkAFwEeu2__1EbNXzuA"
xmlTag="FndRefDataRpt"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_CwT815EyEeqpOcPiYTdepQ"
nextVersions="_m-hexc0QEeuAE-cYsQdwHQ"
previousVersion="_16QE05DiEem7fvtoGpNpow"
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="_CwT82ZEyEeqpOcPiYTdepQ"
nextVersions="_m-hex80QEeuAE-cYsQdwHQ"
previousVersion="_16QE1ZDiEem7fvtoGpNpow"
name="PreviousReference"
definition="Reference to a linked message that was previously sent."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="PrvsRef"
complexType="_ZBypsWpTEeipaMTLlhaKMQ" />
<messageBuildingBlock
xmi:id="_CwT825EyEeqpOcPiYTdepQ"
nextVersions="_m-heyc0QEeuAE-cYsQdwHQ"
previousVersion="_16QE15DiEem7fvtoGpNpow"
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="_CwT83ZEyEeqpOcPiYTdepQ"
nextVersions="_m-hey80QEeuAE-cYsQdwHQ"
previousVersion="_16QE2ZDiEem7fvtoGpNpow"
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="_CwT835EyEeqpOcPiYTdepQ"
nextVersions="_m-hezc0QEeuAE-cYsQdwHQ"
previousVersion="_16QE25DiEem7fvtoGpNpow"
name="Report"
definition="Fund reference data."
registrationStatus="Provisionally Registered"
minOccurs="1"
xmlTag="Rpt"
complexType="_oxsv4Z9BEeqxTNfi5y7ywQ" />
<messageDefinitionIdentifier
businessArea="reda"
messageFunctionality="004"
flavour="001"
version="05" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.