Skip to content

Importing statements and receipts

What this solves

Import a bank or brokerage statement — PDF, CSV, XLSX, OFX, QIF, MT940, or CAMT, including scanned PDFs — and review proposed new transactions, matches, and likely duplicates before anything books. Receipts keep the underlying proof attached to the transaction it supports.

Import a statement

  1. From an account’s register, click Import in the header (or overflow menu).
  2. Drag in a file, paste a hosted link, or use a connected source.
  3. Open Net Worth builds a preview: rows to match to an existing transaction, rows proposed as new, and rows flagged as a likely duplicate (in-file or already in your ledger).
  4. Review each row — a matched row defaults to merging; change that to skip or add separately. CSV/XLSX without recognized headers need manual column mapping first.
  5. If the statement prints a closing balance, Open Net Worth flags drift against your ledger before you commit.
  6. Confirm to commit the batch — grouped so you can review or roll it back later.

A statement stays visible in Statements history: reopen the original file, check its balance ties out, or delete the record (transactions stay; only the record is removed).

Attach a receipt

  1. Open a transaction’s detail drawer, Receipts section.
  2. Click Attach receipt, upload an image or PDF.
  3. A transaction can have multiple receipts; one receipt can support multiple transactions (useful for an invoice covering several line items).
  4. Remove on a receipt only unlinks it from that transaction — it never deletes the underlying file, even if no other transaction is linked to it.

What Lucius can do here

  • Import an attached statement, walking through match/new/duplicate review conversationally.
  • List past import batches, roll one back, or restore a rolled-back one.
  • Check whether a statement’s printed balance still matches your ledger, and flag drift.
  • Find and merge probable duplicate transactions anywhere, not just post-import.
  • Attach a received receipt (e.g. forwarded by email) to the right transaction.

Things that trip people up

  • A refused duplicate is a deliberate guard, not a bug — override it if you’re sure it’s genuinely separate.
  • One statement row split across two ledger entries won’t auto-match — resolve by hand.
  • Column mapping only applies to CSV/XLSX — other formats parse automatically.
  • Deleting a statement record does not delete its transactions — remove them from the register (or roll back the batch) if you want them gone too.