By Kelvin Musagala, DevOps Web Designers
Friction
M-Pesa abandonment is usually a trust problem
When a buyer reaches payment, they have already done a lot of work. They found the product, chose a variant, accepted the price and moved through the cart. If they abandon at M-Pesa, the problem is often not the payment method itself. It is the way the store presents payment, handles waiting and confirms the result.
M-Pesa is familiar, but online checkout adds extra risk. The buyer is approving money through the phone while watching a website. If the website and phone do not feel coordinated, doubt appears. The customer wonders whether the prompt is real, whether the amount is correct, whether payment was received and whether the order will be fulfilled.
Fixing M-Pesa checkout therefore means removing doubt at every step. The website should explain what will happen, show consistent amounts, recover failed attempts and confirm payment clearly. That turns a familiar payment method into a reliable ecommerce experience.
Amount mismatch
Problem 1: The final amount changes too late
A buyer may accept the product price, then reach M-Pesa and see a different amount because delivery, service fees, packaging fees or discounts were applied late. Even if the amount is correct, the timing creates suspicion. Customers are careful with mobile money because the approval happens outside the website.
The cart, checkout and M-Pesa prompt should agree. If delivery fees are not known until checkout, explain that before payment. If a coupon changes the total, update the total immediately and visibly. If the store uses manual Paybill or Till payment, show the exact amount the customer should pay and avoid vague wording such as pay the total shown above when the page has several totals.
Simple rule
The amount on the phone should never surprise the buyer. If it does, trust drops at the most sensitive moment in the sale.
Prompt delivery
Problem 2: The phone number step is unclear
STK Push depends on the right phone number. Some buyers enter a delivery phone number that is different from the M-Pesa phone number. Others include country code formatting differently. Some use a phone that belongs to a spouse, parent, employee or company account. If checkout does not make this clear, prompt failure becomes likely.
Label the field clearly. If the number is for M-Pesa prompt, say so. If the store also needs a delivery phone number, decide whether the same field can serve both purposes or whether two fields are needed. If the website supports a Kenyan phone number format, guide the buyer with examples and validation that feels helpful rather than harsh.
- Use a clear label such as M-Pesa phone number for the payment field.
- Explain that the prompt will be sent to that number.
- Allow the buyer to correct the number before retrying payment.
- Avoid hiding payment phone number errors in generic failed checkout messages.
Retry
Problem 3: Failed prompts have no recovery path
Prompts can fail for normal reasons: wrong phone number, timeout, customer cancellation, insufficient balance, network delay or the customer missing the prompt. A good checkout expects this. A weak checkout simply says failed or leaves the customer staring at a loading state.
The customer should know what happened and what they can do next. Can they retry? Should they wait? Was the order saved? Will stock be held? Should they contact support if money was deducted? These questions need short, calm answers inside the payment flow.
Failed payment recovery is where many stores lose buyers who were still willing to pay. A retry button, clear message and saved order can recover a sale that would otherwise become an abandoned cart.
Paybill and Till
Problem 4: Manual payment instructions are too casual
Manual Paybill or Till payment can work, especially for smaller stores, but the instructions must be exact. A vague message like pay to our Till and send code to WhatsApp creates too many loose ends. The customer may pay the wrong amount, use the wrong reference, forget to send proof or worry that nobody saw the payment.
Manual instructions should include the business name, payment number, account reference, exact amount, confirmation step and expected processing time. If the account reference is the order number, make it prominent. If staff only process orders during business hours, say so. Silence after manual payment is one of the fastest ways to trigger support messages.
Weak instruction
Better instruction
Weak status
Better status
Confirmation
Problem 5: The order status says the wrong thing
Payment confirmation needs precise wording. If an unpaid order looks paid, staff may fulfil too early. If a paid order still looks unpaid, the customer may panic. If the order says pending without explanation, the buyer may pay again or contact support repeatedly.
Order statuses should match payment reality. Pending payment, payment failed, payment confirmed, processing, ready for pickup and dispatched all mean different things. The customer does not need internal technical labels, but they need plain-language updates. Staff need enough detail to act correctly.
This is why order notifications are part of checkout conversion. The payment experience does not end when the buyer approves the prompt. It ends when the customer receives a believable confirmation and the store knows what to do next.
Mobile UX
Problem 6: Mobile layout makes payment feel unsafe
Many buyers complete checkout on a phone. If the payment section is cramped, fields are hard to tap, totals disappear, buttons move during loading or error messages are hidden, the payment step feels risky. M-Pesa checkout should be designed for mobile first because the payment approval also happens on the phone.
Keep the payment step visually calm. Show the total near the payment action. Use buttons that do not shift while loading. Keep support access visible but not distracting. Make error messages readable. Avoid forcing buyers to scroll back and forth between instructions, order total and payment action.
The cart page optimization guide and checkout conversion guide cover the wider path around payment.
Trust
Problem 7: The business name or support path feels unclear
Buyers pay more confidently when the business name, website brand and payment prompt feel connected. If the prompt shows a name the buyer does not recognize, or the manual payment instructions use a different brand from the website, the customer may stop. That hesitation is reasonable. People are careful when approving mobile money.
Make the payment identity clear before the prompt appears. If the registered payment name differs from the trading name, explain it in the checkout copy. If using a payment provider, make sure the customer understands why they may see that provider in the payment step. Surprises at payment are rarely good for conversion.
Support should also be visible. A buyer who is unsure should have a way to contact the store without leaving the order completely. This can be a phone number, WhatsApp link or short support note, but it should not distract from the primary payment action. The goal is reassurance, not noise.
Operations
Problem 8: Staff do not follow one payment process
Sometimes checkout abandonment is worsened by what happens after failed or pending payment. One staff member tells customers to retry. Another asks for screenshots. Another cancels orders quickly. Another holds stock all day. Inconsistent handling creates customer confusion and makes the website look unreliable even when the technical payment flow is fine.
Create a simple staff process for each payment status. What happens after failed payment? How long is a pending order held? Who confirms manual payments? What message is sent when money was deducted but the order did not update? Who approves refunds? These decisions should be written before a busy day exposes the gaps.
The smoother the internal process, the calmer the customer experience becomes. Payment recovery is not only a button on the website. It is the whole way the store responds when the payment step does not go perfectly.
Analytics
Measure M-Pesa checkout like a sales funnel
To fix M-Pesa abandonment, track the payment journey. Look at checkout starts, payment method selection, payment prompt sent, payment success, payment failure, retry, order paid and purchase completion. Then compare those numbers with customer support messages. The data will usually show whether the problem is pricing, prompt failure, manual confirmation or unclear messages.
Review failed attempts by device, product type, delivery region and payment method where possible. If failure is concentrated on mobile, the layout may be the issue. If failures rise after delivery fees are shown, the issue may be total clarity. If many buyers contact support after paying manually, the issue may be order confirmation.
M-Pesa should reduce friction, not create a hidden support queue. A checkout that explains payment clearly, handles failed attempts and confirms orders cleanly will recover more buyers than a checkout that simply adds a mobile money option and hopes familiarity will do the rest.
Review these numbers after platform updates, payment provider changes and delivery-fee changes. A checkout can start losing buyers after a small change that looked harmless. Regular review keeps the payment flow honest.
Keep planning

