Reach every phone in Zambia — no app, no smartphone required. Developers integrate with a simple JSON API and a live sandbox. Organisations go live across all three operators through one gateway, with billing and analytics built in.
Self-serve. Create an account, get keys, and point a *388*N# shortcode at your HTTPS endpoint. We POST JSON, you reply JSON.
POST /your/ussd → { "sessionID": "...", "input": "1" }
reply 200 → { "response_string": "Welcome",
"continue_session": true }We handle it for you. Reach every customer on any handset — banks, government, utilities, NGOs — no app and no smartphone needed. Live in days.
Trusted by leading organizations across Zambia
Powerful tools to manage, monitor, and optimize your USSD gateway services from a single dashboard.
Monitor active sessions, response times, and service health with live updates and visual indicators.
Deep insights with daily, weekly, and monthly reports. Export data in CSV or JSON for further analysis.
Manage shortcode routes, callback URLs, and service endpoints with an intuitive configuration panel.
Test USSD journeys across Airtel, MTN, and Zamtel without needing a physical handset.
Search, filter, and export transaction logs with real-time streaming and advanced filtering.
Automated health checks with alerts for service degradation, timeouts, and endpoint failures.
From mobile money to citizen services, organizations across Zambia reach every handset — smartphone or not — through *388#.
Balance checks, transfers, and mini-statements over secure USSD sessions — no app or data bundle required.
Self-service menus for airtime, bundles, and subscriptions across Airtel, MTN, and Zamtel.
Micro-insurance enrollment, premium payments, and claims status accessible from any phone.
Market prices, input ordering, and advisory services delivered to farmers in rural areas.
Citizen registration, service requests, and notifications reaching every constituent.
Appointment booking, health tips, and survey collection through simple menu flows.
A complete toolkit — from session routing to billing — in one management console.
Smart shortcode routing with failover across all operators.
Design multi-level USSD journeys without writing code.
Live dashboards for sessions, funnels, and drop-off.
Per-session billing, client rates, and invoicing built in.
Test full journeys per network without a handset.
Searchable, exportable logs with real-time streaming.
Connect your services with REST callbacks and keys.
Self-service onboarding, API keys, and shortcodes.
From registration to production traffic — most integrations go live in days, not months.
Sign up on the developer portal, get your API keys, and request a shortcode under *388#.
Build and test your USSD flows in the simulator, then wire up callbacks to your services.
Switch to production across all MNOs and watch real-time analytics, logs, and SLA health.
Point your *388*N# service at any HTTPS endpoint. For every keypress the OnTech gateway POSTs JSON to your URL, and you reply with JSON. That is the entire contract.
POST https://your-service/ussd
Content-Type: application/json
{
"sessionID": "17822920860361322",
"msisdn": "260970000000",
"input": "388*4",
"isnewrequest": "1"
}
HTTP 200
Content-Type: application/json
{
"response_string": "Welcome to My Service\n1. Check balance\n2. Buy bundle",
"continue_session": true
}
sessionID — unique ID for the whole USSD dialog. Use it to correlate the steps of one session. You don't echo it back.isnewrequest — "1" on the first request of a session, "0" on every request after. Sent as a string.input — what the subscriber entered (the dialed code on the first hit, e.g. 388*4; their keypress thereafter).msisdn — the subscriber's phone number. These four fields are the entire request — there is no mno, shortcode, request_id or session_data.response_string — the exact text shown on the subscriber's handset. Required.continue_session — true keeps the session open for the next input (a menu); false shows a final message and ends the session. Required.sessionID. There are no status, state, or Freeflow (FC/FB) codes — the entire lifecycle is isnewrequest coming in and the boolean continue_session going out. Send continue_session: false to end the session.CON/END are not accepted — a non-JSON body or a missing field results in “Service response error” for the caller.SCREEN 1 — subscriber dials *388*4#
→ OnTech POSTs:
{ "sessionID": "S-7781", "input": "388*4", "isnewrequest": "1",
"msisdn": "260970000000" }
← you return:
{ "response_string": "Welcome to ACME\n1. Check balance\n2. Buy bundle",
"continue_session": true } // menu stays open
SCREEN 2 — subscriber presses 1
→ OnTech POSTs:
{ "sessionID": "S-7781", "input": "1", "isnewrequest": "0",
"msisdn": "260970000000" }
← you return:
{ "response_string": "Your balance is K12.50.\nThank you for using ACME.",
"continue_session": false } // final screen, session ends
Your sessions, transactions, and subscriber data are protected at every layer of the gateway.
Short-lived JWTs with automatic refresh and role-based access control across every console.
All traffic between operators, the gateway, and your services is served strictly over TLS.
Every session and admin action is logged, searchable, and exportable for compliance.
Built-in data-subject request handling and retention controls for subscriber privacy.
Continuous health checks with alerting on latency, timeouts, and endpoint failures.
Automated flagging of unusual traffic patterns to catch abuse and fraud early.
Already own a code, want your own, or want to launch today under *388# — Ontech supports all three, across Airtel, MTN and Zamtel.
Already have a dedicated USSD shortcode? Ontech connects it to the gateway and routes it to your service across every network — you keep full ownership of the code.
Want your own dedicated *XYZ# code? Ontech guides you through acquisition and provisioning with the regulator (ZICTA) and the mobile operators, and handles the technical setup end to end.
Go live fast on a shortcode sub-string under Ontech's *388*N# space, with your own branded menus and submenus — no dedicated-code lead time or cost.
The service commitments regulated banks and mobile operators expect — guaranteed uptime, round-the-clock monitoring, and a defined escalation path with response times you can put in a contract.
| Severity | Definition | Response | Resolution target | Coverage |
|---|---|---|---|---|
| Sev-1 Critical | Service down or payments failing across a network | 15 minutes | 4 hours | 24×7×365 |
| Sev-2 High | Major function degraded; a single MNO or shortcode affected | 30 minutes | 8 business hours | 24×7×365 |
| Sev-3 Medium | Minor or partial impact with a workaround available | 4 business hours | 2 business days | Business hours |
| Sev-4 Low | Question, configuration change, or enhancement request | 1 business day | Scheduled | Business hours |
Business hours 08:00–17:00 CAT, Mon–Fri. Severity-1 and -2 incidents are covered around the clock. Response and resolution targets, service credits, and dedicated staffing are formalised in your enterprise agreement.
Our Network Operations Centre watches every session, latency reading and endpoint around the clock, with automated alerting and failover across Airtel, MTN and Zamtel before you notice.
Enterprise customers get a named account manager and technical contact, quarterly service reviews, and a direct escalation line — not a shared ticket queue.
A 24-hour incident hotline and dedicated support inbox for Severity-1/2 events, backed by a documented escalation matrix through engineering to management.
Uptime, response and resolution commitments written into a signed SLA, with service credits when a target is missed — the accountability regulated institutions require.
Redundant infrastructure, encrypted backups and tested disaster-recovery procedures keep your *388# service available through incidents and maintenance windows.
Full audit trails, uptime and performance reports, and data-retention controls — delivered on the cadence your auditors and regulators expect.
continue_session true to advance menus and false to end — so deep flows are built as a sequence of concise screens rather than one long page.Developers can start building for free right now. Organisations — book a demo and we'll get your *388# service live in days.