Support & Troubleshooting
Troubleshooting M-Pesa STK Push & Callbacks
Resolve M-Pesa payment issues: diagnose missing STK push prompts, fix credential misconfigurations, interpret Safaricom error codes, and manual re-verify.
Why STK Push Prompts Fail
When an M-Pesa payment fails to trigger or complete, inspect the following primary causes:
Diagnostic Checklist
Follow these steps to diagnose and fix M-Pesa issues:
- 1. Test Daraja Credentials: In Dashboard -> Settings -> Integrations -> M-Pesa, click "Test Daraja Connection". This verifies that your Consumer Key, Consumer Secret, and Passkey are valid with Safaricom.
- 2. Check Shortcode Type: Ensure "Paybill" is selected for 6/7-digit paybills, or "Buy Goods Till" for till numbers.
- 3. Validate Phone Number Format: Customers must enter phone numbers in national (`07...`, `01...`) or international format (`2547...`). The backend formats numbers automatically to `2547XXXXXXXX`.
- 4. Interpret Safaricom ResultCodes: `1032` = Customer cancelled STK prompt; `1` = Insufficient M-Pesa balance; `2001` = Wrong PIN entered; `1037` = Timeout awaiting customer PIN entry.
- 5. Manual Re-Verification: If money was deducted from customer but order shows pending, open Dashboard -> Payments and click "Verify Status" on the transaction row to sync instantly.