Stripe - Setup Documentation

This page describes how to setup the Stripe.com add-on payment gateway, available here.

Connecting your Stripe account

In order to use the Stripe payment gateway extension, you must first have a Stripe.com account. It's free to create a Stripe account, and testing it is also free. Once you have purchased the Stripe Payment Gateway, install it just like any other WordPress plugin. After it is installed and activated, go to Downloads → Settings → Payment Gateways, and enable the gateway:

Next, scroll down to where it says "Stripe Settings". Connect your account using the Connect with Stripe button.

This will take you to the Stripe website where you can log into your existing account if you have one, or create a new account if you do not.

Have questions about connecting with Stripe? See the documentation.

Webhook configuration

The Stripe payment gateway can automatically detect refunded purchases in your Stripe account. When a refund is detected, the corresponding purchase in EDD is also marked as refunded.

EDD creates a webhook for you, and you simply need to tell Stripe where it is. If webhooks are not configured properly or are blocked by a plugin or configuration of your site, this automatic refund detection will not function.

To add the appropriate webhook endpoints, in your Stripe dashboard go to  Developer → Webhooks (direct link). We recommend creating two webhook endpoints: one for test mode and one for live mode. If you create both, you'll need to repeat the below process after toggling modes.

Click Add Endpoint, then add the following URL:

https://example.com/?edd-listener=stripe

Note: Replace "example.com" with your actual site URL. The exact URL you need to enter can be found in your WP admin under Downloads → Settings → Payment Gateways → Stripe.

We recommend selecting  "receive all events" as Easy Digital Downloads will probably need to use the same webhook endpoint to communicate with your site using features not yet released.

After you add the endpoint you should see the new URL listed in the webhooks settings.

Note: Your webhooks won't work out of the box in a local development environment like Vagrant, WAMP, MAMP, Desktop Server, or Local by Flywheel. These are typically non-publicly accessible IP addresses and Stripe can't reach them.

Recurring Payments Integration

This payment gateway has complete support for the Recurring Payments extension. See the Recurring Payments Stripe set up documentation for configuration instructions.

Additional Settings

There are additional settings to configure below.

Billing Address Display

This drop down field will allow you to select which billing details are collected. There are three options:

  • Full address - This will result in a complete address form with street, city, country, state / province, and zip / postal code being displayed.
  • Zip / Postal Code and Country only - This will result in a simplified address form being displayed that asks only for zip / postal code and country.
  • No address fields - This will result in no address fields being displayed.

Taxes note: if you have taxes enabled, only the full address option may be used as those fields are required for accurately calculating taxation amounts.

Fraud note: collecting a full billing address can help reduce fraudulent charges. It is recommended that minimum zip / postal code and country be collected.

Preapprove Only?
Check this if you would like to collect payment information but not collect the payment until a later date. Typically, this option is used for pre-orders. 
To process the payment and provide access to your download(s), click "Process" in the "Status" column when viewing the Payment history list. 
Note that most typical stores will not need this option.

Stripe Checkout modal deprecation:
If you used Stripe prior to version 2.7, you might have noticed Stripe Checkout is no longer available. Stripe has removed the ability to use the Stripe Checkout modal in this version of their API. In the future we are looking into a solution to reintroduce a ‘checkout-like’ feature that will give you the ability to use a modal once again. See this blog post for more information.

System Requirements

In order for Stripe to work you must have the Multibyte String PHP extension installed on your server.