+254 722 117 850 Support Login
Products Premium SMS On-demand
Pay per request · Live

One keyword. One charge. One reply.

A customer texts GOAL to your shortcode — the carrier debits their airtime, your webhook fires, you respond with the content. Perfect for quizzes, scores, lottery numbers, weather, tips and lookups.

Inbound triggers billing Many keywords, one shortcode linkId reconciliation
84320 · BUNGE QUIZ On-demand · KSh 10/SMS
QUIZ20:14
Bunge Quiz: Q1. Which county hosts Lake Magadi? A) Kajiado B) Narok C) Samburu. Reply A, B or C.20:14
A20:14
Bunge Quiz: ✓ Correct! Magadi sits in Kajiado County. Streak: 4. Reply QUIZ for next, or STOP.20:14
Charged KSh 10 deducted from airtime · linkId LNK-9X4K
Endpoint POST /api/v1/premium
Type "type": "ondemand"
Trigger Inbound keyword webhook
Reconciliation linkId per request
How it works

Three messages from customer to billing

The customer's text is what initiates the chain — that's how the carrier knows to charge for the reply.

1

Customer texts the keyword

e.g. GOAL to 84320. The carrier routes it to Sozuri, which fires a linkNotification webhook with a unique linkId.

2

You respond — with the linkId

POST to /v1/premium with type: "ondemand" and the linkId echoed back. That's what tells the carrier to bill this one request.

3

Carrier bills, you get paid

Subscriber's airtime is debited, your share lands on the monthly reconciliation statement. A premiumDelivery webhook confirms success.

In the API

The linkId is the whole trick.

Without it, the carrier won't charge. With it, billing is automatic and reconciled to the cent. Always echo back the value you received on the inbound webhook.

The gotcha A stale or missing linkId means the reply is sent for free — no carrier bill, no revenue. Always validate before responding.
Read the docs →
on-demand-reply.sh
# Reply to an inbound keyword request
curl -X POST "https://api.sozuri.net/v1/premium" \
  -H "Authorization: Bearer $SOZURI_API_KEY" \
  -d '{
    "project":  "Bunge Quiz",
    "from":     "84320",
    "to":       "+254712345678",
    "channel":  "premium",
    "type":     "ondemand",
    "keyword":  "QUIZ",
    "linkId":   "LNK-9X4K7P",
    "message":  "Q1. Which county hosts Lake Magadi? A/B/C.",
    "campaign": "trivia-thursday"
  }'
Where it fits

Pull content. Pay per pull.

Quizzes & trivia

One keyword per round, one fee per answer. Bunge nights, weekend trivia, sports tipping.

Live scores

FPL, AFCON, KPL, NBA — text the match keyword, get the current scoreline and stats.

Tip / lookup services

Weather by location, drug interaction checks, exam revision answers, fuel prices, market rates.

Common questions

On-demand specifics

Can I run on-demand and subscription on the same shortcode?

Yes. A single premium shortcode (e.g. 84320) can host both models. Each keyword is provisioned individually with its own tariff and billing model.

What happens if my reply takes too long?

The linkId stays valid for the carrier's session window (typically a few minutes). After that, the customer's request is treated as expired and a fresh keyword text is required to bill again.

Do I need to send the message immediately?

Best practice is to respond within a few seconds so the customer experiences the reply as part of the same exchange. Sozuri tracks the gap and reports it on the delivery webhook.

How are tariffs set?

Each carrier sets the per-request tariff at contract time, typically KSh 5, 10, 20 or 50. Higher tariffs require stronger content review. The same shortcode can host multiple keywords at different tariffs.

GOAL KSh 5 linkId · LNK-9X4K7P
Your move

The keyword economy, on tap.

One shortcode. As many keywords as your content can support. Carrier-billed, opt-in-by-default, friction-free for the customer and for you.

Chat on WhatsApp
Your first SMS in the time it takes to brew coffee. Start building in minutes