1 of 16

2026

REDEFINING

THE DIGITAL�LANDSCAPE.

WORDCAMP LIRA 2026

29–30 AUGUST 2026�LIRA TOWN COLLEGE • LIRA CITY

ANDREW - WORDPRESS DEVELOPMENT

#WCLira2026

01

2 of 16

WORDCAMP LIRA

2026

SPEAKER

MOBILE MONEY & PAYMENTS ON WORDPRESS IN UG

#WCLira2026

02

Andrew Ssanya

WordPress Development

29–30�AUGUST

3 of 16

W

WORDCAMP LIRA

2026

01 / THE HOOK

Open This On Your Phone. Right Now.

#WCLira2026

02

momo.mtn.com/api RUNS ON WORDPRESS

Look at any image URL on that page: wp-content. MTN's own API front door is built on the CMS you already use.

4 of 16

WORDCAMP LIRA

2026

02 / WARM-UP

Everyone Stand Up.

#WCLira2026

03

01

STAY STANDING IF

You have paid with MoMo this week.

02

STAY STANDING IF

You have paid on a Ugandan website with MoMo.

03

STAY STANDING IF

The site confirmed it instantly - no screenshot, no WhatsApp.

5 of 16

WORDCAMP LIRA

2026

03 / EVIDENCE

This Is Not A Niche Payment Method.

#WCLira2026

04

326T

UGX, E-MONEY VALUE

E-money value in the year to June 2025, up 28.6%. Person-to-business alone: UGX 59.2 trillion.

Source: Bank of Uganda, Integrated Annual Report to 30 June 2025

6 of 16

WORDCAMP LIRA

2026

04 / THE PROBLEM

The Screenshot Economy

#WCLira2026

05

01

HOW IT WORKS

Customer sends money manually and WhatsApps a screenshot.

02

WHY IT BREAKS

Screenshots are easy to fake. No audit trail. One human bottleneck.

03

WHAT IT COSTS

Breaks past ~30 orders a day. Abandoned carts stay silent.

7 of 16

WORDCAMP LIRA

2026

05 / OPTIONS

Four Ways To Take MoMo On A Site

#WCLira2026

06

01

Aggregator

Flutterwave, Pesapal, Xente. Easiest start, ~2-4%.

02

Collection

MTN's API. You ask, they approve on their phone.

03

QR Widget

Customer scans a code. The least code to write.

04

Payouts

MTN Disbursement. Refunds and supplier payments.

8 of 16

WORDCAMP LIRA

2026

06 / UNDER THE HOOD

What Actually Happens On “Pay Now”

#WCLira2026

07

01

Request

Your server POSTs requesttopay with a UUID.

02

202 Accepted

Empty body. Request received. Nothing more.

03

The Human

A PIN prompt reaches their phone. Maybe 3 minutes.

04

Verify

Callback or poll. Confirm server-side, then release.

9 of 16

WORDCAMP LIRA

2026

07 / BIG IDEA

If You Remember One Thing

#WCLira2026

08

202 ACCEPTED IS NOT PAYMENT.

No money has moved. The customer has not touched their phone. The response body is empty.

10 of 16

WORDCAMP LIRA

2026

08 / STATES

Four Outcomes, Not Two

#WCLira2026

09

01

Pending

Unanswered on their phone. The normal state here.

02

Successful

Money moved. The only state that releases goods.

03

Failed

Wrong PIN, no balance, rejected, timed out.

04

Silence

The callback never arrives. You must handle it.

11 of 16

W

WORDCAMP LIRA

2026

09 / YOUR TURN

MTN Said 'Got It.' We Said 'Paid.

#WCLira2026

10

$code = wp_remote_retrieve_response_code( $res );��if ( 202 === $code ) { // MTN said "got it"� $order->payment_complete(); // we say "paid"� wp_redirect( $thank_you_url );�}

60 SECONDS • Turn to the person next to you. There are four things wrong here.

12 of 16

WORDCAMP LIRA

2026

10 / THE FIX

Three Rules That Fix All Four

#WCLira2026

11

01

ONE UUID PER ATTEMPT

Store it on the order. Your X-Reference-Id is your idempotency key, so a retry can never become a second debit.

02

NEVER TRUST THE INBOUND

Anyone can POST to your callback URL. Check the reference, the amount, and whether it is already processed — then act.

03

POLL AS A FALLBACK

Callbacks get lost. Check status by reference on a schedule, and expire stuck payments with a message, never silence.

13 of 16

14 of 16

WORDCAMP LIRA

2026

12 / ACTION

Three Things To Do On Monday

#WCLira2026

13

01

AUDIT ONE INTEGRATION

Find where it decides an order is paid. Fix it.

02

WATCH THE SIX VIDEOS

MTN filmed one per step. Free, on momo.mtn.com/api.

03

CONTRIBUTE IT BACK

No great free MoMo gateway exists in the repo yet.

15 of 16

16 of 16

WORDCAMP LIRA

2026

THANK YOU

Pending your feedback.

WORDCAMP LIRA 2026�29–30 AUGUST • LIRA TOWN COLLEGE

#WCLira2026

15