Use “Import a bank statement (CSV)” in Recued. Reads a statement CSV you exported from your bank, lets you match its columns from the file’s own header, and records every line in your own warehouse. Re-importing an overlapping export adds only what is new.
Import a bank statement (CSV)
Use “Import a bank statement (CSV)” in Recued. Reads a statement CSV you exported from your bank, lets you match its columns from the file’s own header, and records every line in your own warehouse. Re-importing an overlapping export adds only what is new.
Complete workflow
Use “Bank statement import” in Recued to bring a statement you exported yourself — CSV from any bank — into your own warehouse, with no aggregator in the middle. Aggregators gate real account data behind an approved business account; a file needs no credentials and no third party sees your transactions. You name your bank's columns once, so nothing is guessed. Re-importing an overlapping export skips lines you already have instead of double-counting them. Feeds ledger-book and expense-ledger.
You are viewing one recipe in this workflow. Installing it opens the complete pack so its other recipes and background automations arrive together.
Use “Records runtime” in Recued. It helps you complete this workflow using the connections and settings you choose.
Use “List statement lines” in Recued. Shows imported statement lines, most recently imported first, for one account or across all of them, with the net for the page.
Why a file, not a bank login
Every open-banking aggregator gates real account data behind an approved business account, and talking to a bank directly needs PSD2 authorisation. A statement export needs neither, works for banks no aggregator covers, and no third party ever sees the transactions.
Setting it up once
Open it from the pack and Recued guides you through it: choose the file, then match each field to one of the columns your bank actually exported. The choices are read from the file’s own header row, so a column name cannot be misspelled, and each column’s first values sit beside it. Check the first rows it shows you, then import. Tick Remember these columns and next month’s export arrives already matched.
Two layouts are supported:
- One signed amount column (common in the UK/US): match the signed amount, and mark money out / money in as not in my file.
- A debit + credit pair (common in Europe and India): mark the signed amount as not in my file and match both halves of the pair. Recued stores each column as its own figure and does not fold them together — which column means money out is a fact about your bank, and a stored line you can check against the paper is worth more than a tidier table. Listing recipes add them up when they show you a total.
Set exactly one of the two layouts.
From the plain run form instead, type the exact column names from your header row into the settings. The summary lists any it could not find in the file — a name it cannot find imports as an empty value on every line.
Re-running is safe
Bank exports overlap by design — the last 90 days, every time. Each line's id is derived from its own content plus your account label, so importing the same export twice reproduces the same ids and adds nothing. The summary says how many you already had.
Give each account its own label. The id is scoped to it, so the same amount on the same day in two accounts stays two lines.
A line records its own content, never which upload carried it — the run's history keeps that. So next month's export, which repeats the last few weeks, lands the repeated lines as already had. ⚠ Lines imported by the first version of this importer were stamped with the file they came from, so a later export that repeats one counts it as kept, not already had — it is already recorded, and nothing is lost or doubled.
When a line you already have looks different
Sometimes a line in the file is one you already have, but with different details — this export has a running balance your earlier one did not, you changed the line's category since, or you picked a different currency this time. Keep what I already have starts ticked: those lines stay exactly as you have them and are counted as kept. Untick it and the file wins instead: its running balance replaces yours, and the line is counted as updated. That is the only thing the file can change on a line you already have — the date, description and amount are what make it the same line, and the category, currency and account label come from you, not the file. The check shows you which it would be before you import.
The account's balance
After it records the lines, the import keeps the account's balance: the running balance your bank printed on the newest line Recued has from this account, and that line's date. Other workflows read it, to know what was in the bank on that day. The summary shows what was kept.
It needs two things:
- A balance column. Match the column holding the running balance. Without one, the balance stays unknown.
- Dates stored as dates. Recued finds the newest line by its date, so dates must be stored like
2025-12-31. Set the date format, unless your bank already writes them that way.
⚠ Two or more lines on the newest day leave that day's balance unknown. Each line has its own running balance, and nothing in the file says which came last.
⚠ An older statement never replaces a newer balance, so you can import statements in any order. The balance only moves to a later date.
⚠ It looks for the newest line in this month and the two months before. A statement older than that keeps no balance.
When an AI runs the import for you, you approve the balance as well as the lines: a new or changed balance is its own write, and asks on its own.
Check first
The guided import always checks before it records. From the plain form, turn on Check first: Recued reads the whole file, puts every line through exactly the checks a real import would, then throws the result away and tells you what would have happened — including the first rows exactly as they would be recorded, and what would happen to each. Nothing is recorded.
Do this the first time you map a bank. A column pointed at the wrong field imports perfectly — every line lands, nothing is refused — and the only sign is that the numbers are wrong. Reading the first few lines back before you commit is the only thing that catches it.
When a number or a date will not read
A number that cannot be read is stored EMPTY, never as zero, and the line still lands. A zero would look like a real transaction for nothing and would quietly move your balance. A date that does not read in the format you typed is kept exactly as written. Either way the summary counts them and shows the first few with their line numbers, so you can open the file at that line.
Decimal marks and date formats
Both are under More options, and are remembered with your columns.
- Decimal mark. Pick Comma if your bank writes amounts like
1.234,56or1 234,56. The thousands mark (a comma, dot, space or apostrophe) is recognised on its own, but only in groups of three digits, or India's12,34,567. So the wrong choice leaves amounts unreadable rather than wrong:12.50read with Comma is not 1250. - Date format. Empty keeps dates exactly as your bank writes them. Type the format instead, like
dd/mm/yyyy,mm/dd/yyyy,yyyy-mm-ddordd-mmm-yyyyfor20-Aug-2020, and they are stored as2025-12-31, so they sort and filter as dates. If a date only reads in another order (12/31/2025when you typeddd/mm/yyyy), nothing is imported, and Recued names the line and the format it reads in.
⚠ Set the date format before your first import from an account. The date is part of what makes a line the same line, so lines you imported with their dates as written would come in again as new. The check shows them as new before anything is recorded.
How it works
Inspect the data fetches, transforms, gates, and output this recipe runs.
Settings
Configurable at install. Defaults shown — change them anytime in Recued.
file
setting
=
[object Object]
currency
setting
=
GBP
delimiter
setting
=
,
keep mine
setting
=
true
check first
setting
=
false
column date
setting
=
Date
date format
setting
=
column debit
setting
=
decimal mark
setting
=
Point: 1,234.56
account label
setting
=
column amount
setting
=
Amount
column credit
setting
=
column balance
setting
=
column description
setting
=
Description
Uses (6 operations)
core.storage.data-file-read
recued-core.statement-import.line.import
recued-core.statement-import.line.search
recued-core.statement-import.balance.search
recued-core.statement-import.balance.create
recued-core.statement-import.balance.update
Trust & control
What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.