Finances
Import bank transactions
Bankumsätze importieren: die Prüfansicht
Playing the video loads YouTube (youtube-nocookie.com); data may be sent to Google in the process.
More videos on this topic
Bankumsätze importieren: Zuordnungsregeln
Playing the video loads YouTube (youtube-nocookie.com); data may be sent to Google in the process.
Bankumsätze importieren: Vertragszahlungen und Rückgängig
Playing the video loads YouTube (youtube-nocookie.com); data may be sent to Google in the process.
What it's about
In the Import area (under Finances), patchio reads a bank statement – as a CSV, XML or Excel file – and suggests ready-made expenses and income from it, instead of you typing them in by hand. The file is read only in your browser and never leaves your device. patchio recognises Sparkasse, N26 and Revolut automatically from the header row; for any other bank, you map the columns once the first time. Before anything is added, you see every row in a review screen with a status and a category suggestion – nothing lands in your finances unseen.
Before you start
- The Finances module needs to be turned on under Manage → Modules (admins only).
- At least one account exists – the import assigns the transactions to it.
- You'll find the area via the Finances overview (Import tile) or the Import button on Accounts.
Exporting from your bank
patchio recognises the header row of three banks automatically. Download the file fresh from your online banking each time and import it unchanged – a file re-saved through Excel often changes number and date formats.
Sparkasse
Choose the “Excel (CSV-CAMT V8)” option in the export and import the downloaded file unchanged – don't save it through Excel first, that changes the encoding and format. patchio also recognises the older CSV-CAMT V2 format.
Sparkasse's export also offers an “XML (CAMT V8 – posted transactions)” option – patchio reads this file too, along with the older CAMT V2 format. One thing to watch: always choose the posted transactions – entries that haven't posted yet aren't imported.
N26
Open the web app, go to Transactions, and download the CSV file.
Revolut
In your account, go to Statement and download the CSV file. Pending transactions (not yet completed) aren't imported by patchio – they show up in your next export once they've settled.
Other banks
If patchio doesn't recognise the header row, you map the columns once, by hand (booking date, amount, counterparty, purpose and more). patchio remembers this mapping as a template for the household – the next import from the same bank picks it up automatically.
Excel files (XLSX)
If your bank doesn't offer a matching CSV or XML export, an Excel file (XLSX) works too – patchio reads the first sheet. If patchio doesn't recognise the header row automatically, you map the columns the same way as for any other file, via column mapping (see “Other banks” above).
Don't see your bank?
If patchio doesn't recognise your bank automatically, you can help us add it: send us the header row of your export file and a sample row with altered amounts and names – via Feedback in the app, or to kontakt@patchio.de. We'll add your bank as a built-in template that works for everyone. That's how the built-in templates for Sparkasse, N26 and Revolut came about, too.
Account, sub-accounts and “Paid by”
- Account – for Sparkasse, patchio recognises it automatically from the IBAN in the file; for N26 and Revolut (which don't include an IBAN), you choose it – patchio remembers your choice for the next file from the same bank.
- Sub-accounts – if the file contains several sub-accounts (e.g. N26 Spaces or Revolut savings), you make a required choice for each one: assign it to an account, or skip it.
- “Paid by” – who's recorded as the paying or receiving person is also required. It defaults to the account owner, or otherwise to the person doing the import.
Review screen and status
Before anything is added, patchio shows every row with a status:
- Expense – negative amount, added as an expense.
- Income – positive amount, added as income (with a category suggestion, e.g. salary when the wording matches).
- Already there – a duplicate, not added a second time.
- Transfer – a transfer between two of your own accounts, not booked as an expense.
- Contract payment – the row matches an ongoing contract (see “Contract payments” below) and is booked automatically as a payment on that contract instead of as an extra expense.
- Pending – not yet completed (Revolut only), not added.
- Skipped – deselected by you, without a euro amount, or with an amount of 0.
Rows with the status Already there, Transfer and Pending are deselected by default; contract payments are selected by default, since they're booked automatically. You can tap any row and change its status – for a recognised contract payment, for example to “As expense”, “Note only” or “Different contract”.
Category suggestions
patchio suggests a category for every expense, in this order:
- Rule – one of your saved matching rules (see “Rules” below) applies.
- AI – only if AI categorisation is turned on for the household and no rule applies. The purpose is masked first (IBAN-like values and long digit sequences are removed) before it goes to Claude (Anthropic) together with the counterparty – your IBAN or the counterparty's IBAN is never sent.
- Empty – nothing applies, and you pick the category yourself.
The category chip shows where the suggestion came from (rule, AI or manual) – you can change any of them directly in the review screen.
Rules
If you change a category by hand in the review screen, patchio offers to remember the correction as a rule for future transactions from the same counterparty. Your rules sit in the “Your matching rules” section at the bottom of the Import page, where you can also see how often a rule has matched, and delete it.
Sharing rules
By default, rules apply only to you – other household members don't see or use them. If the account is household-visible, you can also switch on “also for the household” when you save a rule; then every household member sees and uses it too. For a private account, that switch isn't available. Rules that target a contract always stay private – otherwise the rule list would reveal a private contract to people who couldn't otherwise see it.
The list marks shared rules with a household badge; rules other people share show their avatar and first name. Only whoever created a rule can change or delete it – shared rules included.
Contract payments
If a row matches an ongoing contract – provider and amount line up, and the row falls within the expected due window – patchio books it automatically as a contract payment. This doesn't create an extra expense entry; the payment sits on the contract instead.
Insights then shows the actual amount paid for that month instead of the stored amount. For quarterly and yearly contracts, patchio spreads the payment evenly across the months of that cycle; if the contract has since ended, only the months up to the contract's end date count towards Insights.
Settling fixed costs between household members keeps using the stored amount, unchanged – the actual payment doesn't affect it.
Payments from an import sit on the contract's page under “Payments from bank statements”, where you can remove them.
In the review screen, you can pick an alternative instead of the contract payment: As expense books the row as a normal expense of its own, Note only just notes it without booking anything, and Different contract lets you pick the matching contract yourself.
If the matching contract doesn't exist in patchio, patchio won't recognise the row as a contract payment in the first place – then you add it as a normal expense.
Duplicates
If you import the same file twice, patchio detects it automatically and marks the rows as Already there. If you've already entered an expense by hand, patchio offers “link to existing expense” on that row instead of adding it a second time. One limit: other household members' private entries are invisible to you – so patchio can't recognise them as duplicates either.
Viewing the purpose
Open the detail view of an imported expense, and you'll find a “From the bank statement” block there with the counterparty, the (masked) IBAN of the counterparty account, the purpose, the booking text, and the date of the import.
Undoing an import
On the Import page, each entry under “Recent imports” has an “Undo” button. A confirmation tells you the exact numbers first; then patchio removes:
- every expense created from that import,
- every income created from that import,
- every contract payment created from that import.
Linked manual entries stay – if you linked a row to an expense you'd already entered by hand, patchio only removes the link; the expense itself stays. After undoing, you can import the same file again.
Privacy
The file stays in your browser for the whole import – it's never uploaded. Only the recognised transactions are stored (date, amount, counterparty, the counterparty account's IBAN, purpose), so they contain third parties' names and IBANs. The visibility of imported transactions follows the account's visibility – accounts are private by default.
If you delete the account or your account (login), the imported transactions that belong to it are deleted along with it – expenses, income and contract payments already created from them stay.
Limits
- Files up to 5 MB and 5,000 rows.
- Supported are CSV, XML and Excel files from Sparkasse (CSV V8/V2 and XML CAMT V8/V2), N26 and Revolut (CSV), plus any other CSV or Excel file via column mapping.
- No bank connection – patchio never fetches anything from your bank automatically; you download the file yourself each time.
Good to know
Importing transactions from the current month can trigger budget warnings at 80% or 100% right away – that's expected, not suppressed.