STK Push on Hotspot
How M-Pesa STK Push works on the hotspot portal — what the customer sees, which gateways work, and what to check when a payment doesn't come through.
How STK Push works on the hotspot
When a customer selects a plan on the captive portal and enters their phone number, Jasiyo initiates an M-Pesa STK Push via your configured payment provider. Here's the full sequence:
- 1The customer picks a plan and enters their phone number on the portal
- 2An M-Pesa prompt appears on their phone
- 3The portal shows a countdown while it waits
- 4They enter their PIN to approve
- 5Their access is created on your router
- 6The portal confirms and sends them through to the internet
Supported payment providers
STK Push on the portal works with every gateway Jasiyo supports:
- Daraja (own Paybill)Direct Safaricom STK Push, using your own API credentials.
- Paybill or Till, no API keysSTK Push settling straight to your own Paybill or Till, with no Daraja application.
- Bank TransferSTK Push into a Paybill held at your bank, with no forwarding step.
- PayHero (bank Paybill)STK Push routed via PayHero to your bank.
- PaystackMobile money and cards, settling to your bank the next working day.
- IoTecMTN MoMo and Airtel Money, for Uganda.
The portal uses whichever gateway is assigned to your hotspot. If you have split gateways by service, make sure the hotspot half is actually set — see payment provider setup.
Timeout & retry
The portal counts down 60 seconds while it waits for the customer to approve the M-Pesa prompt, shown as a ring on screen.
If they do not approve in time the portal lets them try again. No money moves when an STK Push expires unapproved. If a customer taps pay again within a few seconds, Jasiyo reuses the prompt already on their phone rather than sending a second one, so they are never charged twice for one attempt.
If a payment fails or doesn't reflect
If a customer says they paid but aren't getting access, check:
Start at Customers → Hotspot and open the Didn't get online view. It lists exactly these customers: paid, but no traffic recorded.
- → Did they finish logging in? This is by far the commonest cause. Payment succeeded and the code was issued, but the customer closed the portal before the last step. Resend their code and ask them to reopen the portal.
- → Transactions — did the payment arrive at all? If it is missing entirely, the problem is between your gateway and Jasiyo, not on the router.
- → Router status — if the router is offline, their access is created as soon as it comes back.
- → One customer or many? A single case is usually the customer. Everyone at one site failing at once is the router or the portal, so check there rather than working case by case.
