PaymentCancellationRequestV01

pain.006.001.01

Scope The PaymentCancellationRequest message is sent by the initiating party or any agent, to the next party in the payment chain. It is used to request the cancellation of an instruction previously sent. Usage The PaymentCancellationRequest message is exchanged between non-financial institution customers and agents to request the cancellation of a payment initiation message previously sent (i.e. the CustomerCreditTransferInitiation message and the CustomerDirectDebitInitiation messages). The PaymentCancellationRequest message can be used to request the cancellation of single instructions or multiple instructions, from one or multiple files. The PaymentCancellationRequest message can be used in domestic and cross-border scenarios. The PaymentCancellationRequest message refers to the original instruction(s) by means of references only or by means of references and a set of elements from the original instruction. The PaymentCancellationRequest message exchanged between non-financial institution customers and agents is identified in the schema as follows: urn:iso:std:iso:20022:tech:xsd:pain.006.001.01.

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
%% PaymentCancellationRequestV01 recursion level 0 with max 0
PaymentCancellationRequestV01 *-- "1..1" GroupHeader7 : GroupHeader
PaymentCancellationRequestV01 *-- "1..1" OriginalGroupInformation4 : OriginalGroupInformation
PaymentCancellationRequestV01 *-- "0..1" PaymentTransactionInformation3 : TransactionInformation
  

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

GroupHeader building block

Set of characteristics shared by all individual transactions included in the message. Set of characteristics shared by all individual transactions included in the message. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% GroupHeader7 recursion level 0 with max 1
class GroupHeader7{
    MessageIdentification IsoMax35Text
    CreationDateTime IsoISODateTime
    NumberOfTransactions IsoMax15NumericText
    ControlSum IsoDecimalNumber
    GroupCancellation IsoGroupingIndicator
}
GroupHeader7 *-- "0..1" PartyIdentification8 : InitiatingParty
GroupHeader7 *-- "0..1" BranchAndFinancialInstitutionIdentification3 : ForwardingAgent
GroupHeader7 *-- "0..1" BranchAndFinancialInstitutionIdentification3 : DebtorAgent
GroupHeader7 *-- "0..1" BranchAndFinancialInstitutionIdentification3 : CreditorAgent
GroupHeader7 *-- "0..1" BranchAndFinancialInstitutionIdentification3 : InstructingAgent
GroupHeader7 *-- "0..1" BranchAndFinancialInstitutionIdentification3 : InstructedAgent
%% PartyIdentification8 recursion level 1 with max 1
class PartyIdentification8{
    Name IsoMax70Text
    CountryOfResidence CountryCode
}
PartyIdentification8 *-- "0..1" PostalAddress1 : PostalAddress
PartyIdentification8 *-- "0..1" IParty2Choice : Identification
%% BranchAndFinancialInstitutionIdentification3 recursion level 1 with max 1
BranchAndFinancialInstitutionIdentification3 *-- "1..1" IFinancialInstitutionIdentification5Choice : FinancialInstitutionIdentification
BranchAndFinancialInstitutionIdentification3 *-- "0..1" BranchData : BranchIdentification
%% BranchAndFinancialInstitutionIdentification3 recursion level 1 with max 1
BranchAndFinancialInstitutionIdentification3 *-- "1..1" IFinancialInstitutionIdentification5Choice : FinancialInstitutionIdentification
BranchAndFinancialInstitutionIdentification3 *-- "0..1" BranchData : BranchIdentification
%% BranchAndFinancialInstitutionIdentification3 recursion level 1 with max 1
BranchAndFinancialInstitutionIdentification3 *-- "1..1" IFinancialInstitutionIdentification5Choice : FinancialInstitutionIdentification
BranchAndFinancialInstitutionIdentification3 *-- "0..1" BranchData : BranchIdentification
%% BranchAndFinancialInstitutionIdentification3 recursion level 1 with max 1
BranchAndFinancialInstitutionIdentification3 *-- "1..1" IFinancialInstitutionIdentification5Choice : FinancialInstitutionIdentification
BranchAndFinancialInstitutionIdentification3 *-- "0..1" BranchData : BranchIdentification
%% BranchAndFinancialInstitutionIdentification3 recursion level 1 with max 1
BranchAndFinancialInstitutionIdentification3 *-- "1..1" IFinancialInstitutionIdentification5Choice : FinancialInstitutionIdentification
BranchAndFinancialInstitutionIdentification3 *-- "0..1" BranchData : BranchIdentification
  

GroupHeader7 members

Member name Description Data Type / Multiplicity
MessageIdentification Point to point reference assigned by the instructing party and sent to the next party in the chain to unambiguously identify the message.
CreationDateTime Date and time at which the (group of) cancellation request(s) was created by the instructing party. IsoISODateTime - Required 1..1
NumberOfTransactions Number of individual transactions contained in the message. IsoMax15NumericText - Required 1..1
ControlSum Total of all individual amounts included in the message, irrespective of currencies. IsoDecimalNumber - Optional 0..1
GroupCancellation Indicates whether the cancellation applies to a whole group of transactions or to individual transactions within the original group. IsoGroupingIndicator - Optional 0..1
InitiatingParty Party initiating the payment. In the payment context, this can either be the debtor (in a credit transfer), the creditor (in a direct debit), or the party that initiates the payment on behalf of the debtor or creditor. PartyIdentification8 - Optional 0..1
ForwardingAgent Financial institution that receives the instruction from the initiating party and forwards it to the next agent in the payment chain. BranchAndFinancialInstitutionIdentification3 - Optional 0..1
DebtorAgent Financial institution servicing an account for the debtor. BranchAndFinancialInstitutionIdentification3 - Optional 0..1
CreditorAgent Financial institution servicing an account for the creditor. BranchAndFinancialInstitutionIdentification3 - Optional 0..1
InstructingAgent Agent that instructs the next party in the chain to carry out the (set of) instruction(s). BranchAndFinancialInstitutionIdentification3 - Optional 0..1
InstructedAgent Agent that is instructed by the previous party in the chain to carry out the (set of) instruction(s). BranchAndFinancialInstitutionIdentification3 - Optional 0..1

OriginalGroupInformation building block

Information concerning the original group of transactions, to which the message refers. Unique and unambiguous identifier of the group of transactions as assigned by the original instructing party. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% OriginalGroupInformation4 recursion level 0 with max 1
class OriginalGroupInformation4{
    OriginalMessageIdentification IsoMax35Text
    OriginalMessageNameIdentification IsoMax35Text
    OriginalCreationDateTime IsoISODateTime
}
OriginalGroupInformation4 *-- "0..0" CancellationReasonInformation1 : CancellationReasonInformation
%% CancellationReasonInformation1 recursion level 1 with max 1
class CancellationReasonInformation1{
    AdditionalCancellationReasonInformation IsoMax105Text
}
CancellationReasonInformation1 *-- "0..1" PartyIdentification8 : CancellationOriginator
CancellationReasonInformation1 *-- "0..1" ICancellationReason1Choice : CancellationReason
  

OriginalGroupInformation4 members

Member name Description Data Type / Multiplicity
OriginalMessageIdentification Point to point reference assigned by the original instructing party to unambiguously identify the original group of individual transactions. IsoMax35Text - Required 1..1
OriginalMessageNameIdentification Specifies the original message name identifier to which the message refers, eg, pacs.003.001.01 or MT103. IsoMax35Text - Required 1..1
OriginalCreationDateTime Original date and time at which the message was created. IsoISODateTime - Optional 0..1
CancellationReasonInformation Detailed information on the cancellation reason. CancellationReasonInformation1 - Unknown 0..0

TransactionInformation building block

Information concerning the original transactions, to which the cancellation request message refers. Reference and status information concerning the original transactions, included in the original instruction, to which the cancellation request message applies. For comparison, see the ISO20022 official specification

classDiagram
   direction tb
%% PaymentTransactionInformation3 recursion level 0 with max 1
class PaymentTransactionInformation3{
    CancellationIdentification IsoMax35Text
    OriginalPaymentInformationIdentification IsoMax35Text
    OriginalInstructionIdentification IsoMax35Text
    OriginalEndToEndIdentification IsoMax35Text
    OriginalTransactionIdentification IsoMax35Text
    OriginalInterbankSettlementAmount IsoCurrencyAndAmount
    OriginalInstructedAmount IsoCurrencyAndAmount
}
PaymentTransactionInformation3 *-- "0..1" BranchAndFinancialInstitutionIdentification3 : InstructingAgent
PaymentTransactionInformation3 *-- "0..1" BranchAndFinancialInstitutionIdentification3 : InstructedAgent
PaymentTransactionInformation3 *-- "0..0" CancellationReasonInformation1 : CancellationReasonInformation
PaymentTransactionInformation3 *-- "0..1" OriginalTransactionReference1 : OriginalTransactionReference
%% BranchAndFinancialInstitutionIdentification3 recursion level 1 with max 1
BranchAndFinancialInstitutionIdentification3 *-- "1..1" IFinancialInstitutionIdentification5Choice : FinancialInstitutionIdentification
BranchAndFinancialInstitutionIdentification3 *-- "0..1" BranchData : BranchIdentification
%% BranchAndFinancialInstitutionIdentification3 recursion level 1 with max 1
BranchAndFinancialInstitutionIdentification3 *-- "1..1" IFinancialInstitutionIdentification5Choice : FinancialInstitutionIdentification
BranchAndFinancialInstitutionIdentification3 *-- "0..1" BranchData : BranchIdentification
%% CancellationReasonInformation1 recursion level 1 with max 1
class CancellationReasonInformation1{
    AdditionalCancellationReasonInformation IsoMax105Text
}
CancellationReasonInformation1 *-- "0..1" PartyIdentification8 : CancellationOriginator
CancellationReasonInformation1 *-- "0..1" ICancellationReason1Choice : CancellationReason
%% OriginalTransactionReference1 recursion level 1 with max 1
class OriginalTransactionReference1{
    InterbankSettlementAmount IsoCurrencyAndAmount
    InterbankSettlementDate IsoISODate
    RequestedExecutionDate IsoISODate
    RequestedCollectionDate IsoISODate
    PaymentMethod PaymentMethod4Code
}
OriginalTransactionReference1 *-- "0..1" IAmountType2Choice : Amount
OriginalTransactionReference1 *-- "0..1" PartyIdentification8 : CreditorSchemeIdentification
OriginalTransactionReference1 *-- "0..1" SettlementInformation3 : SettlementInformation
OriginalTransactionReference1 *-- "0..1" PaymentTypeInformation6 : PaymentTypeInformation
OriginalTransactionReference1 *-- "0..1" MandateRelatedInformation1 : MandateRelatedInformation
OriginalTransactionReference1 *-- "0..1" RemittanceInformation1 : RemittanceInformation
OriginalTransactionReference1 *-- "0..1" PartyIdentification8 : UltimateDebtor
OriginalTransactionReference1 *-- "0..1" PartyIdentification8 : Debtor
OriginalTransactionReference1 *-- "0..1" CashAccount7 : DebtorAccount
OriginalTransactionReference1 *-- "0..1" BranchAndFinancialInstitutionIdentification3 : DebtorAgent
OriginalTransactionReference1 *-- "0..1" CashAccount7 : DebtorAgentAccount
OriginalTransactionReference1 *-- "0..1" BranchAndFinancialInstitutionIdentification3 : CreditorAgent
OriginalTransactionReference1 *-- "0..1" CashAccount7 : CreditorAgentAccount
OriginalTransactionReference1 *-- "0..1" PartyIdentification8 : Creditor
OriginalTransactionReference1 *-- "0..1" CashAccount7 : CreditorAccount
OriginalTransactionReference1 *-- "0..1" PartyIdentification8 : UltimateCreditor
  

PaymentTransactionInformation3 members

Member name Description Data Type / Multiplicity
CancellationIdentification Unique and unambiguous identifier of a cancellation request, assigned by an instructing party.
OriginalPaymentInformationIdentification Unique and unambiguous identifier of the original payment information block as assigned by the original sending party. IsoMax35Text - Optional 0..1
OriginalInstructionIdentification Original unique instruction identification as assigned by an instructing party for an instructed party to unambiguously identify the original instruction.
OriginalEndToEndIdentification Original unique identification assigned by the initiating party to unambiguously identify the original transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. IsoMax35Text - Optional 0..1
OriginalTransactionIdentification Original identification of a transaction, as assigned by the first instructing agent and passed on, unchanged, throughout the entire interbank chain. IsoMax35Text - Optional 0..1
OriginalInterbankSettlementAmount Amount of money transferred between the instructing agent and the instructed agent in the original transaction. IsoCurrencyAndAmount - Optional 0..1
OriginalInstructedAmount Amount of money to be moved between the debtor and the creditor, before deduction of charges, expressed in the currency as ordered by the initiating party in the original transaction. IsoCurrencyAndAmount - Optional 0..1
InstructingAgent Agent that instructs the next party in the chain to carry out the (set of) instruction(s). BranchAndFinancialInstitutionIdentification3 - Optional 0..1
InstructedAgent Agent that is instructed by the previous party in the chain to carry out the (set of) instruction(s). BranchAndFinancialInstitutionIdentification3 - Optional 0..1
CancellationReasonInformation Detailed information on the cancellation reason. CancellationReasonInformation1 - Unknown 0..0
OriginalTransactionReference Set of key elements of the original transaction being referred to. OriginalTransactionReference1 - Optional 0..1

Extensibility and generalization considerations

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

classDiagram
    class IOuterRecord
    PaymentCancellationRequestV01 --|> IOuterRecord : Implements
    PaymentCancellationRequestV01Document --|> IOuterDocument~PaymentCancellationRequestV01~ : Implements
    class IOuterDocument~PaymentCancellationRequestV01~ {
        PaymentCancellationRequestV01 Message
     }
  

Document wrapper for serialization

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

classDiagram
    PaymentCancellationRequestV01Document *-- PaymentCancellationRequestV01 : 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:pain.006.001.01">
    <pain.006.001.01>
        <GrpHdr>
            <!-- GroupHeader inner content -->
        </GrpHdr>
        <OrgnlGrpInf>
            <!-- OriginalGroupInformation inner content -->
        </OrgnlGrpInf>
        <TxInf>
            <!-- TransactionInformation inner content -->
        </TxInf>
    </pain.006.001.01>
</Document>

Data from ISO specification

This is the technical data from the specification document.

<messageDefinition
  xmi:id="_GZHVINEvEd-BzquC8wXy7w_162316323"
  nextVersions="_RsSUuNE-Ed-BzquC8wXy7w_377163299"
  name="PaymentCancellationRequestV01"
  definition="Scope&#xD;&#xA;The PaymentCancellationRequest message is sent by the initiating party or any agent, to the next party in the payment chain. It is used to request the cancellation of an instruction previously sent.&#xD;&#xA;Usage&#xD;&#xA;The PaymentCancellationRequest message is exchanged between non-financial institution customers and agents to request the cancellation of a payment initiation message previously sent (i.e. the CustomerCreditTransferInitiation message and the CustomerDirectDebitInitiation messages).&#xD;&#xA;The PaymentCancellationRequest message can be used to request the cancellation of single instructions or multiple instructions, from one or multiple files.&#xD;&#xA;The PaymentCancellationRequest message can be used in domestic and cross-border scenarios.&#xD;&#xA;The PaymentCancellationRequest message refers to the original instruction(s) by means of references only or by means of references and a set of elements from the original instruction.&#xD;&#xA;The PaymentCancellationRequest message exchanged between non-financial institution customers and agents is identified in the schema as follows: urn:iso:std:iso:20022:tech:xsd:pain.006.001.01."
  registrationStatus="Registered"
  messageSet="_urpIICeJEeOCeO5e7islRQ"
  xmlName="pain.006.001.01"
  xmlTag="pain.006.001.01"
  rootElement="Document"
  xmlns:xmi="http://www.omg.org/XMI">
  <constraint
    xmi:id="_GZQfE9EvEd-BzquC8wXy7w_163236425"
    name="InstructedAgentRule"
    definition="GroupHeader/InstructedAgent is not allowed."
    registrationStatus="Provisionally Registered" />
  <constraint
    xmi:id="_GZQfFtEvEd-BzquC8wXy7w_163236427"
    name="InstructingAgentRule"
    definition="GroupHeader/InstructingAgent is not allowed."
    registrationStatus="Provisionally Registered" />
  <constraint
    xmi:id="_GZQfGdEvEd-BzquC8wXy7w_163236429"
    name="OriginalInterbankSettlementAmountRule"
    definition="TransactionInformation/OriginalInterbankSettlementAmount is not allowed."
    registrationStatus="Provisionally Registered" />
  <constraint
    xmi:id="_GZaQEtEvEd-BzquC8wXy7w_163236447"
    name="GroupCancellation1Rule"
    definition="If GroupHeader/GroupCancellation is true, then TransactionInformation is not allowed.&#xA;If GroupHeader/GroupCancellation is false, then at least one occurrence of TransactionInformation must be present."
    registrationStatus="Provisionally Registered" />
  <constraint
    xmi:id="_GZaQFdEvEd-BzquC8wXy7w_163236457"
    name="GroupCancellation2Rule"
    definition="If GroupHeader/GroupCancellation is true, then OriginalGroupInformation/CancellationReasonInformation/CancellationReason must present."
    registrationStatus="Provisionally Registered" />
  <constraint
    xmi:id="_GZaQGNEvEd-BzquC8wXy7w_163236459"
    name="GroupCancellation3Rule"
    definition="If GroupHeader/GroupCancellation is false, then GroupHeader/NumberOfTransactions specifies the number of occurrences of TransactionInformation.&#xA;."
    registrationStatus="Provisionally Registered" />
  <messageBuildingBlock
    xmi:id="_GZQfENEvEd-BzquC8wXy7w_162316362"
    name="GroupHeader"
    definition="Set of characteristics shared by all individual transactions included in the message."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="GrpHdr"
    complexType="_Pt2eGtp-Ed-ak6NoX_4Aeg_1753379922" />
  <messageBuildingBlock
    xmi:id="_GZQfEdEvEd-BzquC8wXy7w_162316385"
    name="OriginalGroupInformation"
    definition="Information concerning the original group of transactions, to which the message refers."
    registrationStatus="Provisionally Registered"
    maxOccurs="1"
    minOccurs="1"
    xmlTag="OrgnlGrpInf"
    complexType="_PhVsEtp-Ed-ak6NoX_4Aeg_453123857" />
  <messageBuildingBlock
    xmi:id="_GZQfEtEvEd-BzquC8wXy7w_162316416"
    name="TransactionInformation"
    definition="Information concerning the original transactions, to which the cancellation request message refers."
    registrationStatus="Provisionally Registered"
    minOccurs="0"
    xmlTag="TxInf"
    complexType="_PsOGYNp-Ed-ak6NoX_4Aeg_1422225346" />
  <messageDefinitionIdentifier
    businessArea="pain"
    messageFunctionality="006"
    flavour="001"
    version="01" />
</messageDefinition>

ISO Building Blocks

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