Missing PayPal Payments
Problem
A client pays an invoice and a completed payment deposits into your PayPal account, but the payment does not appear in WHMCS.
Cause
This issue can occur due to several different problems.
Troubleshooting
To troubleshoot this issue, review the related log entries at Billing > Gateway Log.
Signature Verification Failed
Signature Verification Failed indicates a problem in the payment notification anti-spoof verification. When a payment notification is received from PayPal, WHMCS makes an API request to PayPal confirming that the notification originated from PayPal.
Seeing this typically indicates that a subscription renewal payment processed through a different integration app from the one that you have currently linked to your WHMCS installation.
This situation can arise if you clicked Unlink PayPal Account in the module configuration after the creation of the PayPal subscription. When you click Unlink PayPal Account, WHMCS cannot record payments for the existing subscriptions.
Solution
Cancel these subscriptions via the PayPal website. Clients can then create a new subscription under the current integration app on your WHMCS installation when their next invoice is due.
An unknown error occurred. Please try again
An unknown error occurred displays when the system attempts to save invalid data for a PayPal payment (for example, the amoount, client’s name, email address, postcode, or country code).
To capture more details, use the Module Debug Log to examine the logged request and response data and find the missing or invalid values. For example:
Request
{"intent":"CAPTURE","purchase_units":[{"description":"Bronze Hosting -
Invoice #123",
"amount":{"currency_code":"USD","value":"25.00"},"invoice_id":123}],"payer":{"name":
{"given_name":"WHMCS","surname":"Support"},"email_address":"[email protected]",
"address":{"address_line_1":"123 Test Street","postal_code":"ABC
123","country_code":""}}}
Response
{"name":"INVALID_REQUEST","message":"Request is not well-formed,
syntactically incorrect,
or violates
schema.","debug_id":"abc123","details":[{"field":"/payer/address/country_code",
"value":"","location":"body","issue":"INVALID_STRING_LENGTH","description":"
The value of a field is either too short or too long."},
In this example, the country code at the end of the request is empty. To correct this, go to the client’s profile, select a country, anc click Save Changes. If the billing contact was invalid, you would make the change in the Contacts tab.
If the currency_code
value is not in the PayPal API’s supported currency list, use the PayPal Basic module with the Convert to For Processing setting to transparently convert the payment amounts into a PayPal-supported currency.
Last modified: January 30, 2025