PayInCallV02

camt.061.001.02

The PayInCall message is sent by a central settlement system to request additional funding from a settlement member impacted by a failure situation.

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
%% PayInCallV02 recursion level 0 with max 0
class PayInCallV02{
    SettlementSessionIdentifier IsoExact4AlphaNumericText
}
PayInCallV02 *-- "1..1" IPartyIdentification73Choice : PartyIdentification
PayInCallV02 *-- "1..1" ReportData5 : ReportData
PayInCallV02 *-- "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 PayInCall 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

Contains the report generation information and the report items. 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
%% ReportData5 recursion level 0 with max 1
class ReportData5{
    MessageIdentification IsoMax35Text
    ValueDate IsoISODate
    DateAndTimeStamp IsoISODateTime
    Type CallIn1Code
    SettlementSessionIdentifier IsoExact4AlphaNumericText
}
ReportData5 *-- "0..0" PayInCallItem : PayInCallAmount
ReportData5 *-- "0..1" Value : AccountValue
%% PayInCallItem recursion level 1 with max 1
class PayInCallItem{
    Amount IsoActiveOrHistoricCurrencyAndAmount
}
%% Value recursion level 1 with max 1
class Value{
    BaseCurrencyItem IsoActiveOrHistoricCurrencyAndAmount
    AlternateCurrencyItem IsoActiveOrHistoricCurrencyAndAmount
}
  

ReportData5 members

Member name Description Data Type / Multiplicity
MessageIdentification Identification of the report assigned by the central system. IsoMax35Text - Required 1..1
ValueDate Date by which the amount(s) requested must be settled. 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 Specifies the type of the Pay In Call. CallIn1Code - Required 1..1
PayInCallAmount Specifies the amount requested. PayInCallItem - Unknown 0..0
SettlementSessionIdentifier To indicate the requested CLS Settlement Session that the related trade is part of. IsoExact4AlphaNumericText - Optional 0..1
AccountValue Specifies the requested amount in multiple currencies. Value - Optional 0..1

SettlementSessionIdentifier building block

To indicate the requested CLS Settlement Session that the related trade is part of. Specifies an alphanumeric string with a length of 4 characters. For comparison, see the ISO20022 official specification This message is declared as Exact4AlphaNumericText in the ISO specification. In our implementation, it is represented in source code as IsoExact4AlphaNumericText. Due to global using directives, it is treated as a System.String by the compiler and runtime.

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 PayInCallV02 implementation follows a specific implementaiton pattern. First of all, PayInCallV02 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, PayInCallV02Document implements IOuterDocument. Because PayInCallV02 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type PayInCallV02.

classDiagram
    class IOuterRecord
    PayInCallV02 --|> IOuterRecord : Implements
    PayInCallV02Document --|> IOuterDocument~PayInCallV02~ : Implements
    class IOuterDocument~PayInCallV02~ {
        PayInCallV02 Message
     }
  

Document wrapper for serialization

The only real purpose PayInCallV02Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:camt.061.001.02’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using PayInCallV02.ToDocument() method. The returned PayInCallV02Document value will serialize correctly according to ISO 20022 standards.

classDiagram
    PayInCallV02Document *-- PayInCallV02 : 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.061.001.02">
    <PayInCall>
        <PtyId>
            <!-- PartyIdentification inner content -->
        </PtyId>
        <RptData>
            <!-- ReportData inner content -->
        </RptData>
        <SttlmSsnIdr>
            <!-- SettlementSessionIdentifier inner content -->
        </SttlmSsnIdr>
        <SplmtryData>
            <!-- SupplementaryData inner content -->
        </SplmtryData>
    </PayInCall>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_FsXYwS43EeK7-OZOLIksSw"
  name="PayInCallV02"
  definition="The PayInCall message is sent by a central settlement system to request additional funding from a settlement member impacted by a failure situation."
  registrationStatus="Registered"
  messageSet="_nB3wITJaEeOX98kTVpuqCw _wiatARJsEeSstbhSoCHcWw"
  xmlTag="PayInCall"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <messageBuildingBlock
    xmi:id="_FsXYxS43EeK7-OZOLIksSw"
    name="PartyIdentification"
    definition="Party for which the PayInCall is generated."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="PtyId"
    complexType="_JJOcQSjIEeKnA5P_jl2DUw" />
  <messageBuildingBlock
    xmi:id="_FsXYyS43EeK7-OZOLIksSw"
    name="ReportData"
    definition="Contains the report generation information and the report items."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="RptData"
    complexType="_tziaQTqeEeKqTf3MbquCbA" />
  <messageBuildingBlock
    xmi:id="_-6XNzzqdEeKqTf3MbquCbA"
    name="SettlementSessionIdentifier"
    definition="To indicate the requested CLS Settlement Session that the related trade is part of."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="0"
    xmlTag="SttlmSsnIdr"
    simpleType="_YYLJ6Np-Ed-ak6NoX_4Aeg_-1265890753" />
  <messageBuildingBlock
    xmi:id="_CGzMPS53EeKwTrPDLMbLxA"
    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="061"
    flavour="001"
    version="02" />
</messageDefinition>

ISO Building Blocks

The following items are used as building blocks to construct this message.