26STK Push result

M-Pesa error 26: M-Pesa system busy

This is an STK Push (Lipa na M-Pesa Online) result code — it comes back on the Daraja callback after the customer responds to the payment prompt.

What causes it

M-Pesa is under high load and rejected the request because the system was busy. This is an M-Pesa-side condition, not your configuration.

How to fix it

Back off, then confirm the payment's final state with GET /status/:id (or the webhook) before charging again — a busy-system rejection is not proof no charge was raised. Only start a new attempt with a NEW idempotency key once you have confirmed nothing moved.

How paylod handles this

With paylod you never parse this code by hand: the hosted M-Pesa callback decodes the STK Push result for you and returns a normalized status, so you handle a clean success or failed webhook instead of raw Daraja result codes.

See the paylod M-Pesa API

Related M-Pesa error codes

Sources