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, be aware that the transaction fees associated with those orders will NOT be refunded. Please use test mode for all test orders.
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, you need to switch WooPayments into test mode.
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.
NOTE: Other plugins or services that integrate with WooCommerce may not be able to differentiate between real orders vs. test mode orders. Please check the documentation for each integration to see how you should handle testing. Alternatively, you can disable them while testing WooPayments.
To enable test mode:
- Go to Payments > Settings in your site’s dashboard.
- Check the Enable test mode box.
- Click Save changes at the bottom of the page.
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.
To place a test order in test mode:
- Enable test mode as shown above.
- Go to your site’s shop and add a product to your cart.
- Proceed to the checkout page and fill out the form.
- Enter a test card number, expiry date, and CVC code.
- 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 in all the usual places, including under WooCommerce > Orders and in the list on the Payments > Transactions page.
To test payments, the following test card numbers should be used:
|Number||Brand||Exp. Date||CVC Code|
|4242 4242 4242 4242||Visa||Any future date||Any three digits|
|4000 0566 5566 5556||Visa (debit)||Any future date||Any three digits|
|5555 5555 5555 4444||Mastercard||Any future date||Any three digits|
|5105 1051 0510 5100||Mastercard (prepaid)||Any future date||Any three digits|
|3782 8224 6310 005||American Express||Any future date||Any three digits|
|6011 1111 1111 1117||Discover||Any future date||Any three digits|
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.
|Number||Country||Exp. Date||CVC Code|
|4000 0003 6000 0006||Australia (AU)||Any future date||Any three digits|
|4000 0004 0000 0008||Austria (AT)||Any future date||Any three digits|
|4000 0005 6000 0004||Belgium (BE)||Any future date||Any three digits|
|4000 0007 6000 0002||Brazil (BR)||Any future date||Any three digits|
|4000 0012 4000 0000||Canada (CA)||Any future date||Any three digits|
|4000 0025 0000 0003||France (FR)||Any future date||Any three digits|
|4000 0027 6000 0016||Germany (DE)||Any future date||Any three digits|
|4000 0037 2000 0005||Ireland (IE)||Any future date||Any three digits|
|4000 0038 0000 0008||Italy (IT)||Any future date||Any three digits|
|4000 0048 4000 8001||Mexico (MX)||Any future date||Any three digits|
|4000 0052 8000 0002||Netherlands (NL)||Any future date||Any three digits|
|4000 0055 4000 0008||New Zealand (NZ)||Any future date||Any three digits|
|4000 0061 6000 0005||Poland (PL)||Any future date||Any three digits|
|4000 0062 0000 0007||Portugal (PT)||Any future date||Any three digits|
|4000 0072 4000 0007||Spain (ES)||Any future date||Any three digits|
|4000 0075 6000 0009||Switzerland (CH)||Any future date||Any three digits|
|4000 0082 6000 0000||United Kingdom (UK)||Any future date||Any three digits|
|4242 4242 4242 4242||United States (US)||Any future date||Any three digits|
The following card numbers can be used to test payments requiring 3D Secure Authentication.
|Authenticate unless set up||4000 0025 0000 3155||This 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 authenticate||4000 0027 6000 3184||This card requires authentication on all transactions, regardless of how the card is set up.|
|Already set up||4000 0038 0000 0446||This 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 funds||4000 0082 6000 3178||This card requires authentication for one-time payments. All payments are declined for insufficient funds even after being successfully authenticated or previously set up.|
The following card numbers can be used to test what happens when the payment is declined by the customer’s bank for various reasons.
|Generic decline||4000 0000 0000 0002|
|Insufficient funds||4000 0000 0000 9995|
|Lost card||4000 0000 0000 9987|
|Stolen card||4000 0000 0000 9979|
|Expired card||4000 0000 0000 0069|
|Incorrect CVC||4000 0000 0000 0127|
|Processing error||4000 0000 0000 0119|
|Incorrect number||4242 4242 4242 4241|
To test a card payment authorization with manual capture:
- Go to Payments > Settings in your site’s dashboard.
- Enable test mode and the separate auth and capture setting.
- Place a test order as explained above.
- Go to WooCommerce > Orders and open the order you just placed.
- Confirm the order has a note in the sidebar stating: “A payment of $XX.XX was authorized using WooPayments.”
- Capture the charge.
- Confirm the order now has a note in the sidebar like so: “A payment of $XX.XX was successfully captured using WooPayments.”
- Go to Payments > Transactions.
- Confirm that a corresponding transaction with the type Charge is listed.
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.
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.
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.
Please see the Testing section of the buy now, pay later document for full details on how to test our supported BNPL payment methods.
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.
|AT591904300235473203||Payment succeeds, but is disputed.|
To test refunding an order:
- Place a test order as shown above.
- Go to WooCommerce > Orders.
- Click the order ID of the test order.
- Follow the refund process as usual.
The order status should change to Refunded, and your test balance will be reduced.
To simulate a dispute with WooPayments, place a test order as shown above using one of the cards from this table:
|Transaction not authorized||4000 0000 0000 0259||The charge will be disputed as unauthorized. This type of dispute is protected after 3D Secure authentication.|
|Product not received||4000 0000 0000 2685||With 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.
After creating a dispute with a dispute test card above, you can also test the dispute response process.
- Go to Payments > Disputes in your site’s dashboard.
- Click the dispute in the list to open it up.
- Click Challenge Dispute.
- In the Additional Details field, do one of the following:
winning_evidenceto win the dispute.
losing_evidenceto lose the dispute.
- At the bottom, click Submit Evidence.
You can also accept the dispute in Step 3 instead of challenging it to test that scenario.