Bite Apps › SafeCAMT › MT940 to camt.053
MT940 to camt.053 mapping, field by field
Where every MT940 field ends up in an ISO 20022 camt.053.001.08 statement — balances, the :61: statement line with reversals, the :86: counterparty and remittance details — and the same for BAI2, as implemented in SafeCAMT's converter.
Convert an MT940 or BAI2 file to camt.053 in your browser — SafeCAMT never uploads the statement.
Open SafeCAMT — free, in your browserBanks are moving customers from SWIFT MT940 statements to ISO 20022 camt.053, and Swift plans to retire the MT9xx statement messages. During the migration, ERPs and treasury systems have to read both, and test data often has to be converted. This page documents, field by field, how SafeCAMT converts MT940 and MT942 statements to camt.053.001.08 — the same rules most bank converters follow, with the choices we made where the standards leave room. The result validates against the official ISO 20022 XSD.
- Statement-level fields
- The :61: statement line
- The :86: information
- BAI2 to camt.053
- camt.053 back to MT940
- What a converter cannot recover
Statement-level fields
| MT940 | Content | camt.053.001.08 | Notes |
|---|---|---|---|
| :20: | Transaction Reference Number | Stmt/Id | Together with :28C: (e.g. STMT0001-00123-001), max. 35 characters. |
| :28C: | Statement / sequence number | Stmt/ElctrncSeqNb | The statement number; the sequence (page) number is appended to Stmt/Id. |
| :25: | Account identification | Stmt/Acct/Id/IBAN | If the value is a valid IBAN; otherwise Acct/Id/Othr/Id. The currency of the balances goes to Acct/Ccy. |
| :60F: | Opening balance | Bal, type OPBD | Date, currency and amount; a D mark becomes CdtDbtInd DBIT. |
| :60M: | Intermediate opening balance | Bal, type ITBD | Used on the second and later pages of a multi-page statement. |
| :62F: | Closing booked balance | Bal, type CLBD | |
| :62M: | Intermediate closing balance | Bal, type ITBD | |
| :64: | Closing available balance | Bal, type CLAV | |
| :65: | Forward available balance | Bal, type FWAV | One Bal per :65: line. |
| :86: (after the last :62a:) | Information for the whole statement | Stmt/AddtlStmtInf | Max. 500 characters. |
| — | Number and sum of credits and debits | Stmt/TxsSummry | Calculated from the :61: lines (TtlNtries, TtlCdtNtries, TtlDbtNtries). |
The group header gets a generated MsgId and a note in GrpHdr/AddtlInf that the file was converted and not issued by the bank. MT942 interim reports are converted the same way.
The :61: statement line
Each :61: line becomes one Ntry with status BOOK and one TxDtls. Subfield layout: see the MT940 format page.
| Subfield | camt.053 | Notes |
|---|---|---|
| Value date (6!n) | Ntry/ValDt/Dt | YYMMDD → yyyy-mm-dd. |
| Entry date ([4!n]) | Ntry/BookgDt/Dt | MMDD; the year is taken from the value date, rolling over at year end. |
| Debit/credit mark (2a) | Ntry/CdtDbtInd, Ntry/RvslInd | C → CRDT, D → DBIT, RC (reversal of credit) → DBIT + RvslInd true, RD (reversal of debit) → CRDT + RvslInd true — as the ISO usage rule for RvslInd prescribes. |
| Amount (15d) | Ntry/Amt | Decimal comma → decimal point, decimals according to the currency. |
| Transaction type (1!a3!c, e.g. NTRF) | Ntry/BkTxCd/Prtry/Cd | Kept as a proprietary code with Issr SWIFT; with a German GVC from :86: it becomes NTRF+166 with Issr DK. ISO domain codes are not invented. |
| Reference for the account owner (16x) | TxDtls/Refs/AcctOwnrTxId | NONREF is dropped. |
| Reference of the account servicer (//16x) | Ntry/AcctSvcrRef and TxDtls/Refs/AcctSvcrRef |
The :86: information
:86: is free text with bank-specific conventions; SafeCAMT reads the German ?-subfields with SEPA keywords (EREF+, KREF+, MREF+, SVWZ+) and slash codes (/NAME/, /CNTP/, /IBAN/, /BIC/, /REMI/, /EREF/, /RTRN/ …); other :86: text is kept as remittance information.
| Information in :86: | camt.053 | Notes |
|---|---|---|
| Counterparty name (?32/?33, /NAME/, /CNTP/) | TxDtls/RltdPties/Dbtr (for credits) or Cdtr (for debits) /Pty/Nm | Max. 140 characters. |
| Counterparty IBAN or account (?31, IBAN+, /IBAN/, /CNTP/) | TxDtls/RltdPties/DbtrAcct or CdtrAcct /Id/IBAN | Othr/Id if it is not a valid IBAN. |
| Counterparty BIC (?30, BIC+, /BIC/, /CNTP/) | TxDtls/RltdAgts/DbtrAgt or CdtrAgt /FinInstnId/BICFI | Only if it is a valid BIC. |
| End-to-end reference (EREF+, /EREF/) | TxDtls/Refs/EndToEndId | NOTPROVIDED when the statement has none, as in bank-issued camt.053. |
| Remittance information (SVWZ+, ?20–?29 and ?60–?63, /REMI/) | TxDtls/RmtInf/Ustrd | Split into 140-character Ustrd lines. |
| Structured creditor reference (RF…, /REMI/STRD/) | TxDtls/RmtInf/Strd/CdtrRefInf | Type SCOR; Issr ISO for ISO 11649 RF references. |
| Return reason (/RTRN/) | TxDtls/RtrInf/Rsn/Cd | When it is a 4-character ISO code such as AC04. |
| Whole :86: text | TxDtls/AddtlTxInf and Ntry/AddtlNtryInf | Max. 500 characters, so nothing is lost. |
BAI2 to camt.053
For US cash-management files, SafeCAMT converts each BAI2 account (03 record) into one Stmt. Details of the format: BAI2 format & type codes.
| BAI2 | camt.053 | Notes |
|---|---|---|
| 03 type 010 / 015 | Bal OPBD / CLBD | Opening and closing ledger. |
| 03 type 040 / 045 | Bal OPAV / CLAV | Opening and closing available. |
| 03 type 030 / 060 | Bal ITBD / ITAV | |
| 16 detail record | Ntry | One entry per 16 record; the type code decides credit or debit. |
| 16 type code | Ntry/BkTxCd/Prtry/Cd, Issr BAI | e.g. 195 incoming wire. |
| 16 bank reference / customer reference | AcctSvcrRef / AcctOwnrTxId | |
| 16 funds type V + date | Ntry/ValDt | |
| 16 text | TxDtls/RmtInf/Ustrd | Free text; BAI2 has no structured counterparty fields. |
camt.053 back to MT940
For ERP and treasury imports that still read only MT940, SafeCAMT also writes a camt.053 as MT940 (tab camt.053 → MT940). The rules mirror the table above; characters outside the SWIFT character set are transliterated (é → e, ß → ss) or replaced.
| camt.053 | MT940 | Notes |
|---|---|---|
Stmt/Id | :20: | First 16 characters (SWIFT limit). |
Stmt/Acct/Id/IBAN or Othr/Id | :25: | |
Stmt/ElctrncSeqNb or LglSeqNb | :28C: | Statement number / page 1. |
Bal OPBD (or PRCD) | :60F: | If the camt.053 has no opening balance it is calculated from the closing balance and the booked entries, and the tab says so. |
Ntry ValDt, BookgDt | :61: value date + entry date | |
Ntry CdtDbtInd + RvslInd | :61: C / D / RD / RC | A reversed credit (CRDT + RvslInd) becomes RD, a reversed debit RC. |
Ntry BkTxCd | :61: transaction type | A proprietary SWIFT code (e.g. NTRF) is kept; ISO codes are mapped: transfers NTRF, standing orders NSTO, salaries NSAL, direct debits NDDT, cheques NCHK, charges NCHG, commission NCOM, interest NINT, FX NFEX, securities NSEC, else NMSC. |
Refs/AcctOwnrTxId, else EndToEndId | :61: reference for the account owner | Max. 16 characters, NONREF if there is none. |
Ntry/AcctSvcrRef | :61: //bank reference | Max. 16 characters. |
Refs/EndToEndId, MndtId | :86: /EREF/, /MARF/ | |
RltdPties + RltdAgts | :86: /CNTP/IBAN/BIC/name/ | Debtor for credits, creditor for debits. |
RmtInf/Ustrd or Strd | :86: /REMI/USTD// or /REMI/STRD/ISO/ | |
RtrInf/Rsn/Cd | :86: /RTRN/ | |
Bal CLBD, CLAV, FWAV | :62F:, :64:, :65: | |
Ntry with Sts PDNG / INFO | — | Left out: MT940 carries booked entries only. |
Run your import against the converted file before relying on it: banks and ERPs differ in what they expect in :86: (SafeCAMT offers structured slash codes or plain text) and whether more than 6 × 65 characters are accepted.
What a converter cannot recover
- ISO bank transaction codes. MT940 carries a SWIFT transaction type and sometimes a national code; mapping these to Domn/Fmly/SubFmlyCd is bank-specific, so the converter keeps them as proprietary codes instead of guessing.
- Structured addresses and party identifiers that never were in the MT940.
- Batch bookings. A collective booking in MT940 is one :61: line; the individual transactions behind it only exist in a camt.054 or in the bank's camt.053 if it reports them.
- Anything cut off by the 6 × 65 characters of :86:.
FAQ
How does MT940 :60F: map to camt.053?
The opening balance :60F: becomes a Bal element with type code OPBD; :62F: becomes CLBD, :64: CLAV and :65: FWAV. Intermediate balances :60M: and :62M: on multi-page statements become ITBD.
How is a reversal (RC/RD) in :61: shown in camt.053?
RC (reversal of credit) becomes CdtDbtInd DBIT with RvslInd true, RD (reversal of debit) becomes CRDT with RvslInd true, following the ISO usage rule that RvslInd shows the original direction was the opposite.
Where does the :86: field go in camt.053?
Its parts are spread over TxDtls: counterparty name and account in RltdPties, BIC in RltdAgts, end-to-end reference in Refs/EndToEndId, remittance in RmtInf/Ustrd or RmtInf/Strd, return reason in RtrInf; the full text is also kept in AddtlTxInf.
Can I convert camt.053 back to MT940?
Yes. Open the camt.053 in SafeCAMT and use the camt.053 → MT940 tab: balances become :60F:/:62F:/:64:/:65:, each booked entry a :61: line with :86: details. The preview is free; downloading the .sta file is part of Pro.
Can I convert MT940 to camt.053 without uploading the statement?
Yes. Open the MT940 in SafeCAMT; the conversion runs in your browser and the camt.053.001.08 can be downloaded with a Pro license. A preview is free.
Last updated 2026-11-12. Something wrong or missing? Email support@biteapps.cc.