FunnelKit
FunnelKitBlogs

How to Test Stripe Payments in WooCommerce Before You Go Live

Updated:  Sep 7, 2026
Written by: 
Author: Editorial Team
Editorial Team
Author: Editorial Team Editorial Team

The FunnelKit Editorial Team is a group of WooCommerce experts with 10+ years of combined experience. We create actionable guides based on hands-on testing, industry research, and user feedback to help eCommerce businesses grow.

How to Test Stripe Payments in WooCommerce Before You Go Live

Testing Stripe payments in WooCommerce is quite simple. Turn on test mode in your Stripe plugin, add a product to your cart, and check out using the test card 4242 4242 4242 4242. Use any future expiry date and any three-digit CVC.

Then check WooCommerce orders to make sure the order was created, and your Stripe dashboard under Payments to confirm the payment went through.

That’s really all it takes and you can do it in about a minute. But it’s worth testing properly because a store can look completely fine while payments are actually broken.

The products are there, checkout loads normally, and everything seems ready to go until a customer clicks Pay and nothing happens because, for example, a webhook failed.

And often, there’s no obvious warning in the WooCommerce dashboard.

That’s why this guide goes beyond the standard test card. We’ll cover test cards for declined payments, 3D Secure, buy now, pay later, and SEPA.

We’ll also show you how to verify that your webhooks are actually firing, explain why a successful test payment never moves real money, and walk through the checks you should make before switching your store to live mode.

The setup steps cover the three most commonly used Stripe plugins, so you should be able to follow along regardless of which one you have installed.

Stripe Test Mode vs Sandbox: What Changed

Stripe used to give every account one shared test mode that you could enable with a toggle. But it has been replaced by sandboxes.

A sandbox is an isolated test environment inside your account, and you can create up to five of them.

This makes it easier for developers, agencies, and store owners to work independently without changing each other’s products, customers, or webhook settings.

Stripe Test Mode vs Sandbox: What Changed

For a WooCommerce store, keep these four things in mind:

  • The test cards are the same: 4242 4242 4242 4242 behaves the same in both environments. None of the test cards in this guide change.
  • You switch environments instead of toggling test mode: Open the account picker at the top of the Stripe Dashboard and choose your sandbox. The old Viewing test data switch is for the legacy test-mode setup.
  • Sandboxes have their own API keys and webhook endpoints: A webhook endpoint created for live mode will never receive events from a sandbox.
  • Deleting test data works differently: In a sandbox, go to Workbench ⇨ Overview ⇨ Test data ⇨ Review test data. In the old test mode, you would go to Developers ⇨ Overview ⇨ Delete all test data.

Your WooCommerce plugin does not need to know which model you are on.

It connects with whatever test keys you give it, or through a test-mode connection flow.

The difference matters when a test payment seems to disappear, or an order doesn't update as expected.

Before reinstalling the plugin or changing your checkout settings, check which Stripe environment you're viewing.

In many cases, the payment is there, but you’re just looking in the wrong place.

Which Stripe Plugin You Are Testing In

Before you start, check which gateway you're using to connect Stripe with your WooCommerce store.

ParametersOfficial WooCommerce StripeWooPaymentsStripe Gateway by FunnelKit
CostFreeFree plugin, per-transaction feesFree
Test connectionSeparate test connection requiredSingle toggleKeys fetched automatically
Test on a live storeNoNoYes, admin-only mode
Test orders appear inWooCommerce ⇨ OrdersWooCommerce ⇨ Payments ⇨ TransactionsWooCommerce ⇨ Orders
Log prefixwoocommerce-gateway-stripewoopaymentsfkwcs-stripe
ExtrasStripe.js testing assistantCountry-specific test cardsAutomatic webhook setup

Stripe Gateway for WooCommerce by FunnelKit

Go to WooCommerce ⇨ Settings and open the Stripe tab. The plugin offers Test Mode, Test Mode (For administrators), and Live Mode.

Admin-only test mode shows the test environment to logged-in administrators, while every other visitor sees live payments, so you can keep testing on a store that is already taking orders.

Enable the Stripe test mode (for administrators) in WooCommerce

The other two plugins switch the whole store at once.

While you are in the Stripe tab, turn on Log debug messages. You'll need those logs shortly, which appear under WooCommerce ⇨ Status ⇨ Logs with the 'fkwcs-stripe' prefix.

If Stripe is not connected to your store yet, start with our guide to connecting Stripe to WooCommerce.

Official WooCommerce Stripe extension

Connecting in live mode does not connect you in test mode.

These are two separate connections. If you miss connecting to the test account, your payment will throw an authentication error.

To connect it, go to WooCommerce ⇨ Settings ⇨ Payments and click Manage next to Stripe.

Open the Settings tab, find Account details, and click Configure connection.

Enable test mode.

Once it reads connected, return to Settings, tick Enable test mode under General, and save your changes.

The extension also supports the Stripe.js testing assistant, a widget that appears on your checkout in test mode. It autofills test data, flags errors, and simulates customer locations.

You can turn it on with a filter snippet. The official WooCommerce Stripe documentation has the exact snippet and instructions.

WooPayments

Go to WooCommerce ⇨ Settings ⇨ Payments, open WooPayments, and turn on Test Mode.

Test transactions appear under WooCommerce ⇨ Payments ⇨ Transactions with a Test label, making them easy to distinguish from real transactions.

Stripe Test Card Numbers for Every Scenario

These work in test mode and in any sandbox across all three plugins.

Use any future expiry date and any three-digit CVC.

ScenarioCard numberExpected result
Successful payment (Visa)4242 4242 4242 4242Order status moves to Processing or Completed
Successful payment (Mastercard)5555 5555 5555 4444Order completes
Generic decline4000 0000 0000 0002Card declined message at checkout
Insufficient funds4000 0000 0000 9995Declined, insufficient funds reason
Lost card4000 0000 0000 9987Declined, card reported lost
Stolen card4000 0000 0000 9979Declined, card reported stolen
Expired card4000 0000 0000 0069Expired card error
Incorrect CVC4000 0000 0000 0127CVC check fails
Processing error4000 0000 0000 0119Generic processing failure
3D Secure required4000 0027 6000 3184Authentication window opens before the charge
Subscription renewal failure4000 0000 0000 0341Card attaches, then future charges fail

For international testing, Stripe issues country-specific cards so you can simulate a buyer in another market and check currency handling, address formats, and tax rules.

Pull the updated list from the Stripe testing documentation.

Never enter a real card number in test mode. It will fail, and it puts live card data into a test log.

How to Run Your First WooCommerce Test Order

We'll use a physical product in a USD store with cards, Apple Pay and Klarna or Affirm switched on. Swap in your own product by all means, but stick to a single product across every test.

That way, when something breaks, you'll know it was the setting you just changed (not the product).

Classic checkout vs block checkout

Block Checkout is now WooCommerce’s default, and it behaves differently enough from the older shortcode checkout that you shouldn’t treat them as interchangeable.

Express payment buttons appear in a dedicated section at the top of the block checkout. Card errors are shown inside the Payment Element instead of as a notice at the top of the page.

And some customizations built for the old shortcode checkout won’t carry over to blocks.

So test the checkout your store is actually using. If you’ve recently migrated from the shortcode version to blocks, test both before going live.

We’ve seen card fields work perfectly on the shortcode checkout but fail to load on the block version, sometimes without an obvious error for the store owner to spot.

If you’re troubleshooting a payment issue, knowing which checkout version you’re testing can save you a lot of time.

Step 1: Complete checkout with a Stripe test card

Use a cheap physical product, not a virtual one. Physical products move to Processing on success, while virtual products jump straight to Completed, and Processing proves your fulfillment flow works.

Open the checkout in a normal browser window rather than a preview, so you are testing the page your customers actually load. If you are in admin-only test mode, stay logged in as an administrator.

With the item in the cart, enter 4242 4242 4242 4242, any future expiry, and any three digits for the CVC.

Fill in the billing fields as a customer would, including a full address, because address validation failures cause declines that have nothing to do with the card.

Testing Stripe payments for credit cards on the WooCommerce checkout page

Watch the page as it submits. If it reloads with no error, or the pay button spins forever, that is usually Stripe.js being blocked by a caching or optimization plugin rather than a payment problem.

Step 2: Confirm the order in WooCommerce

Go to WooCommerce ⇨ Orders and open your order. Check that the status reads Processing, the order notes show a Stripe charge reference, and the payment method is recorded correctly.

Test order placed successfully, verified in WooCommerce orders and clicking on it to see its details

If the status reads Pending payment despite a successful checkout, stop and skip to the webhook section below.

This combination usually means a webhook problem.

Open Stripe, switch into the test environment or sandbox you connected, go to Payments, and confirm the charge for your order appears with the right amount and currency.

The WooCommerce order screen also shows a linked charge ID under the order number.

Clicking it opens that payment in Stripe, which is the fastest way to confirm both systems describe the same transaction.

Step 3: Test the failure paths and the mobile checkout

Run the same order on a phone. Payment fields are where most mobile problems appear, so check that the card inputs are tappable, the keyboard switches to numeric, and the Pay button isn't hidden behind a sticky element.

Then run 4000 0000 0000 0002 or any other decline card on the same product and confirm three things: the customer sees a readable error, the order is recorded as Failed rather than vanishing, and the reason appears in the order notes.

See the reason of failed orders in WooCommerce

A checkout that swallows declines loses customers who would have retried with another card.

If test orders pass but the checkout still leaks customers, see our guide to customizing the WooCommerce checkout page.

Testing Express Checkout, BNPL and Local Payment Methods

A successful card payment doesn’t mean your other payment methods are working. Each method has its own requirements and can fail in different ways.

Keep using the item for these tests too, so you change only one thing at a time.

For Google Pay, add a Stripe test card to your Google account and complete the payment normally.

Testing stripe express checkout payments in woocommerce

For Apple Pay, you can use your real card while you’re in test mode because no real charge is created.

If the express payment buttons don’t appear at all, the problem is usually domain verification or SSL rather than the plugin itself.

We cover the troubleshooting steps in our guide on why Apple Pay isn't showing on WooCommerce checkout.

Klarna, Affirm, and Afterpay

These payment methods only appear when your store meets the provider’s currency and eligibility requirements. For example, Affirm generally requires USD or CAD.

Select any product in your store that meets the basic requirement.

Make sure the payment option appears on the checkout page.

Affirm payment option visible on the WooCommerce checkout page

Complete the provider’s test flow and confirm that the customer is sent back to the WooCommerce order-received page.

Review the installment plan for Affirm BNPL payment option and confirm it to place the order

See our guide to WooCommerce buy now, pay later for the eligibility details.

SEPA, iDEAL, Bancontact, and P24

These payment methods require a EUR store currency, so switch your store currency before testing them.

For SEPA Direct Debit, use Stripe’s test IBAN DE89370400440532013000.

Testing Stripe local payment like SEPA Direct Debit to place the order on the WooCommerce checkout page

Bank-redirect payments are confirmed asynchronously, so an order may remain on hold briefly before the payment is confirmed. That’s expected behavior, not necessarily a problem.

Subscription renewals and refunds

If you sell subscriptions, test what happens after the initial payment too. Use the Stripe test card number to place your order.

Testing stripe payments for woocommerce subscription products in your online store

Furthermore, you can also use 4000 0000 0000 0341, which succeeds when the customer signs up but fails when the renewal is attempted.

This lets you verify that your store handles a failed recurring payment correctly.

To test a refund, open the completed order, click Refund under Items, and process the refund through the Stripe gateway instead of manually changing the order status.

For a partial refund, order two first, so you have part of the order left after the refund.

Did Your Webhooks Actually Fire?

In our experience, webhook failures generate more Stripe tickets than almost everything else in this guide.

You see a successful charge on Stripe, but WooCommerce shows an order stuck on Pending payment.

The payment worked, but WooCommerce never received the confirmation message.

If it happens to you, work through these checks in order:

  • Check that the endpoint exists in the right environment

In the Stripe Dashboard, open the webhook or event destination list inside the sandbox you are testing in.

A live-mode endpoint receives nothing from a sandbox.

  • Check the delivery response code

A 200 response means WordPress accepted the event.

A 401 or 403 often points to a signing secret saved in your plugin that does not match the one Stripe is signing with.

A 404 means the endpoint URL is wrong.

If Stripe times out, the request likely never made it far enough to reach PHP.

  • Look at what’s sitting in front of WordPress

Security plugins, WAFs, bot protection, and caching layers can block or interfere with webhook requests.

If you're seeing a 403 that doesn’t make sense based on your plugin settings, this is one of the first places to investigate.

  • Enable the gateway’s debug log and run another test order

This can tell you whether the webhook reached your site and was rejected, or whether it never arrived in the first place.

Note: You can find the endpoint setup steps in our guide on how to configure Stripe webhooks. If caching may be involved, see our guide to caching rules that break WooCommerce checkout.

4 Tips and Best Practices for Testing Stripe Payments Effectively

Here are the most effective tips and practices for testing Stripe payments, which will help you identify hidden issues, streamline your workflows, and deliver a seamless experience to your customers.

1. Always use Stripe’s test mode first

With Stripe, you can enable a Sandbox environment to run transactions without spending real money.

Always ensure to put your website under ‘Test’ or ‘Admin Only Testing’ mode to check your payment flows.

This way, you keep your customer data safe and avoid accidental charges.

2. Test on different browsers and devices

Not everyone makes purchases from desktops. In fact, over 60% of traffic on eCommerce sites comes from mobile devices.

That’s why it’s essential to test checkout fields and Stripe payments on mobile phones, tablets, and multiple desktop browsers, such as Chrome, Safari, Firefox, etc.

Make sure each payment field and checkout element is fully responsive and touch-friendly.

3. Send automated order email notifications 

WooCommerce automatically sends transactional emails to customers based on the order statuses. 

However, customization options are limited. You cannot structure your emails, change the layout, add images, and more.

Therefore, experts recommend using email customizer plugins, such as FunnelKit Automations, to design beautiful and engaging emails, including both transactional and marketing emails.

Use email customizer to design transactional and marketing emails using drag-and-drop content blocks

Simply drag and drop the content blocks to customize them as you want.

Here’s an example of a failed order email with a retry payment link designed with FunnelKit Automations:

A beautiful failed order email notification used to handle failed Stripe payments

Once you’ve set up your emails, WooCommerce will automatically send them based on the payment and order status.

Ensure that you’ve set up the following notifications in your store:

Use a WordPress SMTP plugin to ensure your emails are delivered to customers, well-branded, and include accurate order and payment details.

4. Clean up test data before going live

Stripe allows you to easily delete test customers, payments, products, and more. Navigate to Developers ⇨ Overview and click on ‘Review test data’ under the Test Data section.

This will open your test data. Click on 'Delete test data' to clear all the test data. For more details, refer to the official Stripe document on deleting test data.

You can also delete test orders from WooCommerce by moving them to the trash and permanently deleting them.

Note: Proceed carefully because you cannot undo the deletion of your test data.

Permanently deleting test orders from WooCommerce

If you use FunnelKit Funnel Builder to enhance your checkouts and sales funnels, the conversion data will be automatically deleted after you’ve permanently removed them from WooCommerce.

Clean up your test data to prevent it from being mixed with real transactions.

Frequently Asked Questions

Should I use test mode or a sandbox in Stripe?

For a single store tested by one person, the test mode toggle is enough.

Create a sandbox once you have a staging site, an agency, or more than one person testing, because sandboxes keep each environment’s keys, webhooks and data separate.

Why is my test order stuck on Pending payment?

The charge succeeded in Stripe, but the confirming webhook never reached your store.

Check recent payments on your webhook endpoint, confirm the endpoint belongs to the environment you are testing in, and check that caching or a firewall is not blocking the request.

Can I test Stripe payments on a live store without customers seeing test mode?

Yes, but only with a plugin that supports it. Stripe Gateway for WooCommerce by FunnelKit offers an admin-only test mode that shows the test environment to logged-in administrators while shoppers see live payments.

The official Stripe extension and WooPayments switch the whole store at once.

Can I test Stripe in the WooCommerce block checkout?

Yes, and you should test whichever layout your store actually uses. The block checkout and the classic shortcode checkout render payment fields and display errors differently, so passing one does not prove the other works.

Do test payments generate any Stripe fees?

No. Test charges never touch the card networks and cost nothing. The one exception is that test cards from a different country than your registered business show simulated fees, which exist to help you model real pricing.

Why does my test payment show in Stripe but no money left my bank?

Because test charges never reach the card networks. There is no settlement and no payout.

If you see this on a real live-mode charge, it is the payout schedule: first payouts arrive 7 to 14 days after your first successful payment, then on your regular schedule.

Are You Ready to Test Stripe Payments?

Testing your Stripe payments is a crucial step in delivering a secure and seamless buying experience for your customers.

From setting up your Stripe testing modes to validating frontend forms, different payment scenarios, and error handling, each part ensures everything works flawlessly.

If you top it off with FunnelKit checkouts, you're on your way to streamlining your shoppers’ buying experience.

Not only that, FunnelKit Automations can become your automated right-hand, helping you effortlessly handle each payment outcome through email notifications.

So if you want to pair your Stripe payment setup with a high-converting checkout and beautiful emails, FunnelKit is definitely worth exploring.

Related Blogs
How to Set Up WooCommerce Google Pay & Accept Online Payments

Editorial Team

How to Enable WooCommerce Google Pay and Accept Online One-Tap Payments (2026)

WooCommerce Google Pay can turn a 90-second checkout into a two-second tap. Think about paying for coffee with your phone. You pull out your phone, tap to pay, and you’re...

Best Stripe Payment Plugins for WordPress

Editorial Team

6 Best Stripe Payment Plugins for WordPress In 2026 [Mostly Free]

Stripe is one of the most trusted payment gateways worldwide, powering over 3.5 million websites globally.  With 90% of U.S. adults having made a purchase from businesses that use Stripe...

WooCommerce Buy Now Pay Later - FunnelKit

Editorial Team

WooCommerce Buy Now Pay Later: Enable Klarna, Affirm, Afterpay or Native Installments

WooCommerce buy now pay later lets your customers split a purchase into smaller payments while you still get paid in full upfront. To offer buy now pay later, you connect...

Published by: Editorial Team
The Editorial Team at FunnelKit (formerly WooFunnels) is a passionate group of writers and copy editors. We create well-researched posts on topics such as WordPress automation, sales funnels, online course creation, and more. We aim to deliver content that is interesting and actionable.
Thank you for reading. Stay connected with us on the Facebook group, X (Twitter), LinkedIn and YouTube channel for more tips to help grow your business.
Join Over 40,300+ Sellers Increasing Profits with FunnelKit! 🚀
Join FunnelKit
FunnelKit Checkout gives you beautiful, ready-to-use WooCommerce checkout templates, embed order forms, one-page checkouts, and more.
Join FunnelKit
Related Blogs
How to Set Up WooCommerce Google Pay & Accept Online Payments

Editorial Team

How to Enable WooCommerce Google Pay and Accept Online One-Tap Payments (2026)

WooCommerce Google Pay can turn a 90-second checkout into a two-second tap. Think about paying for coffee with your phone. You pull out your phone, tap to pay, and you’re...

Best Stripe Payment Plugins for WordPress

Editorial Team

6 Best Stripe Payment Plugins for WordPress In 2026 [Mostly Free]

Stripe is one of the most trusted payment gateways worldwide, powering over 3.5 million websites globally.  With 90% of U.S. adults having made a purchase from businesses that use Stripe...

WooCommerce Buy Now Pay Later - FunnelKit

Editorial Team

WooCommerce Buy Now Pay Later: Enable Klarna, Affirm, Afterpay or Native Installments

WooCommerce buy now pay later lets your customers split a purchase into smaller payments while you still get paid in full upfront. To offer buy now pay later, you connect...

Ready to Transform Your Store?
Join 40,300+ successful store owners who trust FunnelKit to power their businesses.
Conversion Optimized Checkout Pages
Increase Revenue with Smart Upsells
Capture Emails & Recover Abandoned Carts
Automate Winbacks & Repeat Sales
1000+ 5 star reviews on WordPress.org
Transform your store to power your business with FunnelKit
🚀 Maximize Your Profit with FunnelKit – Highest Rated with 1000+ 5-Star Reviews
Get Started