The Stripe payment gateway for WooCommerce lets you accept payments directly onsite, and includes the option to accept ApplePay and Bitcoin

Download it now at See Changelog.

Installation ↑ Back to top

  1. Go to Plugins > Add New on your WordPress site.
  2. Enter WooCommerce Stripe in the Search Plugins bar. Author is Automattic/WooCommerce.
  3. Click Install Now and Activate.

To learn more, see Installing and Managing Plugins.

Setup and Configuration ↑ Back to top


  1. Go to: WooCommerce > Settings > Checkout > Stripe.
  2. Tick the Enable Stripe checkbox. Untick to disable.
  3. Enter a Title (required) and Description (optional) seen by the customer during checkout.
  4. Tick the Enable Test Mode checkbox, if you wish to test before going live. Untick to begin accepting payments with Stripe.
  5. Enter your Live Secret Key and Live Publishable Key (obtained from your Stripe account). The Test Secret Key and Test Publishable Key are different and should only be used when Enable Test Mode selected in step 4.
  6. Enter Statement Descriptor, a description that appears on a customer’s credit card statement.
  7. Tick the checkbox to Capture Charge Immediately (Authorize and Capture) or untick to only Authorize. If you untick the box, you need to capture funds manually for each order via the order screen.
  8. Enable Stripe Checkout if you prefer a popup to request details, the ability to accept Bitcoin and using a checkout image. See next section Stripe Checkout to understand how it appears for customers.
  9. Enable Payment Request API (optional) if you wish to give customers the ability to pay via the API (must be supported by their browser). For example, this will prompt Chrome Pay if you’re using Chrome as your browser, or Microsoft Wallet when using Edge as your browser. The customer will need to be using a supported browser as well as having credit cards saved to their account. Since this can overrides the default checkout process, it is disabled by default.
  10. Enable Apple Pay if you wish to give customers with an iOS 10+ device and Safari-based web browser the option to pay using Apple Pay.
    • Select Black or White for Apple Pay Button Style
    • Enter two-digit ISO code for Language. Default is en for English. Other languages, see:
    • Accept the Apple Pay Terms of Service (ToS). This is mandatory or you will receive an error.
  11. Saved Cards, if you want to give Stripe customers the ability to use a card saved on their account for future purchases.
  12. Log Debug Messages, if you wish to save logs that can help you/us troubleshoot your site. Can be disabled and enabled as needed.
  13. Save Changes.
The same single user account credentials cannot be used to make purchases in both Live Mode and Test Mode.

Stripe Checkout ↑ Back to top

If you tick the box for Enable Stripe Checkout, more options will appear:


  • Stripe Checkout locale: English is default. Chinese, Dutch, French, German, Italian, Japanese and Spanish are also offered. Auto-displays user’s preferred language, if available.
  • Enable Bitcoin Currency: Tick the box if you would like to accept Bitcoin via Stripe.
  • Stripe Checkout Image: Enter the URL of a 128×128 px image/logo to be displayed in checkout. Use an image already uploaded to your site or upload one now at Media > Add New.

Enable Stripe Checkout refers to this service: Instead of an inline payment form, which is the default setting, a pop-up is used to collect credit card details from the user.

Stripe Checkout Modal Window

Apple Pay ↑ Back to top

Before you start using Apple Pay, you must accept the Terms of Service in your Stripe dashboard seen here:

Customer Usage ↑ Back to top

Customers pay on the checkout page. Using a new card, they see the following:

Stripe Card Fields

When ApplePay is enabled, customers see a Buy with ApplePay button:


On the ‘My Account’ page, customers can add, view, and remove cards from their account:

Payment methods

FAQ ↑ Back to top

The method is not showing. ↑ Back to top

In live mode, an SSL certificate must be installed on your site to use Stripe. In addition to SSL encryption, Stripe provides an extra JavaScript method to secure card data.

Apple Pay is not showing. ↑ Back to top

The customer must have a device with iOS 10+ and be using a Safari-based web browser. Otherwise the option is unavailable.

Apple Pay – I am getting this error “Error: Unable to copy domain association file to domain root” ↑ Back to top

That could mean your server configuration is not allowing files/paths to be written in that location. You would have to manually do this by following the step outlined here

Apple Pay – I am getting this error “Error: Unable to verify domain – Bad Request” ↑ Back to top

Try manually doing this by following the step outlined here

Can I test Apple Pay? ↑ Back to top

Yes, please follow the link here for instructions Apple Pay Testing

Can I hide the Apple Pay button on the single product / cart / checkout pages? ↑ Back to top

Yes you can! As we do not recommend using CSS to do so, we encourage you to follow this tutorial.

When switching from the paid Stripe gateway to the free version, will my settings be saved? ↑ Back to top

Yes, after installing the free Stripe 3.X version, your settings from the paid Stripe 2.612 version will carry over.

Can I use Apple Pay for recurring/subscription-based payments? ↑ Back to top

Not at this time. This feature is currently unsupported. The Apple Pay button stays hidden for recurring payments associated with a subscription.

Can a single customer have multiple subscriptions? ↑ Back to top

Using the WooCommerce Stripe extension and WooCommerce Subscriptions, you can have multiple subscriptions in your WooCommerce store. It should be noted that WC Subscriptions and the WC Stripe extension don’t use Stripe’s Recurring Plan feature, but instead manage subscriptions in WooCommerce and use token billing for each recurring payment.

Is it possible to override templates on the checkout page? ↑ Back to top

Yes. This extension only has one template, which is: saved-cards.php. To override it, copy the original template from wp-content/plugins/woocommerce-gateway-stripe/templates/ and place it in the wp-content/themes/your-theme-name/woocommerce-gateway-stripe/ folder. Open and edit as you wish.

What version of the Stripe API does this plugin use? ↑ Back to top

This plugin uses version 2015-04-07 of the Stripe API.

Does this extension support Bitcoin? ↑ Back to top

Yes, it does. As of version 2.4.0, Stripe accepts payment in Bitcoin (WooCommerce > Settings > Checkout > Stripe > Enable Bitcoin Currency). Refunds can be issued via the Stripe Dashboard and will require the customer’s Bitcoin address. See Changelog.

Recurring and repeat payments with Bitcoin are not currently supported. Bitcoin may only be used for a one-time payment. More at: Stripe – Bitcoin Guide.

Does this extension support Stripe Connect? ↑ Back to top

No, not currently; we’re unable to integrate at this time.

Does Stripe use AVS – Address Verification System? ↑ Back to top

Yes! This is enabled in your Stripe account dashboard and will then work in WooCommerce. See Stripe’s documentation about Avoiding fraud and disputes.

Does Stripe Support Authorization and Capture? ↑ Back to top

Yes! This is an option in the extension settings. Charges can be captured from within the WooCommerce dashboard. Please note that un-captured authorizations will expire after 7 days.

When the Stripe payment gateway is set to authorize, orders made via Stripe will have the status on hold and the following note:


Change the order status to processing or completed to take payment or cancel the order to remove the pre-authorization.

Does Stripe allow refunds inside WooCommerce? ↑ Back to top

Yes. More info at: WooCommerce Refunds.

Does Stripe Support ACH? ↑ Back to top

The Stripe plugin from WooCommerce does not support ACH.

Why aren’t my subscriptions displayed in the Stripe Dashboard? ↑ Back to top

WooCommerce Subscriptions does not use the Stripe Subscriptions feature. Instead, it uses a Stripe Customer and Card token and controls the processing of recurring payments.

This avoids many potential issues that could occur by trying to keep two copies of each subscription’s data in sync on two different systems (one in your store and one at Stripe). It also and makes it possible for Stripe to support all of WooCommerce Subscriptions’ features, like payment date changes, rather than only those the Stripe Subscriptions allows.

Because of this, you will not see subscriptions created with WooCommerce in your Stripe Dashboard as Subscriptions. This does not mean recurring payments will not be processed. As long as your store is running correctly, recurring payments will be processed correctly and will show up in the Stripe Dashboard as Payments.

Do I need to enable “Saved Card” to process subscriptions? ↑ Back to top

Subscriptions have its own mechanism of saving credit card details. When a customer buys a subscription product, Stripe will create a special payment token that will use the same credit card details for future subscription payments. Saving the same card again on the customer’s account is not necessary, unless you want to allow the customer to reuse the card for other purchases in your store.

Troubleshooting ↑ Back to top

Root Relative URLs ↑ Back to top

There are known issues with the Root Relative URLs plugin. You will not be able to use this with Stripe.

I get an error when placing an order telling me to enable JavaScript. ↑ Back to top

This error may be caused by non-standard/poorly coded themes and JavaScript (JS) issues. Common issues include:

  1. Javascript errors on the checkout page – To view the error, open up your browser error console (in Chrome: View > developer > javascript console) and look for red errors. This should indicate where the error is located and lead you to the problem, i.e., loading jquery wrong
  2. Failing to load scripts – Stripe loads 2 JS files which it needs to function. If these are not loaded you will see errors. The most common reasons for not loading are:
    • A theme missing wp_head() or wp_footer() calls
    • Old overridden template files from WooCommerce inside your theme
    • Loading headers/footers in a non-standard way. WooCommerce uses get_header()’s get_header action to init the checkout and load scripts. If you are not using get_header() you either need to do so, or you need to trigger the get_header action manually using: do_action( ‘get_header ); in your custom header loader.

I get an error, “Please make sure your card details have been entered correctly and that your browser supports JavaScript.” ↑ Back to top

The solution is almost always a theme conflict or an issue with the placement of the public and secret keys. First, confirm you’ve placed the keys in the correct field. If that doesn’t help, try switching to the Twenty Seventeen theme to see if the issue disappears. If so, you likely have a JavaScript error or conflict in your theme. Try to find the JavaScript error or switch to a higher quality theme.

I’m getting an API error. ↑ Back to top

Ensure that you have input the correct keys. If you are in live mode, you should have entered live keys (not test keys).

  • If you are using test mode, keys are prepended with sk_test and pk_test.
  • If you are using live mode, keys are prepended with sk_live and pk_live.

I’m seeing the error “Could not find payment information.” ↑ Back to top

This usually means that test mode is still enabled while using live keys, or that test keys are being used in live mode.

I get an error, “Developers: Please make sure that you are including jQuery and there are no JavaScript errors on the page.” ↑ Back to top

This is typically caused by entering your Secret and Publishable Stripe keys in the incorrect order. Please go to the WooCommerce > Settings > Checkout > Stripe tab and update both the Stripe Live Secret Key and Stripe Live Publishable Key. Make sure that your enter the proper corresponding keys from your Stripe account into each field.

WooCommerce - the most customizable eCommerce platform for building your online business.

Back to the top