1. Documentation /
  2. WooPayments Documentation /
  3. WooPayments: Testing & Troubleshooting /
  4. Testing WooPayments

Testing WooPayments

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

WARNING: If you’re “testing” WooPayments by placing real orders while in live mode and then refunding yourself, the transaction fees associated with those orders will not be refunded.

Please use test mode for all test orders.

Enabling test mode

↑ Back to top

By default, WooPayments will accept real payment methods, such as cards, and actually charge your customers. To test payments, refunds, disputes, and other such processes without accepting real funds, you will need to enable test mode.

If you are working on a staging or development site, you may wish to use sandbox mode instead.

To enable test mode:

  1. Go to Payments > Settings in your site’s dashboard.
  2. Check the Enable test mode box.
  1. Select the Enable button in the confirmation dialogue box.
  1. Click Save changes at the bottom of the page.

Test orders

↑ Back to top

When test mode is enabled, any test payments processed via WooPayments will also create orders in WooCommerce.

You can read our managing orders documentation to learn more about how to handle test orders.

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.

Additionally, any orders placed while test mode is enabled will feature a notice on the edit order page at WooCommerce > Orders. This notice will be visible while test mode is enabled or disabled.

A notice on the edit order page indicating that the order was placed in test mode.

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.
  5. Place your order.

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

After you’re taken to the Order received page, you can go back into your site’s dashboard and find the test transaction under WooCommerce > Orders and the Payments > Transactions page.

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 WooPayments 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.
  3. Enable authorize and capture.
  4. Place a test order as explained here.
  5. Go to WooCommerce > Orders and open the order you just placed.
  6. Confirm the order has a note in the sidebar stating: “A payment of $XX.XX was authorized using WooPayments.”
  7. Capture the charge.
  8. Confirm the order now has a note in the sidebar like so: “A payment of $XX.XX was successfully captured using WooPayments.”
  9. Go to Payments > Transactions.
  10. 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 (like Sofort, iDeal, BNPLs, etc.) is as simple as placing a test order while that payment method is selected. Most often, you’ll be taken to a page hosted by Stripe where you can choose 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.

Buy now, pay later

↑ Back to top

Please see the Testing section of the buy now, pay later document for full details on how to test our supported BNPL payment methods.

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.

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

Testing disputes

↑ Back to top

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

DescriptionNumberDetails
Transaction not authorized4000 0000 0000 0259The charge will be disputed as unauthorized. 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.