reda.004.001.02
Scope A report provider, for example, a fund promoter, fund management company, transfer agent, or market data provider, sends the FundProcessingPassportReport message to the report recipient, for, 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. Usage A unique FundProcessingPassportReport should be prepared for each class of unit/share (for which an individual ISIN should have been allocated), in respect of its “home” market. The FundProcessingPassportReport may be used in various models or environments:
- stand alone 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 processing passport 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.
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 %% FundProcessingPassportReportV02 recursion level 0 with max 0 FundProcessingPassportReportV02 *-- "1..1" MessageIdentification1 : MessageIdentification FundProcessingPassportReportV02 *-- "1..1" FundProcessingPassport1 : FundProcessingPassport
Now, we will zero-in one-by-one on each of these building blocks.
MessageIdentification building block
Reference that uniquely identifies a 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 |
FundProcessingPassport building block
Fund Processing Passsport (FPP) is a fully harmonised document with all key operational information that fund promoters should provide on their investment funds in order to facilitate their trading. Fund Processing Passsport (FPP) is a fully harmonised document with all key operational information that fund promoters should provide on their investment funds in order to facilitate their trading. For comparison, see the ISO20022 official specification
classDiagram direction tb %% FundProcessingPassport1 recursion level 0 with max 1 FundProcessingPassport1 *-- "1..1" UpdatedDate : UpdatedDate FundProcessingPassport1 *-- "1..1" SecurityIdentification1 : SecurityIdentification FundProcessingPassport1 *-- "1..1" ContactAttributes1 : MainFundOrderDesk FundProcessingPassport1 *-- "1..1" ContactAttributes1 : FundManagementCompany FundProcessingPassport1 *-- "1..1" FinancialInstrument20 : FundDetails FundProcessingPassport1 *-- "1..1" ValuationDealingProcessingCharacteristics2 : ValuationDealingCharacteristics FundProcessingPassport1 *-- "1..1" InvestmentRestrictions2 : InvestmentRestrictions FundProcessingPassport1 *-- "1..1" ProcessingCharacteristics2 : SubscriptionProcessingCharacteristics FundProcessingPassport1 *-- "1..1" ProcessingCharacteristics3 : RedemptionProcessingCharacteristics FundProcessingPassport1 *-- "1..0" CashAccount22 : SettlementDetails FundProcessingPassport1 *-- "0..0" LocalMarketAnnex2 : LocalMarketAnnex FundProcessingPassport1 *-- "0..0" Extension1 : Extension %% UpdatedDate recursion level 1 with max 1 class UpdatedDate{ Date IsoISODate } %% SecurityIdentification1 recursion level 1 with max 1 class SecurityIdentification1{ Name IsoMax350Text ClassType IsoMax35Text UmbrellaName IsoMax35Text BaseCurrency ActiveCurrencyCode CountryOfDomicile CountryCode RegisteredDistributionCountry CountryCode } SecurityIdentification1 *-- "1..1" SecurityIdentification7 : Identification %% ContactAttributes1 recursion level 1 with max 1 class ContactAttributes1{ Name IsoMax350Text PhoneNumber IsoPhoneNumber FaxNumber IsoPhoneNumber EmailAddress IsoMax256Text URLAddress IsoMax2048Text Identification IsoBICIdentifier } ContactAttributes1 *-- "1..1" PostalAddress1 : PostalAddress %% ContactAttributes1 recursion level 1 with max 1 class ContactAttributes1{ Name IsoMax350Text PhoneNumber IsoPhoneNumber FaxNumber IsoPhoneNumber EmailAddress IsoMax256Text URLAddress IsoMax2048Text Identification IsoBICIdentifier } ContactAttributes1 *-- "1..1" PostalAddress1 : PostalAddress %% FinancialInstrument20 recursion level 1 with max 1 class FinancialInstrument20{ PhysicalBearerSecurities IsoYesNoIndicator DematerialisedBearerSecurities IsoYesNoIndicator PhysicalRegisteredSecurities IsoYesNoIndicator DematerialisedRegisteredSecurities IsoYesNoIndicator DistributionPolicy DistributionPolicy1Code DividendPolicy DividendPolicy1Code DividendFrequency EventFrequency5Code ReinvestmentFrequency EventFrequency5Code FrontEndLoad IsoYesNoIndicator BackEndLoad IsoYesNoIndicator SwitchFee IsoYesNoIndicator EUSavingsDirective EUSavingsDirective1Code } %% ValuationDealingProcessingCharacteristics2 recursion level 1 with max 1 class ValuationDealingProcessingCharacteristics2{ ValuationFrequency EventFrequency5Code ValuationFrequencyDescription IsoMax350Text DecimalisationUnits IsoNumber DecimalisationPrice IsoNumber DualFundIndicator IsoYesNoIndicator PriceMethod PriceMethod1Code PriceCurrency ActiveCurrencyCode } %% InvestmentRestrictions2 recursion level 1 with max 1 class InvestmentRestrictions2{ MinimumInitialSubscriptionAmount IsoActiveCurrencyAndAmount MinimumInitialSubscriptionUnits IsoNumber MinimumSubsequentSubscriptionAmount IsoActiveCurrencyAndAmount MinimumSubsequentSubscriptionUnits IsoNumber MaximumRedemptionAmount IsoActiveCurrencyAndAmount MaximumRedemptionUnits IsoNumber OtherRedemptionRestrictions IsoMax350Text MinimumHoldingAmount IsoActiveCurrencyAndAmount MinimumHoldingUnits IsoDecimalNumber MinimumHoldingPeriod IsoMax70Text HoldingTransferable HoldingTransferable1Code } %% ProcessingCharacteristics2 recursion level 1 with max 1 class ProcessingCharacteristics2{ DealingCurrencyAccepted ActiveCurrencyCode AmountIndicator IsoYesNoIndicator UnitsIndicator IsoYesNoIndicator DealingCutOffTime IsoISOTime DealingFrequency EventFrequency5Code DealingFrequencyDescription IsoMax350Text LimitedPeriod IsoMax350Text } ProcessingCharacteristics2 *-- "1..1" Forms : InitialInvestment ProcessingCharacteristics2 *-- "1..1" Forms : SubsequentInvestment ProcessingCharacteristics2 *-- "1..1" MainFundOrderDeskLocation1 : MainFundOrderDeskLocation ProcessingCharacteristics2 *-- "1..1" TimeFrame3 : DealingCutOffTimeFrame ProcessingCharacteristics2 *-- "1..1" ITimeFrame5Choice : SettlementCycle %% ProcessingCharacteristics3 recursion level 1 with max 1 class ProcessingCharacteristics3{ DealingCurrencyAccepted ActiveCurrencyCode AmountIndicator IsoYesNoIndicator UnitsIndicator IsoYesNoIndicator DealingCutOffTime IsoISOTime DealingFrequency EventFrequency5Code DealingFrequencyDescription IsoMax350Text LimitedPeriod IsoMax350Text } ProcessingCharacteristics3 *-- "1..1" Forms : RedemptionAuthorisation ProcessingCharacteristics3 *-- "1..1" MainFundOrderDeskLocation1 : MainFundOrderDeskLocation ProcessingCharacteristics3 *-- "1..1" TimeFrame3 : DealingCutOffTimeFrame ProcessingCharacteristics3 *-- "1..1" ITimeFrame4Choice : SettlementCycle %% CashAccount22 recursion level 1 with max 1 class CashAccount22{ Currency CurrencyCode Servicer IsoBICIdentifier AccountTypeDescription IsoMax35Text } CashAccount22 *-- "1..1" IAccountIdentification5Choice : Identification CashAccount22 *-- "0..1" CashAccount21 : SecondaryAccount %% LocalMarketAnnex2 recursion level 1 with max 1 class LocalMarketAnnex2{ Country CountryCode } LocalMarketAnnex2 *-- "1..1" ContactAttributes1 : LocalOrderDesk LocalMarketAnnex2 *-- "1..1" ProcessingCharacteristics2 : SubscriptionProcessingCharacteristics LocalMarketAnnex2 *-- "1..1" ProcessingCharacteristics3 : RedemptionProcessingCharacteristics LocalMarketAnnex2 *-- "1..0" CashAccount22 : SettlementDetails %% Extension1 recursion level 1 with max 1 class Extension1{ PlaceAndName IsoMax350Text Text IsoMax350Text }
FundProcessingPassport1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
UpdatedDate | Date of last revision. | UpdatedDate - Required 1..1 |
SecurityIdentification | Financial instruments representing a sum of rights of the investor vis-a-vis the issuer. | SecurityIdentification1 - Required 1..1 |
MainFundOrderDesk | Principal entity appointed by the fund, to which orders should be submitted. Usually located in the country of domicile. | ContactAttributes1 - Required 1..1 |
FundManagementCompany | Company that is responsible for the management and operation of the fund, eg, 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 wlll often be a separate promoter or sponsor of the fund. | ContactAttributes1 - Required 1..1 |
FundDetails | Security that is a sub-set of an investment fund, and is governed by the same investment fund policy, eg, dividend option or valuation currency. | FinancialInstrument20 - Required 1..1 |
ValuationDealingCharacteristics | Processing characteristics linked to the instrument, ie, not to the market. | ValuationDealingProcessingCharacteristics2 - Required 1..1 |
InvestmentRestrictions | Processing characteristics linked to the instrument, ie, not to the market. | InvestmentRestrictions2 - Required 1..1 |
SubscriptionProcessingCharacteristics | Processing characteristics linked to the instrument, ie, not to the market. | ProcessingCharacteristics2 - Required 1..1 |
RedemptionProcessingCharacteristics | Processing characteristics linked to the instrument, ie, not to the market. | ProcessingCharacteristics3 - Required 1..1 |
SettlementDetails | Account to or from which a cash entry is made. | CashAccount22 - Unknown 1..0 |
LocalMarketAnnex | Context, or geographic environment, in which trading parties may meet in order to negotiate and execute trades among themselves. | LocalMarketAnnex2 - Unknown 0..0 |
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 FundProcessingPassportReportV02 implementation follows a specific implementaiton pattern. First of all, FundProcessingPassportReportV02 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, FundProcessingPassportReportV02Document implements IOuterDocument. Because FundProcessingPassportReportV02 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type FundProcessingPassportReportV02.
classDiagram class IOuterRecord FundProcessingPassportReportV02 --|> IOuterRecord : Implements FundProcessingPassportReportV02Document --|> IOuterDocument~FundProcessingPassportReportV02~ : Implements class IOuterDocument~FundProcessingPassportReportV02~ { FundProcessingPassportReportV02 Message }
Document wrapper for serialization
The only real purpose FundProcessingPassportReportV02Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:reda.004.001.02’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using FundProcessingPassportReportV02.ToDocument() method. The returned FundProcessingPassportReportV02Document value will serialize correctly according to ISO 20022 standards.
classDiagram FundProcessingPassportReportV02Document *-- FundProcessingPassportReportV02 : 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.02">
<FndPrcgPsptRpt>
<MsgId>
<!-- MessageIdentification inner content -->
</MsgId>
<FPP>
<!-- FundProcessingPassport inner content -->
</FPP>
</FndPrcgPsptRpt>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_ZsRA2NEvEd-BzquC8wXy7w_2012426718"
nextVersions="_A7DpwTQaEeifw8iDiyZLmQ"
name="FundProcessingPassportReportV02"
definition="Scope
A report provider, for example, a fund promoter, fund management company, transfer agent, or market data provider, sends the FundProcessingPassportReport message to the report recipient, for, 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.
Usage
A unique FundProcessingPassportReport should be prepared for each class of unit/share (for which an individual ISIN should have been allocated), in respect of its "home" market.
The FundProcessingPassportReport may be used in various models or environments:
- stand alone 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 processing passport 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."
registrationStatus="Registered"
messageSet="_urpIICeJEeOCeO5e7islRQ"
xmlTag="FndPrcgPsptRpt"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_ZsRA2dEvEd-BzquC8wXy7w_1111943337"
nextVersions="_A7DpwzQaEeifw8iDiyZLmQ"
name="MessageIdentification"
definition="Reference that uniquely identifies a message from a business application standpoint."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="MsgId"
complexType="_Q7pG5Np-Ed-ak6NoX_4Aeg_-967008570" />
<messageBuildingBlock
xmi:id="_ZsRA2tEvEd-BzquC8wXy7w_-23910655"
nextVersions="_A7DpxTQaEeifw8iDiyZLmQ"
name="FundProcessingPassport"
definition=" Fund Processing Passsport (FPP) is a fully harmonised document with all key operational information that fund promoters
 should provide on their investment funds in order to facilitate their trading."
registrationStatus="Provisionally Registered"
minOccurs="1"
xmlTag="FPP"
complexType="_Q5ZrMtp-Ed-ak6NoX_4Aeg_1497334338" />
<messageDefinitionIdentifier
businessArea="reda"
messageFunctionality="004"
flavour="001"
version="02" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.