1. Export the file from your bank
- In your online banking open the account and look for Statements, Export or Download.
- Choose the MT940 format (some banks call it SWIFT, MT940 structured or .sta).
- Pick the period and download.
- Upload the file here exactly as downloaded.
Why a raw MT940 export fails in Xero
Xero does not read MT940 files from an upload. Its statement import takes its own CSV template or an OFX file, so the statement has to be turned into one of those first.
Xero imports the CSV line by line, so title rows above the table, balance rows, currency symbols in the amount, or separate gross, fee and net columns end up rejected or imported as the wrong amount.
What is unusual about the MT940 file
- One file can hold many statements and several accounts. Each converted file holds one account in one currency; you choose which.
- Amounts use a decimal comma (1234,56) and a D or C mark for money out or in. RD and RC mark reversals.
- Each entry has a value date and usually a booking date; we use the booking date and keep the value date in the spreadsheet CSV.
- We check every statement: the opening balance plus the entries must equal the closing balance. If it does not, you get a clear warning.
- The description field (:86:) comes in several layouts. We read the German ?20 to ?63 subfields and the /NAME/ /REMI/ /EREF/ style used by Dutch banks, and keep anything else as plain text.
What Xero requires
- Header matches Xero's template: *Date, *Amount, Payee, Description, Reference, Check Number.
- One signed amount column: money out negative, decimal point, no symbols.
- Up to 100,000 rows per file.
2. Before and after
Before: the MT940 statement as downloaded
:20:940S150209 :25:NL68RABO0123456789 EUR :28C:0 :60F:C150206EUR000000005442,89 :61:150209C000000000300,00N541NONREF NL75INGB0001234567 :86:/ORDP//NAME/Hr J DOE/ADDR/Ieplaan 100 2500AA S GRAVENHAGE NL/REMI/bijdrage februari 2014/ISDT/2015-02-09 :62F:C150209EUR000000005742,89
After: what Xero receives
| *Date | *Amount | Payee | Description | Reference | Check Number |
|---|---|---|---|---|---|
| 02/09/2015 | 300.00 | Hr J DOE | bijdrage februari 2014 | ||
| 02/16/2015 | 300.00 | Hr J DOE | Maandelijkse bijdrage februari | ||
| 02/19/2015 | 600.00 | M. DOE EO | Inleg maart 2015 | ||
| 03/16/2015 | 300.00 | Hr J DOE | Maandelijkse bijdrage februari | ||
| 03/22/2015 | 600.00 | M. DOE EO | Inleg april 2015 | ||
| 03/26/2015 | -4114.00 | Bouwbedrijf M NAAIER B.V. | Factuurnr.: 2015014 project: 201502 1 |
Synthetic sample data that follows the real export layout, not a real account. The "after" output was produced from it by the same converter this page runs.
3. Import the converted file into Xero
- In Xero open Accounting > Bank accounts and choose the account.
- Click Manage account > Import a statement.
- Choose this CSV and click Import.
- Check the column mapping (Date, Amount, Payee, Description, Reference) and confirm the date format if asked.
Questions
- How do I know nothing went missing?
- Every MT940 statement carries an opening and a closing balance. The converter adds up the bookings of each statement and compares the result with the closing balance. If they do not match, you see a warning that names the statement and the difference.
- Which date format does Xero need?
- Xero lists both month-first and day-first dates as accepted and asks you to confirm the format when it is unclear. Choose United States for MM/DD/YYYY or Elsewhere for DD/MM/YYYY, and confirm the same format in Xero if it asks.
- My file has several accounts. What happens?
- One file can hold statements for several accounts or currencies. Each converted file holds one account in one currency, and a menu lets you pick which one. Convert each account into its own account in your books.
- Can I import more than one month at once?
- Yes. Xero imports the whole statement file you give it. Keep each file to one bank account in Xero, and avoid overlapping a period you already imported so you do not have to delete duplicate statement lines.
Other ways to convert MT940
Other exports to Xero (CSV)
- Import a Venmo statement CSV into Xero
- Import a Cash App CSV into Xero
- Import a PayPal activity CSV into Xero
- Import a Stripe balance report CSV into Xero
- Import a Etsy monthly statement CSV into Xero
- Import a Airbnb earnings CSV into Xero
- Import a Gumroad payout CSV into Xero
- Import a Square transactions CSV into Xero
- Import a Shopify Payments transactions CSV into Xero
- Amazon settlement report to Xero
- eBay transaction report to Xero
- Import a Wise statement CSV into Xero
- Import a camt.053 statement into Xero