Troubleshooting payment problems
How to diagnose and fix common WooCommerce payment failures — declined cards, gateway errors, and checkout issues.
Payment problems are stressful — both for you and your customers. Most have a clear cause. This guide walks you through the most common payment issues and how to resolve them quickly.
Quick summary
When a payment fails, check these in order: (1) Is the payment gateway enabled and properly connected? (2) Is the site using HTTPS? (3) Are there plugin conflicts? (4) What does the error message actually say? Most payment problems are gateway configuration issues, not code problems.
Quick diagnostic checklist
Before diving deep, run through this list:
- HTTPS is active on the checkout page (URL starts with
https://) - The payment gateway is enabled in WooCommerce → Settings → Payments
- The gateway is connected to a live (not test) account
- API keys are entered correctly — no extra spaces
- The gateway's test mode is turned off
- No recent plugin or WordPress updates that might have caused a conflict
Problem: "Payment could not be processed" error at checkout
This generic error covers many causes. Work through these:
Check the WooCommerce logs. Go to WooCommerce → Status → Logs. Select the log file for your payment gateway (e.g., "stripe" or "paypal"). Look for error messages from around the time of the failed payment.
Check your payment gateway dashboard. Log in to Stripe/PayPal and look at the failed payments section. The gateway usually gives a specific reason (declined, invalid card, insufficient funds, etc.).
Try with a different card or payment method to rule out a bank-side decline.
Try in an incognito/private browser window to rule out browser extensions or cookies interfering.
Problem: Stripe error messages
| Stripe message | Likely cause | What to do |
|---|---|---|
| "Your card was declined" | Bank declined the charge | Customer should call their bank or use a different card |
| "Your card's security code is incorrect" | Wrong CVV entered | Customer should recheck the 3-digit code |
| "Your card has expired" | Expired card | Customer needs to update their card |
| "Invalid API key provided" | Wrong API key in settings | Re-enter API keys from Stripe dashboard |
| "No such customer" | Token mismatch | Clear site cache; if persists, contact us |
Problem: PayPal not appearing at checkout
Check that PayPal is enabled in WooCommerce → Settings → Payments.
Clear your site's cache. Caching plugins can serve an old version of the checkout without the PayPal button.
Disable other plugins temporarily to check for a JavaScript conflict. PayPal's checkout button relies on JavaScript — another plugin may be blocking it.
Check the browser console for errors. Right-click the checkout page, select "Inspect" (or "Developer Tools"), and click the Console tab. Red errors here give clues. Share a screenshot with us if you see errors.
Problem: Customer was charged but order not created
This happens when the payment gateway sends a confirmation (webhook) to your site, but something went wrong receiving it.
Check your payment gateway's webhook settings. In Stripe, go to Developers → Webhooks. Confirm the endpoint URL points to your site (e.g., https://yourstore.com/?wc-api=WC_Stripe).
Look at recent webhook events in Stripe/PayPal dashboard. If deliveries show as failed, the URL may be wrong or your site may have blocked the request.
Contact us. Webhook configuration issues are a common cause and require a bit of technical knowledge to fix correctly.
If the customer was charged but has no order
Confirm this with your payment gateway before telling the customer anything. If they were charged, process their order manually (WooCommerce → Orders → Add Order) and refund any duplicate charge. Do not ask them to pay again until you're sure.
Problem: Test mode is still on
If real customers get an error like "Test mode is active" or "No payment methods are available," your gateway is in test mode.
Go to WooCommerce → Settings → Payments.
Click on your payment gateway (e.g., Stripe).
Find "Test mode" or "Enable test mode" and make sure it is unticked.
Confirm your Live API keys are entered, not your test keys.
Save changes.
Common questions
Related guides
- Payment methods explained
- Accepting credit cards (Stripe & more)
- Accepting PayPal
- Troubleshooting order problems
Need a hand?