How to Set Up PayPal IPN
IPN stands for Instant Payment Notification and in short it is needed for Event Espresso to be notified about the transaction in order to complete the registration on the website.
When setting up PayPal to work with Event Espresso you need to change the settings in the Plugin and in your PayPal account.
If your IPN is set up and you require some troubleshooting tips, please click here.
There are two types of settings, testing (also known as Sandbox or Debugging) and live.
With the testing settings you will first need to have a PayPal Sandbox account and enter your merchant email address in the PayPal ID option and make sure that the Use the Debugging Feature and the PayPal Sandbox option is ticked.
Any registrations taking place will now head to the Sandbox where no actual money changes hands. You will need to use a Sandbox buyer account details to make a purchase.
For live settings, add your own PayPal email address to the PayPal ID option and make sure that the Debugging Feature and the PayPal Sandbox option is turned off.
Please only enable the “Force HTTPS on Return URL” feature if you have an SSL certificate installed for your domain. In most cases, you can order an SSL certificate from your hosting provider.
1) Login to your account on PayPal.com
2) Look for the person icon in the top right corner and click on it
3) Then click on Profile and Settings
4) On the next page, look for the My Selling Tools in the left menu and click on it
5) Then click the Update link for Instant Payment Notifications
6) On the next page add the URL for your Event Espresso transactions page. Here is an example:
7) Make sure Receive IPN messages (Enabled) is enabled and click Save.
8) Set the PayPal button language encoding, see the next section.
Do the steps above look unfamiliar? Your PayPal account may still be using the old layout. Here is an alternative setup guide for the PayPal IPN.
PayPal button language encoding
1) Look for the person icon in the top right corner and click on it
2) Then click on Profile and Settings
3) On the next page, look for the My Selling Tools in the left menu and click on it
4) Scroll to the end of the page and look for the More Selling Tools section. Then click on PayPal button language encoding
5) Click More Options
6) Set the language encoding that matches your website’s database encoding. Many WordPress databases are UTF-8, but you can verify the encoding if you’re not sure by checking with your web host.
Server Firewall Settings
If necessary, add PayPal’s IP addresses to any list of trusted IP addresses needed by your firewall or other network devices. Here is the current list of PayPal IP addresses.
Troubleshooting PayPal IPN
- Make sure your PayPal account is verified. If you have a PayPal Premier or Business account, then this process has already been completed.
- Make sure that the 4 required pages in WordPress admin –> Event Espresso –> General Settings are correct and have the correct short codes in them.
- Make sure that the 4 required pages in the WordPress admin –> Event Espresso –> General Settings are publicly viewable and not set to private, draft, or password protected.
- Make sure there are no maintenance mode type plugins active.
- EE3 only: Please only enable the “Force HTTPS on Return URL” feature if you have an SSL certificate installed for your domain. In most cases, you can order an SSL certificate from your hosting provider for a fee.
- Deactivate the WP Spam Shield plugin. There are a number of alternatives that do not block PayPal.
- If you are running the Bad Behavior plugin, you will need to whitelist the IP addresses of PayPal servers, and keep an eye on the Bad Behavior logs to stay up to date in case PayPal gateway adds or changes the IP addresses they use to notify your site.
- EE3 only: If you are experiencing problems with incomplete payments, try the Simplified Transaction template. This can be added to your theme and activated on the Transactions page via the Page Attributes option. There is more information and a download link under “Incomplete Payment Issues”.
- EE3 only:Check to see if you have outdated or incorrectly modified gateway files in wp-content/uploads/espresso/gateways directory. If so, temporarily rename that directory to force Event Espresso to use the default gateway files.
- EE3 only: You can check the IPN log file for errors. The IPN log file is located on your server in the /wp-content/uploads/espresso/logs directory. You can FTP in or view the file using your host’s c-panel file manager.
- You contact your host and ask them to verify that your server meets PayPal’s new security requirements. Give it Some Time
It sometimes takes a bit of time, sometimes several hours for PayPal to post a response to the server. Another possibility is that PayPal sent a response back to your server, but the response bounced or the server was unresponsive for a short period of time, therefore not capturing the data from PayPal.
IPN History / Resend IPN
You can also view your PayPal Instant Payment Notification history and/or try resending the IPN notifications by logging into your PayPal account, then visit this URL: https://www.paypal.com/us/cgi-bin/webscr?cmd=_display-ipns-history
You should see something like this:
Incomplete Payment Issues
If you are experiencing problems with incomplete payments, most often it has to do with problems reaching your Transactions page ([ESPRESSO_TXN_PAGE]) from the payment gateway.
You can download our special stripped down Transactions page template in the link below. Included in the zip file is a quick readme with installation instructions.
It is recommended that you try this template after verifying that IPN is turned on, your account is verified, you have a standard or business account (if using PayPal) and — most importantly — that your Transactions page is visible to the internet.
If you have confirmed these four things and you are still having issues with incomplete payments, you can try the download below.
When using caching plugins (or server caching) you will need exclude all Event Espresso critical pages from caching. If your transactions page is set to cache the PayPal IPN’s will load a cached version of this page and no updates will be made to the transaction.
Click here to setup nocache exclusion rules for Event Espresso
Internal Server Error
If you see Internal Server Error message like this one after hitting the PayPal button on the Event Espresso Payment page, it’s likely because the email address entered in PayPal settings does not match the PayPal ID for your PayPal account. You can verify the email address that’s entered in Event Espresso > Payment settings is the same email address that was used to sign up for the PayPal account.