Build Interactive Mobile Menus
Build USSD apps in Ghana with shared or dedicated shortcodes. Mobile money integration, multi-level USSD menus, and session management — reach every phone on every network, no internet required.
Trusted by 10,000+ businesses in Ghana, Nigeria, Tanzania & South Africa








Works on All Phones
Feature phones, smartphones, and everything in between. No app install required.
Zero Internet Needed
USSD runs on the GSM network. Users need only a basic cellular signal to interact.
All Major Networks
MTN, Telecel, AirtelTigo, and all other carriers. One integration, full coverage.
Real-time Sessions
Instant back-and-forth communication. Each request-response happens in under 2 seconds.
From dial to done in seconds
USSD creates a real-time session between the user's phone and your server. No app downloads, no internet -- just instant interaction.
User Dials Code
User dials your USSD short code from any phone on any network.
Server Receives Request
Arkesel sends a webhook to your server with the session data.
You Return a Menu
Your server responds with menu text. We display it on the user's phone.
User Navigates
User selects an option. The cycle repeats for multi-level menus.
Session Completes
When done, your server sends the final response and the session ends.
Everything you need to build USSD apps
A complete toolkit for building, managing, and scaling interactive USSD services.
Multi-level Menus
Build nested menus with unlimited depth. Guide users through complex flows with simple numbered options.
Session Management
Automatic session tracking with configurable timeouts. Resume interrupted sessions without losing user context.
All Network Support
Single integration works across MTN, Telecel, AirtelTigo, and all other carriers in your coverage area.
Webhook Callbacks
Receive real-time notifications for session events. Your server controls the flow with simple HTTP responses.
Dynamic Responses
Generate menu content on the fly. Pull data from your database, APIs, or any source to personalize each session.
Shared & Dedicated Codes
Start with a shared short code for testing, then upgrade to a dedicated code for your production service.
Handle USSD sessions with simple webhooks
Your server receives a POST request for each user interaction. Respond with the next menu or a final message. That's the entire integration.
- Simple request/response pattern
- Session ID tracks multi-step flows
- Works with any language or framework
- No SDK required -- just HTTP
from flask import Flask, request, jsonify app = Flask(__name__) @app.route("/ussd/callback", methods=["POST"]) def ussd_callback(): session_id = request.form["sessionId"] service_code = request.form["serviceCode"] phone = request.form["phoneNumber"] text = request.form["text"] if text == "": # First request -- show main menu response = "CON Welcome to MyApp\n" response += "1. Check Balance\n" response += "2. Make Payment\n" response += "3. Account Info" elif text == "1": # End session with balance response = "END Your balance is GHS 150.00" else: response = "END Invalid option" return response
const express = require("express"); const app = express(); app.use(express.urlencoded({ extended: true })); app.post("/ussd/callback", (req, res) => { const { sessionId, serviceCode, phoneNumber, text } = req.body; let response = ""; if (text === "") { // First request -- show main menu response = `CON Welcome to MyApp 1. Check Balance 2. Make Payment 3. Account Info`; } else if (text === "1") { // End session with balance response = "END Your balance is GHS 150.00"; } else { response = "END Invalid option"; } res.send(response); }); app.listen(3000);
<?php $sessionId = $_POST["sessionId"]; $serviceCode = $_POST["serviceCode"]; $phone = $_POST["phoneNumber"]; $text = $_POST["text"]; if ($text == "") { // First request -- show main menu $response = "CON Welcome to MyApp\n"; $response .= "1. Check Balance\n"; $response .= "2. Make Payment\n"; $response .= "3. Account Info"; } elseif ($text == "1") { // End session with balance $response = "END Your balance is GHS 150.00"; } else { $response = "END Invalid option"; } header("Content-type: text/plain"); echo $response;
What you can build with USSD
USSD powers critical services in Ghana, Nigeria, Tanzania & South Africa. Here are the most common applications.
Mobile Money & Payments
Let users send money, pay bills, and check balances from any phone without downloading an app.
Surveys & Feedback
Collect structured data from users in the field. Higher completion rates than SMS-based surveys.
Balance Inquiries
Give customers instant access to their account balance, data usage, or loyalty points via a short code.
Customer Self-Service
Reduce call center volume by letting customers update profiles, reset PINs, and manage subscriptions.
Airtime Top-up
Enable airtime purchases and data bundle subscriptions directly through USSD menus.
Appointment Booking
Let patients, clients, or customers book and confirm appointments without internet access.
Reach users that SMS and apps can't
USSD is the most inclusive communication channel in Africa. While apps require smartphones and internet, USSD works on every phone with a SIM card.
No internet connection required
USSD runs on GSM signaling, not data. Users in areas with no internet coverage can still interact with your service.
Works on feature phones
Over 40% of mobile users in Africa use feature phones. USSD is the only way to reach them with interactive services.
Higher engagement than SMS
USSD sessions are interactive and real-time. Users navigate menus, make choices, and get instant responses -- unlike one-way SMS.
No app install friction
No download, no updates, no storage space. Users dial a code and start using your service immediately.
Phone Compatibility
Works on every phone with a SIM card, from the simplest feature phone to the latest smartphone.
Data Required
Zero internet needed. USSD sessions use GSM signaling, not mobile data or Wi-Fi.
Response Time
Real-time, synchronous sessions. Each menu response arrives in under 2 seconds.
Feature Phone Users
Percentage of mobile users in Sub-Saharan Africa on feature phones -- unreachable by apps.
Go live in 3 steps
From sign-up to your first USSD session in minutes. No sales calls, no contracts.
Create Your Account
Sign up for free, get your API key, and access the developer dashboard instantly.
Get a USSD Code
Choose a shared code to start testing immediately, or request a dedicated short code for production.
Build Your Menu
Set up your webhook endpoint, define your menu logic, and start receiving live USSD sessions.
Start building USSD apps today
Free to sign up. Get a shared USSD code and start testing your menus in minutes.


