One call, sent immediately
POST /api/campaigns with your message, approved sender ID and numbers. There is no separate "send" step. Each number comes back with its own message_id and status.
SMS API · SMS gateway
Send one-time passwords, alerts and notifications from your own software to any Econet or NetOne number with a single HTTPS request.
SMSPoP connects to the networks directly: NetOne (071/072) over SMPP and Econet (077/078/079) over the operator's own interface. You don't manage binds, routing or number formats. You send JSON, and we work out the network for every number and route it.
POST /api/campaigns with your message, approved sender ID and numbers. There is no separate "send" step. Each number comes back with its own message_id and status.
Create Bearer tokens in your dashboard and revoke them at any time. Tokens belong on your server, never in a browser or mobile app.
Give us a webhook URL and we POST the final result for every message_id: delivered, undelivered or expired. No polling.
One-time codes take a fast path, are rate-limited per number to stop abuse, and are masked in your campaign history after an hour.
Send 0771234567, 771234567 or +263771234567: numbers are normalised, checked and sent over the right network.
Every response tells you the exact credits used. A standard SMS is 160 characters. Longer messages are billed per 153-character part.
Apply for a sender ID of up to 11 characters (for example your brand name) in the dashboard. Approval takes up to 7 working days.
Top up with EcoCash and generate an API token under API Tokens. The token is shown once, so store it in your server's environment settings.
Send the request on the right. You get a 200 with a message_id per number, and the SMS arrives a few seconds later.
The full API documentation covers webhooks, errors, message length and examples in JavaScript, PHP and Python.
cURL
curl -X POST https://smspop.co.zw/api/campaigns \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "Login code",
"message": "Your verification code is 482913. It expires in 10 minutes.",
"sender_id": "YOURBRAND",
"contact_import_method": "manual",
"manual_contacts": "0771234567"
}'
PHP (Laravel HTTP client)
$response = Http::withToken(env('SMSPOP_TOKEN'))
->acceptJson()
->post('https://smspop.co.zw/api/campaigns', [
'name' => 'Payment reminder',
'message' => 'Hi Tendai, your invoice of $40 is due on Friday.',
'sender_id' => 'YOURBRAND',
'contact_import_method' => 'manual',
'manual_contacts' => '0712345678',
]);
| Use | Typical message | Why SMS |
|---|---|---|
| Sign-up & login OTPs | Your verification code is 482913. | Works on every phone, with no data bundle or app needed |
| Transaction alerts | Payment of $25.00 received. Ref INV-1042. | Instant, so customers trust your system |
| Order & delivery updates | Your order #5531 is out for delivery. | Fewer "where is my order?" calls |
| Appointment reminders | Reminder: dentist tomorrow at 10:00. | Fewer no-shows |
| System & IT alerts | Server db-1 disk at 92%. | Reaches staff when email is not being read |
Not sure which network a number is on? See our guide to Zimbabwe mobile number prefixes, or how businesses use SMS for OTP verification.
No setup fees and no monthly subscription. From $0.02 per SMS, paid with EcoCash. Credits are valid for one year.
Questions? Call +263 71 423 9734 or contact our team.