camt.062.001.03
The PayInSchedule message is sent by a central settlement system to the participant to provide notification of a series of timed payments scheduled for each currency at the time and date of the schedule generation. The central settlement system may send information about how the timed payments have been calculated.
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 %% PayInScheduleV03 recursion level 0 with max 0 PayInScheduleV03 *-- "1..1" IPartyIdentification73Choice : PartyIdentification PayInScheduleV03 *-- "1..1" ReportData4 : ReportData PayInScheduleV03 *-- "0..1" BalanceStatus2 : PayInScheduleLongBalance PayInScheduleV03 *-- "0..1" PayInScheduleItems1 : PayInScheduleItem PayInScheduleV03 *-- "0..1" PayInFactors1 : PayInFactors PayInScheduleV03 *-- "0..1" SupplementaryData1 : SupplementaryData
Now, we will zero-in one-by-one on each of these building blocks.
PartyIdentification building block
Party for which the pay-in schedule is generated. Identification of a party by a choice between a BIC or a name and address or an LEI. For comparison, see the ISO20022 official specification
classDiagram direction tb %% IPartyIdentification73Choice recursion level 0 with max 1
PartyIdentification73Choice members
Member name | Description | Data Type / Multiplicity |
---|
ReportData building block
General information applicable to the report. Numerical representation of the nett increases and decreases in an account at a specific point in time. A cash balance is calculated from a sum of cash credits minus a sum of cash debits. For comparison, see the ISO20022 official specification
classDiagram direction tb %% ReportData4 recursion level 0 with max 1 class ReportData4{ MessageIdentification IsoMax35Text ValueDate IsoISODate DateAndTimeStamp IsoISODateTime Type Entry2Code ScheduleType IsoExact4AlphaNumericText SettlementSessionIdentifier IsoExact4AlphaNumericText }
ReportData4 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
MessageIdentification | Identification of the report as assigned by the sender. | IsoMax35Text - Required 1..1 |
ValueDate | Value date for which the pay-in schedule is generated. | IsoISODate - Required 1..1 |
DateAndTimeStamp | Date and time on which the report is generated. The offset with UTC may also be specified. | IsoISODateTime - Required 1..1 |
Type | Type of pay-in schedule. | Entry2Code - Required 1..1 |
ScheduleType | Defines the schedule timing that is, whether it is an initial or a revised schedule. | IsoExact4AlphaNumericText - Required 1..1 |
SettlementSessionIdentifier | To indicate the requested CLS Settlement Session that the related trade is part of. | IsoExact4AlphaNumericText - Optional 0..1 |
PayInScheduleLongBalance building block
Projected net position for all currencies, projected long for the value date. Numerical representation of the net increases and decreases in an account at a specific point in time. A cash balance is calculated from a sum of cash credits minus a sum of cash debits. For comparison, see the ISO20022 official specification
classDiagram direction tb %% BalanceStatus2 recursion level 0 with max 1 class BalanceStatus2{ Balance IsoActiveCurrencyAndAmount }
BalanceStatus2 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Balance | Balance in each currency calculated at the value date and time indicated in the report. | IsoActiveCurrencyAndAmount - Required 1..1 |
PayInScheduleItem building block
Currency and total amount to be paid in by the corresponding deadline. Posting of an item to a cash account, in the context of a cash transaction, that results in an increase or decrease to the balance of the account. For comparison, see the ISO20022 official specification
classDiagram direction tb %% PayInScheduleItems1 recursion level 0 with max 1 class PayInScheduleItems1{ Amount IsoActiveCurrencyAndAmount Deadline IsoISODateTime }
PayInScheduleItems1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
Amount | Currency and amount to be paid in. | IsoActiveCurrencyAndAmount - Required 1..1 |
Deadline | Time by which the amount must be paid in. | IsoISODateTime - Required 1..1 |
PayInFactors building block
Factors used in the calculation of the pay-in schedule. Factors used in the calculation of the pay in schedule. For comparison, see the ISO20022 official specification
classDiagram direction tb %% PayInFactors1 recursion level 0 with max 1 class PayInFactors1{ AggregateShortPositionLimit IsoActiveCurrencyAndAmount } PayInFactors1 *-- "1..0" CurrencyFactors1 : CurrencyFactors %% CurrencyFactors1 recursion level 1 with max 1 class CurrencyFactors1{ Currency CurrencyCode ShortPositionLimit IsoImpliedCurrencyAndAmount MinimumPayInAmount IsoImpliedCurrencyAndAmount VolatilityMargin IsoPercentageRate } CurrencyFactors1 *-- "0..1" AgreedRate2 : Rate
PayInFactors1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
AggregateShortPositionLimit | Maximum allowed sum of short positions in all currencies, converted to base currency, during settlement. | IsoActiveCurrencyAndAmount - Required 1..1 |
CurrencyFactors | Currency specific pay-in factors. | CurrencyFactors1 - Unknown 1..0 |
SupplementaryData 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 %% SupplementaryData1 recursion level 0 with max 1 class SupplementaryData1{ PlaceAndName IsoMax350Text } SupplementaryData1 *-- "1..1" IsoSupplementaryDataEnvelope1 : Envelope %% IsoSupplementaryDataEnvelope1 recursion level 1 with max 1
SupplementaryData1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | Unambiguous reference to the location where the supplementary data must be inserted in the message instance. In the case of XML, this is expressed by a valid XPath. | IsoMax350Text - Optional 0..1 |
Envelope | Technical element wrapping the supplementary data. | IsoSupplementaryDataEnvelope1 - Required 1..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the PayInScheduleV03 implementation follows a specific implementaiton pattern. First of all, PayInScheduleV03 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, PayInScheduleV03Document implements IOuterDocument. Because PayInScheduleV03 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type PayInScheduleV03.
classDiagram class IOuterRecord PayInScheduleV03 --|> IOuterRecord : Implements PayInScheduleV03Document --|> IOuterDocument~PayInScheduleV03~ : Implements class IOuterDocument~PayInScheduleV03~ { PayInScheduleV03 Message }
Document wrapper for serialization
The only real purpose PayInScheduleV03Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:camt.062.001.03’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using PayInScheduleV03.ToDocument() method. The returned PayInScheduleV03Document value will serialize correctly according to ISO 20022 standards.
classDiagram PayInScheduleV03Document *-- PayInScheduleV03 : 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:camt.062.001.03">
<PayInSchdl>
<PtyId>
<!-- PartyIdentification inner content -->
</PtyId>
<RptData>
<!-- ReportData inner content -->
</RptData>
<PayInSchdlLngBal>
<!-- PayInScheduleLongBalance inner content -->
</PayInSchdlLngBal>
<PayInSchdlItm>
<!-- PayInScheduleItem inner content -->
</PayInSchdlItm>
<PayInFctrs>
<!-- PayInFactors inner content -->
</PayInFctrs>
<SplmtryData>
<!-- SupplementaryData inner content -->
</SplmtryData>
</PayInSchdl>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_KfNcsS43EeK7-OZOLIksSw"
name="PayInScheduleV03"
definition="The PayInSchedule message is sent by a central settlement system to the participant to provide notification of a series of timed payments scheduled for each currency at the time and date of the schedule generation. The central settlement system may send information about how the timed payments have been calculated."
registrationStatus="Registered"
messageSet="_nB3wITJaEeOX98kTVpuqCw _wiatARJsEeSstbhSoCHcWw"
xmlTag="PayInSchdl"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_KfNctS43EeK7-OZOLIksSw"
name="PartyIdentification"
definition="Party for which the pay-in schedule is generated."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="PtyId"
complexType="_JJOcQSjIEeKnA5P_jl2DUw" />
<messageBuildingBlock
xmi:id="_KfNcuS43EeK7-OZOLIksSw"
name="ReportData"
definition="General information applicable to the report."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="RptData"
complexType="_7xjgAS43EeK7-OZOLIksSw" />
<messageBuildingBlock
xmi:id="_KfNcvS43EeK7-OZOLIksSw"
name="PayInScheduleLongBalance"
definition="Projected net position for all currencies, projected long for the value date."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="PayInSchdlLngBal"
complexType="_S3i5sAEcEeCQm6a_G2yO_w_756219526" />
<messageBuildingBlock
xmi:id="_KfNcwS43EeK7-OZOLIksSw"
name="PayInScheduleItem"
definition="Currency and total amount to be paid in by the corresponding deadline."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="PayInSchdlItm"
complexType="_SGKyMeKNEeKM3LYZSgb7xw" />
<messageBuildingBlock
xmi:id="_KfNcxS43EeK7-OZOLIksSw"
name="PayInFactors"
definition="Factors used in the calculation of the pay-in schedule."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="PayInFctrs"
complexType="_S3PXsAEcEeCQm6a_G2yO_w_-1038379529" />
<messageBuildingBlock
xmi:id="_DTaJUS53EeKwTrPDLMbLxA"
name="SupplementaryData"
definition="Additional information that cannot be captured in the structured elements and/or any other specific block."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="SplmtryData"
complexType="_Qn0zC9p-Ed-ak6NoX_4Aeg_468227563" />
<messageDefinitionIdentifier
businessArea="camt"
messageFunctionality="062"
flavour="001"
version="03" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.