← Back to blog
Payments · 5 min read

Mobile money webhooks: how a business actually knows a payment cleared, without checking SMS

TTThinkers Tech Team · 4 September 2026
Share
Thinkers Tech

At most small shops taking Airtel Money or MTN MoMo, payment confirmation still comes down to one person looking at one phone. A customer sends the money, the till operator waits for the “You have received ZMW...” SMS to land, reads out the amount to check it matches, and only then hands over the goods. It works fine at low volume, but it has real weak points: network delays mean the SMS sometimes arrives a full minute after the money has actually cleared, a queue of customers all paying within the same few minutes turns into a queue of messages to match to the right person, and the whole system depends on trusting that the screenshot or message shown really is real — doctored “payment successful” screenshots are a well-documented scam precisely because a human reading a screen is the only check in the loop.

A webhook removes the human from that loop. When a business integrates directly with the Airtel Money or MTN MoMo Open API rather than just receiving payments like an ordinary customer, it registers a callback URL — an address on its own server or website — and every time a payment against its merchant account clears, the telco's system sends that URL a message automatically, within seconds, containing the amount, the transaction ID, and the reference number the business attached when it requested the payment. There's no SMS to wait for and no screenshot to read, because the confirmation comes straight from Airtel or MTN's own systems to the business's own systems, and because the reference number can be set to match a specific invoice or order number, the payment lands already tied to what it was for instead of needing to be matched up by hand afterwards.

Setting one up takes more than accepting payments the ordinary way. It means registering for API access as a merchant with Airtel Money or MTN MoMo rather than using a personal or agent line, which comes with its own onboarding and a collections account separate from a regular wallet, and it means having a server endpoint that can receive an HTTPS request and stay online to receive it — not something a shop can run off a single phone. It also means handling the occasional duplicate: mobile network callbacks are sent “at least once” rather than exactly once, so a system that isn't checking whether it has already processed a given transaction ID can end up crediting the same payment twice. None of that is difficult work for a system built to expect it, but it's real setup that a shop reading SMS messages off a phone never has to think about.

We build this kind of integration into the POS and invoicing systems we set up for Zambian businesses — registering the merchant API access with Airtel and MTN, wiring the callback into the till or website, and handling the duplicate-transaction checks so a sale is confirmed the moment the money actually clears rather than whenever someone next glances at a phone. If your business is still matching SMS messages to customers by hand once the queue gets past two or three people deep, that's usually the point where a webhook stops being a nice-to-have and starts saving real time at the till.

Enjoyed this? Share it.
Share

Got a project in mind?

Get in touch