MTN Mobile Money
MTN Uganda
The dominant rail, and it is not close — MTN's agent network reaches deep into rural corridors where nothing else does. If you support one thing, support this.
Built remotely from Nairobi, on the same stack and the same published prices as every Kenyan project. No Kampala office — we would rather say that than imply one.
Uganda has roughly 36.7 million active mobile money accounts against a population near 48 million — mobile money is not a payment option here, it is the payment system. What Uganda does not have is Kenya's density of merchants who have moved that habit onto their own website. Most Ugandan online selling still happens in Instagram DMs and WhatsApp groups, which means the businesses that build a proper catalog now are early rather than late.
WhatsApp checkout works identically everywhere — the cart builds a structured order message and sends it to your number. It does not care which country you are in or which network you use, which is exactly why it is the default we ship on every shop.
MTN Uganda
The dominant rail, and it is not close — MTN's agent network reaches deep into rural corridors where nothing else does. If you support one thing, support this.
Airtel Uganda
A real second, competing hard on peer-to-peer transfer pricing. Worth supporting alongside MTN rather than instead of it.
Most of the build is identical. These are the parts that genuinely are not, listed here rather than discovered halfway through a project.
The rail is MTN MoMo and Airtel Money, not M-Pesa — M-Pesa has no Ugandan presence worth building for
Automated mobile-money checkout is quoted per project here, not the fixed KES 20,000 Kenyan add-on, because it depends on which gateway you can get merchant approval with
We are remote for Uganda — no Kampala office, no in-person meetings, and we would rather say so than imply otherwise
Delivery and logistics comparisons on our blog are Kenya-specific; the courier landscape in Uganda is different and we have not written that guide yet
Prices are the published KES ones — Starter KES 30,000, Standard KES 55,000, Premium KES 95,000+. We do not run a cross-border markup. You pay in KES or the equivalent at the day's rate, 50% deposit and balance on delivery, same as any Nairobi client.
Full pricing breakdown →Fully remote, and we say that plainly rather than implying a local office. Briefs and daily updates run on WhatsApp, design review over video. Timelines are the same as Kenya: 5-7 days for Starter, 2 weeks Standard, 3-4 weeks Premium.
Kampala is about 1 hour to Entebbe from Nairobi if a project genuinely warrants meeting in person — not something we build into a quote by default.
Yes, remotely from Nairobi. The build itself is identical to a Kenyan project — same stack, same timelines, same published KES pricing with no cross-border markup. What changes is the payment rail (MTN MoMo and Airtel Money rather than M-Pesa) and the fact that everything runs over WhatsApp and video rather than in-person meetings. We have no Kampala office and will not pretend to.
Yes. WhatsApp checkout works the same everywhere — your customer's order arrives as a structured message and you send your MoMo or Airtel Money number to settle it, exactly as a Kenyan merchant would send a Till. For automated checkout where the payment confirms itself, we integrate through a gateway that covers Ugandan mobile money, quoted per project rather than at the fixed Kenyan add-on price, because approval and coverage vary by gateway.
Either — the price is set in KES and you settle in KES or the UGX equivalent at the day's rate. There is no cross-border premium; a Kampala client pays what a Nairobi client pays. Terms are the same too: 50% deposit to book the slot, balance on delivery.
The same way we work with clients in Mombasa or Kisumu, which is to say almost entirely on WhatsApp. Thirty-minute scoping call, daily build updates, design review over video, handover of code and credentials at launch. Entebbe is about an hour's flight if a project genuinely warrants meeting, but we would not build that into a quote by default.