Exporting CSV From Your Dutch Bank: A Step-By-Step Guide Per Bank

Most advice about CSV exports online assumes one bank — typically the bank the author personally uses. The moment you switch banks or open a second account elsewhere, your mental map of "how do I export again" resets to zero.

This post is a practical per-bank rundown, with notes specifically for Okidoky (auto-detection vs. column mapping).

ING

Path: Mijn ING → Afschriften → Export

Format: CSV with semicolon separator, column order: Datum;Naam/Omschrijving;Rekening;Tegenrekening;Code;Af Bij;Bedrag (EUR);MutatieSoort;Mededelingen

Period selector: Per account; you can set a custom period (useful for year-end) or "all transactions".

In Okidoky: Auto-detection works. Upload the CSV directly via Bank Import. Columns are recognised automatically, duplicate detection filters out already-imported transactions.

Note: ING delivers dates as 20260422 (YYYYMMDD, no separators). Okidoky normalises that automatically.

KNAB

Path: KNAB web login → Export (top bar) → CSV / Tab-delimited

Format: KNAB has a slightly different column schema than ING, including Rekeningnummer;Transactiedatum;Valutacode;CreditDebet;Bedrag;...

Period selector: From date X to date Y, per account.

In Okidoky: Auto-detection works. Columns are recognised.

Note: KNAB sometimes delivers trailing empty lines — Okidoky skips those automatically.

ABN AMRO

Path: ABN AMRO Internet Bankieren → Afschriften → Downloaden → CSV (TAB-MT940 or XML are alternatives; for our purposes pick CSV)

Format: CSV with comma separator, but with an unusual order: account,currency,transaction_date,opening_balance,closing_balance,value_date,amount,description

Period selector: Select the period in the statements view before exporting.

In Okidoky: Column mapping needed on first import. In the Bank Import wizard you pick which column is date, amount, and description. After that one-time setup, Okidoky remembers it for your next import.

Pitfall: ABN often uses value_date (when the transaction cleared) rather than transaction_date (when you paid). For a ledger you usually want the transaction date — it's the upper of the two.

Rabobank

Path: Rabobank Internet Bankieren → Betalen & sparen → Afschriften → Mijn afschriften downloaden → CSV

Format: CSV with comma-separated values and description in quotes. Columns: "IBAN/BBAN","Currency","BIC","Seq","Date","ValueDate","Amount","BalanceAfter","CounterIBAN","CounterName",...

Period selector: Default is the last 90 days; for older data you often need a separate request (up to 18 months back is standard).

In Okidoky: Column mapping needed. Rabobank's amount column uses comma as decimal separator (123,45) which Okidoky correctly interprets once you point out the amount column.

Pitfall: Rabobank exports negative amounts as -123,45 (with minus sign) and positive amounts without a sign. Okidoky normalises that into expense/income.

bunq

Path: bunq app → Profile → Settings → Download history → CSV

Format: CSV with comma separator. bunq is relatively modern: column headers are in English (Date,Amount,Account,Counterparty,Name,Description). Date is ISO format (YYYY-MM-DD).

Period selector: Last 30/90/365 days or custom.

In Okidoky: Column mapping needed (one time). Because the headers are in English and Okidoky defaults to Dutch bank conventions, you pick which column is what on first import.

Note: bunq's "Joint account" transactions appear in the export of both linked accounts. If you have both bunq Personal and Business, export them separately to avoid double-counting.

SNS Bank

Path: SNS Mijn SNS → Account → Afschriften → Exporteren → CSV

Format: Similar to ABN AMRO in column layout, with a period as decimal separator in the amount column.

Period selector: Per month or custom, max 1 year per export.

In Okidoky: Column mapping needed. The mapping wizard remembers your choices.

ASN Bank

Path: ASN Internet Bankieren → Afschriften → Downloaden → CSV (NL) or MT940 (for accountants)

Format: ASN shares a lot of format similarities with SNS (both part of the Volksbank group).

In Okidoky: Column mapping needed. Same process as ABN/Rabo/SNS.

Other banks (Revolut, N26, Wise, Triodos)

Okidoky accepts the CSV format from practically any bank — if there are rows with date + amount + description, you can map the columns. We have no auto-detection for these non-Dutch banks, but the workflow is identical to ABN/Rabo: map once, then remembered.

Summary

Bank Column mapping needed? Period limit
ING No (auto) Unlimited
KNAB No (auto) Unlimited
ABN AMRO Yes, one-time No hard limit
Rabobank Yes, one-time 18 months online, older on request
bunq Yes, one-time 365 days by default
SNS Yes, one-time 1 year per export
ASN Yes, one-time Same as SNS
Others (Revolut, Wise, etc.) Yes, one-time Varies

Why not just PSD2?

A fair question: why not just a live bank connection via PSD2? We answered that in a separate post. Short version: CSV import is less convenient but gives you full control over what your app sees and when. For readers who don't care about that, apps like Grip (PSD2-driven) are a better fit.


Okidoky is free to try with CSV import; no credit card required.