Setting Refund Operations in Billing Systems


If you are using a gateway in WHMCS that has automated refunds implemented (which includes PayPal,, Quantum Gateway, 2Checkout etc…), then WHMCS allows you to issue a refund without ever logging into your gateway. A real time saver!

Even if the refund can’t be automated, you can still use this process to enter the refund billing entry into WHMCS which will update the income totals and reflect the refund on the invoice. Then you would go to your gateway and actually send the refund from there.

And as a final alternative you can issue a refund to the clients credit balance with you which instead of losing the money entirely allows you to just give the user a credit against future purchases or renewals from you.

So to perform a refund, simply follow these steps below:

  • Locate the invoice you wish to issue a refund for either by searching or from Billing > List Paid Invoices and click the invoice ID to view it
  • Select the Refund tab
  • Choose the transaction you want to refund if more than one has been applied towards the invoice
  • Enter the amount you want to refund if only giving a partial refund or leave blank for full
  • Then select the Refund Type from the options “Refund through Gateway”, “Add to Client’s Credit Balance” or “Record Only”
  • Tick the Send Email checkbox if you wish to send a refund confirmation email to the client, it contains useful information on the refund including the amount and refund type.
  • Click the Refund button to submit


If “Refund through Gateway” is chosen, the results of the refund will then be displayed. If successful the relevant transaction entry will also be added. If it fails, you can check in Transactions > Gateway Log for the detailed response from that gateway as to why.

If refunding a payment that has been added to a clients credit then you must first check that the credit hasn’t been used and manually remove the credit. This is because the system does not known that the amount you refunded was (a) linked to a credit and (b) not yet used as a credit.


The processed orders (i.e., money captured and the subscription is created) can be refunded via the corresponding invoice. To refund the processed order (such orders have the “Complete” status), go to the Commerce Director > Online Payments Documents > Processed Documents list and select an order. As the order details appear, in the General Information part of the form click on the order ID and then click the Payment History tab. The corresponding invoice(s) appear.

Click on the invoice ID and as the invoice details appear, click on the Refund button.

When you refund the completed invoice, you can select an action that will follow the refund. To select an action under the corresponding subscription, account, or credit card used to pay an invoice, set the option button to one of the variants available for each object:

Action to be applied to subscription:

  • Leave unchanged
  • Put on hold
  • Terminate

Action to be applied to account:

  • Leave unchanged
  • Put on hold
  • Delete

Action to be applied to credit card:

  • Leave unchanged
  • Disable credit card


Refunding Payment

Refunding the credit card transaction is very similar to voiding.

To refund a payment:

  1. Open Finance > Documents > Payments. The list of payments available in the system appears on the screen.
  2. Select a payment by clicking on the respective link in the Document # or Document ID column. The payment details appear on the screen.
  3. Click Refund.

Note: even though you click Refund, the system first attempts to void the payment. The reason is that voiding is usually free of charge, but refund is always charged by processing centers.

When the processing center confirms the refund, the payment is automatically unapplied from its invoice, a refund document is created and applied to the payment. Both the payment and refund document will have status Refunded.

Managing Refunds

PBA supports two kinds of refunds:

• Refund of specific credit card transaction;

• Independent refund.Refund of credit card transaction is virtually identical to its voiding. Eventually, when you press Refund, the system first attempts to void transaction (to avoid charges by processing center) and only if the void is impossible, proceeds with refund. Such refund cannot be created manually. It is always created when transaction refund request is confirmed by the processing center. It is created as applied to the refunded payment and cannot be unapplied.

Independent refund is money paid back to customer credit card and is not related to earlier credit card transactions. Such refund behaves similarly to invoice or debit memo: it will increase customer balance and should be applied to a payment or to a credit memo. Starting from PBA 4.4.2 an independent refunds with Check/Cash payment method are supported.

A newly added refund always gets the Hold status. Online refunds start being processed right away, and Check/Cash refunds are to be released manually.

Any refund can be deleted only while it is in the Hold status. In this case, if we deal with online refund, the Hold status may also be kept in case transaction has failed. The latter makes difference in online refunds behavior on its deletion attempt. If any actions were performed in connection with online refund processing (for example, a request has been sent to processing center), then such refund is not removed entirely, instead, it gets the Cancelled status, keeps being shown in the Payments list, and is stored in database for reporting purposes. The actions performed over a refund (if any) can be viewed under the E-Transactions tab, within a refund details. In case no actions were performed over a refund, then there is no history to store in database, and refund is deleted entirely