Troubleshooting Payment Issues

Should you have received a payment but do not see it recorded in WHMCS, check the following points.

Check the Callback Settings

The first thing to check are the callback settings on your payment gateway's website to ensure it is configured to communicate with your WHMCS installation.

As a general rule, callback commands should be sent to the appropriate file in the /modules/gateways/callback directory but specific instructions for individual gateways can be found at Payment Gateways.

Automation Tasks Incomplete

The Daily Automation Tasks are responsible for capturing payments from credit cards and remote tokens. A problem with their operation can prevent payment captures from occurring.

The Automation Status icon in the top-right corner of the admin area will indicate a problem via a Red cross:

Automation Status Warning Badge

Click the icon to access diagnostic information and help resources on troubleshooting issues with the Automation Tasks.

Refer to Verify That Your System Cron is Being Invoked for more information.

Check the Gateway Log

Navigate to Billing > Gateway Log

Billing > Gateway Log

Look at the Result and Debug Data columns.

At the time of the payment attempt this should display an error message or code which your payment gateway's documentation or support team will be able to explain.

We have also collected some of the most most common errors and their causes, refer to the appropriate page in the Payment Gateways section.

No Log Entries

If there is no log entry at-all and you are using a merchant gateway (such as Authorize.net or PayPal Website Payment Pro) this suggests that the client has no card details on file. To confirm this:

1. Navigate to the client's Summary tab

2. Observe the Pay Methods section:

No Pay Methods

3. In the example we can see there are no card details which we could charge.

4. If a Pay Method is present, assert that the Token ID is valid and corresponds with a token held by your payment gateway.

Or in the case of a locally stored credit card, enter the Encryption Hash value from the configuration.php file and assert that the complete credit card number is displayed.

If missing, ask the client to re-enter their credit card details via the Pay Methods page within the client area.

And finally...

If all the configuration is good, it indicates your gateway is unable to communicate with the callback file on your server. A server setting such as the firewall or mod_security could be blocking them. Liaise with your payment gateway and server administrator to resolve such matters.