Inbound webhooks
Every MO reply is posted to your endpoint within a second. Retries with jitter; dead-letter queue if your service is down.
Provision a virtual number, point a webhook at your app, and your customers can text you back. Confirmations, surveys, support — all on the channel everyone already has.

At a glance
Inbound and outbound messages run on the same contracted platform SLA.
Reply to webhook to API call to handset.
Virtual numbers + native shared codes.
Same backbone as our outbound A2P.
Every inbound MO is matched to the sends before it. The keyword router handles STOP, HELP, and your custom triggers before they ever reach your app.
MT submitted on your long code, short code, or shared number. Conversation ID generated so inbound replies thread back to this send.
Direct bind delivers the MT. Number capability checked (long-code vs short-code vs shared) and inbound listener registered for the conversation.
User reply lands on the operator MO channel. Keyword router (STOP, HELP, custom) processes opt-out and trigger words before the message hits your app.
MO message correlated to the outbound MT via conversation ID. Thread context (last 20 messages) attached to the webhook payload.
POST to your webhook with the inbound body, the conversation thread, and any matched keyword. 24h dedupe on message ID.
MT submitted on your long code, short code, or shared number. Conversation ID generated so inbound replies thread back to this send.
Direct bind delivers the MT. Number capability checked (long-code vs short-code vs shared) and inbound listener registered for the conversation.
User reply lands on the operator MO channel. Keyword router (STOP, HELP, custom) processes opt-out and trigger words before the message hits your app.
MO message correlated to the outbound MT via conversation ID. Thread context (last 20 messages) attached to the webhook payload.
POST to your webhook with the inbound body, the conversation thread, and any matched keyword. 24h dedupe on message ID.
Capabilities
Every MO reply is posted to your endpoint within a second. Retries with jitter; dead-letter queue if your service is down.
Dedicated long codes, shared shortcodes, and country-native virtual numbers. 10DLC for US traffic, A2P-registered numbers in the UK and EU.
Built-in handlers for YES, NO, STOP, HELP, plus any custom keyword you define. Route to different endpoints per keyword without writing a parser.
Every inbound message is matched to a conversation ID so you can track context across days, agents, and channels — including handoff to WhatsApp.
Out-of-hours auto-replies, holiday calendars, and per-keyword templates. Localised to the recipient's timezone if you store it.
Where MMS is available — primarily US and Canada — send images, vCards, or short video clips on the same inbound number.
How it works
Native SMS — no app, no link, no friction.
Routed off the operator's MO queue in milliseconds.
JSON payload with conversation context.
A single POST /sms/sendSms back to the same number keeps the conversation going.
Direct SMPP bind to the operator wherever one exists — never a grey route.
Use cases
Clinics, salons, embassies — reduce no-shows with a YES/RESCHEDULE prompt that fits in one SMS.
Let customers describe a problem in their own words instead of waiting in a phone queue.
NPS, CSAT, single-question polls — SMS completion runs well ahead of email (illustrative · results vary).
Instead of a code, ask the user to reply YES from their registered number — stronger than OTP, simpler than passwords.
Send the first message, ask one question, route hot leads to your CRM, drop the rest.
Two endpoints, full loop
One webhook to listen, one POST to talk back. Same account, same Bearer token, same delivery reports.
# Inbound reply from +44 7700 900123
"YES"
# → POSTed to the webhook URL configured on your BroadNet accountcurl -X POST https://api.broadnet.me/sms/sendSms \
-H "Authorization: Bearer $BROADNET_TOKEN" \
-H "Content-Type: application/json" \
-d '{"senderId":"BroadNet","destinationNumber":"447700900123",
"message":"Thanks Sarah — confirmed for 10 AM.","messageType":"TEXT"}'Number provisioning
Lowest cost, fastest provisioning. Inbound traffic is keyword-routed across many brands — fine for low-volume or testing.
A standard 10-digit number that belongs to you. Best for conversational support and 2FA-reply flows in EMEA and APAC.
Premium 4–6 digit codes — high throughput, brand recall, best for opt-in marketing in NA, UK, AU.
The Campaign Registry-registered 10-digit numbers. Required for any business sending A2P SMS in the US — we handle TCR vetting and brand registration.
Compliance
Every regulator we operate under expects a clean opt-in trail and an instant opt-out. We enforce both at the platform layer — your app doesn't need to remember.
Opt-in records, mandatory sender ID registration, prohibited-content filters applied inline.
PDPL-aligned consent storage, SAR data residency for regulated industries.
STOP keyword enforcement, do-not-call list synchronisation, marketing-vs-service split.
TCR registration, brand vetting, campaign approval; carrier filtering on Verizon, AT&T, T-Mobile.
Long codes are standard 10–12 digit international numbers; they're cheap, easy to provision (1–3 days), and suit moderate volume. Short codes (4–6 digits) are premium, regulator-approved, support 50–500 messages per second, and take 4–10 weeks to register. Shared numbers are pooled multi-tenant — fastest to launch but you share opt-out lists with other tenants.
Replies to your number are posted to the webhook URL configured on your account, with the sender's number and the message text. Match them to the conversation by sender number and the message IDs your sends returned — the dashboard inbox keeps the full thread for you.
The keyword router runs on every inbound MO before your webhook fires. STOP, إيقاف, ARRÊT (plus your custom keywords) are matched case-insensitively. STOP lands the recipient on the platform-wide suppression list and auto-acks with a confirmation message. HELP returns your configured help text. Custom keywords route to a webhook URL you specify per keyword.
Inbound MO is free in some markets (UAE, KSA on shared short codes) and per-message in others (Egypt, Jordan, Kuwait — typically $0.01–0.02 per inbound). Outbound MT bills at the standard SMS rate. Number rental: long codes $5/month, dedicated short codes $1,500–4,000/month depending on market.
UAE TDRA: 4–6 weeks for a dedicated short code, including use-case approval. KSA CST: 6–10 weeks. Egypt NTRA: 4–8 weeks. We submit the application, manage the regulator back-and-forth, and provision the inbound listener once approved. Shared short codes are typically live within 1–3 business days.
Yes — the unified inbox in the dashboard surfaces every active conversation, assigns to agents based on round-robin or skills routing, and tracks SLAs per conversation. Or pipe the webhook into your existing helpdesk (Zendesk, Freshdesk, Salesforce SC) and let agents reply through the same POST /sms/sendSms endpoint.
Platform-wide. A STOP reply to any of your numbers lands the MSISDN on the suppression list for every campaign, every product (Bulk SMS, A2P, OTP, WhatsApp), every account in your tenant. The user can opt back in only by texting START (or your configured opt-in keyword) — this is a regulatory must-have we enforce by default.
Inbound messages are pushed to your webhook as soon as the operator hands over the MO event. Retries with exponential backoff for 24 hours on webhook failure. Dead-letter queue queryable for 7 days standard, 90 days enterprise. Inbound handling runs on the platform's 99.99% uptime SLA; the exact SLA terms and any service credits are set in your contract.
Question not here? Ask our engineering team
Two-way SMS runs on the same backbone as BroadNet's A2P SMS infrastructure. Pair it with OTP verification for reply-based authentication, or step up to RCS for Business where the handset supports it.
Related
If you only need outbound delivery — transactional alerts and notifications.
For richer conversations with media, buttons, and read receipts.
One conversation across SMS, WhatsApp, RCS, and email with automatic fallback.
The SMPP PDU that carries every inbound reply back to your bind — the wire format behind two-way SMS.

No grey routes: a direct operator bind wherever one is commercially available, otherwise a labelled partner-managed route. One API to every channel, on a network built since 2003.
Pick a country, provision a number, point a webhook at your app — and you're live before the next stand-up.
Go deeper on the concepts behind this product.