Transactions

This is where every bank and credit card transaction lands after syncing from your connected accounts. Your job is simple: confirm each one is categorized correctly, match payments to the invoices or bills they settle, and resolve anything AI couldn't decide on its own. Categorizing a transaction creates a balanced journal entry behind the scenes, so a clean transactions list means clean financial statements.

Key capabilities

  • Automatic sync from connected accounts, with a periodic fallback sync
  • Layered auto-categorization: bank rules, historical patterns, global patterns, then AI
  • One-click AI Categorize to clear the whole uncategorized backlog in the background
  • Category suggestions on demand, with an optional slower LLM pass for unresolved rows
  • Link as Payment to settle invoices and bills directly from the transaction drawer
  • Split one transaction across multiple bills via Apply Transaction to Multiple Bills, with allocation tracking
  • Bulk recategorize, re-counterparty, mark reviewed, and mark reconciled across selections
  • "Mark all reviewed" for an entire date range during close
  • Recurring detection to surface subscriptions and repeating charges
  • CSV/Excel import (file, paste, or column-mapping), plus manual and bulk manual creation
  • Attach receipts and documents to any transaction
  • Cleaned merchant names backed by the global counterparty registry
  • Rich filters: account, category, source account, tag, date, amount direction, uncategorized, and missing counterparty

How it works

Transactions flow in from Plaid, get a counterparty and a suggested category from the layered engine, and post a journal entry when confidence is high. Anything the engine can't resolve waits in the uncategorized queue for you.

flowchart LR
  bank["Bank / card"] -->|"Bank sync"| sync["DayZero sync"]
  sync --> clean["Clean counterparty"]
  clean --> engine["Categorization engine"]
  engine --> confident{"High confidence?"}
  confident -->|"Yes"| done["Categorized + journal entry"]
  confident -->|"No"| review["Uncategorized queue"]
  review -->|"You categorize or match"| done

How to use it

  1. Transactions appear automatically from connected accounts — no manual import needed.
  2. Click a transaction to open the detail drawer, then assign a category (ledger), add a memo, attach a receipt, or apply tags.
  3. Use Link as Payment to match a transaction to the invoice or bill it settles, or Apply Transaction to Multiple Bills to split one payment across several bills.
  4. Click AI Categorize to run the full categorization workflow over every uncategorized transaction at once.
  5. Filter to only uncategorized to work the backlog, or toggle the missing-counterparty filter to surface wires and miscellaneous deposits that need a name.
  6. Select multiple rows to bulk-update their category, set a counterparty, or mark them reviewed/reconciled.
  7. Open the Recurring Detection tab to review automatically detected subscriptions and recurring charges.

Pro tips

  • Truly uncategorized transactions (no journal entry) don't appear on your P&L or Balance Sheet — clear them so your reports are complete and reconciliation-ready.
  • Recategorizing all transactions for a counterparty automatically creates a bank rule, so future transactions from that merchant categorize themselves.
  • Amounts follow a sign convention: positive is money in (inflow), negative is money out (outflow). The CSV template includes sample rows showing how this maps for bank vs. credit-card accounts.
  • Bank-synced rows can't be permanently deleted — you can hide them and later restore them; manual and CSV rows are removed permanently.
  • Use the date-range and account filters to scope to one period or account while reconciling, and the review-status filter to track what's left to verify.
  • Paste transaction text straight from a bank export instead of saving a file — DayZero converts it into an importable file for you.

In-depth guide

Source & deletion eligibility

Where a transaction came from governs whether it can be deleted.

Source Origin Deletion
Bank sync Synced from your connected bank or card Hidden (reversible via restore); can be permanently removed
Manual Created by hand Permanent delete
Imported Imported via CSV/Excel Permanent delete
Migration Imported from Xero/QuickBooks Not deletable here — remove at the source
  • Hiding a bank-synced row drops its journal entry and excludes it from lists and reports.
  • Restoring re-runs categorization and rebuilds the entry, picking up any rules you've added since.

Status

Each transaction tracks three independent states:

State Meaning
Posted vs. not posted Whether the transaction appears in your ledger and reports (not-posted and hidden transactions stay out of them)
Reviewed vs. unreviewed Whether you've verified the categorization
Reconciled Whether it's been matched to a bank statement during reconciliation

Categorization methods

DayZero records how each transaction was categorized, so you can audit automated decisions:

Method Source of the category
Bank rule A bank rule matched
Your own history A prior pattern on your own books
Cross-business pattern A pattern seen across other businesses
AI AI categorization
Similar transaction Matched a similar past transaction
Internal transfer Detected a transfer between your own accounts
Manual You set it yourself
Uncategorized Not yet categorized

How categorization works

  • AI Categorize runs in the background, combining your bank rules, your own categorization history, and AI, and auto-applies a category to a journal entry whenever it's confident enough.
  • High-confidence decisions also teach new bank rules, so the system gets faster the more you use it.
  • The on-demand suggest categories action favors fast pattern-based matches first and falls back to a deeper AI pass for transactions it can't resolve on its own.

Counterparties & cleaning

  • Each transaction gets a cleaned counterparty name and, where possible, a link to the global counterparty registry, with high-confidence matches linked automatically.
  • DayZero also tracks how each name was set — automatically, by a pattern, by AI, by a rule, or typed by you.
  • User-typed counterparties are preserved when names are re-resolved in bulk.

Matching payments

  • Link as Payment ties a transaction to the invoice or bill it settles, recording an invoice or bill payment.
  • A single transaction can be allocated across multiple bills; the allocations view reports how much has been applied and how much remains unallocated.

Accounting impact

  • Categorizing a transaction posts a balanced journal entry: the bank/source account is one side and the chosen category ledger is the other.
  • Because bank accounts are driven by the feed and reconciliation, you categorize against the opposing (expense/revenue) ledger — that opposing line is what bulk recategorization and the category filter act on.

Importing transactions

  • Bring history in by uploading a CSV/Excel file, pasting text, or mapping columns.
  • Preview validates the file and checks for duplicates before anything is created.
  • The upload then builds transactions, journal entries, and an AI categorization pass in the background.

Start free and connect a bank account to see it in action.