Retail and e-commerce SMS marketing in Uganda is legal when each promotion goes to a customer who consented, or who bought from you within the last three months and was told their number might be used for offers, carries the shop's name and a free STOP opt-out, and is not timed for delivery between 19:00 and 06:00. Those rules come from regulations 11, 12, 19 and 20 of the UCC Text and Multimedia Messaging Regulations, 2019, and the Data Protection and Privacy Act, 2019 adds a right to stop direct marketing.

Last reviewed: 27 October 2026

This guide is for supermarkets, shops, electronics and fashion retailers and online sellers in Kampala and across Uganda. It turns the rules into a working setup: how to collect consent, how the three-month rule shapes your segments, how to give a STOP opt-out when your sender ID cannot receive replies, and templates for both promotions and order updates. It is not legal advice; check edge cases with the UCC or a lawyer.

The UCC rules that apply to retail SMS

The 2019 regulations apply to every business that sends SMS to Ugandan subscribers, whatever platform it uses. These are the clauses that matter for retail and e-commerce:

RegulationRuleWhat to do
5No automated unsolicited SMSSend campaigns only to people who qualify under regulation 20
10(4) to (6)Recognised identifier, contact details and organisation name in every message, kept valid for 45 daysStart every message with the shop name; include a phone number or link
10(7) and 12(8)On request, say where you got the recipient's number, within 36 hoursStore the consent source for every contact
11(1) and (2)Prior consent for commercial messages, or contact details from a prior transaction where you said they may be used for marketing and offered a right to objectAdd a marketing line and an objection option at checkout and on loyalty forms
11(3)Messages under the prior-transaction route must show an easy way to stopInclude an opt-out in every promotion
11(4)Do not sell, distribute or divulge customer information without explicit consentNever share or rent your list
12Free, clear opt-out based on STOP (END, CANCEL, UNSUBSCRIBE and QUIT also count); confirm it; honour it within 24 hours; keep requests for 12 monthsUse a two-way short code or link; sync opt-outs to every campaign
19No commercial messages timed for 19:00 to 06:00 unless the recipient explicitly agreedSchedule campaigns in daytime
20A commercial message is spam unless the recipient consented or requested it, or had a direct prior commercial relationship within the last three months and their details were collected transparentlySegment non-consented customers by last purchase date

The UCC has enforced against unsolicited messaging before. In 2015, as reported by TechCabal, it fined MTN Uganda five billion shillings over unsolicited SMS. Operators are also required by regulation 13 to warn, suspend or cut off authorised parties that break the rules, so a careless campaign can cost you your sender access.

Consent and the three-month rule

Regulation 20 gives two routes to a lawful promotion:

  1. Consent or request. The customer agreed to receive offers, for example by ticking a box at checkout, signing a loyalty form or texting JOIN to your short code.
  2. Recent customer. The customer had a direct commercial relationship with you within the last three months, and you collected their number clearly and transparently under regulation 11(2): you told them it might be used for marketing and offered a way to object.

The second route expires. A customer who bought once in March and never agreed to offers drops out of the lawful audience by July. In practice:

  • Store two fields for every contact: marketing consent (yes or no, with date and source) and last purchase date.
  • Before each campaign, select customers with consent, plus customers without consent whose last purchase was within the past three months.
  • Use every purchase as a chance to ask for explicit consent, so customers stay reachable after the three months.
  • Keep the consent source. Under regulations 10(7) and 12(8), a customer can ask where you got their number, and you have 36 hours to answer.

Never buy number lists, scrape them from social media or reuse a supplier's list. Section 37 of the Data Protection and Privacy Act prohibits selling personal data, and regulation 11(4) bars sharing customer information without explicit consent.

Giving a STOP opt-out that works

Regulation 12 requires an opt-out that is free, easy and based on the word STOP, with a confirmation message and action within 24 hours. An alphanumeric sender ID such as your shop name cannot receive replies, so "reply STOP" on its own does not work. Two options do:

  • A two-way short code. End promotions with "Stop: SMS STOP to 6xxx". STOP, END, CANCEL, UNSUBSCRIBE and QUIT replies arrive by webhook, eSMS records STOP replies on a two-way number as opt-outs, and your system sends the confirmation. Short codes can be ordered online for Uganda; see two-way SMS.
  • A short unsubscribe link to a page that records the opt-out instantly and shows a confirmation.

Keep opt-out requests for at least 12 months, as regulation 12(7) requires. A customer who unsubscribes from offers can keep receiving order updates if they ask; regulation 12(3) allows them to choose categories.

Templates for Ugandan retailers

Nkima Mart and Nkima Electronics are fictional. Prices are in Uganda shillings without decimals; MTN MoMo and Airtel Money are the payment methods most customers use.

PurposeTypeMessage
Weekend offerPromotionalNkima Mart: Weekend offer! 5kg rice and 3L cooking oil at a special price, all Kampala branches, Fri-Sun. Stop: SMS STOP to 6xxx
Payday promoPromotionalNkima Mart: Month-end deals on school supplies from today until Sun. Pay by MTN MoMo or Airtel Money at the till. Stop: SMS STOP to 6xxx
Back in stockPromotionalNkima Electronics: The phone you asked about is back in stock at Wandegeya. Reserve: nkima.example/r/2281. Stop: SMS STOP to 6xxx
Opt-out confirmationRequired by reg 12(4)Nkima Mart: You have been unsubscribed from Nkima Mart offers. You will still get updates about your orders.
Order confirmedTransactionalNkima Mart: Order NK44102 confirmed. Total UGX 186,000. Pay on delivery by MTN MoMo or Airtel Money. Delivery Thu before 6pm.
Rider dispatchedTransactionalNkima Mart: Your order NK44102 is on the way. Rider Ssali, 0772000000. Please have UGX 186,000 ready by MoMo or cash.
Payment receivedTransactionalNkima Mart: We received UGX 186,000 by MTN MoMo for order NK44102. Thank you for shopping with us.

Pay-on-delivery messages give the exact amount so the customer can have mobile money or cash ready when the rider arrives. Order and delivery messages are transactional and go on a separate sender ID from promotions, so offers never slip into service traffic.

Timing and frequency

  • Schedule campaigns in daytime. Regulation 19 bars commercial messages timed for 19:00 to 06:00. Sending between 09:00 and 17:00 leaves room for large batches to finish.
  • Send less, target more. One or two promotions a week is a sensible ceiling. Segment by branch, category and recency rather than messaging everyone.
  • Watch opt-outs. A spike after a campaign means the offer, audience or frequency missed.
  • Keep it to one segment. Plain GSM characters, no emoji, under 160 characters. Luganda and other local languages fit the GSM alphabet; have a native speaker check any translation.

Sending campaigns

In the eSMS dashboard, import your contacts with consent and last-purchase columns from CSV or Excel, filter the audience, write the message with merge fields, schedule it inside the daytime window and send it for approval. Numbers on your opt-out list are blocked automatically on every campaign. Developers can send the same campaign through the bulk endpoint:

curl -X POST https://sms.esmsafrica.io/api/messages/send-bulk \
  -H "Authorization: Bearer esms_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "sender_id": "NKIMAMART",
    "text": "Nkima Mart: Hi {{name}}, your {{points}} loyalty points expire on 31 Dec. Redeem at any branch till. Stop: SMS STOP to 6xxx",
    "recipients": [
      {"to": "+256772000001", "name": "Nansubuga", "vars": {"points": "2,400"}},
      {"to": "+256702000002", "name": "Opio", "vars": {"points": "950"}}
    ]
  }'

Delivery reports come back to the dashboard and by webhook. Test with an esms_test_... key, which simulates sends without charge. See the HTTP API docs and the bulk SMS in Uganda page.

What it costs

Campaigns are pay as you go from UGX 35 (about $0.0083) per SMS on the basic tier, and regular senders can move to business rates at UGX 30. There is no monthly minimum, and you can top up by MTN MoMo, Airtel Money or card. Sender IDs are registered separately on MTN and Airtel; fees and steps are on the Uganda sender ID page, and our guide to MTN and Airtel sender ID costs helps you decide whether you need both.

Retail SMS checklist for Uganda

  1. Record marketing consent and last purchase date for every contact.
  2. Send promotions only to consenting customers or those who bought within three months and were told about marketing.
  3. Start every message with the shop name and include a contact.
  4. Offer a STOP opt-out by two-way short code or link, confirm it and honour it within 24 hours.
  5. Keep opt-out records for 12 months.
  6. Do not time promotions for 19:00 to 06:00.
  7. Keep order updates on a separate transactional sender ID.
  8. Answer "where did you get my number?" within 36 hours.
  9. Never buy, sell or share lists.

Frequently asked questions

What hours can I send promotional SMS in Uganda?

Regulation 19 of the UCC Text and Multimedia Messaging Regulations, 2019 says commercial communications may not be timed for delivery between 19:00 and 06:00, unless the recipient explicitly agreed or night delivery is part of the service description. Schedule campaigns in daytime, with a margin so large sends finish before 19:00.

Can I send offers to customers who bought from me before?

Yes, within limits. Regulation 11(2) allows marketing to customers whose details came from a prior transaction if you said at the time that the details may be used for marketing and offered a right to object. Regulation 20 treats a message as spam unless the recipient consented or had a direct prior commercial relationship with you within the last three months. Customers without explicit consent should be dropped from campaigns once that window has passed.

How do customers opt out if my sender ID cannot receive replies?

Use a two-way short code with a STOP keyword, or a short link to an unsubscribe page. Regulation 12 requires a free opt-out based on the word STOP, a confirmation message and action within 24 hours. STOP replies on an eSMS two-way number are recorded as opt-outs automatically.

What happens if a business sends unsolicited SMS in Uganda?

Customers can complain, operators must act against authorised parties that breach the rules, and the UCC can investigate. As reported by TechCabal in 2015, the UCC fined MTN Uganda five billion shillings over unsolicited SMS. Under the Data Protection and Privacy Act, customers can also require you to stop direct marketing.

Sources

See more retail and e-commerce message flows on our retail SMS page for Uganda, read the UCC 2019 rules in plain English and bulk SMS in Kampala, and check pricing. Then create a free eSMS Africa account and send your first campaign to a small test group.