How do I troubleshoot Instant Payment Notification (IPN)?
If you’re having an issue with your Instant Payment Notification (IPN), try one of the following:
Why does the IPN response include blank values?
If an IPN response includes blank values, make sure that all parameters have correct values in your implementation. Not all variables for each transaction will be returned in every instance. Making sure that parameters have correct values will help in avoiding null value responses.
For a complete listing of all valid variables supported visit IPN and PDT variables.
Why is my IPN not working or in a retrying state?
Possible causes of the 404 error or IPN failure are:
- Your PayPal button code refers to an IPN URL that doesn't exist.
- You made a mistake typing in the IPN URL.
- Your htaccess is blocking direct access to the IPN URL. If htaccess does any redirecting (for example, from "domain.com" to "www.domain.com") and you use domain.com as your IPN domain, the redirection will cause all post data to be dropped. Your code then returns the 404 error, and we place the IPN response into a retrying state. Eventually, access is disabled because the IPN listener response failed.
Why didn't I receive any IPN responses for a specific timeframe?
PayPal processes IPN messages immediately, causes for not receiving IPN responses can include:
- IPN isn't synchronized with actions on your website.
- Internet connectivity isn't always 100 percent reliable.
- IPN messages can be lost or delayed.
The IPN service automatically resends messages until the listener acknowledges them. The service resends messages for up to four days. Because IPN isn't a real-time service, your checkout flow shouldn't wait for the IPN message to complete. If the checkout flow depends on receiving an IPN message, system load or other reasons can delay processing. Configure your checkout flow to handle a possible delay.
Why am I not receiving IPN notifications?
Review the IPN History for your account. Under History, click IPN History. This will give you the status of each IPN message PayPal generated. Messages must be marked as "Sent for PayPal" to mark them as having been delivered. Your listener must respond to every IPN message it gets, whether you act on it or not:
- If your IPN listener doesn't respond, PayPal assumes the IPN was never received and re-sends it. PayPal IPN will continue to re-send the message periodically until your listener responds, although the interval between retries increases with each attempt. An IPN will be re-sent for up to four days.
- If the IPNs are marked as ‘Sent’, this means PayPal delivered them to your IPN handler (the URL of which will be available too) and got an HTTP 200 OK response from your IPN handler.
- If PayPal doesn't receive an HTTP 200 response, for whatever reason (SSL handshake validation, network timeout, script error 500, server error 503, and so on), then PayPal will retry delivery of the IPN message up to an additional 15 times.
My IPN issue has been resolved, or I disabled IPN. Why am I still getting IPN warning emails?
A third-party shopping cart can include an IPN within its own API call to PayPal. The use of IPNs within an API call can override the settings of a PayPal account settings, including existing IPN configurations within that account.
If your PayPal account's IPN settings are disabled and you're getting IPN Failure notifications, it's likely because the shopping cart's API call included an IPN. To do further troubleshooting, debug the shopping cart's API variables and variable values, or contact your shopping cart's technical support staff.
Visit IPN troubleshooting tips documentation for further resources.
See also: