Blog
Import Transactions from CSV Files

We have been hearing from users in countries where we do not yet support open banking, and from users whose banks are not yet in our directory. The message was clear: "I want to use Endute, but I have no way to get my transactions in." We moved this feature up the priority list and built it.
Starting today, you can import transactions directly from CSV files exported by your bank. The feature is available on the web app, marked as Beta while we refine it across more bank formats.
How it works
Head to the Accounts page and click the Import CSV button next to Add Account. Select the account you want to import into, then drop your CSV file (or click to browse). The system analyses your file's column headers and a few sample rows to detect the format: which column is the date, which is the amount, which holds the description, and so on.
You will see a mapping screen where each detected column is matched to a transaction field. A preview table shows how your first few transactions will look after parsing. If the detection got something wrong, you can correct it with the dropdowns before confirming.
Once you confirm, your transactions are staged for review through the same pipeline as bank-connected transactions. That means the same merchant name detection, the same category suggestions, the same payee matching you are used to from open banking imports. You review, accept or discard each transaction, and they land in your account.
Saving your format
If you plan to import from the same bank regularly, tick Save this format for future imports on the mapping screen. Next time you upload a file from that bank, the saved mapping loads automatically. If your bank changes its CSV format (adds a column, renames a header), the system detects the change and asks you to review the mapping again rather than importing with the wrong columns.
Supported formats
We have tested with exports from major UK and European banks, but the format detection is designed to work with any CSV structure. It handles:
- Single signed amount columns (negative for expenses, positive for income)
- Separate debit and credit columns
- European number formats (comma as decimal separator, dot or space as thousands separator)
- Parentheses for negative amounts, a format common in accounting exports
- Date formats including DD/MM/YYYY, YYYY-MM-DD, DD.MM.YYYY, and others
- Semicolon-delimited files (common in German and Nordic bank exports)
If your bank's CSV has section headers or month labels between the data rows, those are filtered out automatically.
Duplicate protection
Importing the same file twice will not create duplicate transactions. The system computes a fingerprint for each row based on the date, amount, and description. If a matching fingerprint already exists from a previous import, the row is skipped.
If you import a CSV into an account that also has a bank connection, and some transactions overlap, those are flagged as potential duplicates for you to review rather than imported automatically. You stay in control of what goes into your account.
Things to be aware of
This feature is in Beta. A few notes:
- Transfers between your own accounts will import as individual transactions, not as linked transfer pairs. You can convert them manually after import.
- The format detection works well for the bank formats we have tested, but some unusual layouts may need manual column mapping on the first import.
- CSV import is available on web only for now. Mobile support is planned.
If you run into issues or have a CSV format that does not import correctly, please get in touch at support@endute.com. We are actively expanding format support based on what our users send us.
Who is this for?
If you are in a country where Endute does not yet offer bank connections, CSV import lets you use the full platform today without having to add individual transactions manually. If your specific bank is not in our directory, you do not have to wait for us to add it. And if you want to bring in historical data from before you connected your bank, CSV import covers that too.
We built this because our users asked for it, and we will keep improving it based on the feedback we get.
