How to Start a Bulk SMS Business: The Tech Stack

A bulk SMS business needs tested SMPP routes, a gateway like Jasmin for routing and billing, a customer panel like playSMS, and approved sender IDs.
I set up SMS platforms for people starting this business, mostly in Africa and the USA, and the technical side is the easy part. The projects that struggle are the ones that bought cheap routes without testing them, launched before sender IDs were approved, or had no way to see delivery rates per route. This guide walks through the whole stack the way I build it, layer by layer, so you know what to buy, what to install and what to check before your first customer sends a campaign.
Key takeaways
- Routes are your product. Your margin and reputation depend on the SMPP routes you buy, so test delivery on real phones before you sell a route.
- Jasmin is the engine: it connects to your providers, routes each message by country, tracks delivery receipts and bills each customer.
- playSMS is the shop window: a ready-made web panel where customers log in, top up and send. Build a custom panel only when you need your own brand and payments.
- Compliance blocks launches. Sender ID registration, US A2P 10DLC and opt-out rules take longer than the server setup.
- Measure delivery per route from day one. It is the only way to spot a degrading route before customers complain.
How does a bulk SMS platform work?
Every platform I build has the same four layers:
- Customers: businesses sending OTPs, alerts and campaigns through your web panel, your HTTP API or an SMPP bind.
- Customer panel: accounts, credit, contact lists, scheduled campaigns and reports.
- Gateway: the routing engine that picks a route per destination, enforces throughput and collects delivery reports.
- Routes: SMPP accounts with aggregators or mobile operators that actually deliver the SMS to phones.
You make money on the difference between what a route costs you per message and what you charge customers, plus setup and sender ID fees if your market allows it.
Layer 1: Buy and test SMS routes
A route is an SMPP account (host, port, system ID, password) from an SMS aggregator or directly from an operator. Before you sign, ask every provider the same questions:
- Which countries and operators does the route cover, and is it a direct or indirect connection?
- Do they return real delivery receipts (DLRs), or fake "delivered" for everything?
- Do they support alphanumeric sender IDs for your target countries, and do those need registration?
- What throughput (TPS) is allowed per bind, and how many binds?
- Can you get test credit to measure delivery on your own phones?
Be careful with routes that are much cheaper than the market. Very cheap routes are often "grey" routes that pass traffic through SIM farms or unofficial interconnects. They deliver well for a week, then operators block them, OTPs arrive late and your customers leave. I always start a new business with at least two tested routes per key country, so one can take over when the other degrades.
Layer 2: Jasmin as the gateway
Jasmin is the open-source SMPP gateway I use as the core of these platforms. It connects to each provider as an SMPP client, gives you an HTTP API and an SMPP server for your own customers, and routes every message by destination prefix. Per-user rates and balances let you bill each customer, and delivery receipts flow back to whoever sent the message.
The install and configuration are covered step by step in my guide to installing Jasmin SMS gateway on Ubuntu: connectors, users, routes, DLR callbacks and the firewall rules. For a business, add these on top:
- One connector per route with
submit_throughputset to what the provider allows. - Static routes per country prefix, so Bangladesh, Nigeria and the US each go to their best route.
- Separate groups for OTP customers and marketing customers, so you can send time-critical OTPs over your best route and campaigns over a cheaper one.
- Resellers on SMPP: bigger customers bind to Jasmin's SMPP server (port 2775) from their own platforms. Whitelist their IPs in the firewall.
Layer 3: The customer panel (playSMS or custom)
playSMS is a free, open-source web interface for SMS gateways and bulk SMS services. It gives you user accounts with credit, phonebooks and groups, bulk and scheduled sending, inbox for replies, a web services API for customers and reports. It supports Jasmin as a gateway; the Jasmin plugin now lives inside the main playSMS project. Customers send in playSMS, playSMS hands each message to Jasmin over its HTTP API, and Jasmin's delivery receipts update the status in the panel.
playSMS is the fastest way to launch: a working panel in a day, which you can theme with your logo. Choose a custom panel when:
- you want online top-ups with your local payment gateways or Stripe,
- you sell to developers and need a modern REST API with keys, webhooks and docs,
- you want your own brand and pricing pages, which also helps you rank on Google.
I build those custom panels with Next.js and NestJS on top of Jasmin, the same stack this website runs on. Jasmin stays the engine either way, so you can start on playSMS and move later without touching your routes.
Layer 4: Compliance and sender IDs
This is the part that delays launches, so start it the same week you buy routes.
- Sender ID registration: many countries, including several African markets, require alphanumeric sender IDs (like
MyBank) to be registered with operators before they deliver. Your route provider tells you which ones and how long it takes. - USA: business texts from 10-digit numbers must be registered for A2P 10DLC through The Campaign Registry. Major US carriers block unregistered A2P traffic from long codes, and registration needs a business tax ID (EIN). Toll-free numbers have their own verification process.
- Consent and opt-out: only send marketing to people who opted in, honour STOP replies, and keep records. Rules differ by country, so check your regulator.
- Licensing: some countries require a licence to resell SMS or run value-added services. Check with a local lawyer before you invoice customers.
Layer 5: Running it like a real service
- Server: a hardened Ubuntu 24.04 VPS with a static IP (providers whitelist it). Start with my hardening checklist.
- Backups: the playSMS database, Jasmin's persisted config in
/etc/jasmin/and your billing records, copied off the server daily. My Linux backup guide shows the setup. - Monitoring: alert when a connector unbinds, when the delivery rate on a route drops, and when queues grow in RabbitMQ. Jasmin exposes Prometheus metrics on its HTTP API.
- Abuse controls: new accounts start with low credit and manual approval, and you check sender IDs and content before big campaigns. One spammer can get your route blocked for everyone.
- HTTPS everywhere: the panel and API sit behind Nginx with Let's Encrypt; the raw Jasmin ports stay private.
What does it cost to start?
I won't quote numbers that change by country and month, but these are the cost lines to plan for:
- Server hosting (one VPS is enough to start).
- Prepaid credit or a monthly commitment with each route provider, charged per message.
- Sender ID or 10DLC registration fees, where your market charges them.
- Setup and support for the platform, unless you install and maintain it yourself.
- A custom panel and payment integration, if you outgrow playSMS.
Launch checklist
- Two tested routes per key country, with real DLRs.
- Jasmin installed, connectors bound, routes per prefix,
persistrun. - playSMS (or your panel) connected to Jasmin, test user sending and receiving DLRs.
- Sender IDs or 10DLC campaigns approved.
- HTTPS, firewall, backups and connector alerts in place.
- Terms of service, opt-out handling and an abuse policy published.
Frequently asked questions
Is a bulk SMS business still profitable?
It can be when you have reliable routes at a good price and customers who need SMS, like banks, schools, clinics and e-commerce stores sending OTPs and alerts. Margins come from route quality and service, not from the software, which is open source.
Do I need my own SMS gateway, or can I resell an API?
You can resell another company's API, but you depend on their prices and routes. Running Jasmin lets you connect several providers, switch routes per country and offer SMPP to resellers, which is where most of the value sits.
Is playSMS good enough for a business?
Yes, for launching and for many small and mid-size platforms. Move to a custom panel when you need online payments, a developer-friendly API or your own branded customer experience.
What is SMPP?
SMPP (Short Message Peer-to-Peer) is the standard protocol that SMS gateways and operators use to exchange messages and delivery receipts. Your provider gives you SMPP credentials, and Jasmin uses them to send.
How long does setup take?
The server, Jasmin and playSMS can be running within a few days. Route contracts, testing and sender ID approvals usually take longer, so start them first.
Want your SMS platform built and running?
I set up complete bulk SMS platforms: Jasmin with multiple routes, playSMS or a custom Next.js panel, HTTPS, backups and monitoring, plus support after launch. See my DevOps services or tell me which countries you want to send to.
Written by
MD Rakibul Islam Rakib
Full-stack developer, DevOps engineer and Linux system administrator with 5+ years of production experience. I deploy, harden and fix servers and web apps for clients worldwide, and everything in this article runs on real servers I manage, including this site.
- bulk SMS business
- SMS gateway
- Jasmin
- playSMS
- SMPP routes
- A2P 10DLC
- sender ID


