Key takeaways
What this article covers, in order:
- How you usually find out
- Why duplicates happen
- Real duplicate or lookalike?
- A step-by-step way to hunt them down
- A worked example: a reconnection block
- Fix carefully
Duplicate transactions usually come from the same handful of causes: a feed that was reconnected and re-sent recent history, a CSV import that overlapped with the feed, or someone entering a payment by hand that the feed then brought in as well. As for how to find duplicate transactions, the quickest way is to reconcile to your bank balance and look at the difference, then check same-date, same-amount pairs. Before you delete anything, make sure it's a true duplicate and not two genuine payments that just look alike.
How you usually find out
Megan runs a florist in Brighton. It's the start of Oct 2026 and she's reconciling the previous month. Her bank statement says £6,182.45 at 30 Sep 2026. Her books say £6,214.75.
Her books are £32.30 higher than the bank. She searches for a £32.30 transaction. There isn't one. That's the first clue that she's not looking for a single line.
Why duplicates happen
| Cause | What it looks like | How common |
|---|---|---|
| Feed reconnected | A block of recent transactions appears twice, all on the same days | The classic one |
| CSV import overlaps the feed | Duplicates clustered around the date you switched methods | Very common when starting out |
| Manual entry plus feed | You recorded a payment by hand, then the bank line arrived too | Common in shared books |
| Two people importing | Bookkeeper and owner both upload the same statement | Happens in teams |
| Pending then posted | A card payment appears once pending, once posted, in tools that show pending items | Less common |
The pattern matters. One stray duplicate suggests a manual entry. Thirty duplicates in one week suggests a reconnection or an overlapping import.
Real duplicate or lookalike?
This is the bit to slow down on. Plenty of transactions look like duplicates and aren't.
- Two coffees at the same café on the same day. Both real, if two of you went.
- Two £9.99 subscriptions. Maybe one is for a second user.
- The same customer paying the same amount twice. They might owe you for two invoices of the same value.
- A payment and its refund. Same amount, opposite direction. Not a duplicate, a pair that cancels out.
- Daily fees. Some accounts charge identical small amounts on consecutive days.
A true duplicate has the same date, the same amount, the same direction and the same description, and it appears only once on your actual bank statement. That last check is the one that settles it. Your bank statement (the PDF, or online banking) is the source of truth.
A step-by-step way to hunt them down
- Reconcile first. Compare your book balance to the bank statement balance at the same date. The difference tells you how much you're hunting for.
- Check the size of the difference. If it matches a single transaction amount, look for that amount twice. If it's large and messy, suspect a block of duplicates from a reconnection or overlap.
- Sort by date, then by amount. Duplicates sit next to each other.
- Check the switch-over dates. When did you start the feed? When did you last import a CSV? When was the feed reconnected? Look at a week either side of each.
- Check against the statement. For each suspect pair, confirm the bank shows it once.
- Fix the extra copy, then reconcile again and check the difference is now zero.
A worked example: a reconnection block
Megan's feed dropped partway through Sep 2026 and she reconnected it on 22 Sep 2026. When it came back, it re-sent everything from 18 to 20 Sep 2026, even though those lines had already arrived the first time.
Here's what came in twice:
| Date | Description | Amount |
|---|---|---|
| 18 Sep 2026 | FLORA WHOLESALE | −£495.00 |
| 19 Sep 2026 | CARD SALES SETTLEMENT | +£612.30 |
| 20 Sep 2026 | VAN HIRE BRIGHTON | −£85.00 |
The net effect of those three extra lines is −£495.00 + £612.30 − £85.00 = +£32.30. That's exactly the gap.
This is why a small difference can be misleading. Three duplicates worth £1,192.30 between them were hiding behind a £32.30 difference, because the money in and the money out largely cancelled each other. If she'd only searched for one £32.30 line, she'd never have found them.
There's a lookalike in the same week, too. On 21 Sep 2026 a genuine card settlement of +£85.00 came in, the day after the −£85.00 van hire. Same number, opposite direction, both real, and both on the bank statement once. She leaves those alone.
After removing the three second copies, her books show £6,214.75 − £32.30 = £6,182.45. That matches the bank.
The lesson: when duplicates come in a block, find the switch-over date and fix the whole block, then re-check.
Fix carefully
A few things to watch when you remove a duplicate:
- Keep the one that's matched to something. If one copy is linked to a supplier bill or customer invoice, keep that one and remove the unlinked copy.
- Check reconciled periods. If either copy sits in a period that's already reconciled and locked, don't change it casually. Reopen the period properly, fix it, and reconcile again.
- Tell whoever else uses the books. If your bookkeeper entered it by hand and the feed brought it in, agree who does what from now on.
How to stop them happening again
- Pick one route per account. Either the feed or CSV import for a given period, never both.
- Write down the cut-over date when you switch from CSV to feed, and only import CSV up to the day before.
- Don't hand-enter bank payments on an account that has a live feed. Let the feed bring them in and match them.
- Check the week either side of a reconnection. It takes two minutes.
- Reconcile monthly. It's the only check that catches a duplicate you didn't see.
How HelloBooks helps
In HelloBooks you connect your bank through Open Banking (most UK banks and cards) or import a CSV statement, and transactions land in a review list before they're confirmed. That's a natural point to catch an obvious double.
At month end, the reconcile screen lines your bank statement up against your ledger, with an AI match suggestion on each line showing a confidence score and why it picked that match. A duplicate has nothing on the statement to match, so it's left among the exceptions you work through. If something was matched wrongly, you can unmatch it in one click. Once the period is reconciled and signed off, it can be locked, and any reopening is logged. See more on our bank reconciliation software page, or compare plans on UK pricing.
FAQs
Why does my bank feed show the same transaction twice?
Most often the feed was reconnected and re-sent recent history, or a CSV import overlapped the feed's dates. Occasionally a hand-entered payment and the feed line both exist.
How can I tell a duplicate from two real payments?
Check your bank statement. If the bank shows the transaction once, the second copy in your books is a duplicate. If it shows twice, both are real.
Should I delete the duplicate or the original?
Keep whichever copy is linked to an invoice, bill or reconciliation, and remove the other. If neither is linked, it doesn't matter which.
Can duplicates affect my profit?
Yes. A duplicate expense understates profit; a duplicate sale overstates it. Both make your bank balance in the books wrong too.
How do I avoid duplicates when switching from CSV to a bank feed?
Pick a cut-over date. Import CSV statements up to the day before, then let the feed handle everything from that date on.
Duplicates are annoying but rarely mysterious, and once you know the four usual causes you'll find most of them in minutes.
Start free, no card needed. Try HelloBooks Free