MT940 to Excel: Parse SWIFT Bank Files Online
MT940 files look like gibberish. Lines of colons, numbers, and codes that make no sense at first glance.
But inside that mess is your bank statement. Every transaction, every balance, every detail your accounting software needs.
I spent three hours last month trying to figure out how to get MT940 data into Excel. Here is everything I learned.
What Is an MT940 File?
MT940 is a SWIFT message format. Banks use it to transmit account statements electronically. The "MT" stands for Message Type. The "940" indicates it is a customer statement.
You will encounter MT940 files if you:
- Bank with European institutions
- Use corporate banking services
- Download statements from treasury management systems
- Work with international wire transfers
Here is what raw MT940 looks like:
:20:STATEMENT001
:25:IBAN12345678901234
:28C:001/001
:60F:C230115EUR1234,56
:61:2301160116DR500,00NTRFNONREF//REF123
:86:Payment to Supplier ABC
:62F:C230116EUR734,56
Not exactly human-readable. That is why you need a parser.
Why Convert MT940 to Excel?
Excel makes bank data usable:
- Filter transactions by date, amount, or description
- Run formulas to categorize expenses
- Import into accounting software like SAP, Oracle, or QuickBooks
- Reconcile accounts against internal records
- Audit trails for compliance
Manual transcription is error-prone and slow. One mistyped digit throws off your entire reconciliation.
Method 1: Online MT940 Parser (Fastest)
The quickest way to convert MT940 files.
Steps:
- Go to convertbanktoexcel.com
- Upload your MT940 file
- Select Excel or CSV as output
- Download the converted file
What you get:
- Transaction date, value date, amount
- Credit/debit indicator
- Transaction reference
- Description fields parsed
- Running balance
Conversion takes under 30 seconds for typical files. Try it free - no account required.
Method 2: Python Script
For developers who need automation.
import mt940
# Parse the MT940 file
statements = mt940.parse('statement.sta')
# Extract transactions
for statement in statements:
for transaction in statement.transactions:
print(f"{transaction.data['date']} | "
f"{transaction.data['amount']} | "
f"{transaction.data['description']}")
The mt940 library handles most standard formats. Install with pip install mt940.
Limitations:
- Requires Python knowledge
- Some bank-specific variations need custom handling
- No GUI for non-technical users
Method 3: Excel Power Query
If you prefer staying in Excel.
- Open Excel, go to Data > Get Data > From File > From Text/CSV
- Import the MT940 file as text
- Use Power Query to parse the colon-delimited structure
- Transform columns based on SWIFT field codes
This works but requires manual configuration for each bank's format variations.
Understanding MT940 Fields
Knowing the structure helps troubleshoot conversion issues.
| Tag | Name | Description |
|---|---|---|
| :20: | Transaction Reference | Unique statement identifier |
| :25: | Account ID | Your account number or IBAN |
| :28C: | Statement Number | Page/sequence tracking |
| :60F: | Opening Balance | Balance at start of period |
| :61: | Transaction Line | Individual payment or receipt |
| :86: | Description | Transaction details |
| :62F: | Closing Balance | Balance at end of period |
The :61: Line Decoded
Most conversion problems happen with transaction lines. Here is how to read them:
:61:2301160116DR500,00NTRFNONREF//REF123
^^^^^^^^ Date (YYMMDD)
^^^^ Value date (MMDD)
^^ Direction (D=Debit, C=Credit, RC=Reversal Credit, RD=Reversal Debit)
^^^^^^^ Amount
^^^^ Transaction type (NTRF=Transfer)
^^^^^^ Reference
Common MT940 Problems
Multi-Currency Statements
Some banks include multiple currencies in one file. Look for currency codes in the balance lines (:60F:, :62F:).
Solution: Use a parser that handles currency fields separately. ConvertBankToExcel detects and separates currencies automatically.
Wrapped Description Lines
Long descriptions continue on multiple lines under tag :86:. Some parsers miss these.
Solution: Choose a parser that concatenates continuation lines correctly.
Regional Date Formats
European banks use DD/MM/YYYY. American banks use MM/DD/YYYY. The MT940 spec uses YYMMDD.
Solution: Verify date parsing before importing to accounting software.
Character Encoding
Special characters (umlauts, accents) can become garbled.
Solution: Ensure UTF-8 encoding when saving and importing.
MT940 vs Other Formats
| Format | Use Case | Structure |
|---|---|---|
| MT940 | SWIFT corporate banking | Tagged fields |
| MT942 | Interim transaction reports | Similar to MT940 |
| CAMT.053 | ISO 20022 replacement | XML-based |
| OFX | Consumer banking (US) | XML-based |
| CSV | Universal export | Comma-separated |
MT940 is being phased out in favor of CAMT.053 (ISO 20022). But millions of legacy files still exist.
Banks That Use MT940
MT940 is common with:
- Deutsche Bank
- ING Bank
- ABN AMRO
- Rabobank
- BNP Paribas
- Commerzbank
- UniCredit
- Most European corporate banks
North American banks typically provide OFX or QFX instead.
Step-by-Step: MT940 to QuickBooks
- Convert MT940 to CSV using convertbanktoexcel.com
- Open the CSV in Excel
- Verify columns: Date, Description, Amount
- Remove any header rows
- In QuickBooks, go to Banking > Upload Transactions
- Select your CSV file
- Map columns to QuickBooks fields
- Review and accept transactions
Step-by-Step: MT940 to SAP
SAP can import MT940 directly via Electronic Bank Statement (EBS) configuration. But for ad-hoc analysis:
- Convert MT940 to Excel
- Format columns to match SAP import template
- Use transaction FF.5 or FEBAN
- Import the formatted file
Automating MT940 Processing
For recurring imports, set up automation:
Option A: Scheduled Script
- Python script runs daily
- Pulls files from SFTP
- Parses and emails Excel report
Option B: API Integration
- Bank provides API access
- Your system pulls data directly
- Bypasses file handling entirely
Option C: Manual with Tools
- Download MT940 weekly
- Convert via online parser
- Import to accounting software
FAQ
Can I convert MT940 online for free?
Yes. ConvertBankToExcel.com offers free conversions. No software installation needed.
What is the difference between MT940 and MT942?
MT940 is a complete statement. MT942 is an interim report showing transactions since the last MT940. The structure is nearly identical.
Why does my MT940 show wrong balances?
Check the currency. Some files include multiple currencies with separate balance lines. Also verify debit/credit indicators are parsed correctly.
Can Excel open MT940 directly?
No. MT940 is not a delimited format. You need a parser to extract structured data first.
Is MT940 being replaced?
Yes, by ISO 20022 XML formats (CAMT.053). But the transition is slow. Many banks still provide MT940 as the primary format.
How do I handle MT940 from multiple banks?
Each bank may have slight format variations. Use a parser that handles common variations automatically, or configure separate import templates.
Quick Reference: MT940 Tags
:20: Transaction Reference Number
:21: Related Reference
:25: Account Identification
:28C: Statement Number/Sequence
:60F: Opening Balance (First)
:60M: Opening Balance (Intermediate)
:61: Statement Line (Transaction)
:86: Information to Account Owner
:62F: Closing Balance (Final)
:62M: Closing Balance (Intermediate)
:64: Closing Available Balance
:65: Forward Available Balance
Bottom Line
MT940 files contain valuable bank data locked in an arcane format. Converting to Excel unlocks that data for analysis, reporting, and importing.
For quick conversions, use an online parser. For automation, consider Python scripts or API integrations.
Need to convert an MT940 file right now? Upload it here and get your Excel file in seconds.

![MT940 to Excel: Parse SWIFT Bank Files Online [2026]](/_next/image?url=https%3A%2F%2Fconvertbanktoexcel.com%2Fapi%2Fuploads%2Fimages%2F1770241328585-1de08bc1.png&w=1920&q=75)