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.