Skip to main content

Overview

The Transactions page is your central hub for managing all financial activity. Connect your bank accounts to automatically import transactions, categorize spending, attach receipts, and export to your accounting software.

Transaction Table

View Options

The transactions table provides a comprehensive view of all financial activity:
const transactionColumns = [
  "date",           // Transaction date
  "description",    // Merchant/description
  "amount",         // Transaction amount
  "category",       // Expense/income category
  "account",        // Bank account
  "status",         // Reconciliation status
  "attachments",    // Receipt/invoice count
  "assigned",       // Team member
  "tags",           // Custom tags
  "actions"         // Quick actions
]

Customizing Columns

1

Open column settings

Click the column visibility icon in the header.
2

Toggle columns

Show or hide columns based on your needs.
3

Reorder columns

Drag column headers to rearrange (table view).
4

Resize columns

Drag column borders to adjust width.
Your column preferences are saved automatically and persist across sessions.

Transaction Tabs

All Transactions

The All tab shows every transaction from connected accounts:
  • Sorted by date (newest first)
  • Apply filters to narrow down
  • Bulk actions available
  • Export options

Review Queue

The Review tab shows transactions that need attention:
const reviewCriteria = {
  fulfilled: true,        // Ready for review
  exported: false,        // Not yet exported
  missing: [
    "category",          // Uncategorized
    "attachment",        // Missing receipt
    "note"              // Needs description
  ]
}

Review Queue

The review queue helps you:
  • Categorize uncategorized transactions
  • Attach missing receipts
  • Add notes and context
  • Prepare for export to accounting
Once reviewed, transactions move out of the queue automatically.

Importing Transactions

Automatic Import

Connect bank accounts for automatic transaction import:
1

Connect bank account

Go to Settings → Accounts and connect your bank using GoCardless or Plaid.
2

Automatic sync

Transactions sync automatically every few hours.
3

Real-time updates

New transactions appear in the table immediately after sync.
See Banking Connections for detailed setup instructions.

Manual Upload

Upload transactions from CSV files:
date,description,amount,category
2026-02-28,"Acme Corp",1500.00,"Income"
2026-02-27,"Office Supplies",-250.00,"Supplies"
2026-02-26,"Software Subscription",-99.00,"Software"
Midday automatically detects and prevents duplicate transactions based on date, amount, and description.

Categorization

Automatic Categorization

Midday uses AI to automatically categorize transactions:
const autoCategories = [
  // Income
  "Revenue",
  "Interest Income",
  "Refunds",
  
  // Expenses
  "Advertising",
  "Bank Fees",
  "Equipment",
  "Insurance",
  "Meals & Entertainment",
  "Office Supplies",
  "Professional Services",
  "Rent",
  "Software",
  "Travel",
  "Utilities",
  
  // Other
  "Transfer",
  "Uncategorized"
]
The AI learns from your corrections and improves over time.

Manual Categorization

1

Select transaction

Click on a transaction row to open details.
2

Choose category

Click the category dropdown and select the correct category.
3

Save

The category is saved immediately and used for future similar transactions.

Bulk Categorization

Categorize multiple transactions at once:
  1. Select multiple transactions (checkboxes)
  2. Click “Bulk Edit” in the action bar
  3. Choose “Set Category”
  4. Select category to apply to all
Bulk categorization overwrites existing categories. Review selections carefully before applying.

Transaction Details

Viewing Details

Click any transaction to see full details:
const transactionDetail = {
  // Basic info
  id: "txn_123",
  date: "2026-02-28",
  amount: -250.00,
  currency: "USD",
  description: "ACME CORP",
  
  // Enrichment
  category: "Software",
  tags: ["recurring", "subscription"],
  note: "Monthly subscription for project tools",
  
  // Metadata
  method: "card",
  status: "posted",
  account: "Business Checking",
  balance: 25750.00,
  
  // Relationships
  attachments: ["receipt.pdf"],
  inboxItem: "inbox_456",
  assigned: "user_789"
}

Editing Transactions

Modify transaction details: Editable Fields:
  • Category
  • Tags
  • Note/description
  • Assigned team member
  • Attachments
Non-editable Fields:
  • Amount (from bank)
  • Date (from bank)
  • Account (from bank)
  • Transaction ID

Attachments

Adding Receipts

Attach receipts and invoices to transactions:
1

Open transaction

Click the transaction to open details.
2

Upload attachment

Drag and drop files or click the attachment button.
3

Link automatically

The attachment is saved to Vault and linked to the transaction.

Automatic Attachment

Receipts can be attached automatically:
  • From Inbox: When confirming an inbox match, the email attachment links to the transaction
  • From Vault: Upload files directly from transaction detail view
  • Via Email: Forward receipts to your Midday inbox email (coming soon)
Attachments are stored in your Vault and remain accessible even if the transaction is deleted.
Find transactions quickly:
const searchOptions = [
  "Merchant name",
  "Transaction description",
  "Amount (exact or range)",
  "Category",
  "Note content"
]
Search is real-time and highlights matching transactions.

Filters

Narrow down transactions with powerful filters: Date Filters:
  • Today
  • Yesterday
  • Last 7 days
  • Last 30 days
  • This month
  • Last month
  • Custom date range
Amount Filters:
  • Min/max range
  • Exact amount
  • Greater than
  • Less than
Category Filters:
  • Single category
  • Multiple categories
  • Uncategorized only
Status Filters:
  • Posted
  • Pending
  • Cleared
  • Reconciled
Other Filters:
  • By bank account
  • Has attachments
  • Has tags
  • Assigned to team member
const quickFilters = {
  uncategorized: { category: null },
  needsReceipt: { attachments: 0, amount: { lt: -50 } },
  largeExpenses: { amount: { lt: -1000 } },
  thisMonth: { date: { gte: "2026-02-01" } }
}

Bulk Actions

Selection

Select multiple transactions for bulk operations:
  • Click checkboxes on individual transactions
  • Use Shift + Click to select a range
  • Use “Select All” to select all visible transactions

Available Actions

Bulk Operations

  • Set Category - Apply category to all selected
  • Add Tags - Tag multiple transactions
  • Assign - Assign to team member
  • Export - Export selected to accounting
  • Delete - Remove selected transactions
The bulk action bar appears at the bottom when items are selected.

Tagging System

Creating Tags

Organize transactions with custom tags:
const tagExamples = [
  "recurring",        // Recurring expenses
  "deductible",      // Tax deductible
  "reimbursable",    // To be reimbursed
  "client-acme",     // Client-specific
  "project-x",       // Project-specific
  "q1-2026"         // Time period
]

Tag Management

  • Create: Type new tag name when assigning
  • Color-coded: Auto-assigned colors for easy identification
  • Filter by tags: Click tag to filter transactions
  • Bulk tagging: Apply tags to multiple transactions

Reconciliation

Manual Reconciliation

Reconcile transactions with bank statements:
1

Filter by account and period

Show only transactions for the account and time period you’re reconciling.
2

Mark as reconciled

Check off transactions that match your bank statement.
3

Identify discrepancies

Unmatched transactions need investigation.
4

Lock period

Once reconciled, lock the period to prevent changes.

Reconciliation Status

type ReconciliationStatus = 
  | "pending"      // Not yet reconciled
  | "cleared"      // Confirmed by bank
  | "reconciled"   // Manually confirmed
  | "locked"       // Period locked, no edits

Export to Accounting

Supported Platforms

Export transactions to accounting software:
  • QuickBooks Online
  • Xero
  • Fortnox
  • CSV (custom format)

Export Process

1

Select transactions

Choose transactions to export (usually from Review tab).
2

Choose destination

Select your connected accounting platform.
3

Map accounts

Ensure categories map to correct accounts in your accounting system.
4

Export

Transactions sync to your accounting platform with attachments.
Exported transactions are marked to prevent duplicate exports. You can re-export if needed by removing the export flag.
See App Integrations for accounting integration setup details.

Team Collaboration

Assigning Transactions

Delegate transaction review to team members:
const assignment = {
  transactionId: "txn_123",
  assignedTo: "user_456",
  assignedBy: "user_789",
  assignedAt: "2026-02-28T10:00:00Z",
  status: "pending_review"
}
Use Cases:
  • Assign expenses to employee for receipt upload
  • Assign transactions to bookkeeper for categorization
  • Assign large expenses to manager for approval

Team Visibility

All team members can:
  • View all team transactions
  • Filter by assigned member
  • See who made changes
  • Add notes and comments

Keyboard Shortcuts

  • N - Add new transaction
  • F - Open filters
  • / - Focus search
  • E - Export selected
  • C - Categorize selected
  • T - Add tags
  • Space - Open transaction details
  • Esc - Close details/modals

Best Practices

Pro Tip: Process transactions weekly rather than monthly. This keeps your books current and makes month-end close much faster.
  1. Connect bank accounts - Automate transaction import
  2. Review weekly - Don’t let transactions pile up
  3. Use consistent categories - Makes reporting accurate
  4. Attach receipts promptly - While you still have them
  5. Tag for easy filtering - Create a tagging system
  6. Export regularly - Keep accounting system in sync
  7. Use bulk actions - Process similar transactions together
  8. Lock reconciled periods - Prevent accidental changes

Troubleshooting

Transactions not syncing?
  • Check bank connection status in Settings → Accounts
  • Reconnect bank account if needed
  • Manual sync from account settings
  • Contact support if issues persist
Duplicate transactions appearing?
  • Midday automatically deduplicates based on date, amount, and description
  • If duplicates appear, one may be pending and one posted
  • Delete duplicates manually if needed
Wrong category assigned?
  • Correct the category and AI learns from your change
  • Check if similar transactions need updating
  • Use bulk edit for multiple similar transactions
Can’t export transactions?
  • Verify accounting integration is connected
  • Check if transactions are already exported
  • Ensure all required fields are filled
  • Check export logs for errors
Missing attachments?
  • Check Vault - attachments may be there but not linked
  • Verify inbox item was confirmed
  • Re-upload attachment if missing
  • Check file size limits

Build docs developers (and LLMs) love