1. Documentation /
  2. WooCommerce Payments Documentation /
  3. WooCommerce Payments: Testing & Troubleshooting /
  4. Testing WooCommerce Payments

Testing WooCommerce Payments

This document provides instructions for testing payments, refunds, disputes, and the other functions of WooCommerce Payments. To learn more about WooCommerce Payments, including how to set it up on your store, see our main documentation page.

Enabling test mode

↑ Back to top

By default, WooCommerce Payments will accept real payment methods, such as cards, and actually charge your customers. To test payments, refunds, disputes, and other such processes, you need to switch WooCommerce Payments into test mode.

NOTE: If you are working on a staging or development site, such as one installed on a separate domain from the real site, you may wish to use dev mode instead.

To enable test mode:

  1. Go to Payments > Settings in your site’s dashboard.
  2. Check the Enable test mode box.
  3. Click Save changes at the bottom of the page.
Test mode enabled in the WooCommerce Payments settings.

Test mode data

↑ Back to top

While test mode is enabled, the pages under the Payments menu item will only show test mode data. This includes data shown under Deposits, Transactions, and Disputes.

To remind store owners that test mode is currently enabled, a notice is also displayed at the top of any page under the Payments menu item.

An alert showing that test mode is enabled.

Testing card payments

↑ Back to top

To place a test order in test mode:

  1. Enable test mode as shown above.
  2. Go to your site’s shop and add a product to your cart.
  3. Proceed to the checkout page and fill out the form.
  4. Enter a test card number, expiry date, and CVC code.
    • Real card details will not work in test mode.
  5. Place your order.

The order will be processed just as if you had used a real card.

After you are redirected to the Order received page, you can go back into the admin dashboard of your site and find the test transaction in all the usual places, including under WooCommerce > Orders and Payments > Transactions.

The payment form in test mode.

Test cards

↑ Back to top

To test payments, the following test card numbers should be used:

NumberBrandExp. DateCVC Code
4242 4242 4242 4242VisaAny future dateAny three digits
4000 0566 5566 5556Visa (debit)Any future dateAny three digits
5555 5555 5555 4444MastercardAny future dateAny three digits
5105 1051 0510 5100Mastercard (prepaid)Any future dateAny three digits
3782 8224 6310 005American ExpressAny future dateAny three digits
6011 1111 1111 1117DiscoverAny future dateAny three digits

Country-specific test cards

↑ Back to top

Cards issued outside the country or region of your WooCommerce Payments account can incur additional fees in live mode. To test an international payment, use the following info.

NumberCountryExp. DateCVC Code
4000 0003 6000 0006Australia (AU)Any future dateAny three digits
4000 0004 0000 0008Austria (AT)Any future dateAny three digits
4000 0005 6000 0004Belgium (BE)Any future dateAny three digits
4000 0007 6000 0002Brazil (BR)Any future dateAny three digits
4000 0012 4000 0000Canada (CA)Any future dateAny three digits
4000 0025 0000 0003France (FR)Any future dateAny three digits
4000 0027 6000 0016Germany (DE)Any future dateAny three digits
4000 0037 2000 0005Ireland (IE)Any future dateAny three digits
4000 0038 0000 0008Italy (IT)Any future dateAny three digits
4000 0048 4000 8001Mexico (MX)Any future dateAny three digits
4000 0052 8000 0002Netherlands (NL)Any future dateAny three digits
4000 0055 4000 0008New Zealand (NZ)Any future dateAny three digits
4000 0061 6000 0005Poland (PL)Any future dateAny three digits
4000 0062 0000 0007Portugal (PT)Any future dateAny three digits
4000 0072 4000 0007Spain (ES)Any future dateAny three digits
4000 0075 6000 0009Switzerland (CH)Any future dateAny three digits
4000 0082 6000 0000United Kingdom (UK)Any future dateAny three digits
4242 4242 4242 4242United States (US)Any future dateAny three digits

3D Secure test cards

↑ Back to top

The following card numbers can be used to test payments requiring 3D Secure Authentication.

DescriptionNumberDetails
Authenticate unless set up4000 0025 0000 3155This card requires authentication for off-session payments unless you set it up for future payments. After you set it up, off-session payments no longer require authentication.
Always authenticate4000 0027 6000 3184This card requires authentication on all transactions, regardless of how the card is set up.
Already set up4000 0038 0000 0446This card is already set up for off-session use. It requires authentication for one-time and other on-session payments. However, all off-session payments succeed as if the card has been previously set up.
Insufficient funds4000 0082 6000 3178This card requires authentication for one-time payments. All payments are declined for insufficient funds even after being successfully authenticated or previously set up.

Declined cards

↑ Back to top

The following card numbers can be used to test what happens when the payment is declined by the customer’s bank for various reasons.

DescriptionNumber
Generic decline4000 0000 0000 0002
Insufficient funds4000 0000 0000 9995
Lost card4000 0000 0000 9987
Stolen card4000 0000 0000 9979
Expired card4000 0000 0000 0069
Incorrect CVC4000 0000 0000 0127
Processing error4000 0000 0000 0119
Incorrect number4242 4242 4242 4241

Manual capture

↑ Back to top

To test a card payment authorization with manual capture:

  1. Go to Payments > Settings in your site’s dashboard.
  2. Enable test mode and the separate auth and capture setting.
  3. Place a test order as explained above.
  4. Go to WooCommerce > Orders and open the order you just placed.
  5. Confirm the order has a note in the sidebar stating: “A payment of $XX.XX was authorized using WooCommerce Payments.”
  6. Capture the charge.
  7. Confirm the order now has a note in the sidebar like so: “A payment of $XX.XX was successfully captured using WooCommerce Payments.”
  8. Go to Payments > Transactions.
  9. Confirm that a corresponding transaction with the type Charge is listed.

Testing express checkouts

↑ Back to top

How to test each specific express checkout method varies depending on which one you’d like to test. Please see the links below, which go to the dedicated documents for those payment methods, for instructions on how to test them.

Testing non-card payments

↑ Back to top

Test most non-card payment methods (e.g. Sofort, iDeal, and so on) is as simple as placing a test order while that payment method is selected. You will be taken to a page hosted by Stripe where you can choose whether to authorize or fail the test payment.

An example of the Sofort text payment page hosted by Stripe

After you choose whether to authorize the test payment or fail it, you will automatically be redirected back to your site, and the relevant result shown.

SEPA

↑ Back to top

In order to test a SEPA transaction, you will need to use one of the following IBANs. These use Austria as the country, since the country does not matter much for testing purposes.

Test IBANResult
AT611904300234573201Payment succeeds.
AT861904300235473202Payment fails.
AT591904300235473203Payment succeeds, but is disputed.

Testing refunds

↑ Back to top

To test refunding an order:

  1. Place a test order as shown above.
  2. Go to WooCommerce > Orders.
  3. Click the order ID of the test order.
  4. Follow the refund process as usual.

The order status should change to Refunded, and your test balance will be reduced.

Testing disputes

↑ Back to top

To simulate a dispute with WooCommerce Payments, place a test order as shown above using one of the cards from this table:

DescriptionNumberDetails
Fraudulent4000 0000 0000 0259The charge will be disputed as fraudulent. This type of dispute is protected after 3D Secure authentication.
Product not received4000 0000 0000 2685With default account settings, charge succeeds, only to be disputed as product not received. This type of dispute isn’t protected after 3D Secure authentication.

The order will be processed, but the payment will be disputed immediately. You can then view and respond to the dispute by going to Payments > Disputes in your site’s dashboard.

Dispute responses

↑ Back to top

After creating a dispute with a dispute test card above, you can also test the dispute response process.

  1. Go to Payments > Disputes in your site’s dashboard.
  2. Click the dispute in the list to open it up.
  3. Click Challenge Dispute.
  4. In the Additional Details field, do one of the following:
    • Enter winning_evidence to win the dispute.
    • Enter losing_evidence to lose the dispute.
  5. At the bottom, click Submit Evidence.

You can also accept the dispute in Step 3 instead of challenging it to test that scenario.

Testing a winning dispute response.

WooCommerce

The most customizable eCommerce platform for building your online business.

  • 30-day money-back guarantee
  • Support teams across the world
  • Safe and secure online payment