PayInScheduleV03

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.