500.001.1001STK Push result

M-Pesa error 500.001.1001: Transaction is still being processed

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 still processing this STK Push — the customer may not have entered their PIN yet. This is NOT a failure. (Daraja overloads this code: on a SYNCHRONOUS API call it can instead mean 'merchant does not exist' / 'wrong credentials' — that terminal case is matched on the message, see the api_error entry for the same code.)

How to fix it

Keep polling GET /status/:id (or wait for the webhook). Do NOT retry the charge and do NOT tell the customer it failed — this payment is still live and can still succeed.

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