There's no way to revoke a transaction but you could implement a hold so ETH could only be withdrawn from the contract x days after the charge is incurred, within such time the owner could cancel the withdrawal.
As far as notifications are concerned, there are events in Ethereum that you can subscribe to. So for example you could subscribe to a charge event, and go in and dispute it.