Daily devotionals, sports digests, agronomy tips, lottery results — if your customers value it every day, charge for it every day. Safaricom, Airtel and Telkom debit subscribers' airtime; you collect the share.
Four event types cover the full subscriber lifecycle so your CRM can stay perfectly in sync — without polling, without batch reconciliation.
Fires when a customer opts in via keyword or your form. Use it to start the daily send loop.
Fires when a customer texts STOP or the carrier ends the subscription. Stop billing, log the exit reason.
Carrier-confirmed consent receipt. Stored automatically by Sozuri for compliance audits.
Final delivery state for each message. Per-network, per-subscriber, with carrier billing reconciled.
Switch between operations with the type field. The same authentication, the same shape, the same callbacks.
type: "subscription" sends a billed message to an active subscribertype: "activate" opts a subscriber in (with consent metadata)type: "deactivate" opts them out manually# Opt a subscriber in (after capturing consent)
curl -X POST "https://api.sozuri.net/v1/premium" \
-H "Authorization: Bearer $SOZURI_API_KEY" \
-d '{
"project": "Pesa Tips",
"from": "84320",
"number": "+254712345678",
"channel": "premium",
"type": "activate",
"keyword": "PESA",
"message": "Welcome to Pesa Tips. KSh 5/day until STOP.",
"campaign": "personal-finance"
}'
If your value is repeat content — tips, prayers, news, sports, lottery, weather, fishing tides — subscription is the smoothest way to monetise. The customer never opens an app, never enters a card, never disputes a transaction.
Each carrier sets a per-message tariff at the contract level — typically KSh 1, 5, 10 or 20. Higher tariffs need stronger content review. The same shortcode can carry messages at different tariffs as long as each is approved.
The carrier will retry the debit during the day. If still unfunded, the message is suppressed and a non-success appears on the premiumDelivery webhook. The subscription stays active unless the carrier removes it.
Yes. STOP, UNSUBSCRIBE, CANCEL and equivalent keywords are handled by the carrier and reported on the deactivate webhook. You don't need to write the logic — just react to the event.
Sozuri stores every consent automatically with timestamp and source. Storing your own copy is good practice for audits or migrations, but it's not strictly required.
The subscriber chooses once; the carrier collects daily. It's the rail Kenya's content publishers have used for a decade — now with a modern API and clean webhooks.