I have the explanation for you. I thought I had shared this information on this forum already. Anyway will give brief representation below
When you do a transaction at a merchant,
a) merchant is basically asking the customer's bank (
Credit card company), can you tell me if you promise to pay the money, and that you are willing to hold responsibility and pay me.
Merchant -> his gateway -> Visa/MC etc -> credit card bank
b ) bank replies yes you can go ahead and give the goods, I will collect money from him later. but be sure you let me know when you have delivered the goods, so that I go ahead and bill them - . But hey, I also cannot keep waiting for you to confirm you handed the goods more than a week, ok
At this point the money from your CC is blocked, but you are not billed. Its blocked to not to allow to misuse it, but it is not billed, because merchant has not confirmed he has supplied the goods
C) merchant either hands over goods or prepares the shipment which may take x days. many merchants only go ahead with the "confirmation" of the sale only when they ship , sometimes it can be 5 minutes, other times it can be days later
So, banks wait x days to see if the merchant sends confirmation of sale , if not then they "drop" the hold & release the funds for usage.
==================================================================
Now many get confused that they see the sale and that they have been "charged". But realistically, you are being charged only if its on your bill or list of unbilled transactions. Yes, check carefully even online, you would probably see transactions page versus separate unbilled and billed pages. If its in unbilled/billed you need to talk in terms of refunds. If not, its simply a hold which gets automatically drop off. Many merchants (Payment Gateways) wont even bother to send cancellation.
=============================================================
Now coming to your case Ashish, was it a transaction failure online or a refund (of goods & services).
If it was an online transaction failure and still you got charged, then there has been some bad programming and stuff which might have resulted in this.
What I am trying to say is the industry itself is supposed to be designed to work to handle these things automatically. But messups do happen.
To put in more simply , initially transaction is in status A, and when merchant confirms it moves to B and gets charged to customer, but if no confirmation happens, i.e. status remains A for x period, the transaction is supposed to drop off.