Convert an ING MT940 file to OFX

In short: ING's MT940 file puts the other party, the description and the reference into /CNTP/, /REMI/ and /EREF/ code words. The converter builds an OFX statement with the IBAN as the account and the closing balance from the file. Drop the file below; it is converted on your device and never uploaded.

Before you start: ING's own published MT940 sample does not add up as printed (an opening balance of 1,000.00 plus bookings of 475.00 against a closing balance of 1,605.00), so the converter shows its balance warning on the sample below. A complete statement should add up.

Convert ING MT940

MT940 to OFX

A .sta, .940, .mt940 or .txt file from your bank's MT940 (SWIFT) statement download

Your file stays on this device

It is read and converted by this page, inside your browser. Nothing from the file is uploaded, and the converter keeps working offline once the page has loaded.

One email when it ships. The address is used for nothing else. Details.

What the ING MT940 file looks like

  • The account line (:25:) is the IBAN followed by the currency, for example NL20INGB0001234567EUR.
  • Each booking line (:61:) can have a second line with an ING transaction code, for example /TRCD/00100/, and /OCMT/ with the original amount when it differs from the booked amount.
  • The description field (:86:) is built from code words in the form /code word/value/: /EREF/ for the end-to-end reference, /CNTP/ for the other party as account/BIC/name/city, and /REMI/ for the payment description, either /REMI/USTD// with free text or /REMI/STRD/CUR/ with a structured reference. Other code words include /IREF/, /PREF/, /MARF/, /CSID/ and /RTRN/.
  • Lines are at most 65 characters and a value can continue on the next line in the middle of a word (for example "ING T" then "estrekening").
  • After the closing balance, a last :86: line names the account owner and gives totals: /NAME/.../BIC/.../SUM/ with the number and total of debit and credit bookings.

What the converter does with it

  • Writes the /CNTP/ name as the payee name and the /REMI/ text as the memo. The OFX file has no reference field, so the /EREF/ value is not in it; the spreadsheet CSV keeps it. Values split across lines are joined back together.
  • Uses the account from :25: without the currency as the account number, and the currency from the balance lines.
  • Skips the /TRCD/ code line and the closing /NAME/ /SUM/ line: they are not transactions.
  • Checks every statement: the opening balance plus the bookings must equal the closing balance, and you get a warning if it does not.

Before and after

Before: the MT940 statement as downloaded

{1:F01INGBNL2ABXXX0000000000}{2:I940INGBNL2AXXXN}{3:{108:B12345678S000001
}}{4:
:20:P140104000009999
:25:NL20INGB0001234567EUR
:28C:00003
:60F:C250204EUR1000,00
:61:2502040103C350,00NTRF5200150700013379//00000000000001
/TRCD/00100/
:86:/EREF/E2E2014030100899040//CNTP/NL08INGB0000001234/INGBNL2A/ING 

After: what Xero, Wave, GnuCash, Moneydance, MS Money and others receives

...
<STMTTRN>
<TRNTYPE>CREDIT</TRNTYPE>
<DTPOSTED>20250103120000</DTPOSTED>
<TRNAMT>350.00</TRNAMT>
<FITID>696871AA6977C8DD</FITID>
<NAME>ING Testrekening</NAME>
<MEMO>5200150700013379</MEMO>
</STMTTRN>
<STMTTRN>
<TRNTYPE>CREDIT</TRNTYPE>
<DTPOSTED>20250103120000</DTPOSTED>
<TRNAMT>125.00</TRNAMT>
<FITID>5F183F0F1EA61837</FITID>
<NAME>ING Testrekening</NAME>
<MEMO>UstrdRemInf5878992110</MEMO>
</STMTTRN>
...

Sample: ING's own published MT940 sample file (first statement), copied from the PDF. The "after" output was produced from it by the same converter this page runs.

Import the converted file into Xero, Wave, GnuCash, Moneydance, MS Money and others

  1. In your accounting software open the bank account and choose Import statement (or File > Import > OFX).
  2. Choose this .ofx file.
  3. Review and confirm the transactions.

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 programs accept OFX files?
Xero, Wave, GnuCash, Moneydance and many desktop finance programs offer an OFX import. QuickBooks prefers .qbo and Quicken prefers .qfx; use those variants for Intuit products.
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.
What happens with overlapping exports or repeated rows?
Each transaction gets an id built from its date, amount, description and platform id, so the same row in two overlapping exports gets the same id. Whether your software uses that id to skip a repeat is up to the software, so avoiding overlapping date ranges is still the safest habit. Within one file, exact repeats of the same platform transaction are dropped and the notes say how many.

Sources

BooksReady is not affiliated with, endorsed by or sponsored by ING. The layout notes above come from the sources listed.

More