Your Workspace

Transactions

Transactions are the heart of ExpenzX. This is where you record every bit of income and expense — by hand or by scanning a receipt — and where you search, filter, and manage it all.

Adding a transaction

Click the Add Transaction button (in the sidebar or on the Transactions screen) and fill in:

  • Type — income or expense.
  • Amount — the value of the transaction.
  • Date — when it happened.
  • Category — e.g. Groceries, Salary, Transport.
  • Description — a short note to help you recognise it later.

Save, and it appears immediately in your list and on the Dashboard.

Editing, searching & filtering

Your transactions are shown in a sortable list. From there you can:

  • Edit any transaction to correct details.
  • Delete entries you no longer need.
  • Search by description to find a specific item.
  • Filter by type, category, and date range to focus on what matters.

Receipt scanning Pro

workspace_premium
AI receipt scanning is available on the Pro and Premium plans. Compare plans →

Instead of typing, you can capture an expense straight from a receipt:

  1. Choose to scan a receipt when adding a transaction and upload a photo or image.
  2. Azure Document Intelligence reads the receipt and extracts the amount and merchant.
  3. Azure OpenAI then suggests the best category and writes a clean description.
  4. Review the result, adjust anything if needed, and save. The receipt image is stored with the transaction.
info
If the AI is unavailable or a receipt is hard to read, ExpenzX falls back gracefully — it uses the merchant name and leaves the category for you to pick. The amount is still captured.

Recurring transactions Premium

workspace_premium
Recurring transactions are a Premium feature. See pricing →

For anything that repeats — salary, rent, subscriptions, insurance — set up a recurring template once and ExpenzX creates the transaction automatically on schedule.

Each template includes:

  • Frequency — Daily, Weekly, Biweekly, Monthly, Quarterly, or Yearly.
  • Start date and an optional end date.
  • The same details as a normal transaction (type, amount, category, description).

ExpenzX tracks the next run date and generates each transaction automatically when it's due — so your records stay complete without any manual effort.

Multi-currency

You can record transactions in different currencies. ExpenzX normalises values to your display currency using exchange rates, so your dashboard and reports stay consistent. Set your display currency in Preferences.

Exporting transactions to CSV

Click Export CSV in the Transactions toolbar to download your transactions as a CSV file. The export respects any active filters — so if you've filtered by category, date range, or type, only the matching transactions are exported.

Each row contains exactly these five columns in this order:

Column Format Example
DateISO date — YYYY-MM-DD2026-06-01
TypeLowercase stringincome  /  expense
CategoryStringGroceries
DescriptionStringWeekly shop
AmountSigned decimal — income positive, expense negative-68.40  /  3500
info
Amounts are raw signed numbers with no currency symbol. Income is always positive; expenses are always negative.

Importing transactions from CSV

Click Import CSV in the Transactions toolbar to bulk-import transactions from a spreadsheet. ExpenzX will preview every row before committing anything, so you can spot problems first.

Required columns

Your CSV must include at minimum:

  • Date — must be in YYYY-MM-DD format (e.g. 2026-06-01). This is the only accepted date format. Rows with a missing or malformed date are rejected.
  • Amount — a numeric value. Currency symbols ($, £, ) and thousands separators (1,000.50) are stripped automatically. Rows with a missing or non-numeric amount are rejected.

Optional columns

  • Typeincome or expense. If omitted, ExpenzX infers the type from the sign of the amount — positive = income, negative = expense.
  • Category — any string. If omitted, defaults to Uncategorized. If the category doesn't exist yet, it is created automatically.
  • Description — any string. If omitted, defaults to (no description).

Column name aliases

Column matching is case-insensitive and supports common aliases from bank exports:

  • Date — also recognised as: transaction date, posted date
  • Amount — also recognised as: value, total
  • Type — also recognised as: transaction type
  • Category — also recognised as: cat
  • Description — also recognised as: desc, memo, narrative, details, name

Minimal template

Date,Type,Category,Description,Amount
2026-06-01,expense,Groceries,Weekly shop,-68.40
2026-06-01,income,Salary,June salary,3500
2026-06-03,expense,Transport,Fuel,-45.00

Limits & behaviour

  • Maximum rows per import: 5,000.
  • Invalid rows are flagged with an error message in the preview — valid rows are still imported.
  • New categories are created automatically; a badge in the preview indicates which ones will be added.
  • UTF-8 BOM (common in Excel exports) is stripped automatically.
  • Large files are processed in batches of 1,000 rows with a progress indicator.
lightbulb
Always review the preview before confirming. Errors are shown per row so you can fix the source file and re-import without losing your valid data.