camt.023.001.07
Scope The BackupPayment message is sent by a member to the transaction administrator. It is used to request a liquidity transfer from the member to another participant in the system when the user is in recovery mode. Usage Under very specific circumstances, the transaction administrator can accept direct input of transactions as part of its cash management functionalities. This possibility is available only when a declared incident has been reported to the transaction administrator This could be the case, for example, when the internal systems of the member are having problems sending out payments or when the continuity of the whole system is put at risk. The purpose of the BackupPayment message is to prevent the consequences of a specific failure affecting not only the member experiencing problems but also its counterparties. Members can therefore input transactions directly in order to ensure the stability of the system and smooth exchanges. At any time during the operating hours of the system, and under the agreed circumstances, the member can request a backup payment to be effected. The member can request the transfer by identifying the following elements:
- party (account owner) that will receive the funds
- the financial institution that will receive the funds on behalf of the account owner Based on the criteria received within the BackupPayment message, the transaction administrator will execute or reject the requested funds transfer. The transaction administrator may send a Receipt message as a reply to the BackupPayment request. To verify the outcome of the request, the member may submit a GetTransaction or GetAccount message with the appropriate search criteria.
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 %% BackupPaymentV07 recursion level 0 with max 0 BackupPaymentV07 *-- "1..1" MessageHeader1 : MessageHeader BackupPaymentV07 *-- "0..1" MessageHeader1 : OriginalMessageIdentification BackupPaymentV07 *-- "0..1" PaymentInstruction13 : InstructionInformation BackupPaymentV07 *-- "1..1" IAmount2Choice : TransferredAmount BackupPaymentV07 *-- "1..1" SystemMember3 : Creditor BackupPaymentV07 *-- "0..1" SystemMember3 : CreditorAgent BackupPaymentV07 *-- "0..1" SystemMember3 : DebtorAgent BackupPaymentV07 *-- "0..1" SupplementaryData1 : SupplementaryData
Now, we will zero-in one-by-one on each of these building blocks.
MessageHeader building block
Common business identification for the message. Set of characteristics, such as the identification or the creation date and time, specific to the message. For comparison, see the ISO20022 official specification
classDiagram direction tb %% MessageHeader1 recursion level 0 with max 1 class MessageHeader1{ MessageIdentification IsoMax35Text CreationDateTime IsoISODateTime }
MessageHeader1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
MessageIdentification | Point to point reference, as assigned by the sender, to unambiguously identify the message. Usage: The sender has to make sure that MessageIdentification is unique for a pre-agreed period. | IsoMax35Text - Required 1..1 |
CreationDateTime | Date and time at which the message was created. | IsoISODateTime - Optional 0..1 |
OriginalMessageIdentification building block
Identifies the original message identification. This was formerly the PaymentInstructionReference. Set of characteristics, such as the identification or the creation date and time, specific to the message. For comparison, see the ISO20022 official specification
classDiagram direction tb %% MessageHeader1 recursion level 0 with max 1 class MessageHeader1{ MessageIdentification IsoMax35Text CreationDateTime IsoISODateTime }
MessageHeader1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
MessageIdentification | Point to point reference, as assigned by the sender, to unambiguously identify the message. Usage: The sender has to make sure that MessageIdentification is unique for a pre-agreed period. | IsoMax35Text - Required 1..1 |
CreationDateTime | Date and time at which the message was created. | IsoISODateTime - Optional 0..1 |
InstructionInformation building block
Provides details on the execution and type of payment contained in the instruction. Instruction to pay an amount of money to an ultimate beneficiary, on behalf of an originator. This instruction may have to be forwarded several times to complete the settlement chain. . For comparison, see the ISO20022 official specification
classDiagram direction tb %% PaymentInstruction13 recursion level 0 with max 1 class PaymentInstruction13{ RequestedExecutionDateTime IsoISODateTime } PaymentInstruction13 *-- "0..1" IPaymentType4Choice : PaymentType %% IPaymentType4Choice recursion level 1 with max 1
PaymentInstruction13 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
RequestedExecutionDateTime | Date at which the initiating party requests that the payment instruction be processed. | . |
PaymentType | Type, or nature, of the payment, for example an express payment. | IPaymentType4Choice - Optional 0..1 |
TransferredAmount building block
Quantity of cash that the transaction administrator transfers from one account to another. Choice between an amount with or without the currency. For comparison, see the ISO20022 official specification
classDiagram direction tb %% IAmount2Choice recursion level 0 with max 1
Amount2Choice members
Member name | Description | Data Type / Multiplicity |
---|
Creditor building block
Party that receives an amount of money from the debtor. Provides details about a system and about a member of a system. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SystemMember3 recursion level 0 with max 1 SystemMember3 *-- "0..1" ISystemIdentification2Choice : SystemIdentification SystemMember3 *-- "1..1" IMemberIdentification3Choice : MemberIdentification %% ISystemIdentification2Choice recursion level 1 with max 1 %% IMemberIdentification3Choice recursion level 1 with max 1
SystemMember3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
SystemIdentification | Identification of a particular cash clearing system. | ISystemIdentification2Choice - Optional 0..1 |
MemberIdentification | Unique and unambiguous identification of a member within a system, assigned using the member identification scheme of the system. | IMemberIdentification3Choice - Required 1..1 |
CreditorAgent building block
Financial institution that receives the payment transaction on behalf of an account owner, or other nominated party, and credits the account. Provides details about a system and about a member of a system. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SystemMember3 recursion level 0 with max 1 SystemMember3 *-- "0..1" ISystemIdentification2Choice : SystemIdentification SystemMember3 *-- "1..1" IMemberIdentification3Choice : MemberIdentification %% ISystemIdentification2Choice recursion level 1 with max 1 %% IMemberIdentification3Choice recursion level 1 with max 1
SystemMember3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
SystemIdentification | Identification of a particular cash clearing system. | ISystemIdentification2Choice - Optional 0..1 |
MemberIdentification | Unique and unambiguous identification of a member within a system, assigned using the member identification scheme of the system. | IMemberIdentification3Choice - Required 1..1 |
DebtorAgent building block
Financial institution that receives the payment transaction from the account owner, or other authorised party, and processes the instruction. Provides details about a system and about a member of a system. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SystemMember3 recursion level 0 with max 1 SystemMember3 *-- "0..1" ISystemIdentification2Choice : SystemIdentification SystemMember3 *-- "1..1" IMemberIdentification3Choice : MemberIdentification %% ISystemIdentification2Choice recursion level 1 with max 1 %% IMemberIdentification3Choice recursion level 1 with max 1
SystemMember3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
SystemIdentification | Identification of a particular cash clearing system. | ISystemIdentification2Choice - Optional 0..1 |
MemberIdentification | Unique and unambiguous identification of a member within a system, assigned using the member identification scheme of the system. | IMemberIdentification3Choice - Required 1..1 |
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 BackupPaymentV07 implementation follows a specific implementaiton pattern. First of all, BackupPaymentV07 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, BackupPaymentV07Document implements IOuterDocument. Because BackupPaymentV07 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type BackupPaymentV07.
classDiagram class IOuterRecord BackupPaymentV07 --|> IOuterRecord : Implements BackupPaymentV07Document --|> IOuterDocument~BackupPaymentV07~ : Implements class IOuterDocument~BackupPaymentV07~ { BackupPaymentV07 Message }
Document wrapper for serialization
The only real purpose BackupPaymentV07Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:camt.023.001.07’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using BackupPaymentV07.ToDocument() method. The returned BackupPaymentV07Document value will serialize correctly according to ISO 20022 standards.
classDiagram BackupPaymentV07Document *-- BackupPaymentV07 : 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.023.001.07">
<BckpPmt>
<MsgHdr>
<!-- MessageHeader inner content -->
</MsgHdr>
<OrgnlMsgId>
<!-- OriginalMessageIdentification inner content -->
</OrgnlMsgId>
<InstrInf>
<!-- InstructionInformation inner content -->
</InstrInf>
<TrfdAmt>
<!-- TransferredAmount inner content -->
</TrfdAmt>
<Cdtr>
<!-- Creditor inner content -->
</Cdtr>
<CdtrAgt>
<!-- CreditorAgent inner content -->
</CdtrAgt>
<DbtrAgt>
<!-- DebtorAgent inner content -->
</DbtrAgt>
<SplmtryData>
<!-- SupplementaryData inner content -->
</SplmtryData>
</BckpPmt>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_jwlbMRbvEeiyVv5j1vf1VQ"
name="BackupPaymentV07"
definition="Scope
The BackupPayment message is sent by a member to the transaction administrator.
It is used to request a liquidity transfer from the member to another participant in the system when the user is in recovery mode.
Usage
Under very specific circumstances, the transaction administrator can accept direct input of transactions as part of its cash management functionalities. This possibility is available only when a declared incident has been reported to the transaction administrator This could be the case, for example, when the internal systems of the member are having problems sending out payments or when the continuity of the whole system is put at risk.
The purpose of the BackupPayment message is to prevent the consequences of a specific failure affecting not only the member experiencing problems but also its counterparties. Members can therefore input transactions directly in order to ensure the stability of the system and smooth exchanges.
At any time during the operating hours of the system, and under the agreed circumstances, the member can request a backup payment to be effected.
The member can request the transfer by identifying the following elements:
- party (account owner) that will receive the funds
- the financial institution that will receive the funds on behalf of the account owner
Based on the criteria received within the BackupPayment message, the transaction administrator will execute or reject the requested funds transfer.
The transaction administrator may send a Receipt message as a reply to the BackupPayment request.
To verify the outcome of the request, the member may submit a GetTransaction or GetAccount message with the appropriate search criteria."
registrationStatus="Registered"
messageSet="_SZTDoxcNEeiyVv5j1vf1VQ"
xmlTag="BckpPmt"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<messageBuildingBlock
xmi:id="_jwlbMxbvEeiyVv5j1vf1VQ"
name="MessageHeader"
definition="Common business identification for the message."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="MsgHdr"
complexType="_75DzkaMgEeCJ6YNENx4h-w_-613853819" />
<messageBuildingBlock
xmi:id="_jwlbNRbvEeiyVv5j1vf1VQ"
name="OriginalMessageIdentification"
definition="Identifies the original message identification.
This was formerly the PaymentInstructionReference."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="OrgnlMsgId"
complexType="_75DzkaMgEeCJ6YNENx4h-w_-613853819" />
<messageBuildingBlock
xmi:id="_jwlbNxbvEeiyVv5j1vf1VQ"
name="InstructionInformation"
definition="Provides details on the execution and type of payment contained in the instruction."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="InstrInf"
complexType="_Lss7yxbwEeOy-PlRuFSUzQ" />
<messageBuildingBlock
xmi:id="_jwlbORbvEeiyVv5j1vf1VQ"
name="TransferredAmount"
definition="Quantity of cash that the transaction administrator transfers from one account to another."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="TrfdAmt"
complexType="_75DzlKMgEeCJ6YNENx4h-w_890446015" />
<messageBuildingBlock
xmi:id="_jwlbOxbvEeiyVv5j1vf1VQ"
name="Creditor"
definition="Party that receives an amount of money from the debtor."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="Cdtr"
complexType="_htb_MXSbEeiH1ZOt2UD8vQ" />
<messageBuildingBlock
xmi:id="_jwlbPRbvEeiyVv5j1vf1VQ"
name="CreditorAgent"
definition="Financial institution that receives the payment transaction on behalf of an account owner, or other nominated party, and credits the account."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="CdtrAgt"
complexType="_htb_MXSbEeiH1ZOt2UD8vQ" />
<messageBuildingBlock
xmi:id="_jwlbPxbvEeiyVv5j1vf1VQ"
name="DebtorAgent"
definition="Financial institution that receives the payment transaction from the account owner, or other authorised party, and processes the instruction."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="DbtrAgt"
complexType="_htb_MXSbEeiH1ZOt2UD8vQ" />
<messageBuildingBlock
xmi:id="_jwlbQRbvEeiyVv5j1vf1VQ"
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="023"
flavour="001"
version="07" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.