Matching Duplicate Transactions
How to merge manual entries with bank imports to avoid duplicates.
When you need to match transactions
Sometimes you enter a transaction manually before your bank import arrives, or auto-matching doesn't catch a duplicate because the payee names differ. When this happens, you'll see what looks like the same purchase twice.
Instead of deleting one and losing your categorization work (or the bank linkage), you can match them — merging the two into a single transaction that keeps the best of both.
Start with the match banner
When a bank import looks like a transaction you already entered, Purpose Budget flags the pair rather than merging it for you. The match banner at the top of the Transactions page tells you how many pairs are waiting.
- Open the Transactions page and look for the match banner above the list.
- Open its review list — each pair is shown side by side with a confidence badge, so you can see the bank row and the row you entered.
- Uncheck any pair that isn't really the same purchase.
- Confirm — every checked pair is merged into one transaction.
Nothing is merged until you confirm, and unchecked pairs simply stay as two separate transactions.
How to match two transactions
If no pair was suggested — the payee names are too different, or you entered both rows yourself — you can merge them by hand:
- Select both transactions — use the checkboxes on the left side of the transaction list.
- Start the merge — with exactly 2 transactions selected, click "Merge" in the bulk actions bar on desktop, or "Match Transactions" in the Bulk Actions drawer behind the floating button on mobile.
- Review the confirmation — the dialog shows both transactions side-by-side, labeled KEEP and DELETE, so you can see which one survives and which one is absorbed.
- Confirm the match — click "Match Transactions" in the dialog to complete the merge.
What can be matched
For a match to be valid, both transactions must:
- Be in thesame account
- Have theexact same amount (to the cent)
- Have thesame sign (both inflows or both outflows)
You cannot match:
- Two bank imports (if your bank sent them as separate transactions, they're likely not duplicates)
- Transactions from different accounts
- An inflow with an outflow
Which transaction survives?
When matching a manual entry with a bank import, the manual entry survives. This preserves your categorization work while absorbing the bank linkage from the import.
The surviving transaction will:
- Keep its original payee name and category
- Gain the bank connection (so future syncs recognize it)
- Show a link icon badge you can click to open Match Details
How to unmatch (undo a match)
Matched the wrong transactions? No problem:
- Find the matched transaction (it has a link icon badge)
- Click the badge to open Match Details
- Click "Unmatch" and confirm
Both original transactions will be restored as separate entries.
Transfers and card payments are not merges
Merging is for two rows in the same account that are the same charge. Two rows in different accounts — money leaving one and arriving in the other — are a transfer, and they get linked instead of merged. Both rows survive.
- Link two rows you can see — select both rows, then click "Link Transfer" in the bulk actions bar (or the Bulk Actions drawer on mobile) and confirm. The two rows must be in different asset accounts (checking, savings, cash or an investment account, budget or tracking) for the same amount, one outflow and one inflow. Credit cards and loans aren't offered here — cards use the payment flow below.
- Link from a single row — set that row's payee to the other account ("Transfer to: Savings"), pick the matching transaction Purpose Budget lists from that account, and click "Link as Transfer". Use the two-row flow above when one of the accounts is a tracking account, so the category question is handled properly.
- Card payments — after a bank sync, Purpose Budget can suggest the pair (the outflow from checking and the inflow to the card) on the transaction rows: open the suggestion and approve it, or dismiss it if it's wrong. If no suggestion appears, link the pair yourself — select both rows and click "CC Payment".
- Suggested transfers — a bank sync can also suggest a transfer, when both accounts sit on the same side of your budget (both on-budget, or both tracking). They appear in the matches banner on the Transactions page and on the rows themselves; approving one links the pair and removes any category on both rows, because money moving between two accounts inside your budget is not spending. Dismiss it if the pair is wrong, and link the right one yourself. A transfer between a budget account and a tracking account is not suggested — that one needs a category, so you link it yourself.
Linking a transfer between two of your budget accounts — checking and savings, not a credit card — removes the category from both rows. That is correct, and Transfers vs Spending explains why. A transfer that crosses into a tracking account keeps a category on the budget side instead.
Tips
- Enter manual transactions early — if you add them before the bank import arrives, auto-matching usually spots the pair and offers it in the match banner.
- Check the amount carefully — if amounts differ by even a cent, they can't be matched (this prevents accidental merging of truly different transactions).
- Use transaction rules — consistent payee names help auto-matching work better.
Related articles
Ready to put it into practice?
New customers get a 60-day free trial — assign every dollar a purpose before you spend it.