Introduction
KasaNow is the premier programmable SMS API for developers and businesses in Ghana and across Africa.
To get started with KasaNow, you'll need:
- 1A KasaNow account: Sign up or Sign in to access your developer portal.
- 2SMS Wallet Credits: Top up your balance to unlock API key generation.
- 3A KasaNow Live API Key: Include your key in the
x-api-keyrequest header.
Account & Approval Access
Developers must log into a verified KasaNow account. Your account must be approved before you can generate API keys or execute outbound messages.
1. Sign In & Verify
Sign up and log in to view your profile, SMS credit balance, and Sender IDs.
2. Account Approval
Your account must be approved before API key creation is unlocked.
SMS Pricing & Top Up
Your account must be approved before you can access API key creation. KasaNow operates on a prepaid credit balance for outbound SMS messages.
Starter Developer Tier
Growth Tier
Reseller & High Volume Tier
Create your Live API Key
Go to API Keys in your dashboard sidebar. Once your account is approved by admin, click + Create to issue your live secret API key.
apikeyx-api-keySender ID Registration Guide
The sender parameter represents the custom name displayed on recipient mobile devices (e.g., "KASANOW" or your registered brand).
Alphanumeric names must be 1 to 11 characters long (A-Z, a-z, 0-9). Spaces are permitted.
In Ghana, custom company Sender IDs are verified against registered business names to prevent spoofing.
During sandbox testing or before your custom Sender ID is approved, use the default pre-approved ID: "KASANOW".
Phone Number Formatting
KasaNow automatically formats phone numbers to international standard E.164. However, adhering to recommended formats ensures maximum delivery speed across MTN, Telecel, and AT Ghana networks.
Quickstart
Learn how to make your first HTTP request to send SMS using cURL or your framework of choice.
curl -X POST https://lgjfiquiaynelpxrybowl.supabase.co/functions/v1/sms-send \
-H "Content-Type: application/json" \
-H "apikey: YOUR_SUPABASE_ANON_KEY" \
-H "x-api-key: YOUR_SECRET_KASANOW_API_KEY" \
-d '{
"sender": "KASANOW",
"to": "233XXXXXXXXX, 233YYYYYYYYY",
"message": "Hello from Kasanow SMS reseller API"
}'Postman Collection
Test the KasaNow SMS API in your Postman workspace without writing code. Import pre-configured requests for sending single SMS, bulk messaging, and checking delivery logs.
Official Postman Collection v2.1
Includes pre-set headers for apikey and x-api-key.
Authentication
The KasaNow Edge API authenticates requests using two HTTP headers.
apikeyPublic HeaderThe public Supabase gateway key. Required to route the request through the edge infrastructure safely.
x-api-keySecret HeaderYour secret KasaNow reseller key generated in the dashboard. Authenticates your account and bills your credit balance.
Error Codes
KasaNow uses standard HTTP response codes to indicate success or failure.
200 OKMessage delivered or queued successfully.400 Bad RequestMissing fields (sender, to, message) or invalid phone format.401 UnauthorizedInvalid or missing x-api-key header.402 Payment RequiredInsufficient wallet balance. Top up credits in dashboard.429 Rate ExceededToo many requests. Back off and retry.Webhooks
Receive real-time notifications for delivery reports directly to your server endpoint without polling.
{
"event": "sms.delivered",
"message_id": "msg_8091241",
"to": "233240000000",
"status": "DELIVERED",
"delivered_at": "2026-08-24T14:30:00Z",
"units_deducted": 1
}/functions/v1/sms-sendSend Single SMS
Sends an SMS to one or multiple recipient phone numbers in Ghana (233XXXXXXXXX).
senderRequiredApproved Sender ID name (e.g. "KASANOW").
toRequiredRecipient number(s) in format "233XXXXXXXXX" or comma-separated list.
messageRequiredText message body (e.g. "Hello from Kasanow SMS reseller API").
{
"status": "success",
"message_id": "msg_90128419",
"recipients_count": 2,
"units_charged": 2,
"balance_remaining": 98.0
}/functions/v1/sms-sendBulk Messaging
To send bulk SMS to multiple recipients at once, supply comma-separated numbers in the to parameter.
{
"sender": "KASANOW",
"to": "233241112222, 233503334444, 233205556666",
"message": "Special Announcement: KasaNow Bulk SMS is active!"
}/functions/v1/sms-status?id=msg_90128419Delivery Reports
Retrieve logs, carrier response status, delivery timestamps, and network details for any message.
{
"message_id": "msg_90128419",
"status": "DELIVERED",
"network": "MTN GHANA",
"delivered_at": "2026-08-24T14:31:02Z"
}