RequestToCancelPayment

camt.008.002.01

Scope The Request To Cancel Payment message is sent by a case creator/case assigner to a case assignee. This message is used to request the cancellation of an original payment instruction. Usage The Request To Cancel Payment message must be answered with a:

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
%% RequestToCancelPayment recursion level 0 with max 0
RequestToCancelPayment *-- "1..1" CaseAssignment : Assignment
RequestToCancelPayment *-- "1..1" Case : Case
RequestToCancelPayment *-- "1..1" PaymentInstructionExtract : Underlying
RequestToCancelPayment *-- "1..1" DebitAuthorisationDetails : Justification
  

Now, we will zero-in one-by-one on each of these building blocks.

Assignment building block

Identifies the assignment of a case from an assigner to an assignee. Represents the assignment of a case to a party. Assignment is a step in the overall process of managing a case. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% CaseAssignment recursion level 0 with max 1
class CaseAssignment{
    Identification IsoMax35Text
    Assigner IsoAnyBICIdentifier
    Assignee IsoAnyBICIdentifier
    CreationDateTime IsoISODateTime
}
  

CaseAssignment members

Member name Description Data Type / Multiplicity
Identification Identification of an assignment within a case. IsoMax35Text - Required 1..1
Assigner Party that assigns the case to another party. This is also the sender of the message. IsoAnyBICIdentifier - Required 1..1
Assignee Party that the case is assigned to. This is also the receiver of the message. IsoAnyBICIdentifier - Required 1..1
CreationDateTime Date and time at which the assignment was created. IsoISODateTime - Required 1..1

Case building block

Identifies the case. Information identifying a case. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% Case recursion level 0 with max 1
class Case{
    Identification IsoMax35Text
    Creator IsoAnyBICIdentifier
    ReopenCaseIndication IsoYesNoIndicator
}
  

Case members

Member name Description Data Type / Multiplicity
Identification Unique id assigned by the case creator. IsoMax35Text - Required 1..1
Creator Party that created the case. IsoAnyBICIdentifier - Required 1..1
ReopenCaseIndication Set to yes if the case was closed and needs to be re-opened. IsoYesNoIndicator - Optional 0..1

Underlying building block

Identifies the payment instruction to be cancelled. Details of a payment instruction. The information contained in this component is sufficient to retrieve a payment instruction. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% PaymentInstructionExtract recursion level 0 with max 1
class PaymentInstructionExtract{
    AssignerInstructionIdentification IsoMax35Text
    AssigneeInstructionIdentification IsoMax35Text
    CurrencyAmount IsoCurrencyAndAmount
    ValueDate IsoISODateTime
}
  

PaymentInstructionExtract members

Member name Description Data Type / Multiplicity
AssignerInstructionIdentification Identification of the payment instruction (eg, field 20 of an MT 103) when meaningful to the case assigner. IsoMax35Text - Optional 0..1
AssigneeInstructionIdentification Identification of the payment instruction (eg, field 20 of an MT 103) when meaningful to the case assignee. IsoMax35Text - Optional 0..1
CurrencyAmount Amount of the payment. Depending on the context it can be either the amount settled (UnableToApply) or the instructed amount (RequestToCancel, RequestToModify, ClaimNonReceipt). IsoCurrencyAndAmount - Optional 0..1
ValueDate Value date of the payment. IsoISODateTime - Optional 0..1

Justification building block

Defines the reason for requesting the cancellation. Provides the reason for requesting a debit authorisation as well as the amount of the requested debit. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% DebitAuthorisationDetails recursion level 0 with max 1
class DebitAuthorisationDetails{
    CancellationReason CancellationReason1Code
    AmountToDebit IsoCurrencyAndAmount
    ValueDateToDebit IsoISODate
}
  

DebitAuthorisationDetails members

Member name Description Data Type / Multiplicity
CancellationReason Indicates the reason for cancellation. CancellationReason1Code - Required 1..1
AmountToDebit Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party. IsoCurrencyAndAmount - Optional 0..1
ValueDateToDebit Value date for debiting the amount. IsoISODate - Optional 0..1

Extensibility and generalization considerations

To facilitate generalized design patterns in the system, the RequestToCancelPayment implementation follows a specific implementaiton pattern. First of all, RequestToCancelPayment impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, RequestToCancelPaymentDocument implements IOuterDocument. Because RequestToCancelPayment implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type RequestToCancelPayment.

classDiagram
    class IOuterRecord
    RequestToCancelPayment --|> IOuterRecord : Implements
    RequestToCancelPaymentDocument --|> IOuterDocument~RequestToCancelPayment~ : Implements
    class IOuterDocument~RequestToCancelPayment~ {
        RequestToCancelPayment Message
     }
  

Document wrapper for serialization

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

classDiagram
    RequestToCancelPaymentDocument *-- RequestToCancelPayment : 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.008.002.01">
    <camt.008.002.01>
        <Assgnmt>
            <!-- Assignment inner content -->
        </Assgnmt>
        <Case>
            <!-- Case inner content -->
        </Case>
        <Undrlyg>
            <!-- Underlying inner content -->
        </Undrlyg>
        <Justfn>
            <!-- Justification inner content -->
        </Justfn>
    </camt.008.002.01>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_SsPgaNE_Ed-BzquC8wXy7w_-319126459"
  name="RequestToCancelPayment"
  definition="Scope&#xD;&#xA;The Request To Cancel Payment message is sent by a case creator/case assigner to a case assignee.&#xD;&#xA;This message is used to request the cancellation of an original payment instruction.&#xD;&#xA;Usage&#xD;&#xA;The Request To Cancel Payment message must be answered with a:&#xD;&#xA;- Resolution Of Investigation message with a positive final outcome when the case assignee can perform the requested cancellation&#xD;&#xA;- Resolution Of Investigation message with a negative final outcome when the case assignee may perform the requested cancellation but fails to do so (too late, irrevocable instruction.)&#xD;&#xA;- Reject Case Assignment message when the case assignee is unable or not authorised to perform the requested cancellation&#xD;&#xA;- Notification Of Case Assignment message to indicate whether the case assignee will take on the case himself or reassign the case to a subsequent party in the payment processing chain.&#xD;&#xA;A Request To Cancel Payment message concerns one and only one original payment instruction at a time. If several original payment instructions need to be cancelled, then multiple Request To Cancel Payment messages must be sent.&#xD;&#xA;When a case assignee successfully performs a cancellation, it must return the corresponding funds to the case assigner. It may provide some details about the return in the Resolution Of Investigation message.&#xD;&#xA;The processing of a request to cancel payment case may end with a Debit Authorisation Request message sent to the creditor by its account servicing institution.&#xD;&#xA;The Request To Cancel Payment message may be used to escalate a case after an unsuccessful request to modify the payment. In this scenario, the case identification remains the same as in the original Request To Modify Payment message and the element ReopenCaseIndication is set to 'Yes' or 'true'."
  registrationStatus="Registered"
  messageSet="_urpIICeJEeOCeO5e7islRQ"
  xmlName="camt.008.002.01"
  xmlTag="camt.008.002.01"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <messageBuildingBlock
    xmi:id="_SsPgadE_Ed-BzquC8wXy7w_402186084"
    name="Assignment"
    definition="Identifies the assignment of a case from an assigner to an assignee."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="Assgnmt"
    complexType="_T9Dpetp-Ed-ak6NoX_4Aeg_588710247" />
  <messageBuildingBlock
    xmi:id="_SsZRYNE_Ed-BzquC8wXy7w_70459884"
    name="Case"
    definition="Identifies the case."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="Case"
    complexType="_SpAnotp-Ed-ak6NoX_4Aeg_136183535" />
  <messageBuildingBlock
    xmi:id="_SsZRYdE_Ed-BzquC8wXy7w_74152854"
    name="Underlying"
    definition="Identifies the payment instruction to be cancelled."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="Undrlyg"
    complexType="_VQgOUtp-Ed-ak6NoX_4Aeg_-769020295" />
  <messageBuildingBlock
    xmi:id="_SsZRYtE_Ed-BzquC8wXy7w_341710652"
    name="Justification"
    definition="Defines the reason for requesting the cancellation."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="Justfn"
    complexType="_T9Wkbdp-Ed-ak6NoX_4Aeg_1878930583" />
  <messageDefinitionIdentifier
    businessArea="camt"
    messageFunctionality="008"
    flavour="002"
    version="01" />
</messageDefinition>

ISO Building Blocks

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