
apparently every mpesa transaction generates a unique id/code. So all safaricom has to do is add 2 new menus (accept sent amount & reverse) which prompts the recipient of cash to enter the transaction code the sender receives (sender can sms this code to recipient) so as to unlock the cash sent. Meanwhile the cash can be held up in a virtual account (each transaction has a unique code) such that the sender may choose to cancel the transaction if he realises he got the wrong recipient without calling customer care by pressing [reverse] and using the transaction code. Since the transaction only becomes commited when the recipient unlocks the cash with the code sent by sender the amount remains suspended in the virtual account till someone with the [recipient phone no. + code] or [sender phone no. + code] can claim. Problem solved. Feel free to poke holes in my idea. it may not be all that perfect.