How to Accept M-Pesa Payments for an Internet Service Provider in Kenya
Sep 22, 2026

ISPs in Kenya face a critical challenge: collecting subscription payments reliably from hundreds of customers. Manual methods waste time. Limited payment options frustrate customers. Late payments disrupt cash flow. This guide shows you exactly how to accept M-Pesa payments for internet subscriptions—from setup to payment confirmation to handling non-payment. You'll learn the differences between Paybill, Till, and STK Push, and discover which method works best for your ISP.
The ISP Payment Collection Problem
If you run an ISP with 200+ customers, you're spending 20+ hours monthly chasing payments. Some customers pay on time. Most delay. A few disappear. You manually track who paid and who didn't. By month's end, 8-12% haven't paid—that's KES 48K-120K in bad debt.
The cost isn't just unpaid accounts. It's also admin time, unpredictable cash flow, and customer frustration with complicated payment methods.
According to Safaricom's 2025 data, 30+ million Kenyans use M-Pesa actively. Communications Authority of Kenya data shows M-Pesa accounts for 80%+ of digital transactions. Yet most ISPs still rely on manual bank transfers or Paybill entry.
The solution? Accept M-Pesa correctly. When payment is easy, collection improves 60-80% and bad debt drops 60-80%.
Your M-Pesa Options: Paybill vs Till vs STK Push
You have three ways to accept M-Pesa. Each has different tradeoffs.
Paybill (Manual Entry)
Customer manually enters your Paybill number, amount, and PIN. 8 steps. High error rate.
Pros: Simple setup (register with Safaricom), low cost (1-2% fees)
Cons: Low success rate (60-75%), high admin burden, slow collection (10-14 days), high bad debt (8-12%)
Best for: Small ISPs (<50 customers) or backup payment method.
Till (In-Person)
Customer walks to your office and pays via Till code. Immediate payment, face-to-face.
Pros: Instant payment, no errors, builds relationships
Cons: Requires physical location, doesn't scale, only works for walk-in customers
Best for: ISPs with office locations where customers visit.
STK Push (Automatic Prompt)
Your system sends automatic payment prompt directly to customer's phone. Customer sees amount and enters PIN. Two steps. 90%+ success rate.
Pros: Highest success (90-95%), fast collection (1-3 days), automatic reconciliation, low bad debt (2-3%), minimal customer friction, scales effortlessly
Cons: Requires API integration, slightly higher fees (1-3%), one-time payment per billing cycle
Best for: ISPs with 100+ customers who want reliable, scalable collection.
How M-Pesa STK Push Works
STK Push sends an automatic payment prompt directly to the customer's phone. No customer action is needed to trigger it—the prompt appears automatically.
The customer experience:
Your billing system sends STK Push on due date
M-Pesa prompt appears on customer's phone automatically
Customer sees amount (KES 3,000) and merchant name
Customer enters PIN
Payment settles instantly
Customer receives confirmation
Total time for customer: 30 seconds.
Behind the scenes:
Your system initiates STK Push via payment gateway API
Safaricom delivers prompt to customer's M-Pesa app
Customer authorizes with PIN
Payment settles to your M-Pesa account (instant)
Payment gateway sends webhook to your system
Your billing system automatically matches payment to customer and marks invoice as paid
Customer receives M-Pesa receipt + SMS confirmation from you
Result: No manual reconciliation needed.
Paybill vs Till vs STK Push Comparison
Factor | Paybill | Till | STK Push |
|---|---|---|---|
Success rate | 60-75% | 95%+ | 90-95% |
Collection time | 10-14 days | Immediate | 1-3 days |
Bad debt rate | 8-12% | <1% | 2-3% |
Admin time/month | 20+ hours | 5-10 hours | 2-3 hours |
Scalability | Poor | Poor | Excellent |
Customer friction | High (8 steps) | Low (in-person) | Minimal (2 steps) |
Cost | 1-2% | 1-2% | 1-3% |
What Happens After Payment
Automatic Reconciliation
This is STK Push's superpower. Your system automatically knows:
Payment amount: KES 3,000
Customer: John Wanjiru (phone 0712345678)
Invoice: #12345
Timestamp: 30 May, 8:15 AM
Status: Successful
Your billing system automatically:
Finds invoice #12345 for John Wanjiru
Marks invoice as "Paid"
Updates customer status to "Active"
Extends service to next period
Logs transaction for accounting
No manual work needed.
Customer Confirmations
Customer receives:
M-Pesa receipt: "You have sent KES 3,000 to SafeNet ISP. Ref: 123ABC456"
ISP confirmation: SMS or WhatsApp: "Thank you for your payment, John. Your service is active until 30 June 2026."
Both arrive instantly.
Handling Failed Payments & Non-Payment
When payments fail:
Insufficient balance
Disabled account
Network issue
Daily limit exceeded
Your system should:
Log failure reason
Don't suspend immediately
Send retry reminder next day
Retry STK Push automatically
When customers don't pay (escalation):
Day 30: STK Push sent
Day 31-35: Overdue. Send reminder, retry STK Push
Day 36-40: "Service will be suspended on [date]"
Day 41+: Suspend service
Your billing system should track overdue accounts and trigger automatic escalation.
Payment Reminders & Automation
Successful ISPs use this reminder schedule:
Day 25 (5 days before): WhatsApp reminder
"Your bill of KES 3,000 is due on 30th. You'll receive an automatic payment prompt."
Day 30 (Due date): STK Push (automatic)
Prompt appears on phone automatically.
Day 32 (2 days overdue): WhatsApp reminder
"Your payment is overdue. Please pay immediately: [link]"
Day 36 (6 days overdue): Final warning
"Service will be suspended on 1 June if payment isn't received."
Day 41 (11 days overdue): Suspend service
Your billing system automates all of this. No manual intervention needed.
Connecting M-Pesa to Your Billing System
Your billing system (MikroTik, UniFi, custom, or Shopify) must integrate with a payment gateway via API.
Integration flow:
You send STK Push request to payment gateway
Gateway delivers prompt to customer's phone
Customer authorizes payment
Payment settles to your account
Gateway sends webhook to your billing system
Your system receives confirmation and automatically updates customer/invoice status
Requirements:
Your billing system must have API capability
Ability to receive webhooks
Ability to store payment details
Compatibility:
MikroTik CHR: Yes (with API integration)
UniFi: Yes (via third-party plugin)
Custom systems: Yes (if API-capable)
Shopify: Yes (directly)
Integration time: 2-4 hours for technical setup.
Build It Yourself vs Use a Payment Provider
Build Yourself
Pros: Maximum control, deep customization
Cons: 100-200 development hours, ongoing maintenance, requires experienced developer, slow to add features
Timeline: 3-6 months
Best for: Large ISPs (1,000+ customers) with unique requirements
Use a Payment Provider (Recommended)
Pros: Ready-to-use, fast implementation (days), provider handles compliance/security, multiple payment methods, support team, detailed docs
Cons: Per-transaction fees (1-3%), some customization limits
Timeline: 1-2 weeks
Cost: Fees offset by reduced admin time and bad debt
Best for: Most ISPs (50-500 customers) where speed matters.
Security Considerations
M-Pesa security (Safaricom's responsibility):
Regulated by Central Bank of Kenya
All transactions encrypted
Customer's PIN never shared with you
Your responsibilities:
Protect API keys: Store securely, rotate periodically
Verify webhooks: Confirm payment notifications are authentic
Encrypt customer data: Phone numbers, payment records
Rate limiting: Limit STK Pushes per customer (prevents spam)
Audit logging: Log all payment attempts for 12 months
HTTPS only: Encrypt all communication
Real-World Impact: SafeNet ISP Example
Before STK Push:
280 customers, KES 1M monthly revenue
Collection rate: 72% (200 paying, 80 late/non-payment)
Bad debt: KES 280K/month
Admin time: 22 hours/month
Cash flow: Unpredictable (day 5-20)
After STK Push (3 months):
Collection rate: 94%
Bad debt: KES 42K/month (85% reduction)
Admin time: 2.5 hours/month (88% reduction)
Cash flow: Consistent (day 2-3)
Monthly financial impact:
Reduced bad debt: KES 238K
Reduced admin time: KES 9.75K
IntaSend fees (1.5%): -KES 14.1K
Net benefit: KES 233K/month = KES 2.8M annually
Your Implementation Timeline
Week 1:
Audit current payment situation (collection rate, bad debt, admin time)
Evaluate billing system's API capability
Get quotes from payment providers
Week 2:
Choose build vs provider approach
If using provider: Complete KYC registration
Week 3-4:
Implement integration
Test with 20-30 customers
Monitor and optimize
After launch:
Track metrics: collection rate, days to collect, bad debt
Optimize reminders based on customer behavior
Getting Started with IntaSend
IntaSend is a payment gateway specifically designed for Kenyan businesses. For ISPs, it provides:
Core features:
M-Pesa STK Push (automatic payment prompts)
Multiple payment methods (M-Pesa, bank transfer, card)
Automatic reconciliation (webhook integration)
Real-time dashboard and reporting
PCI compliance and security
Developer-friendly API with documentation
Implementation with IntaSend:
Week 1: Sign up, complete KYC, get API keys
Week 2: Developer integrates with your billing system, test
Week 3: Pilot with 20-30 customers
Week 4: Full rollout
The Bottom Line
STK Push eliminates the ISP payment collection problem. Collection rate improves 60-80%. Bad debt drops 60-80%. Admin time drops 80-90%. Customers get effortless payment experience.
The only question: Will you implement it this month?
Accept M-Pesa Payments for Your ISP with IntaSend
Give your customers a simple way to pay their internet subscriptions through M-Pesa STK Push while making payment collection easier to manage.
Questions?
WhatsApp: +254 711 082 947
Email: support@intasend.com
Phone: +254 114 114 644

