If a customer pays by M-Pesa and tells you they never got the STK push prompt, here's how to diagnose what went wrong — usually it's one of a few common causes.
1. Wrong phone number format
The number must be a Safaricom (M-Pesa) line. Common entry mistakes:
- Typing a non-Safaricom number (Airtel, Telkom). M-Pesa STK Push only works on Safaricom.
- Typing a wrong digit (e.g. 0712345677 instead of 0712345678)
- Adding extra spaces (we trim these, but if the customer's keyboard inserted invisible characters, it can fail)
Fix: ask the customer to retry, double-checking the number.
2. The phone is offline or out of network
If the customer's phone is in airplane mode, switched off, or in a no-coverage area, the STK push won't arrive. It will time out after about 60 seconds.
Fix: ask the customer to check their signal and retry.
3. Stale STK prompts on the phone
If the customer has previously dismissed several STK prompts without responding, Safaricom temporarily blocks new prompts to that number for a short period.
Fix: wait 5–10 minutes and retry. If it still fails, ask the customer to dial *334# to reset the M-Pesa menu.
4. PayHero balance issue (your side)
If your PayHero account has insufficient balance for transaction fees, requests can fail before the STK push is sent. Check your PayHero dashboard for any balance warnings.
5. Wrong PayHero credentials
If you've recently rotated your PayHero API password and not updated it in your shop, every STK push request will fail. The error message at checkout will say "PayHero rejected your API credentials".
Fix: see Connecting PayHero to your shop.
6. Inactive PayHero channel
If your PayHero channel is paused or in test mode, real payments won't go through. Log in to your PayHero dashboard and check that the channel is Live and active.
If none of these match
Ask the customer to:
- Make sure they have at least the order amount + KES 1 in their M-Pesa balance
- Try paying with a different Safaricom number, if possible, to isolate the issue
- Wait 10 minutes and retry
If the problem persists across multiple customers, contact PayHero support — there may be a wider issue on their end.