WooCommerce Stripe Payment Gateway

Description

Changing consumer behavior has resulted in an explosion of payment methods and experiences, which are great for increasing conversion and lowering costs—but can be difficult for businesses to maintain. Give customers a best-in-class checkout experience while you remain focused on your core business. This is the official plugin created by Stripe and WooCommerce.

Drive 11.9% in revenue with an optimized checkout experience from Stripe

The enhanced checkout experience from Stripe can help customers:

  • Boost conversion: Provide an optimal experience across mobile, tablet, and desktop with a responsive checkout, and offer 23 payment methods, including Link, Apple Pay, and Google Pay, out of the box.
  • Expand your customer base: Convert customers who might otherwise abandon their cart with buy now, pay later methods like Klarna, Affirm, and Afterpay/Clearpay, wallets like Apple Pay, Google Pay, Alipay, and WeChat Pay, and local payment methods such as Bancontact in Europe and Alipay in Asia Pacific. Deliver a localized payment experience with out-of-the-box support for localized error messages, right-to-left languages, and automatic adjustment of input fields based on payment method and country.
  • Meet existing customer demand and localize the experience: Offer local payment methods, such as ACH Direct Debit, Bacs Direct Debit, Bancontact, BECS Direct Debit, BLIK, Boleto, Cash App Pay, EPS, iDEAL, Multibanco, OXXO, Pre-authorized debit payments, Przelewy 24, and SEPA Direct Debit, and let customers pay in their local currency across 150+ countries with Adaptive Pricing.
  • Fight fraud: Detect and prevent fraud with Stripe Radar, which offers seamlessly integrated, powerful fraud-detection tools that use machine learning to detect and flag potentially fraudulent transactions.
  • Accept in-person payments for products and services: Use the Stripe Terminal M2 card reader or get started with no additional hardware using Tap to Pay on iPhone, or Tap to Pay on Android.
  • Support subscriptions: Support recurring payments with various payment methods via WooCommerce Subscriptions.
  • Manage cash flow: Get paid within minutes with Stripe Instant Payouts, if eligible.
  • Achieve PCI-DSS compliance with Stripe Elements hosted input fields.
  • Support Strong Customer Authentication (SCA).

Stripe is available for store owners and merchants in 46 countries worldwide, with more to come.

Compatibility Notes

The following items note specific versions that include important changes, features, or deprecations.

  • 11.0.0
    • Express checkout merges the wc_stripe_express_checkout_normalize_address filter result over the address it sent; removing a field no longer clears it, return an empty string instead
  • 10.9.1
    • Some express checkout helpers now require the caller to specify whether they are in the WooCommerce Cart context
  • 10.9.0
    • Express checkout processes classic checkout custom fields by default (opt out via the wc_stripe_express_checkout_enable_classic_checkout_custom_fields filter)
  • 10.8.0
    • Optimized Checkout Suite enabled by default for eligible existing stores
    • Adaptive Pricing enabled by default for eligible existing stores
    • Removed deprecated code and constants from 10.2.0 and before – Full list – PR #5294
  • 10.7.0
    • Optimized Checkout Suite re-enabled by default for new installs
    • Adaptive Pricing enabled by default for new installs
    • Removed deprecated backend methods that called wc_deprecated_function – Full list – PR #5066
  • 10.6.0
    • Adaptive Pricing available
  • 10.4.0
    • Optimized Checkout Suite no longer enabled by default for new installs
    • Removed the main Payment Request Buttons backend class, WC_Stripe_Payment_Request, which was deprecated in 10.2.0
    • Removed the deprecated WC_Stripe_Apple_Pay class
  • 10.3.0
    • Removed legacy checkout payment method classes and settings retrieval methods
  • 10.2.0
    • Optimized Checkout Suite enabled by default for all new installations
    • Add minimum transaction amounts for BRL, INR, NZD, THB, CZK, HUF, AED, MYR, PLN, RON
  • 10.1.0
    • Improved express checkout address handling for countries without state/postal codes
  • 10.0.0
    • Payment Request Buttons are fully replaced by Express Checkout
    • Legacy Checkout is fully deprecated and no longer available
  • 9.8.0
    • Optimized Checkout Suite available via a configuration setting
    • We will disable the Affirm or Klarna payment methods if the respective official plugin is enabled
  • 9.7.0
    • Improved express checkout support for custom checkout fields
    • Validate customer details against required billing fields from checkout before sending to Stripe
  • 9.6.0
    • Legacy checkout deprecated by default
    • Voucher payment methods can be used for subscription purchases when manual renewals are available
    • Include extension data from block checkout for express checkout orders
    • Add hooks to support custom checkout fields for classic checkout
  • 9.5.0
    • Synchronize payment methods with Stripe
    • Support Pre-Authorized Debit (PAD) in Canada and the US
    • Support BLIK in Poland and from other EU countries
    • Support BECS Direct Debit payments in Australia

Screenshots

FAQ

In which specific countries is Stripe available?

Stripe is available in the following countries, with more to come:

  • Australia
  • Austria
  • Belgium
  • Brazil
  • Bulgaria
  • Canada
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Gibraltar
  • Greece
  • Hong Kong
  • Hungary
  • India
  • Ireland
  • Italy
  • Japan
  • Latvia
  • Liechtenstein
  • Lithuania
  • Luxembourg
  • Malaysia
  • Malta
  • Mexico
  • Netherlands
  • New Zealand
  • Norway
  • Poland
  • Portugal
  • Romania
  • Singapore
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • Switzerland
  • Thailand
  • United Arab Emirates
  • United Kingdom
  • United States

Does this require an SSL certificate?

Yes. 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 using Stripe Elements.

Does this support both production mode and sandbox mode for testing?

Yes, it does. Both production and test (sandbox) modes are driven by the API keys you use with a checkbox in the admin settings to toggle between both.

Where can I find documentation?

Refer to the Stripe WooCommerce Extension documentation for more information, including how to set up and configure the extension.

Where can I get support or talk to other users?

If you get stuck, you can ask for help in the Plugin Forum.

Reviews

September 9, 2026 1 reply
There was a duplicate payment on Stripe. Woocommerce & Stripe worked together to figure out why it made a duplicate payment. They was so very helpful in getting it figured out. The support with both Woocommerce & Stripe was Great. Thank You So Much.
September 2, 2026 1 reply
Almost every update has been re-enabling the "link" feature. Now with the latest update , despite begin disabled , it is forcing the link options to be present and confusing customers . They have also implemented an element that you cannot see called "AiAgentPaymentSteering"it always amazes me when a company continues to find new ways to aggravate its customer base.
August 29, 2026 1 reply
Support was usually accurate, detailed and gradually guided through what was a somewhat difficult problem, and eventuated in a solution. The support team spent the time needed over several days, to sort it out.
July 22, 2026 1 reply
We changed processors from our previous vendor to WooPayments after weeks of working with that previous vendor during the sale of our business. The previous vendor was unable to accommodate the transfer of service internally, so we began looking for a different vendor and that's when we came across WooPayments. From the initial request, the support team at Woo has been absolutely incredible. Their communications have always been positive, informative, and most importantly, helpful, at all stages of the transition. They worked with us at each stage of the multi-step process and thoroughly explained everything in layman's terms. In the end, everything was transitioned from one owner to another flawlessly and with zero errors along the way. I would therefore highly recommend WooPayments as your payment processor!
July 13, 2026 1 reply
They solved a problem that my company was dealing with that had been a huge issue for 6 months. I was at my wits in. They walked me through every possible scenario that could be causing the glitch and helped me fix it. They are the best and I cannot thank them enough. They really know what they are doing!
June 30, 2026 1 reply
Excellent support. Wes quickly identified why the suggested workaround wasn't working, explained the underlying issue clearly, and provided a recovery process that successfully restored our affected subscription renewals using customers' saved Stripe payment methods. The guidance was accurate, professional, and helped us resolve the issue without requiring custom code. Thank you for the excellent support!
Read all 238 reviews

Contributors & Developers

“WooCommerce Stripe Payment Gateway” is open source software. The following people have contributed to this plugin.

Contributors

“WooCommerce Stripe Payment Gateway” has been translated into 35 locales. Thank you to the translators for their contributions.

Translate “WooCommerce Stripe Payment Gateway” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

11.0.0 – 2026-09-08

Important Fixes and Updates

  • Add – Show a placement simulator on each Customize express checkouts tab that previews where the express checkout button would and wouldn’t appear, with the reason
  • Add – Log an error when missing required custom fields block express checkout, with a filter to disable the log
  • Fix – Clear the shopper’s cart after a redirect payment method (e.g. Amazon Pay on mobile) completes in a different browser context, preventing duplicate orders
  • Fix – Render classic-checkout card fields when a host optimizer defers render-blocking JavaScript (e.g. SiteGround Speed Optimizer)
  • Fix – Load a single instance of Stripe.js per page
  • Fix – Allow express checkout payments when a wallet provides a one-word shipping name
  • Fix – Hide the Apple Pay and Google Pay express buttons on pages unchecked in their own locations setting, instead of following other wallets’ locations
  • Fix – Honor subscription renewal payment locks while preserving retry attempts
  • Update – Fetch express checkout AJAX nonces on demand instead of embedding them in every page

Other Fixes and Updates

  • Fix – Hide country-restricted payment methods (e.g. iDEAL) from Optimized Checkout when the billing country can’t use them
  • Fix – Attach a Stripe customer to guest Adaptive Pricing checkouts, linking it to the order and any account created at checkout
  • Fix – Stop sending Level 3 data when paying with a non-card payment method through express checkout (e.g. Amazon Pay), which Stripe rejects and can disable Level 3 data for card payments
  • Fix – Record the charge-captured state for asynchronously confirmed payments (e.g. ACH) so refunds from wp-admin and the Stripe Dashboard behave correctly
  • Fix – Keep the wallet billing and shipping addresses on express checkout orders when the address normalization request returns an unusable response
  • Fix – Register Multibanco, OXXO, Boleto, Link, and Cash App Pay hooks only once per request so email instructions and thank-you page content are not duplicated
  • Fix – Render the Adaptive Pricing payment element in the store’s Stripe locale
  • Fix – Prevent test and live Stripe connections from reusing each other’s cached account data
  • Fix – Refresh account details re-evaluates Payment Method Configuration availability so a disabled pmc_enabled flag recovers automatically
  • Fix – Reject negative refund amounts with an explicit error instead of silently refunding the absolute value
  • Fix – Complete 3DS card payments on Optimized Checkout when the Stripe Payment Method Configuration also has wallet or voucher methods active
  • Fix – Remove stale saved payment methods at checkout when the Stripe customer no longer exists, and keep valid ones when Stripe returns a transient API error
  • Fix – Hide the save payment method checkbox for Bancontact, iDEAL and Sofort in the Adaptive Pricing checkout on non-EUR stores whose currency excludes them
  • Fix – Don’t show currency admin notices for payment methods when Adaptive Pricing is active
  • Fix – Reload the plugin’s payment method settings when refreshing account details, so the settings screen no longer keeps showing stale values
  • Fix – Leave the Expires column blank instead of showing “N/A” on My Account Payment methods for saved payment methods that have no expiry date, such as Link, SEPA and Cash App Pay
  • Fix – Prevent cart from being emptied after My Account registration when Stripe, WooPayments, and Jetpack are all active by scoping the logged-in cookie update to checkout context only
  • Fix – Open all Stripe Dashboard links in admin notices and order notes in a new tab
  • Fix – Remove the empty box shown under “Use a new payment method” on classic checkout when the save-payment-method checkbox is hidden
  • Fix – Ensure webhook status checks reset API key
  • Fix – Keep express checkout and the payment options rendering on the first block checkout load of a free-trial subscription cart
  • Add – Use Stripe Dynamic Payment Methods for on-session Optimized Checkout payments so eligible methods follow your Stripe Payment Method Configuration
  • Tweak – Dim the button size hint on the Amazon Pay and Link customize tabs so it matches the Apple Pay/Google Pay tab

Internal Changes and Upcoming Features

  • Update – Take already-synced products out of in-agent checkout when Agentic Commerce is disabled by pushing a final catalog feed, and stop the recurring product sync while it’s off
  • Add – Bulk edit, quick edit, and a sync-status column and filter on the Products list for excluding products from the Agentic Commerce catalog sync
  • Add – Show the fuller sync-eligibility verdict in the Products list Agentic Commerce column and link the excluded-products view from the settings page
  • Fix – Only sync the Agentic Commerce catalog, inventory, and archive feeds to Stripe after onboarding is complete (the feature is enabled and the webhook secret is saved)
  • Fix – Resync the Agentic Commerce catalog when switching between test and live mode, and scope the sync status shown in settings to the active mode
  • Fix – Exclude password-protected products and products hidden from the catalog from the Agentic Commerce feed
  • Fix – Name password protection and hidden visibility as their own reasons in the Agentic Commerce feed preview
  • Dev – Extract Optimized Checkout into a dedicated payment gateway class so the classic UPE and Optimized Checkout flows are handled independently
  • Dev – Register Stripe.js through a single shared helper
  • Dev – Move hook registration out of the webhook, order, payment token, Apple Pay registration, and Connect handler constructors so repeated instantiation cannot duplicate callbacks
  • Dev – Add WC_Stripe::get_settings()/update_settings() as the canonical accessors for the main Stripe settings, with the WC_Stripe_Helper shims delegating to them
  • Dev – Remove the deprecated @woocommerce/settings npm package; settings are still read from the wc-settings script WooCommerce provides at runtime
  • Dev – Make GITHUB_TOKEN optional for the local E2E Docker setup by falling back to the GitHub CLI and then to plugin zips placed in tests/e2e/deps
  • Tweak – Use database cache for webhook status tracking
  • Tweak – Disable the Agentic Commerce “Sync now” button until onboarding is complete, with a note explaining the remaining step

See changelog for full details across versions.