Ledger Tome

Free MT940 to OFX Converter

Free to start No credit card required .sta, .940 and .mt940 files OFX file in minutes

Duplicate-safe transaction IDs for clean bank feeds

When your bank delivers the Dutch and German standard but your software expects the international one

MT940 is what business banking looks like in the Netherlands and Germany. Log into a business account, download a statement, and a .sta or .mt940 file arrives: the SWIFT customer statement format, which Exact Online, Twinfield, and the rest of the local accounting stack read without complaint. It has been the working standard for decades and it still is.

The friction appears when the accounting software is not local. Plenty of businesses in the Netherlands and Germany run Xero or Sage, sometimes because the owner is used to it, sometimes because the group standardized on it, sometimes because it simply fits better. Those packages were built around OFX and have no MT940 import. Your bank is producing the local standard and your software is expecting the international one, and neither is going to change for you.

Ledger Tome reads the MT940 and writes an OFX. This page covers what transfers between the two, why OFX rather than CSV matters for ongoing reconciliation, and how to make the conversion a routine monthly step rather than a recurring annoyance.

Convert Your MT940 File in 3 Simple Steps

1

Upload

Drop your .sta, .940, or .mt940 file

2

Review

Check the transactions and the balances

3

Download

Get an OFX file for Xero or Sage

Local Banking Standard, International Software

Both formats are well established. They just serve different markets:

MT940 is the Dutch and German standard

The SWIFT customer statement format, delivered by business banking across the region and read by the local accounting stack.

OFX is what cloud accounting expects

Xero, Sage, MYOB, and most international packages import OFX and were never built to read SWIFT statements.

No overlap

Xero has no MT940 import and European business banking has no reason to produce OFX. Neither side will add the other.

CSV is the tempting shortcut

It works, and it discards the transaction identifiers that keep reconciliation from duplicating entries.

The conversion is straightforward. Choosing OFX over CSV is what keeps the monthly reconciliation clean.

Why Convert to OFX Rather Than CSV?

Xero accepts both. They do not behave the same during reconciliation.

OFX (recommended)

Every transaction carries a unique identifier. Xero uses it to recognize entries it has already imported, so an overlapping period or a re-uploaded file will not produce duplicates. Dates are encoded unambiguously and the account and currency travel with the file.

CSV (works, riskier)

A flat table with no identifiers. Xero cannot tell a new transaction from one it already holds, so overlapping imports need care from you. Acceptable for a single import, less good as a monthly habit.

MT940 and OFX are closer in richness than CAMT.053 and OFX, so this conversion loses less than you might expect. Dates, amounts, direction, descriptions, the account, and the opening and closing balances all transfer. MT940's :86: description lines, which are wrapped across several lines in the source, are joined back into complete descriptions rather than arriving fragmented. What MT940 carries that has no direct OFX equivalent is its transaction type codes, which end up reflected in the description rather than in a dedicated field.

MT940 is a statement format with an opening and closing balance, and those are used rather than ignored. The running balances are reconstructed from the opening figure and checked against the stated closing balance; if they disagree, you get a warning rather than a file that quietly asserts numbers the statement does not support.

Prefer the statement in a spreadsheet? See MT940 to Excel . On the newer ISO 20022 format instead? See CAMT.053 to OFX . The full Xero guide is at Import into Xero .

Try It Now - See Results in 60 Seconds

Upload an MT940 file and see how Ledger Tome re-issues it as OFX.

Common Ways to Get MT940 Data Into Xero

1

Ask the Bank for OFX

Dutch and German business banking generally has no OFX option, because the market never used it. Worth a look, rarely fruitful.

2

Export CSV From the Bank Instead

Many banks offer CSV alongside MT940, and it works. It also throws away the transaction identifiers and often arrives in an awkward column layout.

3

Route Through Local Accounting Software

Import the MT940 into Exact or Twinfield and export something else. Adds a software subscription to a file conversion.

4

Automated MT940 to OFX Conversion

Recommended

Reads the SWIFT statement directly and writes OFX with duplicate-safe transaction IDs. Free to start.

MT940 to OFX: Method Comparison

Method Time Required Accuracy Best For Cost
Bank OFX download Instant, if offered Native Almost no European bank Free
Bank CSV export Minutes No duplicate protection A single one-off import Free
Via local accounting software 20+ minutes Good Businesses already running one Subscription
Ledger Tome Under a minute Duplicate-safe IDs, balances verified Any MT940 statement Free to start

Why automated conversion wins: it takes a minute, and the transaction IDs mean an accidental re-import costs you nothing.

How Ledger Tome Converts MT940 to OFX

Ledger Tome parses SWIFT statements natively and writes the OFX cloud accounting software expects.

Upload

Upload your .sta, .940, or .mt940 file

SWIFT Parsing

Tags, entries, and balances read from the statement structure

Review & Verify

Check every entry and confirm the balances reconcile

Download OFX

A standard OFX statement file

Files are identified by their content, so .sta, .940, .mt940, and extensionless downloads all work. Descriptions wrapped across several :86: lines in the source are joined back into complete text. The opening and closing balances are read from :60F: and :62F: and the entries are checked against them, with a warning on any mismatch. Every transaction in the OFX gets a stable identifier derived from its date and position, so re-exporting the same statement produces the same IDs and your software keeps recognizing them.

From SWIFT Statement to a File Xero Accepts

Before: Raw MT940

MT940 statement file in a text editor

After: Standard OFX

OFX file ready for Xero import

Use Cases for MT940 to OFX Conversion

Dutch Businesses on Xero

Local banking, international accounting software.

German Businesses on Xero or Sage

The same seam, a different country.

Subsidiaries Reporting Into Group Systems

Local accounts, group-standard software.

English-Speaking Owners in the Benelux

Running familiar software locally.

Accounts Without a Xero Feed

Where direct bank connections are unavailable.

Monthly Reconciliation

The same conversion each month, in under a minute.

Who MT940 to OFX Conversion Is For

This type of conversion is commonly used by:

Dutch Small Businesses

MT940 from the bank, Xero in the office.

German Businesses on International Software

Where the local stack was not the choice.

Bookkeepers With Cross-Border Clients

Handling both banking worlds at once.

Subsidiary Finance Teams

Local banking feeding a group standard.

Sage Users in the Benelux and DACH

The same problem, a different destination.

Anyone Standing on the Seam

Local bank format, international software.

Related Converters

Ledger Tome supports multiple input and output formats. Choose the one that fits your workflow:

MT940 to Excel

Reading MT940 files in a spreadsheet.

CAMT.053 to OFX

The ISO 20022 version of this page.

PDF to OFX

Statements that only exist as PDFs.

Import into Xero

The full Xero import guide.

PDF to MT940

Producing MT940 files rather than reading them.

What Ledger Tome Does Not Do

For clarity and transparency, Ledger Tome does not:

  • Access bank accounts directly
  • Initiate or modify transactions
  • File taxes or submit reports
  • Replace accounting software
  • Categorize transactions automatically

It focuses solely on converting statement data into structured, accounting-ready formats.

Security & Privacy

Your Financial Data is Protected

We take statement security seriously. Here's how we protect your data:

  • Encrypted in transit and at rest

    TLS on everything moving in or out, AES-256 on anything stored

  • No one reads your statements

    Conversion is automated end to end. A person only ever sees a document if you send it in yourself on a conversion that failed

  • Automatic Deletion

    All uploaded files are permanently deleted after 7 days (or immediately upon request)

  • No Training Data

    Your statements are never used to train AI models or shared with third parties

  • No Account Access

    We never access your bank account directly or store your banking credentials

  • GDPR Compliant

    Full compliance with data protection regulations

  • No Permanent Storage

    We don't maintain a database of your financial information

Privacy First: We process your data solely for conversion purposes. No marketing, no data selling, no third-party sharing.

Frequently Asked Questions

How do I import an MT940 statement into Xero?

Xero does not read MT940. Convert the statement to OFX with Ledger Tome, then import the OFX through Xero's bank statement import.

Why not just use the bank's CSV?

CSV works but carries no transaction identifiers, so Xero cannot tell a new transaction from one it already has. OFX identifiers make overlapping or repeated imports harmless, which matters if you do this every month.

What file extensions are supported?

.sta, .940, and .mt940, plus files with no extension at all, since MT940 files are identified by their content.

What gets lost in the conversion?

Very little that matters for bookkeeping. Dates, amounts, descriptions, the account, and the opening and closing balances all transfer. MT940's transaction type codes have no dedicated OFX field and are reflected in the description instead.

Will importing the same file twice duplicate transactions?

No. Each transaction carries a unique identifier that Xero uses to skip anything already imported.

Are the balances checked?

Yes. Running balances are reconstructed from the opening figure and verified against the stated closing balance, with a warning if they do not agree.

My descriptions are split across several lines in the source.

That is how MT940 stores them. The wrapped :86: lines are joined back into complete descriptions.

Does this work for Sage as well as Xero?

Yes. Sage 50 and Sage Business Cloud both import OFX, as do MYOB and most cloud accounting tools.

Does this work for credit card accounts?

Yes. Select credit card as the account type at export so the sign convention is handled correctly.

Should I switch to Exact or Twinfield instead?

Both read MT940 natively, so that is a genuine option if you were already considering it. If you have chosen Xero or Sage deliberately, this conversion closes the only real gap.

Can I get the data in Excel too?

Yes. The same upload can be exported as Excel or CSV alongside the OFX.

How much does it cost?

Free to start, with no credit card required. Paid plans and token packs are available for higher volumes; see the pricing page.

Troubleshooting Common Issues

Xero rejected the OFX

Check the .ofx extension survived the download and that the currency matches the Xero bank account you are importing into.

Transactions went to the wrong account

Confirm the target account during Xero's import rather than letting it default. The account identification comes from the MT940's :25: field.

A balance warning appeared

The entries and the stated closing balance disagree in the source file. Check the statement itself; the warning is reporting a real inconsistency rather than a conversion problem.

Descriptions look different from the bank's portal

MT940 stores descriptions across wrapped lines, which are joined back together. The portal may present the same data with different formatting.

Duplicates after a feed was connected

If a Xero bank feed later covers a period you imported, the transaction identifiers should prevent duplication. Where a feed generates its own IDs, remove the overlapping imported batch instead.

Summary

MT940 is the working standard for Dutch and German business banking, and OFX is what international cloud accounting expects, which leaves plenty of businesses holding a statement file their software will not read. Converting to OFX rather than the bank's CSV keeps the transaction identifiers that make monthly reconciliation safe, joins the wrapped descriptions back together, and carries the verified opening and closing balances across.

If your bank sends MT940 and your accounting software wants OFX, Ledger Tome converts it in under a minute.

Ready to Get Your Statements Into Xero?

Stop being caught between local banking and international accounting software. Convert your first MT940 file to OFX in minutes.

Free to start, no credit card required .sta, .940 and .mt940 accepted Duplicate-safe transaction IDs Secure and private, files deleted after 7 days

Used by Dutch and German businesses on Xero and Sage

Cookies and analytics

We use necessary cookies to keep Ledger Tome working, and with your consent we use marketing and analytics cookies to improve it. You can change this anytime in Settings or our Privacy Policy .