Import
Import transactions from a bank statement or a previously exported Duitbot CSV. Useful for loading historical data or onboarding from another tool.
Import requires Pro or Ultimate. Up to 500 rows per import. File size limit: 2 MB.
Starting an import
/import
You'll be prompted to send a file. Supported formats:
- CSV — bank statement export or a Duitbot CSV export
- PDF — bank statement PDF with a transaction table
Supported file formats
Duitbot export CSV
Any CSV previously exported via /export. The bot detects this format automatically by matching the header row.
Bank statement CSV
Generic bank CSV exports. The bot detects common column names automatically:
| Column type | Detected aliases |
|---|---|
| Date | date, transaction date, value date, posting date |
| Description | description, details, particulars, narrative, memo, reference |
| Debit | debit, withdrawal, dr, amount (negative) |
| Credit | credit, deposit, cr |
| Amount | amount (signed — negative = expense, positive = income) |
| Currency | currency, ccy |
Rows with a debit value become expenses. Rows with a credit value become income. If there's a single signed amount column, negative values (or values ending in DR) are treated as expenses and positive values as income.
Bank statement PDF
PDFs with a transaction table are supported. The bot extracts the table using document parsing. If no table is detected, it falls back to an AI-assisted extraction method.
Password-protected PDFs are not supported. Export an unprotected version from your bank's portal first.
AI categorisation
For bank statement imports (not Duitbot exports), expense rows are sent to the AI in batches to assign categories from your existing category list. This happens automatically before the preview step.
If the AI is unavailable, keyword-based fallback categorisation is used instead.
Preview and confirmation
Before saving, you'll see a summary:
- Number of expenses and income entries detected
- Number of potential duplicates found (rows already in the DB with the same date, amount, and description)
- A sample of the rows
Duplicates are flagged but not blocked — the import proceeds anyway. You can delete duplicates manually via /expenses if needed.
Tap Import to save all rows, or Cancel to discard.
What gets saved
Each imported row creates an Expense or Income record. Account balances are not updated — import is for reporting and history only. If you want balances to reflect imported transactions, update them manually via the Edit button in /accounts.
Import limits by plan
| Plan | Import access |
|---|---|
| Free | Not available |
| Pro | Available |
| Ultimate | Available |