How It Works

Start sending SMS in minutes

Whether you send through the portal or via API, Kimisms makes bulk SMS simple, fast, and reliable across all Kenyan networks.

The process in 4 steps

Step 1

Create your account

Register with your business email and verify your account. Ready in under 2 minutes.

Step 2

Top up balance

Add SMS credit via M-Pesa or Jambopay. Your balance is credited instantly after payment.

Step 3

Upload contacts

Create a contact group and upload your recipients from a CSV file. Providers are detected automatically.

Step 4

Send & track

Compose your message and hit send. Track delivery status in real time across all networks.

Two ways to send SMS

Use the web portal or integrate via our API — both reach the same networks.

Portal user

Send SMS directly from the web dashboard

1
Register & verify email

Sign up with your business email and click the verification link to activate your account.

2
Top up via M-Pesa

Go to Billing → Topups, choose a package, and pay via M-Pesa STK push. Balance is ready instantly.

3
Upload your contacts

Go to Contacts → Contact Groups and upload a CSV with your recipients. The system detects Safaricom, Airtel, and Telkom numbers automatically.

4
Compose your message

Go to Sending → Bulk Blast, select your contact group, and type your message (up to 960 characters).

5
Send & monitor delivery

Click Send. Messages are processed in the background. Track delivered, sent, and failed counts in Reports → Blasts.

Quick tip: Use Sending → Quick Send to send a single message to one number for testing before launching a full campaign.

Developer / API user

Integrate SMS into your app or system via REST API

1
Create account & top up

Register, verify your email, and add SMS credit to your Sender ID balance.

2
Generate API credentials

Go to Developer → Credentials and click Generate to get your Client ID and Client Secret.

3
Get a Bearer token

POST your credentials to /api/generate-token to receive a short-lived access token (15 min).

4
Send SMS via API

POST to /api/send-sms with your token, sender name, recipient number, and message body.

5
Handle delivery callbacks

Pass a callback_url to receive real-time status updates (INITIATED → SENT → DELIVERED).

Quick example

# 1. Get token POST /api/generate-token { "grant_type": "client_credentials", "client_id": "...", "client_secret": "..." } # 2. Send SMS POST /api/send-sms Authorization: Bearer <token> { "sender_name": "KIMISMS", "contact": "254712345678", "message": "Your OTP is 482910" }

How your message travels

From the moment you hit Send to the recipient's phone.

✍️
Compose
💳
Balance check
Float deducted
📡
Provider routing
📱
Delivered

Kimisms routes to Safaricom, Airtel, and Telkom automatically based on the recipient's number prefix.

Contact CSV format

Your CSV file just needs a number column as the first column. Add up to 6 extra columns for personalised messages.

number,name,company,amount 254712345678,John Doe,Acme Corp,1500 254723456789,Jane Smith,Beta Ltd,2300 254734567890,Bob Wilson,Gamma Inc,850
Accepted formats: 254712345678 (12 digits), 0712345678 (10 digits), or 712345678 (9 digits).

Personalised messages

Reference your CSV column headers in curly braces to insert personal details into each recipient's message.

Template: Hi {name}, your invoice of KES {amount} from {company} is now due. Pay via M-Pesa Paybill 12345. Delivered as: Hi John Doe, your invoice of KES 1500 from Acme Corp is now due. Pay via M-Pesa Paybill 12345.
Create templates under Contacts → Templates and reuse them for recurring campaigns.

Ready to start sending?

Create your free account, upload your contacts, and send your first campaign in under 5 minutes.