MT940 and CAMT.053 are the two bank statement formats that define how financial institutions deliver end-of-day account data to corporate clients. If you work in European banking, treasury, or finance operations, you either parse these files today or will need to soon.
MT940 is SWIFT's legacy bank statement format, built on fixed-length tagged fields. Each transaction and balance record is identified by a tag number — Tag 20 for the transaction reference, Tag 60F for the opening balance, Tag 61 for individual statement lines, Tag 86 for transaction details. Banks have delivered end-of-day account statements in this format for decades, and it became the de facto standard for automated bank reconciliation across Europe and beyond.
CAMT.053 is its ISO 20022 XML replacement. Where MT940 encodes data in positional, fixed-width fields, CAMT.053 uses hierarchical XML with named, nested elements. Every transaction carries self-describing context: structured remittance information, debtor and creditor details, purpose codes, and charge breakdowns that MT940 simply cannot represent. The result is significantly more granular detail per transaction.
The structural difference between these formats is fundamental. In an MT940 file, meaning depends on where data sits within a fixed-length field — the characters at positions 1-6 of a Tag 61 line encode the value date, the next four encode the entry date, and so on. In CAMT.053, each data point lives inside a clearly labeled XML element like ValDt or NtryDtls. This makes CAMT.053 files larger but far less ambiguous to parse and validate.
SWIFT deprecated MT940 in November 2025 as part of the global migration to ISO 20022. Banks across Europe are transitioning their corporate statement delivery to CAMT.053, but they are not all moving at the same pace. Some institutions completed the switch months ago; others still deliver MT940 files alongside CAMT.053 during a parallel-run period. German banks, in particular, have been at the forefront of CAMT adoption through the Deutsche Kreditwirtschaft (DK) standards, yet even within Germany, timelines vary by institution.
This uneven rollout is precisely why understanding MT940 vs CAMT.053 matters right now. Finance teams running reconciliation workflows, treasury departments managing multi-bank relationships, and developers building ERP or TMS integrations all need to handle both formats during the transition. Your bank may have switched already. Your client's bank may not have. Either way, you need a working knowledge of both the MT940 bank statement format and the CAMT.053 bank statement format to keep data flowing accurately into your downstream systems.
How MT940 Structures Bank Statement Data
MT940 is a SWIFT FIN message type — formally, Message Type 940: Customer Statement Message. It was designed for automated delivery of end-of-day account statements from a bank to its customers and follows a rigid, sequential tag structure. Each tag is a numbered field that carries a specific piece of statement data, and the tags always appear in the same order.
Understanding these tags is the key to reading, parsing, or validating any MT940 file.
The Essential MT940 Tags
Tag 20: Transaction Reference Number A unique identifier the bank assigns to this particular statement message. Used to detect duplicates and track specific statements in your reconciliation workflow.
Tag 25: Account Identification The account number the statement relates to. The format varies by country and bank — German banks typically use BLZ + account number or IBAN, while other institutions may use BIC/account combinations.
Tag 28C: Statement Number / Sequence Number Two values separated by a slash: the statement number and the page sequence number. These let you verify ordering and confirm no statements are missing. For example, 00042/001 means statement 42, page 1.
Tag 60F: Opening Balance The account balance at the start of the statement period. The "F" denotes the first opening balance. This field contains four components: a debit/credit mark (D or C), the date in YYMMDD format, the three-letter currency code, and the amount.
Tag 61: Statement Line Each individual transaction gets its own Tag 61 entry. This is a dense, position-dependent field that packs several data points into a single line:
- Value date (YYMMDD) and entry date (MMDD)
- Debit/credit mark (D, C, RD, or RC for reversals)
- Amount
- Transaction type identification code (a three-character SWIFT code like N for cash, F for charges)
- Customer and bank reference numbers
Tag 86: Information to Account Owner The descriptive detail behind each transaction — counterparty names, payment references, remittance text, and bank-specific codes. Tag 86 always appears immediately after its corresponding Tag 61 entry, forming a paired record of each transaction.
This tag carries the bulk of the human-readable transaction detail and is the most complex tag to parse. Its content can be either unstructured free text or bank-specific structured subfields (such as the German ?20 through ?63 subfield convention). Which format you receive depends entirely on your bank's implementation.
A critical constraint: Tag 86 is limited to 6 lines of 65 characters each, a maximum of 390 characters total. This hard ceiling restricts how much remittance and counterparty information a bank can include per transaction, and it is one of the format's most significant practical limitations.
Tag 62F: Closing Balance The account balance at the end of the statement period. Follows the same format as Tag 60F — debit/credit mark, date, currency, amount.
Annotated MT940 Structure
A typical MT940 message flows in this order:
:20:STARTUMS → Transaction reference
:25:10020030/1234567890 → Account identification
:28C:00042/001 → Statement 42, page 1
:60F:C250410EUR12500,00 → Opening balance: Credit, 10 Apr 2025, EUR 12,500.00
:61:2504100410D1500,00NTRF1234567890 → Transaction: 10 Apr, debit, EUR 1,500.00, transfer
:86:Rent payment April 2025 → Remittance detail for above transaction
ACME GmbH Konto DE89370400440 → (continued)
:61:2504100410C3200,50NTRF0987654321 → Transaction: 10 Apr, credit, EUR 3,200.50, transfer
:86:?20Invoice 2025-0891 → Structured subfields (German format)
?21Payment for consulting → (continued)
?32Mueller und Partner GmbH → Counterparty name
:62F:C250410EUR14200,50 → Closing balance: Credit, 10 Apr 2025, EUR 14,200.50
Notice the Tag 61 and Tag 86 pairing: every statement line is followed by its information block. The opening balance plus all debits and credits should reconcile to the closing balance, giving you a built-in integrity check.
The sequential, fixed-tag structure makes MT940 predictable to parse once you understand the field positions. The challenge lies almost entirely in Tag 86, where each bank's formatting conventions introduce the variability you need to account for in any extraction or integration workflow.
How CAMT.053 Structures Bank Statements in XML
CAMT.053 (Bank-to-Customer Statement, or BkToCstmrStmt) is the ISO 20022 XML message format designed for end-of-day bank account statements. Unlike MT940's flat, tag-based layout, CAMT.053 organizes data in a deeply nested XML hierarchy where every piece of information occupies a dedicated, named element. This structure matters because it means you can query, extract, and validate individual fields without parsing free-text blocks.
The XML Hierarchy
A CAMT.053 file follows a strict top-down structure. Each level contains the next.
Document Root and Group Header
The outermost element is Document, which wraps BkToCstmrStmt. Inside that, GrpHdr (Group Header) carries the message identification string and creation datetime. These tell you when the statement was generated and provide a unique reference for the entire file.
Statement (Stmt)
Each Stmt element represents one account's statement for one period. It contains:
- Account identification via Acct/Id/IBAN (or Acct/Id/Othr for non-IBAN identifiers)
- Electronic sequence number (ElctrncSeqNb), which tracks statement ordering
- Creation datetime and the reporting period covered
- Balance elements and transaction entries
A single CAMT.053 file can contain multiple Stmt blocks, covering several accounts in one message.
Balance (Bal)
Balance elements carry explicit type codes rather than relying on position:
- OPBD (Opening Booked): the confirmed balance at statement start
- CLBD (Closing Booked): the confirmed balance at statement end
- CLAV (Closing Available): the available balance factoring in pending items
Each balance includes Amt with a currency attribute, a CdtDbtInd (credit or debit indicator), and Dt (date). No ambiguity, no positional guessing.
Entry (Ntry)
Individual transactions appear as Ntry elements, each containing:
- Amt with currency and CdtDbtInd for amount and direction
- BookgDt (booking date) and ValDt (value date) as separate elements
- Sts for transaction status (booked, pending, or information)
- AcctSvcrRef for the bank's own reference number
- BkTxCd (Bank Transaction Code) with a three-level classification: Domn (domain, e.g., payments), Fmly (family, e.g., credit transfer), and SubFmly (subfamily, e.g., standing order). This structured coding replaces MT940's GVC codes and makes transaction categorization programmatically reliable across banks.
Entry Details (NtryDtls/TxDtls)
This is where CAMT.053 delivers its most significant advantage. TxDtls contains:
- Remittance information (RmtInf): both structured (Strd) and unstructured (Ustrd) payment references
- Related parties: debtor name (DbtrNm), debtor IBAN (DbtrAcct/Id/IBAN), creditor name (CdtrNm), creditor IBAN (CdtrAcct/Id/IBAN), each in its own element
- End-to-end identification (EndToEndId): the reference assigned by the originating party
- Purpose codes (Purp/Cd): standardized codes indicating the transaction's business purpose
Annotated CAMT.053 Structure
The following XML shows the same two transactions from the MT940 example above, represented in CAMT.053 format. Notice how each data point occupies its own named element rather than a fixed position within a text line:
<BkToCstmrStmt>
<GrpHdr>
<MsgId>STARTUMS</MsgId>
<CreDtTm>2025-04-10T23:59:00</CreDtTm>
</GrpHdr>
<Stmt>
<Id>STARTUMS</Id>
<ElctrncSeqNb>42</ElctrncSeqNb>
<Acct>
<Id><IBAN>DE10020030001234567890</IBAN></Id>
<Ccy>EUR</Ccy>
</Acct>
<!-- Opening Balance (MT940 Tag 60F) -->
<Bal>
<Tp><CdOrPrtry><Cd>OPBD</Cd></CdOrPrtry></Tp>
<Amt Ccy="EUR">12500.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt><Dt>2025-04-10</Dt></Dt>
</Bal>
<!-- Transaction 1: Rent payment (MT940 Tags 61 + 86) -->
<Ntry>
<Amt Ccy="EUR">1500.00</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<BookgDt><Dt>2025-04-10</Dt></BookgDt>
<ValDt><Dt>2025-04-10</Dt></ValDt>
<NtryDtls>
<TxDtls>
<RltdPties>
<Cdtr><Nm>ACME GmbH</Nm></Cdtr>
<CdtrAcct><Id><IBAN>DE89370400440532013000</IBAN></Id></CdtrAcct>
</RltdPties>
<RmtInf><Ustrd>Rent payment April 2025</Ustrd></RmtInf>
</TxDtls>
</NtryDtls>
</Ntry>
<!-- Transaction 2: Consulting payment (MT940 Tags 61 + 86) -->
<Ntry>
<Amt Ccy="EUR">3200.50</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<BookgDt><Dt>2025-04-10</Dt></BookgDt>
<ValDt><Dt>2025-04-10</Dt></ValDt>
<NtryDtls>
<TxDtls>
<Refs><EndToEndId>INV-2025-0891</EndToEndId></Refs>
<RltdPties>
<Dbtr><Nm>Mueller und Partner GmbH</Nm></Dbtr>
</RltdPties>
<RmtInf><Ustrd>Payment for consulting</Ustrd></RmtInf>
</TxDtls>
</NtryDtls>
</Ntry>
<!-- Closing Balance (MT940 Tag 62F) -->
<Bal>
<Tp><CdOrPrtry><Cd>CLBD</Cd></CdOrPrtry></Tp>
<Amt Ccy="EUR">14200.50</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt><Dt>2025-04-10</Dt></Dt>
</Bal>
</Stmt>
</BkToCstmrStmt>
Compare this with the MT940 example: the rent payment to ACME GmbH that was encoded as a Tag 61/86 pair now occupies a fully structured Ntry block with the creditor name and IBAN in dedicated elements. No free-text parsing required.
The Data Density Advantage
Where MT940 compresses counterparty and remittance data into Tag 86's 390-character free-text limit, CAMT.053 provides discrete elements for each piece of information. A parser reads CdtrAcct/Id/IBAN directly rather than pattern-matching within unstructured text that different banks format differently.
The scale of this difference is substantial. Where MT940 offers roughly two dozen tags, the CAMT.053 format defines around 1,300 data tags in version v02 alone, with newer versions (v06 and v08) defining over 5,000 tags, according to Deutsche Bank Corporate Bank.
Versioning Considerations
CAMT.053 is not a single fixed schema. It has evolved through multiple versions, from camt.053.001.02 through .011 and beyond. Each version adds elements and refines existing ones. In practice, version support varies by bank: some still issue v02 files, others have moved to v06 or v08.
Your parser needs to handle this. The core elements described above are stable across versions, but newer versions introduce additional fields for regulatory reporting, richer remittance structures, and expanded party identification. Check the XML namespace declaration at the top of each file to determine which schema version you are working with, and build your extraction logic to degrade gracefully when optional elements from newer versions are absent.
MT940 Tag to CAMT.053 XML Element Mapping
This MT940 tag mapping table is the core reference for anyone migrating parsers, building dual-format integrations, or reconciling statement data across both standards. Each row maps an MT940 tag to its functional equivalent in the CAMT.053 XML schema, with notes on where CAMT.053 extends beyond what MT940 can express.
| MT940 Tag | Purpose | CAMT.053 XML Path | Notes |
|---|---|---|---|
| Tag 20 | Transaction Reference Number | Stmt/Id | Direct one-to-one mapping. Identifies the statement itself. |
| Tag 25 | Account Identification | Stmt/Acct/Id/IBAN | For non-IBAN accounts, use Stmt/Acct/Id/Othr/Id. CAMT.053 also carries the BIC under Stmt/Acct/Svcr/FinInstnId/BICFI, which MT940 does not separate cleanly. |
| Tag 28C | Statement Number / Sequence | Stmt/ElctrncSeqNb | CAMT.053 splits this into ElctrncSeqNb (statement number) and LglSeqNb (legal sequence), giving more precise sequencing than Tag 28C's single compound field. |
| Tag 60F | Opening Balance | Bal where Tp/CdOrPrtry/Cd = OPBD | Balance amount in Bal/Amt with currency attribute. Debit/credit direction in Bal/CdtDbtInd. Date in Bal/Dt/Dt. The XML structure is identical for all balance types, distinguished only by the type code. |
| Tag 61 | Statement Line (Transaction) | Ntry | Amount maps to Ntry/Amt. Direction to Ntry/CdtDbtInd. Value date to Ntry/ValDt/Dt. Booking date to Ntry/BookgDt/Dt. Bank reference to Ntry/AcctSvcrRef. Status in Ntry/Sts. |
| Tag 86 | Remittance / Transaction Details | Ntry/NtryDtls/TxDtls | See detailed breakdown below. This is the largest structural expansion from MT940 to CAMT.053. |
| Tag 62F | Closing Balance | Bal where Tp/CdOrPrtry/Cd = CLBD | Same structure as opening balance. |
| Tag 64 | Closing Available Balance | Bal where Tp/CdOrPrtry/Cd = CLAV | Optional in both formats. Represents funds actually available, which may differ from the booked closing balance. |
The Tag 86 to NtryDtls Expansion
The mapping from Tag 86 to NtryDtls/TxDtls deserves particular attention because it represents the single biggest structural gain in moving to CAMT.053. In MT940, Tag 86 is either fully unstructured free text or, in German banking practice, semi-structured text using subfield codes like ?20 through ?63. Parsers must know each bank's specific subfield conventions to extract counterparty names, account numbers, and payment references reliably.
CAMT.053 replaces this with discrete, typed XML elements:
- RmtInf/Ustrd and RmtInf/Strd separate unstructured remittance text from structured remittance data, including creditor references and invoicing details
- RltdPties/Dbtr and RltdPties/Cdtr provide counterparty names, postal addresses, and account identifiers (IBAN, BIC) in dedicated fields rather than buried in free text
- Refs/EndToEndId carries the end-to-end reference assigned by the originator, while Refs/InstrId holds the instruction identification, both of which would be concatenated somewhere inside Tag 86 text in MT940
- Refs/PmtInfId and Refs/MndtId capture payment information IDs and mandate references for direct debits, fields that have no formal place in MT940
Transaction Type Code Mapping
MT940's Tag 61 includes a two-character transaction type code (such as "TRF" for transfer or "CHK" for cheques) drawn from a limited legacy codeset. CAMT.053 replaces this with the BkTxCd element, which uses ISO 20022's three-level classification: domain (e.g., "PMNT" for payments), family (e.g., "RCDT" for received credit transfers), and subfamily (e.g., "ESCT" for SEPA credit transfer). This standardized hierarchy eliminates the ambiguity that comes with interpreting two or three letter abbreviations that different banks may use inconsistently.
CAMT.053 Fields With No MT940 Equivalent
Several CAMT.053 elements have no counterpart in MT940 at all. These represent net-new data available only in the XML format:
- Ntry/AddtlNtryInf provides supplementary entry-level information the bank wants to communicate
- TxDtls/Purp/Cd carries a standardized ISO purpose code for the transaction (e.g., "SALA" for salary, "SUPP" for supplier payment)
- Ntry/Btch contains batch booking indicators, including the number of transactions and total amount when multiple payments are grouped into a single entry
- TxDtls/AmtDtls can break down the instructed amount, currency exchange details, and charges separately, which MT940 has no structured way to express
How Banks Implement MT940 and CAMT.053 Differently
Neither MT940 nor CAMT.053 produces identical files across banks. Both are standards built on optional fields and implementation choices, which means a file from Deutsche Bank, a file from Commerzbank, and a file from a French or Dutch bank can all be valid according to the specification yet structurally different in ways that break parsers expecting a single consistent layout.
Understanding where these variations occur is essential for anyone building or maintaining systems that consume German bank statement formats from multiple banking partners.
Tag 86 Variations in MT940
The single largest source of inconsistency in MT940 files is Tag 86, the transaction details field. The SWIFT standard defines Tag 86 as a free-format field with up to 6 lines of 65 characters. What banks put in those lines varies dramatically.
For German domestic use, the Deutsche Bundesbank and the German Banking Industry Committee (Deutsche Kreditwirtschaft, DK) defined a structured subfield format using identifiers prefixed with question marks:
- ?20–?29 — Booking text and payment reference
- ?30 — BLZ (Bankleitzahl) of the counterparty's bank
- ?31 — Account number of the counterparty
- ?32/?33 — Counterparty name
- ?60 — IBAN of the counterparty (for SEPA transactions)
Most German banks follow this structure, but even within Germany the specific content varies. One bank might populate ?20 with a condensed reference code while another includes the full remittance text across ?20–?29. Some banks include the SEPA end-to-end reference in ?20, others place it in a different subfield.
International banks frequently skip structured subfields entirely, writing unstructured free text into Tag 86. A parser that reliably extracts counterparty names and IBANs from Sparkasse files using ?32 and ?60 will find nothing useful when applied to a Barclays or BNP Paribas MT940 export. This means Tag 86 parsing logic must be bank-specific or at minimum detect whether structured subfields are present before attempting extraction.
Version and Extension Differences in CAMT.053
CAMT.053 eliminates the free-text ambiguity of Tag 86 by using structured XML elements with defined paths. But it introduces a different class of variation: schema version differences.
Banks currently produce files ranging from camt.053.001.02 through camt.053.001.08 and newer versions. Each successive version adds optional elements and refines existing ones. A parser built against version 02 will encounter unrecognized elements in a version 08 file. Conversely, a parser expecting version 08 fields for structured creditor references or detailed charge breakdowns will find them absent in files produced to the earlier specification.
Beyond version differences, country-level implementation guidelines and bank-specific extensions add further layers of variation. The Deutsche Bundesbank and DK publish detailed implementation guidelines specifying which optional CAMT.053 elements German banks should populate and how. These guidelines significantly reduce variation within the German banking ecosystem, making files from German banks more predictable than those from banks in countries without comparable guidance.
Still, organizations banking across borders will encounter files that follow different national guidelines or no supplementary guidelines at all.
The Practical Consequence
Any system consuming bank statement files from multiple banks must account for structural variation as a first-class concern, not an edge case. For MT940, this means building Tag 86 parsing logic that handles both structured German subfields and unstructured international text. For CAMT.053, it means supporting multiple schema versions and tolerating both the presence and absence of optional elements.
This variability is why most organizations normalize bank statement data into a common format regardless of the source bank. German companies working with DATEV face this directly, as bank transaction data from different institutions needs to map into DATEV's expected booking format. The process of importing financial data into Germany's DATEV accounting system requires handling exactly these kinds of structural differences between banks.
Converting MT940 and CAMT.053 Files to Excel and CSV
Getting transaction data out of MT940 and CAMT.053 files and into Excel or CSV is a core requirement for reconciliation, spend analysis, and feeding data into accounting systems. Three main approaches cover the range of workflows, from enterprise automation to ad-hoc analysis.
ERP and Banking Software Import
Most enterprise ERPs, including SAP, Oracle, and Microsoft Dynamics, ship with built-in MT940 and CAMT.053 parsers. Treasury management systems and dedicated banking modules handle both formats natively. Transaction data flows directly into the system without manual conversion steps. The main configuration work involves mapping bank-specific fields to the ERP's internal data model. For organizations already running these platforms, direct import is the most efficient path: no intermediate files, no manual handling, and full audit trails within the system of record.
Dedicated Converter Tools
Standalone applications and online services parse MT940 or CAMT.053 files and produce Excel or CSV output. These are practical for ad-hoc analysis, one-off conversions, or situations where the target system lacks direct import support. A finance team running a quarterly vendor spend review, for example, may need transaction data in a spreadsheet rather than locked inside an ERP module.
Key considerations when evaluating converter tools:
- Tag 86 handling varies significantly. Some tools treat the entire remittance information block as a single text field; others parse structured subfields (EREF, KREF, SVWZ) into separate columns. If you need clean reference data for matching, verify how the tool handles your bank's Tag 86 format before committing.
- CAMT.053 version differences matter. Tools built for camt.053.001.02 may not correctly parse camt.053.001.08 schemas, or may ignore elements introduced in later versions. Confirm version compatibility with your bank's output.
- MT940 to Excel and MT940 to CSV conversions are straightforward in structure, but bank-specific field variations can produce unexpected results if the tool assumes a generic format.
Custom Parsing
MT940 is a text-based format that can be parsed line by line following the tag structure covered earlier in this article. CAMT.053 is standard XML, parseable with any XML library in Python, Java, Node.js, or similar languages. Custom parsing is the right choice for automated pipelines, API-driven workflows, or when handling bank-specific variations that off-the-shelf tools do not support.
For CAMT.053 to Excel conversion, XML parsing libraries let you walk the document tree and extract exactly the elements you need. Namespace handling is the main technical consideration, since CAMT.053 files declare ISO 20022 namespaces that must be addressed in XPath queries or element lookups.
For MT940, the tag-based structure means parsing logic needs to handle multiline fields (Tag 86 regularly spans multiple lines) and conditional tags that may or may not appear depending on the bank. Teams building integrations across multiple banking partners typically maintain a configuration layer that maps each bank's specific field conventions.
Organizations scaling this work across many banking relationships or building production-grade integrations can benefit from extracting bank statement data via API, which offloads the parsing complexity entirely.
When Banks Deliver PDF Statements Instead
Not every bank statement arrives as a structured MT940 or CAMT.053 file. Many banks provide PDF bank statements alongside electronic formats, and some smaller banks, international branches, or non-European banking partners deliver only PDF statements. In these cases, the transaction data you need for analyzing bank statement transactions for accounting is locked inside an unstructured document rather than available in a parseable format.
AI-powered document extraction handles this gap. Rather than manually keying transactions from a PDF into a spreadsheet, tools like Invoice Data Extraction pull the same core data from PDF bank statements, whether native PDFs or scanned images, into structured Excel, CSV, or JSON output.
Whether your banks deliver MT940, CAMT.053, or PDF statements, you can extract bank statement data into Excel automatically and feed consistent, structured data into your reconciliation and analysis workflows.
Managing the Transition from MT940 to CAMT.053
The shift from MT940 to CAMT.053 is not a single deadline but a rolling migration that varies by country, bank, and message type. SWIFT's cross-border MT message cutoff arrived in November 2025, ending the use of legacy MT formats for interbank messaging on the SWIFT network. But the transition to CAMT.053 for domestic bank-to-corporate statement delivery follows a different, less uniform timeline.
Some European banks have already discontinued MT940 entirely. Others offer both formats during a coexistence period, letting corporate clients migrate at their own pace. A third group has announced specific cutoff dates, sometimes years in the future. The result for any organization with multiple banking relationships across Europe is straightforward: you will receive MT940 from some banks and CAMT.053 from others at the same time, potentially for an extended period.
Why the Timeline Varies
The ISO 20022 migration for bank-to-corporate reporting is driven partly by SWIFT's infrastructure changes and partly by domestic regulation. The European Payments Council mandates ISO 20022 messaging for SEPA payment schemes, which reinforces the migration direction across all European banking. But individual countries and banks retain discretion over when they retire MT940 for corporate statement delivery. German banks, for instance, have been among the earlier movers, while banks in other markets may maintain dual-format support longer.
This means the migration is not something you plan for once. It requires ongoing tracking.
A Practical Dual-Format Handling Approach
Managing the coexistence period well comes down to four steps:
-
Inventory your banking partners' migration status. For each bank, determine whether they have already migrated to CAMT.053, offer both formats currently, or have announced a specific MT940 cutoff date. This inventory drives your prioritization.
-
Verify format support in your receiving systems. Most modern ERP and treasury management systems already accept CAMT.053 alongside MT940. Confirm this for every system that ingests bank statements, including any middleware or integration layers. Where support is missing, the upgrade path is usually a configuration change or module activation rather than a major project.
-
Normalize both formats into a common internal data model. Rather than maintaining two separate processing pipelines indefinitely, map both MT940 tags and CAMT.053 XML elements into a single canonical structure for reconciliation, reporting, and downstream consumption. The mapping table from earlier in this guide provides the field-level correspondence you need. This normalization layer absorbs format differences so that everything downstream operates on one consistent dataset.
-
Prioritize CAMT.053 parsing for any custom integrations. If you are building or maintaining custom code that processes bank statements, invest development effort in CAMT.053 parsing first. MT940 support will eventually become unnecessary. Building new functionality against the CAMT.053 structure avoids rework later.
What CAMT.053 Adoption Enables
Beyond compliance with the ISO 20022 bank statement migration, CAMT.053 delivers concrete operational improvements once your systems are fully consuming the richer format:
- Better automated matching in reconciliation. Structured remittance information fields carry invoice references, customer IDs, and payment descriptions in dedicated XML elements rather than compressed into Tag 86's 390-character text block. Matching algorithms can target specific fields instead of parsing free text.
- Reduced manual lookup for counterparty identification. Creditor and debtor names, addresses, and account identifiers appear in their own structured elements. The manual effort of identifying who sent or received a payment drops significantly.
- Standardized transaction classification. ISO bank transaction codes replace the bank-specific abbreviations that vary between institutions in MT940. A transfer coded as the same ISO domain/family/subfamily combination regardless of which bank generated the statement eliminates institution-specific mapping tables.
- Fewer manual exceptions overall. Higher data density and consistent structure mean fewer transactions that fall through automated processing into manual review queues. The net effect is measurable reduction in reconciliation cycle time once the full CAMT.053 data is being consumed, not just parsed into MT940-equivalent fields.
The MT940 to CAMT.053 transition is a structural shift in how bank statement data flows through corporate finance systems. The mapping table and format walkthroughs in this guide give you the field-level detail to handle both formats during the coexistence period and prepare your workflows for a CAMT.053-only future.
Related Articles
Explore adjacent guides and reference articles on this topic.
How to Convert ANZ Bank Statements to Excel or CSV
Guide to converting ANZ bank statements to Excel or CSV. Covers native export limits, conversion methods, and MYOB or Xero import for Australian teams.
Convert Commonwealth Bank Statement to Excel or CSV
Learn when CommBank's native CSV export is enough and when you need PDF conversion. Covers CommBank PDF quirks and preparing data for Xero, MYOB, or BAS.
How to Convert a Halifax Bank Statement to Excel or CSV
Halifax bank statements are PDF-only. Learn how to convert them to Excel or CSV using copy-paste, Excel import, or AI extraction, plus DD/MM/YYYY date handling.
Extract invoice data to Excel with natural language prompts
Upload your invoices, describe what you need in plain language, and download clean, structured spreadsheets. No templates, no complex configuration.