There can be multiple reasons as to why a refund fails. In order to get more information on why the refund failed, check the message returned by the gateway for the failed refund:
Go to the customers' dashboard->payments
Click details on the failed refund payment in question
The Authorization response field will contain the error message that was returned by the gateway.
A common but unclear reason is that the payment is older than 60 days (or another limit from the gateway). To get around this, a refund would need to be issued through the gateway itself or against a more recent payment. If refunded in the gateway, you will need to also record the refund in Fusebill as cash, check, or direct deposit. It could also be that the customer has issued a chargeback, or a refund took place outside of Fusebill.
If the payment method is ACH or EFT, Fusebill will not know if the refund request has failed or succeeded. More information on this can e found here Why did my ACH refund fail?