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.