Governments should regulate the complexity and the myriad fees banks impose.
To begin with, there should be no minimum balance required, and no fees allowed for not maintaining one.
Your balance should never become negative due to fees. No matter what type of fee. It should stop at zero. Which means that you shouldn’t have to suffer the bureaucracy of closing accounts. Just empty it out and forget about it. Banks should be required to keep the account open for a long time, maybe 5 years, before closing it.
There should be no account opening fee, closing fee, annual fee, or debit card fee. People should be entitled to a free debit card for each account holder. This debit card should have no limits on the number of point-of-sale transactions, or the amount. Likewise for real-time transfers (IMPS and RTGS), both in and out. And ECS , to let billers deduct money from your account, or parties like mutual funds deposit money in your account. All these should be free, and have no limit on either the number or amount of transactions. And no surcharges, like at petrol bunks or rail ticket booking.
Slower forms of transfers, like NEFT (which isn’t realtime), cheques, drafts and ATM withdrawals can all be charged, to discourage them in favour of realtime electronic transactions.
In fact, banks should be allowed to charge for cheques, drafts and NEFT, both on the sending side and the deposting side, to encourage the move to real-time electronic transfers rather than paper-based. If a bank wants to charge for cheques, it should be allowed to charge either to issue a chequebook, or when the cheque is deposited, not both. The idea is to prevent banks from charging twice for the same thing. And, bounced cheques shouldn’t incur a fee if a fee was already charged, such as to issue the chequebook in the first place.
ATM withdrawals needn’t be free, not even one per month. Because these encourage cash-based transactions.
If a bank wants to charge for ATM withdrawals, the fee shouldn’t increase with the number of withdrawals one can make. Because that encourages people to make fewer withdrawals of more money, which in turn encourages cash transactions rather than electronic ones. The fee should either be a flat fee (like ₹100 per month for unlimited withdrawals) or a percentage of the amount withdrawn.
ATM deposits should be free and unlimited, even at third-party ATMs, to encourage people to move away from cash.
Banks should be allowed not to pay interest to people whose balance is below a limit. Instead of charging them a fee for not maintaining a minimum balance, it’s more customer-friendly to not pay interest. At least your principal won’t be eaten up by the bank, leaving you high and dry when you need the money.
Neither should there be a maximum balance, because that’s just a tactic to force customers onto a costlier account.
On that note, there should be only one type of account each bank can offer, as opposed to Basic, Normal, Premium or Elite, with a dizzying variety of fees and minimum and maximum limits to make your head spin. That’s just unnecessary complexity for the customer, designed to rip them off, not a benefit. Get rid of all that junk by permitting only one account type per bank. Nothing prevents the bank from offering you a higher interest rate or extra benefits if your average relationship value is high, or based on whatever other criteria. Only extra benefits (if the bank wants to offer them), not extra costs.
Checking your balance, generating a duplicate statement electronically, and receiving notifications via email and SMS should all be free and unlimited.
If you want an international debit card, the bank should be allowed to charge you for it. In which case there should be no foreign currency surcharge. Have only one fee, not two. And banks shouldn’t be allowed to play unethical games like quoting a 4% fee, but giving you a poor exchange rate, which amounts to a hidden 3% fee, for a total fee of 7%. They should be forced to give you the market exchange rate — what they pay themselves. Let any fee be quoted rather than hidden. And even that should be allowed only if the international debit card was free to begin with.
In additional to debit card transactions abroad, banks should also be allowed to charge you a fee to send money abroad, say to a friend.
Receiving money should be free, because it stimulates the Indian economy.
All charges must either be fixed, or a percentage. Multi-part pricing formulas must be banned, like “₹300 rupees or 3%, which ever is higher” or “₹300 + 3%” or “₹300 for amounts below ₹1 lac, and ₹1000 for amounts above”. None of these complex formulas will be allowed. Banks can have a flat fee like ₹300. Or they can choose a percentage, like 3%, period. That’s more than enough flexibility for them, while keeping the fee understandable.
I suspect that banks make the fees complex so that customers don’t really understand how much they are paying. This is anticompetitive and unethical. Charge however much you want; just be transparent about it.
Banks are experts at coming up with ways to rip customers off. Strong, simple regulation is the only way to put these assholes back under control, guaranteeing a basic set of free, unlimited services no matter which bank you choose. Fees will be charged only on other services, that too in simple, transparent ways, and only once. Let banks compete on service, interest rate, and benefits, rather than in coming up with creative ways to cheat their customers.
 Which should give customers two weeks’ notice before a debit is made, during which time they can block the debit, like direct debit in the UK.