The Friday Deploy
The plain English newsletter for people who run the business, not the tech stack. No jargon. Every Friday.
Your Payment Gateway Failed – What Customers See vs What’s Happening
Your customer is at checkout. They’ve spent 20 minutes selecting products, they’re ready to buy, and then: “Payment Failed. Please try again.”
You check Stripe. The transaction isn’t there. You check your error logs. There’s… something. Your developer says “gateway timeout” and starts talking about webhooks and API responses.
Here’s what actually happened, in plain English.
What Your Customer Saw
[Processing payment…] [Error: Payment Failed] “Please try again or contact support”
Your customer probably refreshed the page, tried their card again, then gave up and went to a competitor. You lost the sale, and worse – you lost their trust. They’re telling themselves your site is dodgy.
What Actually Happened (5 Common Scenarios)
1. The Gateway Timeout
Customer sees: “Payment Failed” What happened: Your site sent the payment request to Stripe/PayPal/whatever. It took too long to respond (usually >30 seconds). Your site gave up waiting. For the broader picture of what your site does (and doesn’t do) during that wait, see what’s actually happening behind a timeout.
The problem: The payment might have actually processed. Now you don’t know if the customer was charged or not, and neither do they.
Why it happens: Network congestion, gateway server issues, or your server being too slow to handle the response.
2. The 3D Secure Redirect Loop
Customer sees: Bouncing between your site and their bank’s verification page, eventually landing on an error What happened: Their bank requires extra verification (3D Secure). The redirect back to your site got confused about where to send them.
The problem: The payment session expired during the back-and-forth.
Why it happens: Incorrect return URLs in your gateway configuration, session cookies expiring, or the customer took too long on the bank page.
3. The “Declined” That Wasn’t Declined
Customer sees: “Payment Declined” What happened: The payment gateway rejected the request before it even reached the bank.
The problem: This isn’t the customer’s card being declined – it’s a validation error. Maybe the postcode didn’t match, or required fields were missing, or currency mismatch.
Why it happens: Form validation issues, address verification failures, or missing data being sent to the gateway.
4. The Webhook That Never Arrived
Customer sees: Stuck on “Processing…” indefinitely What happened: The payment processed successfully at the gateway, but the confirmation message (webhook) back to your site failed to arrive.
The problem: Your site never got told the payment worked. The customer was charged but you have no order record.
Why it happens: Firewall blocking webhooks, webhook endpoint misconfigured, or your server was down when the gateway tried to notify you. Your payment gateway is just one of many APIs you’ve never heard of quietly running your checkout.
5. The Multi-Tab Disaster
Customer sees: Error after clicking “Pay Now” What happened: They opened your checkout in multiple tabs. The payment session got confused about which tab was the “real” one.
The problem: Session conflicts mean the payment request came from an expired or invalid session.
Why it happens: Poor session management in your checkout flow.
What Decision-Makers Need to Know
When your developer says “payment gateway issue,” they’re rarely lying or being lazy. These are genuinely complex problems. But here’s what you should ask:
1. “Can we see what’s happening in real-time?” Good payment integrations log everything. You should be able to see: request sent, response received (or not), error codes, timing.
2. “How are we handling timeouts?” Your site should have retry logic and clear user messaging. “We’re checking your payment status – please don’t refresh” is better than “Payment Failed.”
3. “What happens to failed payments?” Are they captured in your system? Can you manually check if they actually processed? Or are they just… gone?
4. “Are we testing the unhappy paths?” Most developers test successful payments. Few test timeouts, network failures, and edge cases. That’s where customers get stuck.
The Business Impact You’re Not Measuring
Every payment failure isn’t just a lost sale. It’s:
- A customer who now doubts your site’s security
- A support ticket that costs $10-15 to handle
- A potential chargeback if they were charged but didn’t receive confirmation
- Cart abandonment data that looks like “pricing problem” when it’s actually technical
If you’re losing 2-3% of checkouts to payment failures, and your average order value is $150, a business doing $2M annually is losing $40-60K to fixable technical problems.
What Actually Fixes This
Not this: “Let’s switch payment gateways” This: “Let’s implement proper error handling and monitoring”
The gateway itself is rarely the problem. It’s how your site talks to it:
- Proper timeout handling
- Clear session management
- Webhook monitoring with alerts
- Retry logic that doesn’t confuse customers
- Logging that captures the whole conversation
When to Call For Help
You need technical maintenance if:
- Payment failures are increasing but you can’t see why
- Your developer is firefighting these issues constantly
- You’re getting “it worked in testing” when customers report errors
- You can’t confidently answer “what happens if X fails?”
This is exactly the kind of thing that doesn’t need a project. It needs someone who understands both payment systems and how to debug them systematically.
MV Studio provides Rails and Shopify maintenance for ecommerce businesses across APAC. If your checkout has mysterious failures that only appear in production, let’s talk.
Read more Technical Translation
3D Secure Issues, Checkout Abandonment, Checkout Errors, Ecommerce Technical Issues, Failed Transactions, Gateway Timeout, Payment Gateway Failure, Payment Processing Problems, Stripe Errors, Webhook Failure
Previous NextThe Friday Deploy
The plain English newsletter for people who run the business, not the tech stack. No jargon. Every Friday.