semt.015.001.01
Scope An account servicer sends a IntraPositionMovementConfirmation to an account owner to confirm the movement of securities within its holding from one sub-balance to another, for example, blocking of securities. The account servicer/owner relationship may be:
- a central securities depository or another settlement market infrastructure acting on behalf of their participants
- an agent (sub-custodian) acting on behalf of their global custodian customer, or
- a custodian acting on behalf of an investment management institution or a broker/dealer. Usage The message may also be used to:
- re-send a message previously sent (the sub-function of the message is Duplicate),
- provide a third party with a copy of a message for information (the sub-function of the message is Copy),
- re-send to a third party a copy of a message for information (the sub-function of the message is Copy Duplicate). ISO 15022 - 20022 Coexistence This ISO 20022 message is reversed engineered from ISO 15022. Both standards will coexist for a certain number of years. Until this coexistence period ends, the usage of certain data types is restricted to ensure interoperability between ISO 15022 and 20022 users. Compliance to these rules is mandatory in a coexistence environment. The coexistence restrictions are described in a Textual Rule linked to the Message Items they concern. These coexistence textual rules are clearly identified as follows: “CoexistenceXxxxRule”.
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
%% IntraPositionMovementConfirmationV01 recursion level 0 with max 0
IntraPositionMovementConfirmationV01 *-- "1..1" DocumentIdentification11 : Identification
IntraPositionMovementConfirmationV01 *-- "0..1" AdditionalParameters3 : AdditionalParameters
IntraPositionMovementConfirmationV01 *-- "0..1" IPartyIdentification13Choice : AccountOwner
IntraPositionMovementConfirmationV01 *-- "1..1" SecuritiesAccount13 : SafekeepingAccount
IntraPositionMovementConfirmationV01 *-- "0..1" ISafekeepingPlaceFormat3Choice : SafekeepingPlace
IntraPositionMovementConfirmationV01 *-- "1..1" SecurityIdentification11 : FinancialInstrumentIdentification
IntraPositionMovementConfirmationV01 *-- "0..1" FinancialInstrumentAttributes4 : FinancialInstrumentAttributes
IntraPositionMovementConfirmationV01 *-- "1..1" IntraPositionDetails2 : IntraPositionDetails
IntraPositionMovementConfirmationV01 *-- "0..1" IPartyIdentification10Choice : MessageOriginator
IntraPositionMovementConfirmationV01 *-- "0..1" IPartyIdentification10Choice : MessageRecipient
IntraPositionMovementConfirmationV01 *-- "0..1" Extension2 : Extension
Now, we will zero-in one-by-one on each of these building blocks.
Identification building block
Information that unambiguously identifies an IntraPositionMovementConfirmation message as known by the account servicer. Identification and creation date of a document. For comparison, see the ISO20022 official specification
classDiagram
direction tb
%% DocumentIdentification11 recursion level 0 with max 1
class DocumentIdentification11{
Identification IsoMax35Text
CopyDuplicate CopyDuplicate1Code
}
DocumentIdentification11 *-- "0..1" IDateAndDateTimeChoice : CreationDateTime
%% IDateAndDateTimeChoice recursion level 1 with max 1
DocumentIdentification11 members
| Member name | Description | Data Type / Multiplicity |
|---|---|---|
| Identification | Unique identifier of the document (message) assigned by the sender of the document. | IsoMax35Text - Required 1..1 |
| CreationDateTime | Date and time at which the document (message) was created by the sender. | IDateAndDateTimeChoice - Optional 0..1 |
| CopyDuplicate | Specifies if this document is a copy, a duplicate, or a duplicate of a copy. | CopyDuplicate1Code - Optional 0..1 |
AdditionalParameters building block
Additional parameters to the transaction. Specifies additional parameters to the message or transaction. For comparison, see the ISO20022 official specification
classDiagram
direction tb
%% AdditionalParameters3 recursion level 0 with max 1
class AdditionalParameters3{
PartialSettlement PartialSettlement1Code
PreviousPartialConfirmationIdentification IsoMax35Text
AccountOwnerTransactionIdentification IsoMax35Text
AccountServicerTransactionIdentification IsoMax35Text
PoolIdentification IsoMax35Text
CorporateActionEventIdentification IsoMax35Text
MarketInfrastructureTransactionIdentification IsoMax35Text
}
AdditionalParameters3 members
| Member name | Description | Data Type / Multiplicity |
|---|---|---|
| PartialSettlement | Specifies partial settlement information. | PartialSettlement1Code - Optional 0..1 |
| PreviousPartialConfirmationIdentification | Identification of the confirmation previously sent to confirm the partial settlement of a transaction. | IsoMax35Text - Optional 0..1 |
| AccountOwnerTransactionIdentification | Unambiguous identification of the transaction as known by the account owner (or the instructing party managing the account). | IsoMax35Text - Optional 0..1 |
| AccountServicerTransactionIdentification | Unambiguous identification of the transaction as known by the account servicer. | IsoMax35Text - Optional 0..1 |
| PoolIdentification | Collective reference identifying a set of messages. | IsoMax35Text - Optional 0..1 |
| CorporateActionEventIdentification | Identification assigned by the account servicer to unambiguously identify a corporate action event. | IsoMax35Text - Optional 0..1 |
| MarketInfrastructureTransactionIdentification | Identification of a transaction assigned by a market infrastructure other than a central securities depository, for example, Target2-Securities. | IsoMax35Text - Optional 0..1 |
AccountOwner building block
Party that legally owns the account. Choice of identification of a party. For comparison, see the ISO20022 official specification
classDiagram direction tb %% IPartyIdentification13Choice recursion level 0 with max 1
PartyIdentification13Choice members
| Member name | Description | Data Type / Multiplicity |
|---|
SafekeepingAccount building block
Account to or from which a securities entry is made. Account to or from which a securities entry is made. For comparison, see the ISO20022 official specification
classDiagram
direction tb
%% SecuritiesAccount13 recursion level 0 with max 1
class SecuritiesAccount13{
Identification IsoMax35Text
Name IsoMax70Text
}
SecuritiesAccount13 *-- "0..1" GenericIdentification20 : Type
%% GenericIdentification20 recursion level 1 with max 1
class GenericIdentification20{
Identification IsoExact4AlphaNumericText
Issuer IsoMax35Text
SchemeName IsoMax35Text
}
SecuritiesAccount13 members
| Member name | Description | Data Type / Multiplicity |
|---|---|---|
| Identification | Unambiguous identification for the account between the account owner and the account servicer.”. | IsoMax35Text - Required 1..1 |
| Type | Specifies the type of securities account. | GenericIdentification20 - Optional 0..1 |
| Name | Description of the account. | IsoMax70Text - Optional 0..1 |
SafekeepingPlace building block
Place where the securities are safe-kept, physically or notionally. This place can be, for example, a local custodian, a Central Securities Depository (CSD) or an International Central Securities Depository (ICSD). Choice between formats for the place of safekeeping. For comparison, see the ISO20022 official specification
classDiagram direction tb %% ISafekeepingPlaceFormat3Choice recursion level 0 with max 1
SafekeepingPlaceFormat3Choice members
| Member name | Description | Data Type / Multiplicity |
|---|
FinancialInstrumentIdentification building block
Financial instrument representing a sum of rights of the investor vis-a-vis the issuer. Identification of a security. For comparison, see the ISO20022 official specification
classDiagram
direction tb
%% SecurityIdentification11 recursion level 0 with max 1
class SecurityIdentification11{
Description IsoMax140Text
}
SecurityIdentification11 *-- "1..1" ISecurityIdentification11Choice : Identification
%% ISecurityIdentification11Choice recursion level 1 with max 1
SecurityIdentification11 members
| Member name | Description | Data Type / Multiplicity |
|---|---|---|
| Identification | Identification of a security. | ISecurityIdentification11Choice - Required 1..1 |
| Description | Textual description of a security instrument. | IsoMax140Text - Optional 0..1 |
FinancialInstrumentAttributes building block
Elements characterising a financial instrument. Elements characterising a financial instrument. For comparison, see the ISO20022 official specification
classDiagram
direction tb
%% FinancialInstrumentAttributes4 recursion level 0 with max 1
class FinancialInstrumentAttributes4{
DenominationCurrency ActiveOrHistoricCurrencyCode
CouponDate IsoISODate
ExpiryDate IsoISODate
FloatingRateFixingDate IsoISODate
MaturityDate IsoISODate
IssueDate IsoISODate
NextCallableDate IsoISODate
PutableDate IsoISODate
DatedDate IsoISODate
FirstPaymentDate IsoISODate
PreviousFactor IsoBaseOneRate
CurrentFactor IsoBaseOneRate
NextFactor IsoBaseOneRate
InterestRate IsoPercentageRate
NextInterestRate IsoPercentageRate
IndexRateBasis IsoPercentageRate
VariableRateIndicator IsoYesNoIndicator
CallableIndicator IsoYesNoIndicator
PutableIndicator IsoYesNoIndicator
FinancialInstrumentAttributeAdditionalDetails IsoMax350Text
}
FinancialInstrumentAttributes4 *-- "0..1" MarketIdentification5 : PlaceOfListing
FinancialInstrumentAttributes4 *-- "0..1" IInterestComputationMethodFormat1Choice : DayCountBasis
FinancialInstrumentAttributes4 *-- "0..1" IFormOfSecurity2Choice : RegistrationForm
FinancialInstrumentAttributes4 *-- "0..1" IFrequency3Choice : PaymentFrequency
FinancialInstrumentAttributes4 *-- "0..1" ISecuritiesPaymentStatus2Choice : PaymentStatus
FinancialInstrumentAttributes4 *-- "0..1" IPaymentDirection2Choice : PaymentDirection
FinancialInstrumentAttributes4 *-- "0..1" IFrequency3Choice : VariableRateChangeFrequency
FinancialInstrumentAttributes4 *-- "0..1" IPreferenceToIncome2Choice : PreferenceToIncome
FinancialInstrumentAttributes4 *-- "0..1" IClassificationType2Choice : ClassificationType
FinancialInstrumentAttributes4 *-- "0..1" IOptionStyle4Choice : OptionStyle
FinancialInstrumentAttributes4 *-- "0..1" IOptionType2Choice : OptionType
FinancialInstrumentAttributes4 *-- "0..1" INumber2Choice : CouponAttachedNumber
FinancialInstrumentAttributes4 *-- "0..1" INumber2Choice : PoolNumber
FinancialInstrumentAttributes4 *-- "0..0" QuantityBreakdown5 : QuantityBreakdown
FinancialInstrumentAttributes4 *-- "0..1" IPriceType1Choice : MarketOrIndicativePrice
FinancialInstrumentAttributes4 *-- "0..1" Price2 : ExercisePrice
FinancialInstrumentAttributes4 *-- "0..1" Price2 : SubscriptionPrice
FinancialInstrumentAttributes4 *-- "0..1" Price2 : ConversionPrice
FinancialInstrumentAttributes4 *-- "0..1" Price2 : StrikePrice
FinancialInstrumentAttributes4 *-- "0..1" IFinancialInstrumentQuantity1Choice : MinimumNominalQuantity
FinancialInstrumentAttributes4 *-- "0..1" IFinancialInstrumentQuantity1Choice : ContractSize
FinancialInstrumentAttributes4 *-- "0..0" SecurityIdentification11 : UnderlyingFinancialInstrumentIdentification
%% MarketIdentification5 recursion level 1 with max 1
MarketIdentification5 *-- "0..1" IMarketIdentification1Choice : Identification
MarketIdentification5 *-- "1..1" IMarketType2Choice : Type
%% IInterestComputationMethodFormat1Choice recursion level 1 with max 1
%% IFormOfSecurity2Choice recursion level 1 with max 1
%% IFrequency3Choice recursion level 1 with max 1
%% ISecuritiesPaymentStatus2Choice recursion level 1 with max 1
%% IPaymentDirection2Choice recursion level 1 with max 1
%% IFrequency3Choice recursion level 1 with max 1
%% IPreferenceToIncome2Choice recursion level 1 with max 1
%% IClassificationType2Choice recursion level 1 with max 1
%% IOptionStyle4Choice recursion level 1 with max 1
%% IOptionType2Choice recursion level 1 with max 1
%% INumber2Choice recursion level 1 with max 1
%% INumber2Choice recursion level 1 with max 1
%% QuantityBreakdown5 recursion level 1 with max 1
QuantityBreakdown5 *-- "1..1" INumber2Choice : LotNumber
QuantityBreakdown5 *-- "0..1" IFinancialInstrumentQuantity1Choice : LotQuantity
%% IPriceType1Choice recursion level 1 with max 1
%% Price2 recursion level 1 with max 1
Price2 *-- "1..1" IYieldedOrValueType1Choice : Type
Price2 *-- "1..1" IPriceRateOrAmountChoice : Value
%% Price2 recursion level 1 with max 1
Price2 *-- "1..1" IYieldedOrValueType1Choice : Type
Price2 *-- "1..1" IPriceRateOrAmountChoice : Value
%% Price2 recursion level 1 with max 1
Price2 *-- "1..1" IYieldedOrValueType1Choice : Type
Price2 *-- "1..1" IPriceRateOrAmountChoice : Value
%% Price2 recursion level 1 with max 1
Price2 *-- "1..1" IYieldedOrValueType1Choice : Type
Price2 *-- "1..1" IPriceRateOrAmountChoice : Value
%% IFinancialInstrumentQuantity1Choice recursion level 1 with max 1
%% IFinancialInstrumentQuantity1Choice recursion level 1 with max 1
%% SecurityIdentification11 recursion level 1 with max 1
class SecurityIdentification11{
Description IsoMax140Text
}
SecurityIdentification11 *-- "1..1" ISecurityIdentification11Choice : Identification
FinancialInstrumentAttributes4 members
| Member name | Description | Data Type / Multiplicity |
|---|---|---|
| PlaceOfListing | Market(s) on which the security is listed. | MarketIdentification5 - Optional 0..1 |
| DayCountBasis | Specifies the computation method of (accrued) interest of the security. | IInterestComputationMethodFormat1Choice - Optional 0..1 |
| RegistrationForm | Specifies the form, ie, ownership, of the security. | IFormOfSecurity2Choice - Optional 0..1 |
| PaymentFrequency | Specifies the frequency of an interest payment. | IFrequency3Choice - Optional 0..1 |
| PaymentStatus | Status of payment of a security at a particular time. | ISecuritiesPaymentStatus2Choice - Optional 0..1 |
| PaymentDirection | Indicates the direction of payment for asset or mortgage backed securities, ie, whether the repaid capital is distributed (payment direction is down) or capitalized (payment direction is up). | IPaymentDirection2Choice - Optional 0..1 |
| VariableRateChangeFrequency | Specifies the frequency of change to the variable rate of an interest bearing instrument. | IFrequency3Choice - Optional 0..1 |
| PreferenceToIncome | Indicates the level of priority to claim on income and assets of the company in case of the payment of dividends and in the event of a bankruptcy, for example, ordinary/common stocks, preferred stocks, subordinated debt, etc. | IPreferenceToIncome2Choice - Optional 0..1 |
| ClassificationType | Classification type of the financial instrument, as per the ISO Classification of Financial Instrument (CFI) codification, for example, common share with voting rights, fully paid, or registered. | IClassificationType2Choice - Optional 0..1 |
| OptionStyle | Specifies how an option can be exercised (American, European, Bermudan). | IOptionStyle4Choice - Optional 0..1 |
| OptionType | Specifies whether it is a Call option (right to purchase a specific underlying asset) or a Put option (right to sell a specific underlying asset). | IOptionType2Choice - Optional 0..1 |
| DenominationCurrency | Currency in which a security is issued or redenominated. | ActiveOrHistoricCurrencyCode - Optional 0..1 |
| CouponDate | Next payment date of an interest bearing financial instrument. | IsoISODate - Optional 0..1 |
| ExpiryDate | Date on which a privilege expires. | IsoISODate - Optional 0..1 |
| FloatingRateFixingDate | Date at which the interest rate of an interest bearing security will be calculated and reset, according to the terms of the issue. | IsoISODate - Optional 0..1 |
| MaturityDate | Planned final repayment date at the time of issuance. | IsoISODate - Optional 0..1 |
| IssueDate | Date at which the security was made available. | IsoISODate - Optional 0..1 |
| NextCallableDate | Next date at which the issuer has the right to pay the security prior to maturity. | IsoISODate - Optional 0..1 |
| PutableDate | Date at which the holder has the right to ask for redemption of the security prior to final maturity. | IsoISODate - Optional 0..1 |
| DatedDate | First date at which a security begins to accrue interest. | IsoISODate - Optional 0..1 |
| FirstPaymentDate | Date at which the first interest payment is due to holders of the security. | IsoISODate - Optional 0..1 |
| PreviousFactor | Rate expressed as a decimal between 0 and 1 that was applicable before the current factor and defines the outstanding principal of the financial instrument (for factored securities). | IsoBaseOneRate - Optional 0..1 |
| CurrentFactor | Rate expressed as a decimal between 0 and 1 defining the outstanding principal of the financial instrument (for factored securities). | IsoBaseOneRate - Optional 0..1 |
| NextFactor | Rate expressed as a decimal between 0 and 1 that will be applicable as of the next factor date and defines the outstanding principal of the financial instrument (for factored securities). | IsoBaseOneRate - Optional 0..1 |
| InterestRate | Per annum ratio of interest paid to the principal amount of the financial instrument for a specific period of time. | IsoPercentageRate - Optional 0..1 |
| NextInterestRate | Interest rate applicable to the next interest payment period in relation to variable rate instruments. | IsoPercentageRate - Optional 0..1 |
| IndexRateBasis | Specifies the reference rate for fixed income instruments where the | price of the instrument is indexed to the price of an underlying benchmark. |
| CouponAttachedNumber | Number of the coupon attached to the physical security. | INumber2Choice - Optional 0..1 |
| PoolNumber | Number identifying a group of underlying assets assigned by the issuer of a factored security. | INumber2Choice - Optional 0..1 |
| QuantityBreakdown | Breakdown of a quantity into lots such as tax lots, instrument series, etc. | QuantityBreakdown5 - Unknown 0..0 |
| VariableRateIndicator | Indicates whether the interest rate of an interest bearing instrument is reset periodically. | IsoYesNoIndicator - Optional 0..1 |
| CallableIndicator | Indicates whether the issuer has the right to pay the security prior to maturity. Also called RetractableIndicator. | IsoYesNoIndicator - Optional 0..1 |
| PutableIndicator | Indicates whether the holder has the right to ask for redemption of the security prior to final maturity. Also called RedeemableIndicator. | IsoYesNoIndicator - Optional 0..1 |
| MarketOrIndicativePrice | Value of the price, for example, as a currency and value per unit or as a percentage. | IPriceType1Choice - Optional 0..1 |
| ExercisePrice | Predetermined price at which the holder of a derivative will buy or sell the underlying instrument. | Price2 - Optional 0..1 |
| SubscriptionPrice | Pre-determined price at which the holder of a right is entitled to buy the underlying instrument. | Price2 - Optional 0..1 |
| ConversionPrice | Price of one target security in the conversion. | Price2 - Optional 0..1 |
| StrikePrice | Predetermined price at which the holder will have to buy or sell the underlying instrument. | Price2 - Optional 0..1 |
| MinimumNominalQuantity | Indicates the minimum tradable quantity of a security. | IFinancialInstrumentQuantity1Choice - Optional 0..1 |
| ContractSize | Ratio or multiplying factor used to convert one contract into a quantity. | IFinancialInstrumentQuantity1Choice - Optional 0..1 |
| UnderlyingFinancialInstrumentIdentification | Identification of the underlying security by an ISIN. | SecurityIdentification11 - Unknown 0..0 |
| FinancialInstrumentAttributeAdditionalDetails | Provides additional information about the financial instrument in narrative form. | IsoMax350Text - Optional 0..1 |
IntraPositionDetails building block
Intra-position movement transaction details. Details of the intra-position movement. For comparison, see the ISO20022 official specification
classDiagram
direction tb
%% IntraPositionDetails2 recursion level 0 with max 1
class IntraPositionDetails2{
InstructionProcessingAdditionalDetails IsoMax350Text
}
IntraPositionDetails2 *-- "1..1" IFinancialInstrumentQuantity1Choice : SettledQuantity
IntraPositionDetails2 *-- "0..1" IFinancialInstrumentQuantity1Choice : PreviouslySettledQuantity
IntraPositionDetails2 *-- "0..1" IFinancialInstrumentQuantity1Choice : RemainingToBeSettledQuantity
IntraPositionDetails2 *-- "1..1" IDateAndDateTimeChoice : SettlementDate
IntraPositionDetails2 *-- "0..1" IDateAndDateTimeChoice : AvailableDate
IntraPositionDetails2 *-- "0..1" ICorporateActionEventType3Choice : CorporateActionEventType
IntraPositionDetails2 *-- "1..1" ISecuritiesBalanceType3Choice : BalanceFrom
IntraPositionDetails2 *-- "1..1" ISecuritiesBalanceType3Choice : BalanceTo
%% IFinancialInstrumentQuantity1Choice recursion level 1 with max 1
%% IFinancialInstrumentQuantity1Choice recursion level 1 with max 1
%% IFinancialInstrumentQuantity1Choice recursion level 1 with max 1
%% IDateAndDateTimeChoice recursion level 1 with max 1
%% IDateAndDateTimeChoice recursion level 1 with max 1
%% ICorporateActionEventType3Choice recursion level 1 with max 1
%% ISecuritiesBalanceType3Choice recursion level 1 with max 1
%% ISecuritiesBalanceType3Choice recursion level 1 with max 1
IntraPositionDetails2 members
| Member name | Description | Data Type / Multiplicity |
|---|---|---|
| SettledQuantity | Quantity of financial instrument effectively settled. | IFinancialInstrumentQuantity1Choice - Required 1..1 |
| PreviouslySettledQuantity | Quantity of financial instrument previously settled. | IFinancialInstrumentQuantity1Choice - Optional 0..1 |
| RemainingToBeSettledQuantity | Quantity of financial instrument remaining to be settled. | IFinancialInstrumentQuantity1Choice - Optional 0..1 |
| SettlementDate | Date and time at which the securities were moved. | IDateAndDateTimeChoice - Required 1..1 |
| AvailableDate | Date/time securities become available for sale (if securities become unavailable, this specifies the date/time at which they will become available again). | IDateAndDateTimeChoice - Optional 0..1 |
| CorporateActionEventType | Specifies the type of corporate event. | ICorporateActionEventType3Choice - Optional 0..1 |
| BalanceFrom | Balance from which the securities were moved. | ISecuritiesBalanceType3Choice - Required 1..1 |
| BalanceTo | Balance to which the securities were moved. | ISecuritiesBalanceType3Choice - Required 1..1 |
| InstructionProcessingAdditionalDetails | Provides additional settlement processing information which can not be included within the structured fields of the message. | IsoMax350Text - Optional 0..1 |
MessageOriginator building block
Party that originated the message, if other than the sender. Choice of identification of a party. For comparison, see the ISO20022 official specification
classDiagram direction tb %% IPartyIdentification10Choice recursion level 0 with max 1
PartyIdentification10Choice members
| Member name | Description | Data Type / Multiplicity |
|---|
MessageRecipient building block
Party that is the final destination of the message, if other than the receiver. Choice of identification of a party. For comparison, see the ISO20022 official specification
classDiagram direction tb %% IPartyIdentification10Choice recursion level 0 with max 1
PartyIdentification10Choice members
| Member name | Description | Data Type / Multiplicity |
|---|
Extension building block
Additional information that cannot be captured in the structured elements and/or any other specific block. Additional information that can not be captured in the structured fields and/or any other specific block. For comparison, see the ISO20022 official specification
classDiagram
direction tb
%% Extension2 recursion level 0 with max 1
class Extension2{
PlaceAndName IsoMax350Text
}
Extension2 *-- "1..1" ExtensionEnvelope1 : ExtensionEnvelope
%% ExtensionEnvelope1 recursion level 1 with max 1
ExtensionEnvelope1 *-- "1..1" ExtensionContents1 : ExtensionContents
Extension2 members
| Member name | Description | Data Type / Multiplicity |
|---|---|---|
| PlaceAndName | Name qualifying the information provided in the Text field, and place where this information should be inserted. | IsoMax350Text - Optional 0..1 |
| ExtensionEnvelope | Technical element wrapping the extension. | ExtensionEnvelope1 - Required 1..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the IntraPositionMovementConfirmationV01 implementation follows a specific implementaiton pattern. First of all, IntraPositionMovementConfirmationV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, IntraPositionMovementConfirmationV01Document implements IOuterDocument. Because IntraPositionMovementConfirmationV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type IntraPositionMovementConfirmationV01.
classDiagram
class IOuterRecord
IntraPositionMovementConfirmationV01 --|> IOuterRecord : Implements
IntraPositionMovementConfirmationV01Document --|> IOuterDocument~IntraPositionMovementConfirmationV01~ : Implements
class IOuterDocument~IntraPositionMovementConfirmationV01~ {
IntraPositionMovementConfirmationV01 Message
}
Document wrapper for serialization
The only real purpose IntraPositionMovementConfirmationV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:semt.015.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using IntraPositionMovementConfirmationV01.ToDocument() method. The returned IntraPositionMovementConfirmationV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram
IntraPositionMovementConfirmationV01Document *-- IntraPositionMovementConfirmationV01 : 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:semt.015.001.01">
<IntraPosMvmntConf>
<Id>
<!-- Identification inner content -->
</Id>
<AddtlParams>
<!-- AdditionalParameters inner content -->
</AddtlParams>
<AcctOwnr>
<!-- AccountOwner inner content -->
</AcctOwnr>
<SfkpgAcct>
<!-- SafekeepingAccount inner content -->
</SfkpgAcct>
<SfkpgPlc>
<!-- SafekeepingPlace inner content -->
</SfkpgPlc>
<FinInstrmId>
<!-- FinancialInstrumentIdentification inner content -->
</FinInstrmId>
<FinInstrmAttrbts>
<!-- FinancialInstrumentAttributes inner content -->
</FinInstrmAttrbts>
<IntraPosDtls>
<!-- IntraPositionDetails inner content -->
</IntraPosDtls>
<MsgOrgtr>
<!-- MessageOriginator inner content -->
</MsgOrgtr>
<MsgRcpt>
<!-- MessageRecipient inner content -->
</MsgRcpt>
<Xtnsn>
<!-- Extension inner content -->
</Xtnsn>
</IntraPosMvmntConf>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_Me-LMtFSEd-BzquC8wXy7w_-1527041912"
nextVersions="_eDJtodtYEd-RF5yaMAVhAw"
name="IntraPositionMovementConfirmationV01"
definition="Scope
An account servicer sends a IntraPositionMovementConfirmation to an account owner to confirm the movement of securities within its holding from one sub-balance to another, for example, blocking of securities.
The account servicer/owner relationship may be:
- a central securities depository or another settlement market infrastructure acting on behalf of their participants
- an agent (sub-custodian) acting on behalf of their global custodian customer, or
- a custodian acting on behalf of an investment management institution or a broker/dealer.
Usage
The message may also be used to:
- re-send a message previously sent (the sub-function of the message is Duplicate),
- provide a third party with a copy of a message for information (the sub-function of the message is Copy),
- re-send to a third party a copy of a message for information (the sub-function of the message is Copy Duplicate).
ISO 15022 - 20022 Coexistence
This ISO 20022 message is reversed engineered from ISO 15022. Both standards will coexist for a certain number of years. Until this coexistence period ends, the usage of certain data types is restricted to ensure interoperability between ISO 15022 and 20022 users. Compliance to these rules is mandatory in a coexistence environment. The coexistence restrictions are described in a Textual Rule linked to the Message Items they concern. These coexistence textual rules are clearly identified as follows: “CoexistenceXxxxRule”."
registrationStatus="Registered"
messageSet="_urpIICeJEeOCeO5e7islRQ"
xmlTag="IntraPosMvmntConf"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<semanticMarkup
xmi:id="_c7zd4Q5lEeO42pgjaJ50lw"
type="Synonym">
<elements
xmi:id="_c7zd4g5lEeO42pgjaJ50lw"
name="context"
value="ISO 15022" />
<elements
xmi:id="_c7zd4w5lEeO42pgjaJ50lw"
name="value"
value="MT 508, Seq A :23G:NEWM" />
</semanticMarkup>
<constraint
xmi:id="_MfH8NNFSEd-BzquC8wXy7w_-551424220"
name="CoexistenceCharacterSetXRule"
definition="During ISO 15022 – 20022 coexistence, characters used in all text fields must correspond to character set X, that is, a-z A-Z / - ? : ( ) . , ‘ + { } CR LF."
registrationStatus="Provisionally Registered" />
<constraint
xmi:id="_MfH8N9FSEd-BzquC8wXy7w_-1384834970"
name="CoexistenceIdentificationRule"
definition="During ISO 15022 – 20022 coexistence, all transaction and document identifications or references must be 16 characters or less. The field must not start or end with a slash ‘/’ or contain two consecutive slashes ‘//’."
registrationStatus="Provisionally Registered" />
<messageBuildingBlock
xmi:id="_Me-LM9FSEd-BzquC8wXy7w_168541974"
name="Identification"
definition="Information that unambiguously identifies an IntraPositionMovementConfirmation message as known by the account servicer."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="Id"
complexType="_RBcz8tp-Ed-ak6NoX_4Aeg_-746423515" />
<messageBuildingBlock
xmi:id="_Me-LNNFSEd-BzquC8wXy7w_1143710133"
name="AdditionalParameters"
definition="Additional parameters to the transaction."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="AddtlParams"
complexType="_Ujy5Vdp-Ed-ak6NoX_4Aeg_-1300321981" />
<messageBuildingBlock
xmi:id="_Me-LNdFSEd-BzquC8wXy7w_-1578430373"
name="AccountOwner"
definition="Party that legally owns the account."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="AcctOwnr"
complexType="_QQIEsNp-Ed-ak6NoX_4Aeg_-1062714307" />
<messageBuildingBlock
xmi:id="_Me-LNtFSEd-BzquC8wXy7w_-1538717547"
name="SafekeepingAccount"
definition="Account to or from which a securities entry is made."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="SfkpgAcct"
complexType="_T_vKAdp-Ed-ak6NoX_4Aeg_-178975462" />
<messageBuildingBlock
xmi:id="_Me-LN9FSEd-BzquC8wXy7w_-1462991328"
name="SafekeepingPlace"
definition="Place where the securities are safe-kept, physically or notionally. This place can be, for example, a local custodian, a Central Securities Depository (CSD) or an International Central Securities Depository (ICSD)."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="SfkpgPlc"
complexType="_SfeRKdp-Ed-ak6NoX_4Aeg_-955186669" />
<messageBuildingBlock
xmi:id="_Me-LONFSEd-BzquC8wXy7w_-2068468944"
name="FinancialInstrumentIdentification"
definition="Financial instrument representing a sum of rights of the investor vis-a-vis the issuer."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="FinInstrmId"
complexType="_TBKB89p-Ed-ak6NoX_4Aeg_-524266634" />
<messageBuildingBlock
xmi:id="_Me-LOdFSEd-BzquC8wXy7w_-1020623661"
name="FinancialInstrumentAttributes"
definition="Elements characterising a financial instrument."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="FinInstrmAttrbts"
complexType="_TvV9ldp-Ed-ak6NoX_4Aeg_-1306183521" />
<messageBuildingBlock
xmi:id="_MfH8MNFSEd-BzquC8wXy7w_750690535"
name="IntraPositionDetails"
definition="Intra-position movement transaction details."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="IntraPosDtls"
complexType="_QXbmltp-Ed-ak6NoX_4Aeg_-678920950" />
<messageBuildingBlock
xmi:id="_MfH8MdFSEd-BzquC8wXy7w_1084081091"
name="MessageOriginator"
definition="Party that originated the message, if other than the sender."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="MsgOrgtr"
complexType="_QQR1tdp-Ed-ak6NoX_4Aeg_-1244141483" />
<messageBuildingBlock
xmi:id="_MfH8MtFSEd-BzquC8wXy7w_1093316734"
name="MessageRecipient"
definition="Party that is the final destination of the message, if other than the receiver."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="MsgRcpt"
complexType="_QQR1tdp-Ed-ak6NoX_4Aeg_-1244141483" />
<messageBuildingBlock
xmi:id="_MfH8M9FSEd-BzquC8wXy7w_1194903687"
name="Extension"
definition="Additional information that cannot be captured in the structured elements and/or any other specific block."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="Xtnsn"
complexType="_QzJSNdp-Ed-ak6NoX_4Aeg_251191216" />
<messageDefinitionIdentifier
businessArea="semt"
messageFunctionality="015"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.