System status

Resolved Major impact

M-Pesa payment disruption

13 November 2026, 7:40 PM to 10:30 PM East Africa Time

Summary

On the evening of 13 November, Safaricom's M-Pesa prompt service failed for several hours. Many payment prompts did not reach customers' phones, and the rush of retries slowed our system for a while. No money was taken for prompts that failed. Everything has been working normally since about 10:30 PM.

It came on the same day as a global Microsoft outage that took down Outlook, Teams and Microsoft 365 and disrupted many Kenyan banks and companies (details below).

The Safaricom error

For the prompts that failed, Safaricom returned this response:

{"Body":{"stkCallback":{"MerchantRequestID":"498d-453a-81cf-8a3a37b4e70116033","CheckoutRequestID":"ws_CO_13112026195205828743***629","ResultCode":9999,"ResultDesc":"Error occurred while sending push request."}}}

ResultCode 9999 means Safaricom received the payment request but could not deliver the prompt to the customer's phone. The customer never saw a prompt, so no money left their account. On a normal evening about 1 in 100 prompts fails this way; that evening it was more than 8 in 10.

The failures came from Safaricom's side and hit every kind of M-Pesa account at the same time, till numbers and bank Paybill accounts alike, across all ISPs on the platform. It was not caused by anything in your account or settings.

It happened on the same day as a global Microsoft outage that took down Outlook, Teams and Microsoft 365 around the world and disrupted many Kenyan banks and companies. Whether that outage played a part in Safaricom's problem has not been confirmed; Safaricom has not yet said what caused it.

When a prompt fails, customers try again, often several times. With most prompts failing, those retries arrived all at once, and that surge is what slowed the system and delayed some payment confirmations.

What you may have seen

  • Customers not receiving the M-Pesa prompt.
  • Some customers who paid but were not connected right away. Some saw "transaction not found" when logging in with their M-Pesa message.
  • Dashboards loading slowly or not opening, mostly between 8:00 PM and 8:40 PM.

What we did

  • Restored service on the affected servers.
  • Made sure a slow Safaricom can no longer hold up your system.
  • Kept genuine payment confirmations flowing while Safaricom was sending large numbers of failure messages.
  • Started crediting customers who paid during the disruption but were not connected. Customers who already have an active package are left as they are.

Where things stand

Payments, prompts and dashboards are working normally, and customers are being connected as usual.

What we have changed

  • A slow response from Safaricom can no longer freeze your dashboard or your customers' payments.
  • If Safaricom has a similar problem again, genuine payment confirmations are passed on first.

What you should do

  • A customer paid between 7:40 PM and 10:30 PM and is still not connected: give them a voucher for the package they paid for, or activate the package for them from your dashboard. You can also send their M-Pesa transaction code to support and we will connect them.
  • You connected customers by hand or with a voucher during the disruption: their M-Pesa payment may also show as income, so that evening's income can look higher than what you received.
  • Otherwise, nothing is needed.
We are sorry for the trouble this caused you and your customers. Thank you for your patience, and for the reports you sent while it was happening.
Timeline
  • 7:40 PMSafaricom starts failing payment prompts.
  • 7:50 PMMore than 8 in 10 prompts fail. Customers retry again and again, and the extra load slows the system.
  • 8:00 to 8:40 PMDashboards are slow or will not open, and some customers who paid are not connected right away.
  • 8:40 PMOur fixes are in place. The system stays stable from here, even while Safaricom remains slow.
  • 9:25 PMSafaricom's prompt failures stop.
  • 10:30 PMSafaricom is fully back to normal. Resolved.