Why isn't online payment or checkout working?
Suggestions appear as you type. Use the up and down arrows to choose one, or press Enter to ask.
Find the failed payment in your payment provider's dashboard first. It shows whether the customer's bank declined the card, a fraud filter blocked it, or your store caused the error. If every payment is failing, look at what changed: an update, payment keys, test mode, or cached cart and checkout pages.
How do I find out why a payment failed?
- Get the details from the customer: the time they tried, the amount, the payment method, and the exact error message. Ask them not to send card numbers.
- Find the payment in your provider’s dashboard. In Stripe, open Payments. Stripe’s guide to declines says each failed payment shows its details and the reason. In PayPal, look in your business account’s activity.
- Read the reason. Stripe sorts failures into three groups:
- Issuer declines: the customer’s bank said no.
- Blocked payments: Stripe’s fraud filter, Radar, stopped a payment it judged risky.
- Invalid API calls: your store sent something wrong. That’s a setup problem.
- Check the order in your store. In WooCommerce, open WooCommerce, Orders. WooCommerce’s guide to order statuses says Failed means the payment was declined and no money went through.
- Read the order notes, which often repeat the provider’s reason.
- Decide: one customer, or everyone? Then use the matching section below.
The short version
- One customer failing usually means their bank said no. Everyone failing means something changed on your store.
- Look up the payment in Stripe or PayPal first. Never charge a customer twice.
What if the bank declined it?
Stripe’s guide to card declines lists the common reasons: not enough funds, wrong card details, or the bank suspecting fraud on a large or unusual purchase. Most bank declines come back as a generic decline, which hides the real reason. Banks discuss it only with the cardholder, so the customer has to call them. A different card or payment method often works.
What if Stripe blocked it?
If Radar blocked a payment you know is genuine, Stripe says you can find it in the Dashboard and select Add to allow list. That doesn’t retry the payment. It stops your rules blocking matching payments later. Ask the customer to try again.
What if every payment is failing?
A checklist for a broken checkout, in order:
- Place a test order and note the exact error at each step.
- Check the payment provider’s dashboard for failed attempts. Confirm the store is using live keys, not test mode, and that nobody changed or revoked the keys.
- Check what changed recently. A WordPress, WooCommerce or payment plugin update can break checkout. The WooCommerce Stripe troubleshooting guide suggests checking the browser console for errors during checkout and turning on Log error messages in the plugin’s settings before testing.
- Check caching. WooCommerce’s guide to configuring caching plugins says the Cart, Checkout and My Account pages must be excluded from caching, because they show details for each customer. It matters because a speed or caching plugin can quietly break checkout.
- Check the site’s security certificate. Payment providers need a secure connection. If the browser says “Not secure,” see why your site says “Not Secure”.
- After the fix, place another test order and confirm the confirmation email arrives.
What if the customer was charged but there’s no order?
An order at Pending payment means, in WooCommerce’s words, that no payment has been made, so treat it as unpaid and don’t ship it. If the customer says they were charged, check for that payment in Stripe first. Only if Stripe shows a successful payment did the store miss the update. Payment providers report back to your store with messages called webhooks. Stripe’s webhooks guide shows where to see them: open Workbench, select the endpoint under Webhooks, and check Event deliveries for failures. If the payment is there, don’t charge the customer again. Move the order to Processing by hand, which WooCommerce uses for paid orders waiting to be sent, and mark it Completed only once it has shipped.
Why does it matter?
Every failed checkout is a customer who wanted to pay you. Some will try again. Many won’t, and you’ll never hear from them. A broken checkout can go unnoticed for days if nobody places a test order.
What are the common mistakes and edge cases?
- Test mode left on after setup, so real cards fail.
- Updating plugins on the live store without testing. Test updates on a staging copy first.
- Turning off plugins on the live store to find a conflict. Customers see the broken result. Do it on a staging copy.
- PayPal declines. These often need the buyer to log in to PayPal and check their funding source.
- A pending charge on a blocked payment. Stripe notes some customers may see one. No money was taken.
- Shipping errors that look like payment errors. If customers can’t get past the shipping step, see how to change shipping rates or sales tax.
What if this didn’t work?
- The payment never appears in Stripe or PayPal. The store never reached the provider. That points to a plugin, theme or setup problem.
- The site shows an error or blank screen at checkout. See critical error or blank white screen.
- You’re not sure whether money was taken. Check the provider’s dashboard before you reply to the customer.
How does E-3 handle this?
Tell us straight away if customers can’t pay. Send the time of the failed payment, the amount, the order number if there is one, and the error the customer saw. Please don’t send card numbers, customer payment details, or your payment account password.
A person at E-3 makes the fix. On sites in E-3’s website care, updates are tested on a staging copy first, and daily backups mean an earlier version can be restored. Call 814-399-4655 or email support@e3help.me.
Related questions
Did this fix it?
Sorry it didn’t. Try one of these next
Rather talk it through?
Call our team, or send a note and we’ll reply within one business day. No pressure and no jargon.