Zuora allows you to issue and track refunds on payments. Similar to external payments, users can enter external refunds to track refunds that have been performed outside of Zuora Payments (for example, by issuing a check). In addition, you can make electronic refunds using our supported payment gateways, which will automatically refund money to the customer.
A referenced refund is linked to the original payment. Regardless of using Zuora UI or API, the referenced refund can only be processed by using the following payment method and gateway:
- Original payment method, with which the payment was processed
- Original payment gateway, through which the payment was processed
If the original payment gateway is deactivated, the reference refund cannot be processed successfully and an error will return.
If you plan to change your current payment gateway to a new one, consider using one of the following options for refunding the existing payments to avoid transaction errors:
- Keep the current payment gateway active and continue using it to process referenced refunds for the existing payments.
- With the new payment gateway, create non-referenced refunds for the payments processed through the current payment gateway.
If the account and payment method data at the gateway side have been migrated to your new merchant account for the new gateway, the refund will fail on the current gateway even though the current gateway is still active. In this case, you must use the option 2.
Non-referenced refunds, also known as Credit Balance Refunds, are not directly associated with a specific payment. Non-referenced refunds do not have to be issued to the original payment method or through a specific payment gateway. You can create this type of refund through the Zuora UI or API ( SOAP API WSDL must be 31 or higher).
A non-referenced refund is a refund transaction that does not use the credit card information from an existing payment transaction. If you cannot obtain the customer's credit card information for a non-referenced refund, another option is to issue a manual check using your Accounts Payable process. When performing a refund outside of Zuora (such as creating a refund directly in the gateway's virtual terminal), remember to reflect that refund within Zuora as an external refund.
Non-referenced refunds are available only if you have enabled the Credit Balance feature. You must create a credit balance before you can create this type of refund.
If you have the Invoice Settlement feature enabled, credit balance is no longer supported. So the non-referenced refunds are refunds on credit memos. See Refund Credit Memos for more information on how to refund credit memos.
For more information about non-referenced refunds, see Refund a Credit Balance.
How Long Do I Have to Refund a Payment?
Zuora allows you to refund payments through the Zuora UI or the API operations. There is sometimes a need to refund a customer long after a payment has been processed. For example, if a customer with an annual subscription has paid through the end of this year, but wants to cancel after only ten months of service. A merchant might decide to issue this customer a refund for the remaining two months of service.
In Zuora, a payment can be refunded at any time and there is no limitation. However, for electronic payments, the timeframe to refund a payment is primarily controlled by the payment gateway ("gateway"). Typically, a payment can be refunded for up to 90 days, but every gateway is different and some gateways do not allow refunds after 30 days. Some payment gateways can also have a longer time limit, depending on how the refund is performed. For example, a refund through the API can have a shorter time limit than a refund through the virtual terminal.
When processing a refund for electronic payments, Zuora will attempt the refund at the gateway. If the refund is allowed by the gateway, the refund will be processed. However, if the time period in which a refund can be performed has passed, then the gateway might return an error. For example, PayPal might return the following error if a refund is attempted more than 60 days after the payment transaction was processed:
10009-You are over the time limit to perform a refund on this transaction.
Refund Operations through Zuora UI or API
Refunds in processing status after a trial balance run
After running a trial balance for an accounting period, a list of refunds is shown as processing on the Action Needed tab but they are in fact processed. This is because if multiple refunds are created at the same time for the same account, they are in processing status even if the gateway sends back an approved response.
To avoid this problem, update the integration to ensure that multiple refunds do not get created at the same time for the same account. When it does happen, open the record in the UI and the status will be updated from "processing" to "processed".