Bonaventure OgetoBy Bonaventure Ogeto|

Reducing Failed Payments in Your Store

Failed payments happen because of insufficient funds, expired cards, network timeouts, bank restrictions, and incorrect payment details. You can reduce failures by offering multiple payment methods (especially mobile money and bank transfers alongside cards), keeping your checkout fast and mobile-friendly, showing clear error messages so customers can retry, and making sure your integration handles timeouts gracefully. Monitor your failure rate in the Paystack Dashboard and investigate spikes immediately.

Why Payments Fail

Payments fail for reasons on the customer's side, on your side, and on the banking network's side. Understanding the categories helps you know which ones you can fix and which ones you cannot.

Customer-side reasons:

  • Insufficient funds in the account
  • Expired or blocked card
  • Card not enabled for online transactions
  • Wrong card details entered (card number, expiry, CVV)
  • Failed OTP or PIN entry
  • Customer's bank flagging the transaction as suspicious

Your-side reasons:

  • Checkout page is slow or unresponsive
  • JavaScript errors preventing the payment form from loading
  • Currency mismatch between your store and Paystack account
  • Integration bugs causing timeouts

Network-side reasons:

  • Banking network downtime
  • Paystack system issues (rare but happens)
  • Internet connectivity problems
  • Mobile money provider outages

You cannot fix a customer's empty bank account. But you can make it easy for them to try a different payment method or try again later.

Offer Multiple Payment Methods

The single biggest thing you can do to reduce failed payments is offer more payment methods. If a customer's card is declined, they should be able to switch to M-Pesa, bank transfer, or USSD without starting the checkout process over.

In most African markets, card payment success rates are lower than mobile money and bank transfer success rates. This is because many cards are not enabled for online transactions, OTP systems are unreliable, and consumers are less comfortable entering card details online.

Make sure your Paystack integration has all available payment channels enabled. This is usually a one-time configuration. Ask your developer to confirm that all channels (cards, bank transfer, USSD, mobile money) are active.

Consider which payment method should be shown first. In Kenya, lead with M-Pesa. In Nigeria, lead with bank transfer. Let the most popular local method be the default option that customers see first.

Show Clear Error Messages

When a payment fails, the customer needs to know what happened and what they can do about it. "Payment failed" tells them nothing. "Your card was declined. Please try a different card or use bank transfer instead" gives them a clear next step.

Good error messages do three things:

  1. Explain what happened in plain language
  2. Reassure the customer (they were not charged)
  3. Suggest a next step (try again, use a different method, contact support)

This is a conversation to have with your developer. Ask them to show you what happens when a payment fails on your checkout. If the answer is a blank screen or a generic error, ask them to add proper error messages for the most common failure reasons.

Paystack's API returns specific error codes and messages. Your developer can use these to show the customer exactly what went wrong.

Make Your Checkout Fast and Reliable

Slow checkouts cause timeouts. Timeouts cause failed payments. Failed payments cause lost sales.

If your checkout page takes a long time to load, especially on mobile phones with slower connections, the payment process is more likely to time out. The Paystack payment form needs to load, the customer needs to enter their details, and the transaction needs to process, all before the connection drops or the page times out.

Common speed killers:

  • Large images on the checkout page that take time to load
  • Too many scripts and plugins running on the page
  • No caching or optimization on the server
  • Hosting on a server that is geographically far from your customers

Ask your developer about the performance of your checkout page. They can measure the load time and identify bottlenecks. In many cases, simple optimizations (compressing images, reducing plugins, enabling caching) can cut load times significantly.

Make It Easy to Retry

When a payment fails, the customer should not have to start from scratch. They should be able to try again immediately, ideally with a different payment method, without re-entering their information or re-selecting their items.

The worst experience: a payment fails, the page refreshes, the cart is empty, and the customer has to find the product again, add it to cart again, fill out the form again, and try to pay again. Most customers will not bother.

Ask your developer to make sure the cart and checkout form persist after a failed payment. The customer should stay on the checkout page with their information preserved and be able to try paying again with one click.

Some businesses also send a follow-up message (email or WhatsApp) to customers who had a failed payment, reminding them that their cart is still saved and inviting them to try again. This simple tactic can recover a significant percentage of failed transactions.

Monitor Your Payment Failure Rate

Check your Paystack Dashboard regularly for failed transactions. Look at the ratio of failed to successful transactions. If your failure rate is consistently above 20 to 30%, something is wrong with your setup. If it suddenly spikes from 10% to 50%, something just broke.

Pay attention to patterns:

  • Failures concentrated on one payment method. If card payments are failing but bank transfers work, the issue might be with card processing or your OTP configuration.
  • Failures at specific times. If most failures happen in the evening, it might be network congestion or banking system maintenance windows.
  • Failures from one bank. If most failures are from customers of a specific bank, that bank might be having issues. Nothing you can do except offer alternative payment methods.
  • All methods failing. If everything is failing, check if your API keys are correct, your integration is running, and Paystack's status page shows any incidents.

Make a habit of checking your failure rate at least weekly. Write down what is normal for your business so you can spot anomalies quickly.

Tips for Improving Card Payment Success

Card payments have the highest failure rates in African markets. Here are specific tips:

Remind customers to enable online payments. Many African bank cards are not enabled for online transactions by default. Consider adding a note on your checkout page: "Make sure your card is enabled for online payments. You can do this through your banking app or by contacting your bank."

Support 3D Secure. Paystack handles this automatically, but make sure your integration does not interfere with the OTP or authentication step. Customers should be able to complete the bank authentication without issues.

International cards. If you accept international cards, make sure your Paystack account is configured for international payments. International transactions sometimes require additional verification.

Card tokenization for returning customers. If a customer has paid before, Paystack can save their card details (securely tokenized) so they do not have to enter them again. This reduces errors from mistyped card numbers and speeds up the checkout. Ask your developer about implementing this feature.

Key Takeaways

  • Most failed payments are not your fault, but many are preventable with the right setup.
  • Offering multiple payment methods reduces failures because customers can switch to a method that works.
  • Card payments fail more often than mobile money or bank transfers in most African markets.
  • Clear error messages help customers understand what went wrong and try again instead of leaving.
  • A slow or broken checkout causes timeouts that show up as failed payments in your dashboard.
  • Monitor your payment failure rate weekly. A sudden spike usually means something is broken.

Frequently Asked Questions

What is a normal payment failure rate?
A payment failure rate of 10 to 20% is common in African markets, though this varies by country, payment method, and business type. Card-only checkouts tend to have higher failure rates than those offering mobile money and bank transfers. If your failure rate is consistently above 30%, investigate.
Do failed payments cost me anything?
No. Paystack only charges fees on successful transactions. Failed transactions do not incur any fees. However, they do cost you lost sales, which is the more significant cost.
Can I see why specific payments failed in the Paystack Dashboard?
Yes. The transaction detail page shows the failure reason. Common reasons include "card declined," "insufficient funds," "expired card," and "transaction timed out." Use these reasons to understand patterns and take appropriate action.
Should I contact customers whose payments failed?
If you have their email from the checkout form, a brief follow-up message can recover sales. Keep it helpful, not pushy: "We noticed your payment did not go through. Your items are still in your cart. You can try again here: [link]."

Ready to build real-world apps?

Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Learn M-Pesa, USSD, and WhatsApp engineering while shipping 8 production apps.

Apply to the McTaba Marathon