Axiomatic

Reconciling Bank Transactions

Import transactions, auto-match against your ledger, and resolve unmatched items.

Overview

Reconciliation ensures that your imported bank transactions match the events in your ledger. Axiomatic's reconciliation engine auto-matches transactions using fuzzy matching on amount, date, and counterparty — then surfaces unmatched items for manual review.

Step 1: Import Transactions

Before reconciling, you need imported transactions. These come from:

  • Plaid sync — Automatic daily sync from linked bank accounts
  • CSV upload — Manual import via the AI Assistant or the Import page
  • API — Programmatic import via POST /api/imported-transactions

Navigate to the Reconciliation page (sidebar → Import → Reconciliation).

Reconciliation page

Step 2: Review Auto-Matched Transactions

The reconciliation engine automatically matches imported transactions to ledger events using:

  • Amount matching — Exact or near-exact amount matches
  • Date proximity — Transactions within a few days of each other
  • Counterparty matching — Fuzzy Levenshtein matching on vendor/customer names
  • Historical patterns — Learning from your previous matching decisions

Matched transactions appear in the Matched tab. Review them to ensure accuracy — false positives are rare but possible.

Step 3: Resolve Unmatched Transactions

Switch to the Unmatched tab to see transactions that couldn't be automatically matched. For each one, you have several options:

Classify as a New Event

Most unmatched transactions need to be classified — they represent new financial activity that hasn't been recorded as an event yet. You can:

  1. Use the AI — Ask the assistant: "Please classify all unmatched transactions." The AI determines the correct event type for each and creates events with journal entries.

  2. Classify manually — Click on a transaction and select the appropriate event type. The posting engine generates journal entries based on your rule packs.

Match to an Existing Event

If the transaction corresponds to an event that already exists but wasn't auto-matched, you can manually link them.

Exclude

Some transactions should be excluded from reconciliation entirely:

  • Internal transfers — Transfers between your own accounts (e.g., checking → savings)
  • Duplicate entries — Transactions that appear in multiple feeds
  • Non-financial items — Bank fees or charges that are tracked separately

Click Exclude to remove a transaction from the reconciliation queue. Excluded transactions won't appear in financial reports.

Step 4: Verify Reconciliation Summary

Once all transactions are either matched, classified, or excluded, check the reconciliation summary:

  • Total imported — All transactions brought in from the source
  • Matched — Successfully reconciled against ledger events
  • Excluded — Removed from reconciliation
  • Unmatched — Still needs attention

Your goal is zero unmatched transactions before closing the period.

Tips

  • Run reconciliation before period close to catch any missing transactions
  • The AI's classification accuracy improves over time as it learns your patterns
  • Use the source filter to reconcile one bank account at a time
  • Excluded transactions are soft-excluded — you can restore them later if needed

Next Steps

On this page