FundProcessingPassportReportV02

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:

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&#xD;&#xA;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.&#xD;&#xA;Usage&#xD;&#xA;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 &quot;home&quot; market.&#xD;&#xA;The FundProcessingPassportReport may be used in various models or environments:&#xD;&#xA;- 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.&#xD;&#xA;- 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;- 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&#xD;&#xA; 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.