Skip to main content

Import

Import transactions from a bank statement or a previously exported Duitbot CSV. Useful for loading historical data or onboarding from another tool.

note

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 typeDetected aliases
Datedate, transaction date, value date, posting date
Descriptiondescription, details, particulars, narrative, memo, reference
Debitdebit, withdrawal, dr, amount (negative)
Creditcredit, deposit, cr
Amountamount (signed — negative = expense, positive = income)
Currencycurrency, 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.

note

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

PlanImport access
FreeNot available
ProAvailable
UltimateAvailable