The system may have changed. But when I was writing software to process online transactions it took place in 2 stages.
Pre-Auth where the money was reserved in the account. For my use case I knew the final bill so I pre-authed the actual amount.
Then there is the capture stage where the transaction is finalised.
In my case I was billing people online for a service and knew the full amount.
In restaurants, hotels, petrol stations where you want to ensure sufficient funds are available you can preauth a set amount then capture any amount under this.
When you capture/finalise a transaction the balance is returned to your available pool. Please note they do not take the preauth amount out of your account it is simply unavailable to spend on any other transaction for a set period 7-10 days.
The problem comes when a transaction fails in the capture/finalise stage. If there is a fault that causes the transaction to fail. Communication issue, bug in the handling software etc. Then the pre-auth amount becomes detached from the transaction.
The sales system thinks it was rejected/declined and marks it as such so never goes to finalise/complete/capture the transaction and the balance is not returned until it expires.
In normal operation, the balance is released back to your account while you are stood at the terminal with your card still in the machine so you never notice the reduced available balance. You only notice it when it fails.
This system applied to both credit card and debit cards.
I wrote and maintained software for this process from 1999-2009. Since then I have moved to using paypal for all online transactions in my business as it means I can skip the PCI/DSS run around. So if things have changed since 2009 then I may be totally wrong in my above description
Pre-Auth where the money was reserved in the account. For my use case I knew the final bill so I pre-authed the actual amount.
Then there is the capture stage where the transaction is finalised.
In my case I was billing people online for a service and knew the full amount.
In restaurants, hotels, petrol stations where you want to ensure sufficient funds are available you can preauth a set amount then capture any amount under this.
When you capture/finalise a transaction the balance is returned to your available pool. Please note they do not take the preauth amount out of your account it is simply unavailable to spend on any other transaction for a set period 7-10 days.
The problem comes when a transaction fails in the capture/finalise stage. If there is a fault that causes the transaction to fail. Communication issue, bug in the handling software etc. Then the pre-auth amount becomes detached from the transaction.
The sales system thinks it was rejected/declined and marks it as such so never goes to finalise/complete/capture the transaction and the balance is not returned until it expires.
In normal operation, the balance is released back to your account while you are stood at the terminal with your card still in the machine so you never notice the reduced available balance. You only notice it when it fails.
This system applied to both credit card and debit cards.
I wrote and maintained software for this process from 1999-2009. Since then I have moved to using paypal for all online transactions in my business as it means I can skip the PCI/DSS run around. So if things have changed since 2009 then I may be totally wrong in my above description
