Generally speaking, a cheque deposit is a credit to your account until the fund is cleared. Depending the type of cheque it is, the time for clearance varies from 1 to 30 business days and sometimes even more. For example, a Canadian serial-coded cheque can take as little as 1 day to clear while a foreign cheque can take up to 40 days to clear. It is possible and legal for the bank to "reverse" the deposit if the fund is not cleared for any reason.
Until the fund is cleared, you don't actually own the fund even if it shows in your account balance. Banks are money storages and they can only verify transactions on a best effort basis with millions and millions of transactions occuring per day. Therefore, if your payer requested the bank to stop this paricular payment, then that's what the bank would do.
Now in your case, if you had "cashed" the cheque (meaning you went to the bank and certified the cheque) and the bank still took the money back after 22 days, then you have a winning case against the bank. One thing for sure is that there is no 30 days money back rule if the payer suddenly decides he doesn't want to pay. The only rationale is then he told the bank that this payment was unauthorized by him/her.
So here is my suggestion. Go to the bank and ask to speak with the bank manager. Demand to know why it took the bank 22 days to reverse the fund when it was their own account. If it turns out it was a bank error, then you demand the bank to compensate for your loss and they usually will. If it turns out it was the payer playing tricks on you, then you will have to take him/her to small claim court if he/she doesn't work with you. Hope this helps. Feel free to contact me for more information about bank transaction and I will be happy to provide more insights.
Stanley Su
Mortgage Specialist (房貸經理)
Bank of Montreal
Victoria Main Office
Tel: (250)661-5147
E-mail: stanley.su@bmo.com