Back to blog
June 13, 2026

How M-Pesa STK Push Works for Hotspot Billing in Kenya — No SMS Needed

Most hotspot billing systems in Kenya still rely on SMS confirmation or manual Paybill matching to connect subscribers. STK Push changes that — payment and connection happen in under 30 seconds, automatically.

Walk into any busy public space in Nairobi — a hotel lobby, a campus, a shopping mall — and you'll find a Wi-Fi hotspot. Connect to it, try to browse, and you hit a captive portal asking you to pay. What happens next varies enormously depending on what billing system the operator is running.

In the worst case: you're told to send money to a Paybill number, include an account reference, wait for an SMS, then come back to the portal and enter a code. Three steps, two minutes, and a non-trivial chance something goes wrong along the way.

In the best case: you tap a plan, enter your phone number, confirm a payment prompt on your phone, and you're online. Thirty seconds, start to finish.

The difference is M-Pesa STK Push. This article explains how it works, why it matters for hotspot operators, and what a properly implemented flow looks like end to end.


The Problem With Traditional Hotspot Payment Collection

Most hotspot operators in Kenya collect payments in one of two ways:

Voucher-based — The operator pre-generates voucher codes and sells them manually. A customer buys a code, enters it on the captive portal, and gets access. This works but creates operational overhead: you need to generate vouchers, distribute them, track which ones have been used, and handle the inevitable "my voucher doesn't work" support request.

Paybill with SMS parsing — The customer sends money to a Paybill or Till number, and the billing system watches for the M-Pesa confirmation SMS to match the payment to a pending session. This is fragile. SMS delivery in Kenya is unreliable — messages get delayed, sometimes by minutes, occasionally not at all. Parsing breaks when Safaricom changes their message format. And there's no feedback loop — the customer has no way to know if their payment was received until the internet either works or doesn't.

Both approaches share a common problem: friction. Every extra step between "I want to pay" and "I'm online" is an opportunity for the customer to give up or for something to go wrong.


What STK Push Actually Is

STK Push (SIM Toolkit Push) is a feature of Safaricom's Daraja API that lets a business initiate a payment request directly to a customer's phone. Instead of the customer manually sending money to a Paybill number, they receive a prompt on their phone asking them to confirm a specific payment — amount, recipient, and reference pre-filled — by entering their M-Pesa PIN.

From the customer's perspective it looks like this:

Safaricom M-PESA
Pay KES 50.00 to
Savanna Fiber Hotspot
for Daily Pass?

Enter PIN: ****

They enter their PIN, tap OK, and the payment is confirmed. Safaricom sends a real-time callback to the billing system confirming the transaction. The billing system acts on it immediately.

No SMS parsing. No manual matching. No waiting.


The Complete Hotspot Flow With STK Push

Here's what the end-to-end experience looks like on a properly implemented hotspot billing system:

Step 1 — Connect to Wi-Fi

The customer connects to the hotspot network on their phone or laptop. MikroTik intercepts their first HTTP request and redirects them to the captive portal — a branded page showing the operator's name and available plans.

Step 2 — Pick a plan

Plans are displayed clearly: name, duration, speed limit, and price. A daily plan might show "Daily Pass — 24 hours — 10Mbps — KES 50." Free plans, if the operator has enabled them, show a "Connect Free" button. Paid plans show "Pay via M-Pesa."

Step 3a — Free plan (if available)

One tap. The portal creates a session, gets credentials from MikroTik, and connects the customer automatically. Online within seconds. Whether to offer free plans is entirely the operator's decision — some use them as a trial to upsell paid plans, others run paid-only hotspots.

Step 3b — Paid plan via STK Push

The customer taps their chosen plan and enters their M-Pesa phone number. The billing system fires an STK Push request via the Daraja API. Within seconds, a payment prompt appears on the customer's phone. They enter their M-Pesa PIN. Safaricom confirms the payment back to the billing system in real time. The portal detects the confirmation, gets session credentials from MikroTik, and logs the customer in automatically. Total time: approximately 30 seconds.

Step 3c — Paybill fallback

STK Push occasionally fails — the customer's phone is off, they're on a slow network, or the prompt doesn't arrive. A good billing system handles this gracefully. If the STK Push doesn't resolve, the portal shows the Paybill number, the account reference (typically their phone number), and the exact amount to send. After paying manually, the customer taps "I've Paid — Check Now" and the portal verifies the payment and connects them.

This fallback matters in practice. Operators who only implement STK Push without a fallback leave customers stranded when Safaricom's delivery is slow.

Step 4 — "Already paid?" recovery

This is an often-overlooked but important part of the flow. A customer pays, the portal times out, they close the browser, or their phone restarts. They're now in a state where they've paid but aren't connected and can't get back to the portal easily.

A proper implementation includes a recovery path: a small link on the portal where the customer enters their M-Pesa number, the system looks up their pending payment, and connects them without requiring them to pay again. This eliminates a significant source of "I paid but my internet isn't working" support requests.

Step 5 — Connected

MikroTik's login redirect completes and the customer is browsing. Their session runs until the package duration expires — at which point they return to the captive portal to renew.


Why This Matters for Hotspot Operators

The business case for STK Push over manual Paybill collection comes down to three things:

Conversion rate — Every step of friction in the payment flow loses customers. A customer who has to manually send money to a Paybill number, remember an account reference, and wait for SMS confirmation is a customer who might just give up and use mobile data instead. A 30-second STK Push flow has significantly higher completion rates.

Support volume — The majority of hotspot support requests are payment-related: "I sent money but I'm not connected," "my voucher doesn't work," "I don't know what account reference to use." STK Push eliminates most of these by automating the entire payment-to-connection flow. The Paybill fallback and "Already paid?" recovery handle the edge cases.

Operator workload — Manual voucher management and Paybill reconciliation take time. An automated STK Push flow runs without operator involvement. A customer connects at 2am on a Sunday — they pay, they're online, nobody gets a WhatsApp message.


What to Look For in a Hotspot Billing System

If you're evaluating hotspot billing software for your MikroTik network, the payment integration is the most important thing to evaluate:

STK Push with Paybill fallback — STK Push should be the primary flow, but the fallback must exist. Operators who only offer STK Push leave customers stranded when delivery fails.

"Already paid?" recovery — A customer who paid but lost their portal session should be able to recover without contacting the operator. If the billing system doesn't handle this, your support inbox will.

Real-time session provisioning — Payment confirmation should trigger MikroTik session creation immediately, not on a polling interval. A 30-second delay between payment and connection is acceptable. A 5-minute delay is not.

Branded captive portal — The portal is the customer's first impression of your hotspot. It should show your brand, not generic billing software branding.

Free plan support — The option to offer a free tier (time-limited or speed-limited) is a useful tool for operators who want to let customers try before they buy. It should be configurable per hotspot, not a platform-wide setting.


The Operator Perspective

Running a hotspot in Kenya is a competitive business. Customers have alternatives — mobile data is widely available and increasingly affordable. The friction in your payment flow directly affects whether a customer connects to your hotspot or switches to their SIM card data instead.

STK Push doesn't just make payments faster. It makes them feel frictionless — the customer taps, confirms their PIN, and is online before they've had time to second-guess the decision. That experience is the difference between a hotspot that converts casual connections into paying sessions and one that loses customers at the payment step.

The technology to do this properly — Daraja API integration, real-time MikroTik session provisioning, fallback handling — is not simple to build. But for operators choosing a billing platform, it should be a baseline expectation, not a premium feature.


Oversight's hotspot billing includes M-Pesa STK Push, Paybill fallback, real-time MikroTik session provisioning, and a branded captive portal — out of the box on every plan. Start a free trial at oversight.co.ke.

Ready to automate your ISP billing?

Create a workspace, import your subscribers, and connect your first MikroTik router in under 10 minutes. Free trial — no card required.

oversight@2026·Terms & Conditions