Skip to content

Reference

ISO 20022 reference: messages, codes and MT940

Message families, balance types, bank transaction codes, statuses and reasons, validation rules and MT940 fields, with the MT940 to camt.053 mapping.

Generated from the tables the viewers and the API use: 20 messages, 10 balance types, 58 reason codes, 72 validation rules.

On this page

Every table on this page comes from the code lists the camt Statement Viewer, the Payment File Viewer, the MT940 Viewer and the API use to read, explain and check files. What you read here is what the tools apply.

ISO 20022 message families

ISO 20022 messages are named by business area and number: camt (cash management) for statements and reports, pain (payments initiation) for what a company sends its bank and gets back, pacs (payments clearing and settlement) for payments between banks. The 6 messages with a viewer are parsed and validated; the others are recognized (the detect operation names them) but not parsed.

ISO 20022 messages
MessageName and purposeFlowMT equivalentOn this site
Cash management (camt)
camt.053<BkToCstmrStmt>Bank-to-customer statementThe end-of-day account statement: opening and closing balances and every booked entry of the period.Bank → account ownerMT940 / MT950camt Statement Viewer
camt.052<BkToCstmrAcctRpt>Bank-to-customer account reportIntraday (or interim) account report: balances so far and entries booked or pending during the day.Bank → account ownerMT941 / MT942camt Statement Viewer
camt.054<BkToCstmrDbtCdtNtfctn>Bank-to-customer debit/credit notificationAdvice of individual debits or credits, often the detail behind a batch entry on the statement.Bank → account ownerMT900 / MT910camt Statement Viewer
camt.056<FIToFIPmtCxlReq>FI-to-FI payment cancellation requestAsks the next bank to cancel (recall) a payment.Bank → bankMT192 / MT292Recognized, not parsed
camt.029<RsltnOfInvstgtn>Resolution of investigationThe answer to a cancellation request or an investigation.Bank → bank or customerMT196 / MT296Recognized, not parsed
camt.055<CstmrPmtCxlReq>Customer payment cancellation requestA customer asks its bank to cancel a payment it initiated.Account owner → bank—Recognized, not parsed
camt.060<AcctRptgReq>Account reporting requestAsks the bank for a statement or report (camt.052/053/054).Account owner → bankMT920Recognized, not parsed
Payments initiation (pain)
pain.001<CstmrCdtTrfInitn>Customer credit transfer initiationA batch of credit transfers (supplier payments, payroll, wires) sent by a company to its bank.Account owner → bankMT101Payment File Viewer
pain.008<CstmrDrctDbtInitn>Customer direct debit initiationA batch of direct debits a creditor asks its bank to collect, with the mandate behind each.Creditor → bankMT104Payment File Viewer
pain.002<CstmrPmtStsRpt>Customer payment status reportThe bank’s answer to a pain.001 or pain.008: accepted, pending or rejected, per file, block or transaction, with reason codes.Bank → account owner—Payment File Viewer
pain.007<CstmrPmtRvsl>Customer payment reversalReverses a direct debit that was already collected.Creditor → bank—Recognized, not parsed
pain.013<CdtrPmtActvtnReq>Creditor payment activation requestA request to pay sent to a debtor.Creditor → debtor (via banks)—Recognized, not parsed
pain.014<CdtrPmtActvtnReqStsRpt>Creditor payment activation request status reportThe debtor’s answer to a request to pay.Debtor → creditor (via banks)—Recognized, not parsed
Payments clearing and settlement (pacs)
pacs.008<FIToFICstmrCdtTrf>FI-to-FI customer credit transferThe interbank customer payment: what Fedwire, CHAPS, TARGET2 and SWIFT cross-border (CBPR+) carry.Bank → bankMT103Recognized, not parsed
pacs.009<FICdtTrf>Financial institution credit transferA bank-to-bank transfer for the banks’ own account (cover payments, liquidity).Bank → bankMT202 / MT202COVRecognized, not parsed
pacs.002<FIToFIPmtStsRpt>FI-to-FI payment status reportInterbank status of a pacs payment: accepted, settled or rejected with a reason.Bank → bank—Recognized, not parsed
pacs.004<PmtRtr>Payment returnReturns the funds of a settled payment (wrong account, closed account, refund).Bank → bank—Recognized, not parsed
pacs.003<FIToFICstmrDrctDbt>FI-to-FI customer direct debitThe interbank leg of a direct debit.Bank → bank—Recognized, not parsed
Business application header (head)
head.001<AppHdr>Business application headerThe envelope header (sender, receiver, message id, message definition) that travels with a message on SWIFT and RTGS networks.Any—Recognized, not parsed
Administration (admi)
admi.002<MsgRjct>Message rejectA technical rejection of a message that could not be processed.Any—Recognized, not parsed

Versions and namespaces

A message identifier has four parts: business area, message number, variant and version. camt.053.001.08 is version 08 of variant 001 of camt.053. The XML namespace carries the full identifier:

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.08">
  <BkToCstmrStmt>…</BkToCstmrStmt>
</Document>
  • The viewers and the API read versions .001.02 to .001.13 of each supported message, with or without a namespace prefix (<Document> or <ns2:Document>).
  • Without a namespace, a message is recognized by the element under <Document>: the root element in the table above.
  • Versions add elements and sometimes restructure one: a bank’s BIC is <BIC> in older versions such as camt.053.001.02 and <BICFI> in newer ones; an entry status is a bare code up to .001.06 and <Sts><Cd> from .001.07. The tools read both forms.
  • Market practice guides (SEPA, CBPR+, national banking associations, your bank’s implementation guide) restrict which elements and codes may be used. A file can be valid ISO 20022 and still break a bank’s rules; the validator reports rules that banks apply unevenly as warnings.

Business application header

On SWIFT and on payment-system networks a message travels with a business application header, head.001 (root element AppHdr), alongside the Document: who sent it (Fr), who receives it (To), its id (BizMsgIdr), which message follows (MsgDefIdr) and when it was created (CreDt).

<AppHdr xmlns="urn:iso:std:iso:20022:tech:xsd:head.001.001.02">
  <Fr><FIId><FinInstnId><BICFI>COBADEFFXXX</BICFI></FinInstnId></FIId></Fr>
  <To><FIId><FinInstnId><BICFI>NWBKGB2LXXX</BICFI></FinInstnId></FIId></To>
  <BizMsgIdr>STMT20261028NW001</BizMsgIdr>
  <MsgDefIdr>camt.053.001.08</MsgDefIdr>
  <CreDt>2026-10-29T06:15:00Z</CreDt>
</AppHdr>

Files a company exchanges with its bank directly (a downloaded statement, an uploaded pain.001) usually have no header. When one is present, the detect operation returns its fields as appHeader.

Where the migration stands

  • Euro area: SEPA credit transfers and direct debits have used ISO 20022 (pain.001, pain.008 and camt reporting) since the SEPA migration of 2014.
  • Fedwire Funds Service: moved from its proprietary format to ISO 20022 in July 2025.
  • SWIFT cross-border payments: the period in which MT and ISO 20022 payment instructions coexisted (MT103, MT202 and related) ended in November 2025; banks exchange pacs.008 and pacs.009 under the CBPR+ rules.
  • Statements: MT940 is still widely used for corporate reporting, and many banks offer it next to camt.053. That is why this site reads MT940 and converts it.
  • Switzerland: Swiss banks end support for the 2009 schema versions (such as pain.001.001.03) in November 2026, in favour of the 2019 versions (such as pain.001.001.09).

As of October 2026. Your bank or market infrastructure publishes the dates that apply to you.

Balance types

Each balance in a camt.052, camt.053 or camt.054 carries a type code in Bal/Tp/CdOrPrtry/Cd. Booked balances must roll forward: the opening booked balance (OPBD, or PRCD) plus the booked entries gives the closing booked balance (CLBD). The validator checks it under camt.balance.roll-forward.

Balance type codes
CodeNameDefinitionBookedFrom MT940
OPBDOpening bookedBook balance at the start of the reporting period: the closing booked balance of the previous statement.Yes:60F: (:60M: on a continuation page)
CLBDClosing bookedBook balance at the end of the reporting period: the opening booked balance plus or minus every entry booked in the period.Yes:62F: (:62M: on a page that continues)
CLAVClosing availableClosing balance of funds the account owner can use at the end of the period (booked balance adjusted for float and holds).No:64:
OPAVOpening availableAvailable balance at the start of the reporting period.No—
ITBDInterim bookedBook balance calculated during the business day, at the time given; it can still change before the day closes.Yes—
ITAVInterim availableAvailable balance calculated during the business day, at the time given.No—
PRCDPreviously closed bookedClosing booked balance of the previous statement, as reported then. Some banks send it instead of (or as well as) OPBD.Yes—
FWAVForward availableBalance that will be available on a future date (Dt), taking value-dated entries into account.No:65:
XPCDExpectedBalance of booked entries plus pending items expected to be booked: a projection, not a booked figure.No—
INFOInformationBalance reported for information only (for example a balance of a related account or a blocked amount).No—

Balance sub-types

A balance may also carry a sub-type in Bal/Tp/SubTp, as a code or a proprietary value. The external code list is longer than the values below; others are shown as written.

Balance sub-types
Sub-typeMeaning
INTMIntermediate (a page of a statement that continues)

Bank transaction codes

Each entry in a camt.052, camt.053 or camt.054 is classified in BkTxCd. The ISO code nests three levels: a domain (Domn/Cd), a family within the domain (Domn/Fmly/Cd) and a sub-family (Domn/Fmly/SubFmlyCd). Read together, PMNT / RCDT / ESCT is a payment, a received credit transfer, a SEPA credit transfer.

<BkTxCd>
  <Domn>
    <Cd>PMNT</Cd>
    <Fmly>
      <Cd>RCDT</Cd>
      <SubFmlyCd>ESCT</SubFmlyCd>
    </Fmly>
  </Domn>
  <Prtry>
    <Cd>NTRF</Cd>
    <Issr>SWIFT</Issr>
  </Prtry>
</BkTxCd>
  • Proprietary codes: a bank can send its own code in BkTxCd/Prtry/Cd, with the issuer in Issr, alone or next to the ISO code. These are bank-specific: the bank’s implementation guide lists them. Entries converted from MT940 carry the :61: type code here, issuer SWIFT.
  • Coverage: the tables below are the common codes, not the complete external code list: every domain, the families of PMNT, CAMT, ACMT and the sub-families statements use most. A code not listed is shown as written and never reported as an error. The full list is published with the ISO 20022 external code sets.

Domains

Bank transaction code domains
DomainName
PMNTPayments
CAMTCash Management
ACMTAccount Management
LDASLoans, Deposits & Syndications
FORXForeign Exchange
SECUSecurities
DERVDerivatives
TRADTrade Services
CMDTCommodities
PMETPrecious Metal
XTNDExtended Domain

Families

A family code means the same thing in every domain that uses it (MCOP is miscellaneous credit operations under PMNT, CAMT or ACMT).

Bank transaction code families
FamilyNameListed under
RCDTReceived Credit TransfersPMNT
ICDTIssued Credit TransfersPMNT
RRCTReceived Real-Time Credit TransfersPMNT
IRCTIssued Real-Time Credit TransfersPMNT
RDDTReceived Direct DebitsPMNT
IDDTIssued Direct DebitsPMNT
RCHQReceived ChequesPMNT
ICHQIssued ChequesPMNT
CCRDCustomer Card TransactionsPMNT
MCRDMerchant Card TransactionsPMNT
LBOXLockbox TransactionsPMNT
CNTRCounter TransactionsPMNT
DRFTDrafts / Bills of OrderPMNT
MCOPMiscellaneous Credit OperationsPMNT, CAMT, ACMT
MDOPMiscellaneous Debit OperationsPMNT, CAMT, ACMT
NTAVNot AvailablePMNT, CAMT, ACMT
OTHROtherPMNT, CAMT, ACMT
ACCBAccount BalancingCAMT
CAPLCash PoolingCAMT

Sub-families

Sub-family codes combine with the family: ESCT under RCDT is a received SEPA credit transfer, under ICDT an issued one. NTAV (not available) and OTHR (other) appear at every level.

Bank transaction code sub-families (part 1 of 2)
Sub-familyName
ESCTSEPA Credit Transfer
ESDDSEPA Core Direct Debit
BBDDSEPA B2B Direct Debit
DMCTDomestic Credit Transfer
XBCTCross-Border Credit Transfer
SDVASame Day Value Credit Transfer
PRCTPriority Credit Transfer
FICTFinancial Institution Credit Transfer
BOOKInternal Book Transfer
ACCTAccount Transfer
SALAPayroll / Salary Payment
STDOStanding Order
VCOMCredit Transfer with Agreed Commercial Information
AUTTAutomatic Transfer
ATXNACH Transaction
ACDTACH Credit
ADBTACH Debit
ACORACH Corporate Trade
ACONACH Concentration
APACACH Pre-Authorised
ARETACH Return
AREVACH Reversal
ASETACH Settlement
PMDDDirect Debit Payment
OODDOne-Off Direct Debit
RRTNReversal Due to Payment Return
RPCRReversal Due to Payment Cancellation Request
Bank transaction code sub-families (part 2 of 2)
Sub-familyName
UPDDReversal Due to Return / Unpaid Direct Debit
PRDDReversal Due to Payment Reversal
CCHQCheque
BCHQBank Cheque
URCQCheque Under Reserve
CDISControlled Disbursement
CWDLCash Withdrawal
CDPTCash Deposit
FCDPForeign Currencies Deposit
FCWDForeign Currencies Withdrawal
POSDPoint-of-Sale Payment — Debit Card
POSCCredit Card Payment
SMRTSmart-Card Payment
LBDPLockbox Deposits
SWEPSweeping
TOPGTopping
ZABAZero Balancing
CHRGCharges
FEESFees
COMMCommission
INTRInterests
TAXETaxes
ADJTAdjustments
CAJTCredit Adjustments
DAJTDebit Adjustments
NTAVNot Available
OTHROther

Statuses and reason codes

Two different statuses: the status of an entry on a statement (is it booked?) and the status of a payment in a status report (did the bank accept it?). Reason codes say why a payment was rejected or returned.

Entry status

In Ntry/Sts of camt.052, camt.053 and camt.054 (a bare code up to version .001.06, Ntry/Sts/Cd from .001.07). Only booked entries count toward the booked balance.

Entry status codes
CodeNameMeaning
BOOKBookedPosted to the account: part of the booked balance.
PDNGPendingNot yet posted; it may still change or be cancelled. Not part of the booked balance.
INFOInformationReported for information only; it will not be booked (for example an expected or advised item).
FUTRFutureWill be booked on a future date (the booking date). Not part of today’s booked balance.

Payment status

In pain.002 and pacs.002, at three levels: the whole original message (OrgnlGrpInfAndSts/GrpSts), a payment information block (OrgnlPmtInfAndSts/PmtInfSts) and one transaction (TxInfAndSts/TxSts). The outcome says whether the payment is still in progress, accepted, settled or will not be executed.

Payment status codes
CodeNameOutcomeMeaning
RCVDReceivedIn progressThe message was received; nothing has been checked yet.
ACTCAccepted technical validationIn progressSyntax and authentication checks passed.
ACCPAccepted customer profileAcceptedTechnical checks and the customer profile checks passed.
ACFCAccepted funds checkedAcceptedAccepted, and the funds are available.
ACWCAccepted with changeAcceptedAccepted, but something was changed (for example the date or remittance information).
ACWPAccepted without postingAcceptedAccepted, but the payment will not be posted to the creditor’s account.
ACSPAccepted settlement in processAcceptedAll checks passed and the payment is being executed.
ACSCAccepted settlement completedSettledSettled on the debtor’s account.
ACCCAccepted settlement completed (creditor)SettledSettled on the creditor’s account.
ACISAccepted and cheque issuedAcceptedA payment by cheque was accepted and the cheque issued, but not yet deposited or cleared.
ACPDAccepted clearing processedAcceptedReleased by the debtor’s bank and accepted by the clearing system.
CPUCCash picked up by creditorSettledThe creditor has collected the cash.
PDNGPendingIn progressWaiting on further checks; the status will change.
PARTPartially acceptedPartly acceptedSome transactions accepted; others not yet accepted (pending or rejected); see the transaction statuses. A group or block status only.
PATCPartially accepted technical correctPartly acceptedTechnically correct, but some transactions still await authorisation. A group or block status only.
RJCTRejectedNot executedRejected: the payment will not be executed. The reason code says why.
CANCCancelledNot executedCancelled after it was accepted (for example on the customer’s request).
BLCKBlockedIn progressHeld; it may be released or cancelled later.
PRESPresentedIn progressA request to pay was presented to the debtor.

Reason codes

Why a payment was rejected, cancelled or returned: StsRsnInf/Rsn/Cd in pain.002 and pacs.002, and the same codes in RtrInf/Rsn/Cd on returned entries. These are the codes banks commonly send; the full ExternalStatusReason1Code list is longer, and a code not listed is shown as written. A rejection without a reason is reported under pain.status.reason.

Status reason codes
CodeNameMeaning
AC01Incorrect account numberThe account number is wrong (missing, invalid or does not exist).
AC02Invalid debtor account numberThe debtor account number is invalid or missing.
AC03Invalid creditor account numberThe creditor account number is invalid or missing.
AC04Closed account numberThe account is closed.
AC05Closed debtor account numberThe debtor account is closed.
AC06Blocked accountThe account is blocked.
AC07Closed creditor account numberThe creditor account is closed.
AC13Invalid debtor account typeThe debtor account type cannot be used for this payment (for example a consumer account in a B2B direct debit).
AG01Transaction forbiddenThis type of transaction is not allowed on the account (for example a savings account).
AG02Invalid bank operation codeThe bank operation or payment type code is not valid.
AM01Zero amountThe amount is zero.
AM02Not allowed amountThe amount is above the maximum allowed.
AM03Not allowed currencyThe currency is not allowed for this payment or account.
AM04Insufficient fundsNot enough funds on the account to cover the payment.
AM05DuplicationThe payment is a duplicate of one already received.
AM06Too low amountThe amount is below the minimum allowed.
AM07Blocked amountThe amount is blocked (for example by a legal order).
AM09Wrong amountThe amount is not the one agreed or expected.
AM10Invalid control sumThe control sum does not add up to the individual amounts.
BE01Inconsistent with end customerThe customer identification does not match the account holder.
BE04Missing creditor addressThe creditor’s address is missing or incomplete.
BE05Unrecognised initiating partyThe initiating party is not known or not authorised.
BE06Unknown end customerThe end customer is not known at its bank.
BE07Missing debtor addressThe debtor’s address is missing or incomplete.
CNORCreditor bank is not registeredThe creditor’s bank is not reachable in the clearing system.
DNORDebtor bank is not registeredThe debtor’s bank is not reachable in the clearing system.
DT01Invalid dateA date is invalid (for example a requested execution date in the past or too far ahead).
DU01Duplicate message IDThe message identification was already used.
DU02Duplicate payment information IDThe payment information identification was already used.
DU03Duplicate transactionThe transaction is not unique.
DU04Duplicate end-to-end IDThe end-to-end identification is not unique.
DU05Duplicate instruction IDThe instruction identification is not unique.
ED05Settlement failedSettlement of the transaction failed.
FF01Invalid file formatThe file or message is not in a format the bank accepts (schema or syntax error).
MD01No mandateNo valid mandate exists for this direct debit.
MD02Missing mandatory information in mandateMandate data is missing or wrong.
MD06Refund request by end customerThe debtor asked for a refund of the direct debit.
MD07End customer deceasedThe account holder has died.
MS02Not specified reason (customer generated)Refused by the customer; no reason given.
MS03Not specified reason (agent generated)Refused by a bank; no reason given.
NARRNarrativeThe reason is given as text in AddtlInf.
RC01Bank identifier incorrectThe bank identifier (BIC or clearing code) is wrong or unknown.
RR01Missing debtor account or identificationRegulatory data for the debtor (account or identification) is missing.
RR02Missing debtor name or addressRegulatory data for the debtor (name or address) is missing.
RR03Missing creditor name or addressRegulatory data for the creditor (name or address) is missing.
RR04Regulatory reasonRefused for regulatory reasons (sanctions, AML/KYC).
SL01Specific service offered by debtor agentRefused because of a service the debtor’s bank offers (for example a direct-debit block set by the debtor).
TM01Invalid cut-off timeReceived after the cut-off time.
CUSTRequested by customerCancelled or returned at the customer’s request.
DUPLDuplicate paymentThe payment was sent twice.
FOCRFollowing cancellation requestReturned after a cancellation request.
FRADFraudulent originThe payment is believed to be fraudulent.
TECHTechnical problemA technical problem caused the payment to be cancelled or returned.
UPAYUndue paymentThe payment was not due.
AGNTIncorrect agentAn agent (bank) in the payment chain is wrong.
CURRIncorrect currencyThe currency is wrong.
NOASNo answer from customerThe customer did not answer.
NOORNo original transaction receivedThe original transaction was never received.

Validation rules

Every finding from the viewers and the API names one of these 72 rules: the rule field of each issue the validate operation returns. Ids are stable, so match on the id rather than the message text. Severity depends on the finding: error when the message breaks the schema or a rule banks enforce, warning when it is likely wrong or the rule is one not every bank applies, info when it is only worth knowing. Each row can be linked to as #rule-iban.invalid.

Validation rules
Rule idWhat it checksBased on
Input and XML
format.emptyEmpty inputInput
format.unknownNot a recognized messageISO 20022 XML or SWIFT MT940/MT942
format.unsupportedMessage type not supported hereSupported: camt.052/053/054, pain.001/002/008, MT940/MT942
xml.malformedXML is not well-formedXML 1.0
xml.encodingEncoding other than UTF-8ISO 20022 XML messages are UTF-8
xml.namespaceNamespaceISO 20022 message namespace urn:iso:std:iso:20022:tech:xsd:<message>
xml.versionMessage versionVersions .001.02 to .001.13 are read
Element values
field.requiredRequired element missingISO 20022 message definition (mandatory element or attribute), or a usage rule that makes it mandatory
field.emptyEmpty elementISO 20022 text types have a minimum length of 1
field.lengthText too longISO 20022 MaxNText types
field.dateInvalid date or timeISODate (YYYY-MM-DD) / ISODateTime
field.amountInvalid amountActiveOrHistoricCurrencyAndAmount: decimal ≥ 0, 18 digits, 5 decimals
field.numberInvalid numberMax15NumericText / DecimalNumber
field.indicatorInvalid indicatorCreditDebitCode (CRDT, DBIT) / TrueFalseIndicator
Currencies
ccy.formatInvalid currency codeActiveOrHistoricCurrencyCode: three capital letters
ccy.unknownCurrency not in ISO 4217ISO 4217 current currency list
ccy.decimalsToo many decimals for the currencyISO 4217 minor units (amount usage rule)
ccy.mismatchCurrency differs from the accountStatement and account currency consistency
IBAN and BIC
iban.invalidInvalid IBANISO 13616: format, country length, mod-97 check digits
iban.countryIBAN country not in the registry listSWIFT IBAN registry
bic.formatInvalid BICISO 9362: 8 or 11 characters
bic.countryBIC country code unknownISO 3166-1 alpha-2
Codes and references
code.unknownCode not in the reference listISO 20022 external code sets
code.invalidInvalid codeISO 20022 code sets
ref.duplicateDuplicate referenceReferences should identify one item
camt statements, reports and notifications
camt.balance.roll-forwardBalances do not roll forwardOpening booked + booked entries = closing booked
camt.balance.missingBooked balance missingcamt.053 statements report OPBD (or PRCD) and CLBD
camt.balance.multipleBalance type repeatedOne balance per type and date
camt.summary.countTransaction summary count differsTxsSummry NbOfNtries vs entries
camt.summary.sumTransaction summary sum differsTxsSummry Sum / TtlNetNtry vs entries
camt.batch.countBatch count differsNtryDtls/Btch/NbOfTxs vs TxDtls
camt.batch.sumBatch amount differsNtryDtls/Btch/TtlAmt and TxDtls amounts vs entry amount
camt.entry.statusEntry statusExternalEntryStatus1Code: BOOK, PDNG, INFO, FUTR
camt.entry.booking-dateBooked entry without booking dateBookgDt for booked entries
camt.dates.orderDates out of orderFrToDt and entry dates
camt.paginationMessage continuesMsgPgntn / StmtPgntn LastPgInd
pain payment files and status reports
pain.count.groupGroup header count differsGrpHdr/NbOfTxs = all transactions in the message
pain.sum.groupGroup header control sum differsGrpHdr/CtrlSum = sum of all instructed amounts
pain.count.paymentPayment information count differsPmtInf/NbOfTxs = transactions in the block
pain.sum.paymentPayment information control sum differsPmtInf/CtrlSum = sum of the block’s amounts
pain.date.pastRequested date in the pastReqdExctnDt / ReqdColltnDt
pain.duplicate.pmtinfDuplicate payment information idPmtInfId identifies one block in the message
pain.duplicate.e2eDuplicate end-to-end idEndToEndId should identify one transaction
pain.duplicate.instrDuplicate instruction idInstrId identifies one instruction
pain.amount.zeroZero amountInstructed amount
pain.party.nameParty name missingCreditor / debtor name
pain.status.reasonRejection without a reasonStsRsnInf for RJCT statuses
pain.status.mixGroup status does not match transactionsGrpSts vs TxSts
pain.status.countsStatus counts differNbOfTxsPerSts vs OrgnlNbOfTxs
SEPA (applied when the service level is SEPA)
sepa.currencySEPA payments are in euroEPC rulebooks: currency EUR
sepa.iban-requiredSEPA account must be an IBANEPC rulebooks: accounts are identified by IBAN
sepa.charsetCharacters outside the SEPA setEPC implementation guidelines: Latin character set
sepa.name-lengthName longer than SEPA allowsEPC implementation guidelines: names max 70 characters
sepa.remittanceSEPA remittance informationEPC: one Ustrd of 140 characters, or one Strd, not both
sepa.charge-bearerSEPA charge bearerEPC: ChrgBr SLEV
sepa.amount-rangeAmount outside the SEPA rangeEPC: 0.01 to 999,999,999.99 EUR
sepa.countryIBAN country outside SEPAEPC scheme geographical scope
sepa.creditor-idSEPA creditor identifier missingSDD rulebook: CdtrSchmeId
sepa.mandateSEPA mandate data missingSDD rulebook: MndtId and DtOfSgntr
sepa.sequence-typeSEPA sequence type missingSDD rulebook: SeqTp FRST, RCUR, OOFF or FNAL
SWIFT MT940 and MT942
mt.blockSWIFT block structureSWIFT FIN message blocks {1:}{2:}{3:}{4:}{5:}
mt.field.requiredMandatory field missingSWIFT MT940/MT942 field specifications
mt.field.formatField formatSWIFT MT940/MT942 field specifications
mt.field.orderField out of orderSWIFT MT940/MT942 field sequence
mt.field.lengthField too longSWIFT MT940/MT942 field lengths
mt.charsetCharacters outside the SWIFT setSWIFT FIN character set X
mt.balance.roll-forwardBalances do not roll forward:60a: + :61: entries = :62a:
mt.balance.continuityStatements do not chain:62a: of one page = :60a: of the next
mt.sequenceStatement numbering:28C: statement and sequence numbers
mt.currencyCurrencyBalances and entries share one ISO 4217 currency
mt.dateInvalid dateSWIFT dates YYMMDD / MMDD
mt.summaryEntry totals differMT942 :90D: / :90C: number and sum of entries

MT940 and MT942

MT940 is the SWIFT customer statement: the end-of-day statement many banks send next to, or instead of, camt.053. MT942 is the interim (intraday) report, the counterpart of camt.052. A message is a SWIFT FIN envelope ({1:} basic header, {2:} application header, {4: … -} text block) around tagged fields; the viewer and the API also accept bare field text starting with :20:.

{1:F01NWTHDEF1AXXX0000000000}{2:O9400615261028COBADEFFAXXX00000000002610290615N}{4:
:20:STMT301P1
:25:DE89370400440532013000
:28C:00301/001
:60F:C261027EUR23456,78
:61:2610281028C1190,00NTRFAW-2026-0815//COBA261028001
:86:166?00SEPA-GUTSCHRIFT?20EREF+AW-2026-0815?32Adventure Works GmbH
:62F:C261028EUR24646,78
-}

MT940 fields

M = mandatory, O = optional. The last column is where the converter puts each field in a camt.053.

MT940 fields
TagNameFormatM/ODefinitionIn camt.053
:20:Transaction Reference Number16xMThe sender’s reference for this statement message.Stmt/Id
:21:Related Reference16xOReference of the MT920 request this statement answers, if any.not mapped (noted)
:25:Account Identification35xMThe account the statement is for: an IBAN or the bank’s own account number (:25P: adds the owner’s BIC).Stmt/Acct/Id/IBAN or Othr/Id
:28C:Statement Number / Sequence Number5n[/5n]MStatement number and, for multi-page statements, the page number.Stmt/ElctrncSeqNb, StmtPgntn/PgNb
:60F:Opening Balance (first)1!a6!n3!a15dMBooked balance at the start of the statement: D/C mark, date (YYMMDD), currency, amount.Bal with Tp OPBD
:60M:Opening Balance (intermediate)1!a6!n3!a15dMOpening balance of a continuation page: the :62M: of the previous page.Bal OPBD, sub-type INTM
:61:Statement Line6!n[4!n]2a[1!a]15d1!a3!c16x[//16x][34x]OOne entry: value date, entry date, D/C mark, funds code, amount, transaction type, references, supplementary details.Ntry
:86:Information to Account Owner6*65xOAfter a :61:, details of that entry (often structured with ?nn or /CODE/ subfields); at the end, information about the whole statement.Ntry/AddtlNtryInf, RmtInf, RltdPties; or Stmt/AddtlStmtInf
:62F:Closing Balance (final)1!a6!n3!a15dMBooked balance at the end of the statement.Bal with Tp CLBD
:62M:Closing Balance (intermediate)1!a6!n3!a15dMClosing balance of a page that continues on the next message.Bal CLBD, sub-type INTM
:64:Closing Available Balance1!a6!n3!a15dOFunds available to the account owner at the end of the statement.Bal with Tp CLAV
:65:Forward Available Balance1!a6!n3!a15dOFunds that will be available on a future date (repeatable).Bal with Tp FWAV

MT942 fields

MT942 uses :20:, :25:, :28C:, :61: and :86: as above and adds these:

MT942 fields
TagNameFormatM/ODefinition
:34F:Debit / (Debit and Credit) Floor Limit Indicator3!a[1!a]15dMOnly entries above this amount are reported (one for debits and credits, or one for each).
:13D:Date/Time Indication6!n4!n1!x4!nMWhen the report was produced: YYMMDD, HHMM and the UTC offset.
:90D:Number and Sum of Entries (debits)5n3!a15dOHow many debit entries the report holds and their total.
:90C:Number and Sum of Entries (credits)5n3!a15dOHow many credit entries the report holds and their total.

The :61: statement line

One :61: per entry, in the format 6!n[4!n]2a[1!a]15d1!a3!c16x[//16x][34x]. Subfields follow each other with no separator; the example line from the statement above reads:

:61: subfields
#SubfieldFormatExampleNotes
1Value date6!n261028YYMMDD. The date the funds are valued (camt.053 Ntry/ValDt).
2Entry date[4!n]1028MMDD, optional: the booking date. Its year is taken as the one closest to the value date.
3Debit/credit mark2aCC, D, RC or RD (see the marks below).
4Funds code[1!a]—Optional: the third letter of the currency code, when the bank uses it. Absent in the example.
5Amount15d1190,00Comma as decimal separator, no sign: the mark gives the direction.
6Transaction type1!a3!cNTRFN, S or F followed by three characters (see the type codes below).
7Reference for the account owner16xAW-2026-0815The customer’s reference, such as an invoice or payment id; NONREF when there is none.
8Account servicing institution’s reference[//16x]//COBA261028001Optional: the bank’s own reference, after a double slash.
9Supplementary details[34x]—Optional, on the next line. Absent in the example.

Debit/credit marks

A reversal mark books in the opposite direction of the entry it reverses. In camt.053 it becomes the booking’s actual direction (CdtDbtInd) plus RvslInd true.

MT940 debit/credit marks
MarkMeaning
CCredit
DDebit
RCReversal of credit (a debit entry)
RDReversal of debit (a credit entry)

Transaction type codes

The transaction type subfield starts with an identification letter. N (no SWIFT message) is followed by one of the codes below: NTRF is a transfer, NCHG charges. S is followed by the number of the SWIFT message that caused the entry: S103 for an MT103. F (first advice) is followed by a bank-specific code.

MT940 transaction type codes (part 1 of 2)
CodeMeaning
BNKSecurities related item — bank fees
BOEBill of exchange
BRFBrokerage fee
CARSecurities related item — corporate actions related
CASSecurities related item — cash in lieu
CHGCharges and other expenses
CHKCheques
CLRCash letters / cheques remittance
CMICash management item — no detail
CMNCash management item — notional pooling
CMPCompensation claims
CMSCash management item — sweeping
CMTCash management item — topping
CMZCash management item — zero balancing
COLCollections
COMCommission
CPNSecurities related item — coupon payments
DCRDocumentary credit
DDTDirect debit item
DISSecurities related item — gains disbursement
DIVSecurities related item — dividends
EQAEquivalent amount
EXTSecurities related item — external transfer for own account
FEXForeign exchange
INTInterest
LBXLock box
LDPLoan deposit
MARSecurities related item — margin payments / receipts
MATSecurities related item — maturity
MT940 transaction type codes (part 2 of 2)
CodeMeaning
MGTSecurities related item — management fees
MSCMiscellaneous
NWISecurities related item — new issues distribution
ODCOverdraft charge
OPTSecurities related item — options
PCHSecurities related item — purchase
POPSecurities related item — pair-off proceeds
PRNSecurities related item — principal pay-down / pay-up
RECSecurities related item — tax reclaim
REDSecurities related item — redemption / withdrawal
RIGSecurities related item — rights
RTIReturned item
SALSecurities related item — sale
SECSecurities
SLESecurities related item — securities lending related
STOStanding order
STPSecurities related item — stamp duty
SUBSecurities related item — subscription
SWPSecurities related item — SWAP payment
TAXSecurities related item — withholding tax payment
TCKTravellers cheques
TCMSecurities related item — tripartite collateral management
TRASecurities related item — internal transfer for own account
TRFTransfer
TRNSecurities related item — transaction fee
UWCSecurities related item — underwriting commission
VDAValue date adjustment
WARSecurities related item — warrant

MT940 to camt.053 mapping

The MT940 Viewer and the convert endpoint turn MT940 (or MT950) statements into one camt.053.001.08 document (urn:iso:std:iso:20022:tech:xsd:camt.053.001.08): one Stmt per statement and one Ntry with one TxDtls per :61:. Field by field:

MT940 to camt.053.001.08 mapping
MT940camt.053.001.08Note
:20: Transaction ReferenceStmt/Id
:21: Related Reference—Not carried over (camt.053 has no place for the MT920 request reference).
:25: AccountStmt/Acct/Id/IBAN, else Acct/Id/Othr/IdAn IBAN that passes mod-97 goes in IBAN; anything else in Othr/Id (34 characters at most).
:25P: / block 1 or 2 BICStmt/Acct/Svcr/FinInstnId/BICFIThe sending bank of a SWIFT output message services the account. An identifier code that is not a BIC is left out.
:28C: Statement number / pageStmt/ElctrncSeqNb, Stmt/StmtPgntn/PgNbLastPgInd is true for :62F:, false for :62M:.
:60F: / :60M:Bal Tp OPBD:60M: and :62M: carry the sub-type code INTM (Bal/Tp/SubTp/Cd, an intermediate balance carried to the next page) so the page break stays visible.
:62F: / :62M:Bal Tp CLBD
:64:Bal Tp CLAV
:65:Bal Tp FWAV (one per :65:)
:61: value date / entry dateNtry/ValDt/Dt, Ntry/BookgDt/DtWithout an entry date the booking date is the value date. The entry date’s year is the one closest to the value date.
:61: D/C markNtry/CdtDbtInd, Ntry/RvslIndC → CRDT, D → DBIT, RD → CRDT + RvslInd, RC → DBIT + RvslInd (the indicator gives the booking’s actual direction). EC/ED (MT942 expected entries) are refused.
:61: amountNtry/Amt (+ TxDtls/Amt)Comma decimal to point, written with the currency’s decimals.
:61: transaction type (NTRF, S103 …)Ntry/BkTxCd/Prtry/Cd, Issr SWIFTNot mapped to ISO domain/family/sub-family codes: the MT codes are too coarse for that to be reliable.
:61: reference for the account ownerTxDtls/Refs/AcctOwnrTxIdNONREF is dropped; 35 characters at most.
:61: //bank referenceNtry/AcctSvcrRef35 characters at most.
:61: supplementary detailsTxDtls/AddtlTxInf
:86: (after a :61:)Ntry/AddtlNtryInf and TxDtls/RmtInf/UstrdThe full text is kept (500 characters at most in AddtlNtryInf; Ustrd in 140-character parts). Structured :86: lines join as written (they are wrapped mid-word), free-text lines with a space.
:86: ?20–?29 / /REMI/ remittanceTxDtls/RmtInf/UstrdFrom structured :86: the remittance lines (or SVWZ+) are used instead of the whole text.
:86: ?32/?33, /NAME/, /CNTP/TxDtls/RltdPties/Dbtr (credits) or Cdtr (debits)/Pty/Nm
:86: ?31, /IBAN/TxDtls/RltdPties/DbtrAcct or CdtrAcct
:86: ?30, /BIC/TxDtls/RltdAgts/DbtrAgt or CdtrAgt (BICFI, else clearing member id)
:86: EREF+ / /EREF/TxDtls/Refs/EndToEndId
:86: MREF+ / /MARF/TxDtls/Refs/MndtId
:86: at the end of the statementStmt/AddtlStmtInf
(none)GrpHdr/CreDtTm, Stmt/CreDtTmMT940 carries no creation time: both are the time of the conversion.
(computed)Stmt/TxsSummryCounted and summed from the :61: lines.

What the conversion does not do. It carries what the MT940 says and adds nothing the MT940 lacks, so a camt.053 your bank produces for the same account usually holds more:

  • :61: transaction types stay proprietary codes (BkTxCd/Prtry, issuer SWIFT). Turning NTRF or NCHG into an ISO domain, family and sub-family would be a guess.
  • Unstructured :86: text stays text; only recognized subfields become counterparty, account, agent, reference and remittance elements.
  • Creation times are the time of the conversion (MT940 has none); :21: and SWIFT header blocks 3 and 5 are not carried over.
  • MT942 is refused (it maps to camt.052, which the converter does not produce), and so is input whose balances or entries cannot be read: nothing is converted rather than data dropped.

Check that the receiving system accepts a converted file before you use it in place of a bank-supplied camt.053.

Element glossary

ISO 20022 XML tags are abbreviated element names. These are the ones the viewers spell out in the field inspector and the structure tree; the dot marks the kind of data, in the colours the viewers use.

Data elements

ISO 20022 data element tags (part 1 of 2)
TagNameHolds
AmtAmountAmount
InstdAmtInstructed amountAmount
TtlAmtTotal amountAmount
TtlNetNtryAmtTotal net entry amountAmount
SumSumCount or control total
CtrlSumControl sumCount or control total
OrgnlCtrlSumOriginal control sumCount or control total
DtldCtrlSumDetailed control sumCount or control total
NbOfTxsNumber of transactionsCount or control total
NbOfNtriesNumber of entriesCount or control total
OrgnlNbOfTxsOriginal number of transactionsCount or control total
DtldNbOfTxsDetailed number of transactionsCount or control total
NbOfDaysNumber of daysCount or control total
PgNbPage numberCount or control total
ElctrncSeqNbElectronic sequence numberCount or control total
LglSeqNbLegal sequence numberCount or control total
XchgRateExchange rateAmount
DtDateDate or time
DtTmDate and timeDate or time
CreDtTmCreation date and timeDate or time
FrDtTmFrom date and timeDate or time
ToDtTmTo date and timeDate or time
FrDtFrom dateDate or time
ToDtTo dateDate or time
ActlDtActual dateDate or time
ReqdExctnDtRequested execution dateDate or time
ReqdColltnDtRequested collection dateDate or time
DtOfSgntrDate of signatureDate or time
OrgnlCreDtTmOriginal creation date and timeDate or time
AccptncDtTmAcceptance date and timeDate or time
IntrBkSttlmDtInterbank settlement dateDate or time
CreDtCreation dateDate or time
BirthDtBirth dateDate or time
IBANIBANIdentifier
BICBICIdentifier
BICFIBIC (financial institution)Identifier
AnyBICAny BICIdentifier
BICOrBEIBIC or BEIIdentifier
LEILegal entity identifierIdentifier
IdIdentificationIdentifier
MsgIdMessage identificationIdentifier
PmtInfIdPayment information identificationIdentifier
InstrIdInstruction identificationIdentifier
EndToEndIdEnd-to-end identificationIdentifier
UETRUnique end-to-end transaction referenceIdentifier
TxIdTransaction identificationIdentifier
AcctSvcrRefAccount servicer referenceIdentifier
AcctOwnrTxIdAccount owner transaction identificationIdentifier
AcctSvcrTxIdAccount servicer transaction identificationIdentifier
NtryRefEntry referenceIdentifier
MndtIdMandate identificationIdentifier
ChqNbCheque numberIdentifier
ISO 20022 data element tags (part 2 of 2)
TagNameHolds
ClrSysRefClearing system referenceIdentifier
RefReferenceIdentifier
NbNumberIdentifier
MmbIdClearing member identificationIdentifier
StsIdStatus identificationIdentifier
OrgnlMsgIdOriginal message identificationIdentifier
OrgnlMsgNmIdOriginal message nameCode
OrgnlPmtInfIdOriginal payment information identificationIdentifier
OrgnlInstrIdOriginal instruction identificationIdentifier
OrgnlEndToEndIdOriginal end-to-end identificationIdentifier
OrgnlUETROriginal UETRIdentifier
BizMsgIdrBusiness message identifierIdentifier
MsgDefIdrMessage definition identifierCode
CdCodeCode
PrtryProprietary codeCode
IssrIssuerCode
SubFmlyCdSub-family codeCode
CdtDbtIndCredit/debit indicatorCode
RvslIndReversal indicatorCode
StsStatusCode
TxStsTransaction statusCode
GrpStsGroup statusCode
PmtInfStsPayment information statusCode
DtldStsDetailed statusCode
CcyCurrencyCode
CcyOfTrfCurrency of transferCode
PmtMtdPayment methodCode
BtchBookgBatch bookingCode
ChrgBrCharge bearerCode
SeqTpSequence typeCode
InstrPrtyInstruction priorityCode
LastPgIndLast page indicatorCode
CpyDplctIndCopy/duplicate indicatorCode
AmdmntIndAmendment indicatorCode
CtryCountryCode
CtryOfResCountry of residenceCode
NmNameText
UstrdUnstructured remittance informationText
AddtlInfAdditional informationText
AddtlNtryInfAdditional entry informationText
AddtlTxInfAdditional transaction informationText
AddtlStmtInfAdditional statement informationText
AddtlRptInfAdditional report informationText
AddtlNtfctnInfAdditional notification informationText
AddtlRmtInfAdditional remittance informationText
AdrLineAddress lineText
StrtNmStreet nameText
BldgNbBuilding numberText
PstCdPost codeText
TwnNmTown nameText
CtrySubDvsnCountry subdivisionText
InstrInfInstruction informationText

Containers

Elements that group others, as they appear in paths such as Stmt/Ntry/NtryDtls/TxDtls/RltdPties/Dbtr.

ISO 20022 container tags (part 1 of 2)
TagName
DocumentDocument
AppHdrBusiness application header
BkToCstmrStmtBank-to-customer statement
BkToCstmrAcctRptBank-to-customer account report
BkToCstmrDbtCdtNtfctnBank-to-customer debit/credit notification
CstmrCdtTrfInitnCustomer credit transfer initiation
CstmrDrctDbtInitnCustomer direct debit initiation
CstmrPmtStsRptCustomer payment status report
GrpHdrGroup header
StmtStatement
RptReport
NtfctnNotification
AcctAccount
OwnrOwner
SvcrServicer
BalBalance
TxsSummryTransactions summary
TtlNtriesTotal entries
TtlCdtNtriesTotal credit entries
TtlDbtNtriesTotal debit entries
TtlNetNtryTotal net entry
NtryEntry
BookgDtBooking date
ValDtValue date
BkTxCdBank transaction code
DomnDomain
FmlyFamily
NtryDtlsEntry details
BtchBatch
TxDtlsTransaction details
RefsReferences
AmtDtlsAmount details
TxAmtTransaction amount
RltdPtiesRelated parties
RltdAgtsRelated agents
DbtrDebtor
CdtrCreditor
DbtrAcctDebtor account
CdtrAcctCreditor account
DbtrAgtDebtor agent
CdtrAgtCreditor agent
UltmtDbtrUltimate debtor
UltmtCdtrUltimate creditor
InitgPtyInitiating party
ISO 20022 container tags (part 2 of 2)
TagName
PtyParty
AgtAgent
FinInstnIdFinancial institution identification
ClrSysMmbIdClearing system member identification
ClrSysIdClearing system identification
PstlAdrPostal address
OrgIdOrganisation identification
PrvtIdPrivate identification
OthrOther
SchmeNmScheme name
RmtInfRemittance information
StrdStructured remittance
RfrdDocInfReferred document information
CdtrRefInfCreditor reference information
RtrInfReturn information
RsnReason
TpType
CdOrPrtryCode or proprietary
SubTpSub-type
AvlbtyAvailability
FrToDtFrom/to date
StmtPgntnStatement pagination
MsgPgntnMessage pagination
MsgRcptMessage recipient
PmtInfPayment information
PmtTpInfPayment type information
SvcLvlService level
LclInstrmLocal instrument
CtgyPurpCategory purpose
PurpPurpose
CdtTrfTxInfCredit transfer transaction
DrctDbtTxInfDirect debit transaction
DrctDbtTxDirect debit transaction details
MndtRltdInfMandate-related information
CdtrSchmeIdCreditor scheme identification
PmtIdPayment identification
EqvtAmtEquivalent amount
OrgnlGrpInfAndStsOriginal group information and status
OrgnlPmtInfAndStsOriginal payment information and status
TxInfAndStsTransaction information and status
StsRsnInfStatus reason information
NbOfTxsPerStsNumber of transactions per status
OrgnlTxRefOriginal transaction reference
OrgtrOriginator

Currency decimals

An amount may not have more decimal places than its currency’s ISO 4217 minor unit, so 1000.50 in JPY is invalid (ccy.decimals). Of the 179 currency codes the tools know, these have a minor unit other than 2:

Currencies whose minor unit is not 2
Decimal placesCurrencies
0BIF CLP DJF GNF ISK JPY KMF KRW PYG RWF UGX UYI VND VUV XAF XOF XPF
3BHD IQD JOD KWD LYD OMR TND
4CLF UYW
None (any number accepted)XAG XAU XBA XBB XBC XBD XDR XPD XPT XSU XTS XUA XXX