+254 722 117 850 Support Login
Products Premium SMS Subscription
Recurring billing · Live

Build an SMS subscription. The carrier collects every day.

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.

Daily / weekly / monthly 4 lifecycle webhooks STOP opt-out built-in
84320 · PESA TIPS Daily subscription
Mon 06:00 · Pesa Tips: Pay yourself first. Move 10% of any inbound M-Pesa to a savings goal before spending. STOP to end.Mon
Tue 06:00 · Pesa Tips: The 50/30/20 rule, Kenyan edition: 50% needs, 30% wants, 20% chamas + savings.Tue
Carrier bill · weekly KSh 35 deducted from airtime · 7 messages
Wed 06:00 · Pesa Tips: Track every chama contribution in a single thread — reply LOG <amount> from any phone.Wed
Endpoint POST /api/v1/premium
Type "type": "subscription"
Webhooks activate, deactivate, consent, delivery
Billing Carrier · airtime / postpaid
Lifecycle

From opt-in to opt-out, every event is a webhook

Four event types cover the full subscriber lifecycle so your CRM can stay perfectly in sync — without polling, without batch reconciliation.

activate

Fires when a customer opts in via keyword or your form. Use it to start the daily send loop.

deactivate

Fires when a customer texts STOP or the carrier ends the subscription. Stop billing, log the exit reason.

consent

Carrier-confirmed consent receipt. Stored automatically by Sozuri for compliance audits.

premiumDelivery

Final delivery state for each message. Per-network, per-subscriber, with carrier billing reconciled.

In the API

Activate or send — one endpoint.

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 subscriber
  • type: "activate" opts a subscriber in (with consent metadata)
  • type: "deactivate" opts them out manually
Read the docs →
activate-subscriber.sh
# 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"
  }'
Where it fits

Content audiences without a chargeback in sight.

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.

  • Daily devotionals, motivational quotes, scripture verses
  • Sports digests & fixture reminders
  • Health, agronomy & veterinary tips
  • Education prep (KCSE, KMTC) and language drills
Pitch your concept →
84320 · SOKO PRICES Weekly · KSh 30
Mon: Kibuye Market — tomatoes KSh 60/kg, onions KSh 110/kg, kales KSh 30/bundle.06:00
Thu: Wakulima Market — potatoes KSh 80/kg (Nyandarua), maize KSh 5,400/bag (Trans Nzoia).06:00
Common questions

Subscription specifics

How is the tariff set?

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.

What if the subscriber's airtime runs out?

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.

Can subscribers opt out by replying STOP?

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.

Do I need to store consent on my side too?

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.

MON · KSh 5 TUE · KSh 5 WED · KSh 5 … until STOP
Your move

One opt-in. Months of revenue.

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.

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