17STK Push resultM-Pesa error 17: M-Pesa system internal error
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
Safaricom's system (or the receiving shortcode / Party B) was temporarily unable to process the transaction — a transient M-Pesa-side error, not a problem with your request.
How to fix it
Wait ~30-45 seconds and retry the same request; if it persists across many attempts, check the Safaricom status page.
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