Payments Not Marked as Complete

Easy Digital Downloads is designed to automatically mark payments as Completeonce a purchase has been successfully verified through the payment processor.

If your payments are not being automatically marked as Complete, it usually means that one of several common issues is occurring.

In order for a payment to be marked as complete, Easy Digital Downloads has to be able to communicate with the payment processor, such as PayPal, to verify the purchase. If this communication is blocked or tampered with in any way, it can result in the purchases not get marked as complete, which will also result in download links and purchase receipt emails not getting delivered.

There are several common reasons payments remain as "Pending":

  • PayPal's Instant Payment Notifications (IPN) system is not enabled or configured properly in your PayPal account
  • You have a plugin installed that is blocking the IPN requests
  • Your website cannot make remote requests through cURL
  • You have rules in your .htaccess file that are blocking the IPN requests
  • Your site has too aggressive caching that results in improper update queries
  • You need HTTPS (SSL) if you are using PayPal

If you are using 2Checkout, please see our setup guide for configuring the  2Checkout INS.

Configuring the PayPal IPN

Configuring your PayPal IPN is simple. First, log into your PayPal account and go to  Profile → My Selling Tools → Instant Payment Notifications.

After you click Update you'll be presented with a page of information and a link to Choose IPN Settings.

You need to enable IPN messages and then set the Notification URL to:  http://yoursite.com/?edd-listener=IPN

Note: please replace "yoursite.com" with the appropriate name of your website.

If you are using PayPal Standard to accept payments on your website, you have configured the PayPal IPN above, and payments still aren't being marked as complete, go to  Downloads > Settings > Payment Gateways and check the box for "Disable PayPal IPN Verification".

If neither of these solutions work, then you will need to check and confirm that your PayPal account has a verified email address. If the address in your PayPal account is not verified, payments will not automatically be marked as complete.

CloudFlare

CloudFlare is a popular service that helps improve the performance and security of your website. Occasionally it can cause conflicts with the purchase verification process.

If you are experience problems with your payments not being marked as complete and you use CloudFlare on your website, try disabling CloudFlare temporarily to see if payments are properly marked as complete when it is disabled.

You may need to exclude your checkout page from Cloudflare's caching. Here is one of their help articles to get you started with that: 
https://support.cloudflare.com/hc/en-us/articles/200172316-How-do-I-exclude-a-specific-URL-from-CloudFlare-s-caching-

Remote requests fail: cURL Disabled

If your web host has  cURL and / or other remote communication extensions disabled, it can cause trouble with Easy Digital Download's ability to communicate with PayPal.

You can confirm whether this is the potential cause by going to Downloads > System Info and looking for this section:

WP Remote Post: wp_remote_post() works

If it says that wp_remote_post() does  not work, please contact your web host and ask them to enable cURL.

You can further confirm whether this is the problem by going to Downloads > Reports > Logs > Payment Errors and looking to see if there are any error messages recorded that look like this:

{"errors":{"http_failure":["There are no HTTP transports available which can complete the requested request."]},"error_data":[]}

That error means your site cannot communicate with PayPal, so payments cannot be verified.

Conflicting Plugins

If the PayPal IPN is fully functional, to the best of your knowledge, and the problem still persists, it is very likely that you have another plugin, such as  Bad Behavior, installed that is blocking the PayPal IPN. These kind of anti-spam plugins typically block the PayPal communication. If you do have one of these plugins installed, try deactivating it, do a test purchase, and then see if your payment is marked as complete.

Plugins that have been known to cause issues:

  • All-In-One Security
  • Bad Behavior
  • Complete Cache
  • iThemes Security
  • Wordfence Security
  • W3 Total Cache
  • WP Super Cache
  • WP-SpamShield

If you have one of these plugins activated, try deactivating it and then performing a test purchase. If payments are marked as complete once the plugin is deactivated, you will know what the cause is.

Just because you have one of these plugins installed does not, however, mean that you are guaranteed to experience problems. All of these plugins can be configured successfully to work just fine along side Easy Digital Downloads. Usually the problem is a result of one or two particular configuration options within the plugin.

Server Blocking

Occasionally a server setting can block the IPN response.  Here are some known issues,

Strato

Strato is a German host and has a guestbook security setting that interferes with PayPal. Here's how to turn that setting off:

  1. Log in Strato Customer Service. 
  2. Choose hosting package change.
  3. Select the Settings item. 
  4. Select Point Server Side Security.
  5. Disable the item 'filter for guestbook spam'.

Cross Domain HTTP Requests

If you have a plugin that forces HTTP traffic to HTTPS and the IPN request comes in on HTTP it'll be rejected, since those are technically different domains. If you're finding your IPN requests being rejected, make sure you're running the same protocol on all requests.