It is always frustrating for merchants when transaction dishonour. When a transaction is dishonoured it is important to understand that this response comes directly from a customers bank when we request them to make a decision to honour a charge attempt. Their decision to reject or dishonour a charge attempt is 100% their responsibility and we have no additional information as to their decision.
We commonly get asked to investigate claims by customers that they had funds in their account when we have shown a charge attempt as not sufficient funds. Often what can happen is at the time we attempted the charge the customer may have had insufficient funds and then later in the day a credit to their account may have occurred. Alternatively they may have had funds and another transaction put them into debit before we had a chance to attempt the charge on their account. Many internet banking platforms also confuse the situation by not accurately displaying a customers balance at a point in time and simply sorting transactions for a day by its type (debit or credit) or by the transaction description. Rarely to banks actually sort transaction by the time they occurred. This can lead to customers thinking that deposits they made hit their account before a debit attempt took place.
In some instances some bank may also choose to show a charge attempt as a credit and then a subsequent debit on an account. This does not mean that they approved the transaction. It simple means that the specific institution has chosen to show the charge attempt and the subsequent dishonour.
Ultimately if a bank returned a decision not to honour a charge attempt due to not sufficient funds it always means the customer did not have funds in their account at the time we attempted a transaction. If they strongly believe this not to be the case the only party that can resolve this is their bank as they ultimately made the decision to dishonour a transaction.