camt: Cash management
camt.029 Resolution of Investigation
Written and maintained by ZagTrader. Last reviewed . How this page is sourced and checked
The camt.029 is the ISO 20022 message a bank sends to answer an investigation case, most often a camt.056 request to cancel a payment. It tells the bank that asked whether the payment was cancelled, is still pending, or will not be cancelled, and why. It is the ISO 20022 counterpart of the MT196 and MT296 answers.
- Message
- ResolutionOfInvestigation
- Root element
- RsltnOfInvstgtn
- Common version
- camt.029.001.09
- MT equivalent
- MT196
When camt.029 is used
The bank that receives a camt.056 (the assignee) answers the bank that sent it (the assigner) with a camt.029. If it stopped the payment before processing, it confirms the cancellation. If it has passed the request on to the next bank, or is waiting for its customer’s consent, it reports the case as pending. If it cannot or will not return the funds, it rejects the request with a reason.
When the payment had already been settled and the cancellation is accepted, the money itself comes back in a separate pacs.004 with reason FOCR. The camt.029 reports the outcome of the case; the pacs.004 moves the funds.
The message is generic: besides cancellation details it has blocks for modification requests, claims of non-receipt, statement queries and corrective transactions. CBPR+ and the SEPA Credit Transfer scheme use it for several investigation flows; this page concentrates on the answer to a cancellation request.
Like the request, the answer follows the payment chain hop by hop, so a final answer from the creditor’s bank reaches the debtor’s bank through each bank in between.
Versions in common use
| Version | Where it is used |
|---|---|
| camt.029.001.09 | CBPR+ cross-border on Swift; SEPA Credit Transfer inter-PSP guidelines (negative answer to a recall and inquiry answers, 2025 rulebook). |
camt.029 key elements
Paths are relative to Document/RsltnOfInvstgtn. Occurrence is from the base message (camt.029.001.09); market practice such as CBPR+ or a CSD’s rules can make an optional element mandatory or forbid it.
| Element | Occurs | Meaning |
|---|---|---|
| AssgnmtAssignment | [1..1] | Identifies this answer and who sends it to whom. |
| IdIdentification | [1..1] | Reference of this camt.029. |
| AssgnrAssigner | [1..1] | The bank sending the answer (the assignee of the camt.056), as Agt/FinInstnId/BICFI in CBPR+. |
| AssgneAssignee | [1..1] | The bank receiving the answer (the assigner of the camt.056). |
| CreDtTmCreation Date Time | [1..1] | Creation time with UTC offset. |
| RslvdCaseResolved Case | [0..1] | The case being answered, at message level. CBPR+ requires it inside the transaction details (CxlDtls/TxInfAndSts/RslvdCase). |
| StsStatus | [1..1] | The overall outcome. A choice: one of the child elements below. |
| ConfConfirmation | [0..1] | Coded outcome. For cancellation requests: CNCL cancelled, PDCR pending cancellation request, RJCR cancellation request rejected. Mandatory in CBPR+ cancellation answers. |
| RjctdModRejected Modification | [0..n] | Used when the case was a modification request that is refused. |
| DplctOfDuplicate Of | [0..1] | The case duplicates another case, identified here. |
| CxlDtlsCancellation Details | [0..n] | Details of the payment the cancellation request was about. |
| TxInfAndStsTransaction Information And Status | [0..n] | Status of one payment whose cancellation was requested. |
| CxlStsIdCancellation Status Identification | [0..1] | Reference of this cancellation status. Mandatory in CBPR+. |
| RslvdCaseResolved Case | [0..1] | Case ID and case creator from the camt.056, quoted unchanged. Mandatory in CBPR+. |
| OrgnlGrpInfOriginal Group Information | [0..1] | Message ID and message name (for example pacs.008.001.08) of the payment that was to be cancelled. |
| OrgnlInstrIdOriginal Instruction Identification | [0..1] | Instruction ID of the original payment. |
| OrgnlEndToEndIdOriginal End To End Identification | [0..1] | End-to-end reference of the original payment. |
| OrgnlUETROriginal UETR | [0..1] | UETR of the original payment. Mandatory in CBPR+. See how to read a UETR. |
| TxCxlStsTransaction Cancellation Status | [0..1] | Status of this transaction’s cancellation: ACCR accepted, PDCR pending, RJCR rejected. |
| CxlStsRsnInfCancellation Status Reason Information | [0..n] | Why the request is pending or rejected. |
| OrgtrOriginator | [0..1] | Who gave the status, for example the creditor agent or the creditor. |
| CdReason Code | [0..1] | Coded reason, for example PTNA passed to the next agent, NOAS no answer from the customer, ARDT already returned. |
| AddtlInfAdditional Information | [0..n] | Free text, 105 characters per occurrence. |
| RsltnRltdInfResolution Related Information | [0..1] | Data about the resolution, such as the end-to-end ID, UETR, amount and date of the related return, compensation and charges. |
| OrgnlIntrBkSttlmAmtOriginal Interbank Settlement Amount | [0..1] | Amount of the original payment. |
| OrgnlIntrBkSttlmDtOriginal Interbank Settlement Date | [0..1] | Settlement date of the original payment. |
| OrgnlTxRefOriginal Transaction Reference | [0..1] | Copy of key data of the original payment. |
| ModDtlsModification Details | [0..1] | Answer details for a modification request. |
| ClmNonRctDtlsClaim Non Receipt Details | [0..1] | Answer to a claim that a payment was not received: accepted or rejected. |
| RsltnRltdInfResolution Related Information | [0..1] | Resolution data at message level, with the same content as the transaction-level block. |
Rules worth knowing
- The answer must quote the case ID and case creator of the request unchanged, plus the original payment references and UETR, so the assigner can close the right case.
- Confirmation codes for cancellation requests:
CNCLcancelled as requested,PDCRpending,RJCRrejected. - Reason codes seen with pending or rejected answers (ISO names):
PTNAPassed To The Next Agent,AC04Closed Account Number,AM04Insufficient Funds,ARDTThe Transaction Has Already Been Returned,CUSTRequested By Customer (the creditor refuses),LEGLLegal Decision,NOASNo Answer From Customer,NOORNo Original Transaction Received. - A positive answer after settlement is not complete until the funds arrive in a pacs.004 with reason
FOCR. Keep the case open until then. - Some codes cannot be given in some countries for data protection reasons; SEPA guidance names
CUSTas an alternative toAM04.
camt.029 XML example
BANKGB2LXXX answers the camt.056 example from ZagTrader Test Bank. The duplicate pacs.008 had not yet been settled or credited, so BANKGB2LXXX cancels it and confirms with CNCL. No funds have moved, so no pacs.004 follows.
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.029.001.09">
<RsltnOfInvstgtn>
<Assgnmt>
<Id>BGBRES2610200042</Id>
<Assgnr>
<Agt>
<FinInstnId>
<BICFI>BANKGB2LXXX</BICFI>
</FinInstnId>
</Agt>
</Assgnr>
<Assgne>
<Agt>
<FinInstnId>
<BICFI>ZAGTAEADXXX</BICFI>
</FinInstnId>
</Agt>
</Assgne>
<CreDtTm>2026-10-20T11:50:00+01:00</CreDtTm>
</Assgnmt>
<Sts>
<Conf>CNCL</Conf>
</Sts>
<CxlDtls>
<TxInfAndSts>
<CxlStsId>BGBRES2610200042</CxlStsId>
<RslvdCase>
<Id>ZTCASE2610200001</Id>
<Cretr>
<Agt>
<FinInstnId>
<BICFI>ZAGTAEADXXX</BICFI>
</FinInstnId>
</Agt>
</Cretr>
</RslvdCase>
<OrgnlGrpInf>
<OrgnlMsgId>ZT26102000005</OrgnlMsgId>
<OrgnlMsgNmId>pacs.008.001.08</OrgnlMsgNmId>
</OrgnlGrpInf>
<OrgnlInstrId>ZT2610200005</OrgnlInstrId>
<OrgnlEndToEndId>GT-PO-2026-0457</OrgnlEndToEndId>
<OrgnlUETR>ac618c39-fc23-4c68-8900-7e656666f6b0</OrgnlUETR>
<TxCxlSts>ACCR</TxCxlSts>
<OrgnlIntrBkSttlmAmt Ccy="GBP">25000.00</OrgnlIntrBkSttlmAmt>
<OrgnlIntrBkSttlmDt>2026-10-22</OrgnlIntrBkSttlmDt>
</TxInfAndSts>
</CxlDtls>
</RsltnOfInvstgtn>
</Document>Decode this example in the parserAssigner and assignee are the reverse of the camt.056: the answer flows back to the bank that asked.
If BANKGB2LXXX had already credited Acme Components, it would first answer PDCR while asking its customer, then either return the funds in a pacs.004 with FOCR or answer RJCR with a reason such as CUST or NOAS.
Note that in this block OrgnlUETR comes after OrgnlClrSysRef, a different order from the camt.056. Schema order matters in XML.
All identifiers are made up.
camt.029 and its MT equivalent
The camt.029 is the ISO 20022 counterpart of the MT196 and MT296 answers to queries and cancellation requests. The MT carried its reference, the related reference of the request, the answers in field 76, optional narrative in 77A, the MT type and date of the original in 11a, and a copy of the original fields. The ISO message gives each of these a dedicated, coded element and quotes the UETR and case ID.
Exceptions and investigations messages were not part of Swift’s 22 November 2025 deadline for payment instructions, so MT n96 messages can still be exchanged where both sides support them. A camt.056 received for an ISO 20022 payment is answered with a camt.029.
| ISO 20022 element | MT field | Note |
|---|---|---|
Assgnmt/Id | 20 | |
CxlDtls/TxInfAndSts/RslvdCase/Id | 21 | Points to the request being answered. |
Sts/Conf + TxCxlSts + CxlStsRsnInf/Rsn/Cd | 76 | The answer. |
CxlDtls/TxInfAndSts/CxlStsRsnInf/AddtlInf | 77A | |
CxlDtls/TxInfAndSts/OrgnlGrpInf | 11a | MT type and date of the original. |
CxlDtls/TxInfAndSts/OrgnlTxRef | 79 or copy of original fields | |
CxlDtls/TxInfAndSts/OrgnlUETR | 121 of the original (in the copied fields) |
Common errors and rejects
Answer does not quote the case
A camt.029 without the case ID and creator of the request, or with the wrong UETR, cannot be matched to the open case and the requester keeps chasing. Copy them from the received camt.056.
How to fix itCNCL sent but funds never returned
If the payment had settled, a cancellation is only complete when the pacs.004 with
FOCRis sent. Make sure the return is booked in the same step as the answer.Pending forever
A
PDCRwithPTNAmeans the case is with the next bank. The final answer must come back through the chain; if it does not, chase the next bank with the case ID rather than opening a new case.Rejection without a usable reason
A
RJCRwith no reason code leaves the debtor’s bank unable to advise its customer. Give a code such asNOAS,CUST,LEGLorARDT, and add text where it helps.Elements in the wrong order
Schema validation fails when, for example,
OrgnlUETRis placed beforeOrgnlClrSysRefin the cancellation details. The order differs from the camt.056, so do not copy the block across blindly.
camt.029 questions
- What is a camt.029 message?
- The ISO 20022 Resolution of Investigation: the answer to an investigation case, most often to a camt.056 cancellation request.
- What do CNCL, PDCR and RJCR mean in camt.029?
- CNCL: the payment was cancelled as requested. PDCR: the request is pending, for example passed to the next bank or waiting for the customer. RJCR: the request is rejected, with a reason.
- What is the ISO 20022 equivalent of MT196?
- The camt.029. MT196 (customer payments) and MT296 (bank transfers) answers both map to it.
- If camt.029 says CNCL, where is my money?
- If the payment had not settled, nothing moved and nothing needs to come back. If it had settled, the funds come back in a separate pacs.004 with reason FOCR.
- Which camt.029 version does CBPR+ use?
- camt.029.001.09, also used by the SEPA Credit Transfer inter-PSP guidelines.
All ISO 20022 messages · MT messages · MT to ISO 20022 migration