Bank disputes are a procedural minefield, and the bank knows it.
Federal Regulation E covers electronic-funds-transfer disputes — most debit-card and ACH issues — and it is genuinely strong. But it gives you only 60 days from the statement date in which you could have first seen the disputed transaction. Miss that window and your rights collapse from "the bank must investigate and provisionally credit you" to "the bank can do whatever it wants." The way the bank's customer-service department handles a dispute over the phone is often designed not to start the formal Reg E clock at all — they'll log it as an "inquiry," not a "dispute," and the deadlines that should be running do not run.
The dispute itself, done right, requires a written submission identifying each disputed transaction by date, amount, and merchant, with the reason it's wrong. The bank then has 10 business days to investigate (extendable to 45 if they provisionally credit you). Provisional credit is supposed to be automatic for ATM and POS errors but in practice you often have to ask for it explicitly and in writing. If the bank denies the dispute, they're required to send you the documentation they relied on — but they often don't, and most consumers don't know to ask. Each of these is a step where the dispute fails quietly because nobody told you about the next move.
A clean DIY bank-fee dispute takes 3–8 hours of focused work over 2–6 weeks, most of it spent reading account statements with a fine-tooth comb, drafting the right kind of letter, sending it to the right address (the dispute address, not the customer service mailing address), and tracking the response. It is not difficult work. It is, like most of consumer-protection law, work that nobody teaches you to do.