Testing WooPayments

This document provides instructions for testing payments, refunds, disputes, and the other functions of WooPayments. 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.

NOTE: Test mode does not charge any fees. Even if you still see the fees for an order listed in various places, this is only to show what you would have been charged had the order been placed in live mode.

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 Payouts, 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

When WooPayments is in test mode, the card payment form will show a basic test card number. Click the number to copy it, then paste it into the payment form.

You can also use any of the following test card numbers:

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

NOTE: The generic test cards shown above are U.S. cards. If your account country is not the U.S., and you use one of those cards for testing, you may see additional (test) fees on those transactions. Please see the section below for country-specific test cards you can use to avoid this.

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 2000 0021ArgentinaAny future dateAny three digits
4000 0003 6000 0006AustraliaAny future dateAny three digits
4000 0004 0000 0008AustriaAny future dateAny three digits
4000 0011 2000 0005BelarusAny future dateAny three digits
4000 0005 6000 0004BelgiumAny future dateAny three digits
4000 0007 6000 0002BrazilAny future dateAny three digits
4000 0010 0000 0000BulgariaAny future dateAny three digits
4000 0012 4000 0000CanadaAny future dateAny three digits
4000 0015 2000 0001ChileAny future dateAny three digits
4000 0015 6000 0002ChinaAny future dateAny three digits
4000 0017 0000 0003ColombiaAny future dateAny three digits
4000 0018 8000 0005Costa RicaAny future dateAny three digits
4000 0019 1000 0009CroatiaAny future dateAny three digits
4000 0019 6000 0008CyprusAny future dateAny three digits
4000 0020 3000 0002Czech RepublicAny future dateAny three digits
4000 0020 8000 0001DenmarkAny future dateAny three digits
4000 0021 8000 0000EcuadorAny future dateAny three digits
4000 0023 3000 0009EstoniaAny future dateAny three digits
4000 0024 6000 0001FinlandAny future dateAny three digits
4000 0025 0000 0003FranceAny future dateAny three digits
4000 0027 6000 0016GermanyAny future dateAny three digits
4000 0029 2000 0005GibraltarAny future dateAny three digits
4000 0030 0000 0030GreeceAny future dateAny three digits
4000 0034 4000 0004Hong KongAny future dateAny three digits
4000 0034 8000 0005HungaryAny future dateAny three digits
4000 0035 6000 0008IndiaAny future dateAny three digits
4000 0037 2000 0005IrelandAny future dateAny three digits
4000 0038 0000 0008ItalyAny future dateAny three digits
4000 0039 2000 0003JapanAny future dateAny three digits
3530 1113 3330 0000Japan (JCB)Any future dateAny three digits
4000 0042 8000 0005LatviaAny future dateAny three digits
4000 0043 8000 0004LiechtensteinAny future dateAny three digits
4000 0044 0000 0000LithuaniaAny future dateAny three digits
4000 0044 2000 0006LuxembourgAny future dateAny three digits
4000 0045 8000 0002MalaysiaAny future dateAny three digits
4000 0047 0000 0007MaltaAny future dateAny three digits
4000 0048 4000 8001MexicoAny future dateAny three digits
5062 2100 0000 0009MexicoAny future dateAny three digits
4000 0052 8000 0002NetherlandsAny future dateAny three digits
4000 0055 4000 0008New ZealandAny future dateAny three digits
4000 0057 8000 0007NorwayAny future dateAny three digits
4000 0059 1000 0000PanamaAny future dateAny three digits
4000 0060 0000 0066ParaguayAny future dateAny three digits
4000 0060 4000 0068PeruAny future dateAny three digits
4000 0061 6000 0005PolandAny future dateAny three digits
4000 0062 0000 0007PortugalAny future dateAny three digits
4000 0064 2000 0001RomaniaAny future dateAny three digits
4000 0068 2000 0007Saudi ArabiaAny future dateAny three digits
4000 0070 2000 0003SingaporeAny future dateAny three digits
4000 0070 3000 0001SlovakiaAny future dateAny three digits
4000 0070 5000 0006SloveniaAny future dateAny three digits
4000 0072 4000 0007SpainAny future dateAny three digits
4000 0075 2000 0008SwedenAny future dateAny three digits
4000 0075 6000 0009SwitzerlandAny future dateAny three digits
4000 0015 8000 0008TaiwanAny future dateAny three digits
4000 0076 4000 0003ThailandAny future dateAny three digits
4000 0078 4000 0001United Arab EmiratesAny future dateAny three digits
4000 0082 6000 0000United KingdomAny future dateAny three digits
4242 4242 4242 4242United StatesAny future dateAny three digits
4000 0085 8000 0003UruguayAny 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
Exceeding velocity limit4000 0000 0000 6975

Fraud prevention

↑ Back to top

The following card numbers can be used to test Stripe’s automated fraud prevention.

DescriptionNumber
Blocked by Stripe Radar4100 0000 0000 0019
Elevated risk level4000 0000 0000 9235

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 as shown above.
  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 (e.g. Bancontact, EPS, and so on) 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.

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.
Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.