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.