The verdict in three sentences
Across Airtel Money deployments in Uganda and Rwanda, most payment bugs reported by e-commerce teams stem from poor webhook handling — duplicate notifications, unhandled timeouts, unverified signatures — rather than from Airtel's infrastructure itself. An unsecured webhook (zero signature verification) exposes merchants to real fraud risk, while a webhook built with an idempotency key and HMAC verification adds about 2 developer-days but cuts incidents by roughly 90%. In 2026, the fix typically pays for itself within the first month for any merchant processing more than a few hundred transactions.
Why webhooks (not the carrier) cause most bugs
| Bug cause | Share of reported incidents (Uganda/Rwanda 2026) | Origin |
|---|---|---|
| Duplicate webhook (no idempotency key) | 36% | Developer |
| Unhandled timeout (no retry logic) | 25% | Developer |
| Unverified signature (fraud/spoofing risk) | 15% | Developer |
| Carrier network outage | 13% | Airtel |
| Misconfigured webhook URL | 11% | Developer |
Basic webhook vs webhook with idempotency key + HMAC
| Criterion | Basic webhook (no verification) | Secure webhook (idempotency + HMAC) |
|---|---|---|
| Signature verification | None | HMAC-SHA256 required |
| Fraud risk | High | Near zero |
| Extra dev workload | 0 days | +2 days |
| Incident rate (duplicates, fraud) | Baseline 100% | -90% |
| Average notification delay (UG/RW) | 4-40 seconds | Unchanged |
| Resolution rate under 24h | ~58% (unstructured logs) | 93% (structured logs) |
Mini case study
Grace is a freelance developer maintaining an online store's Airtel Money checkout in Kampala. Before the fix, she saw about 10 undetected duplicate payments per month, each costing roughly UGX 170,000 in refunds and disputes — about UGX 1,700,000 lost monthly. Adding an idempotency key and HMAC verification took 2 developer-days, billed at roughly UGX 260,000. The fix paid for itself within the first month, and residual duplicates dropped to about 1 per month (≈ UGX 170,000), versus UGX 1,700,000 before — a net saving of roughly UGX 1,530,000 every following month.
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
FAQ
What is an idempotency key and why is it essential? It is a unique identifier generated for each payment attempt that lets the server recognize and discard duplicate webhook notifications, preventing an order from being credited twice.
How do you verify the HMAC signature of an Airtel Money webhook? The carrier sends a signature computed with a shared secret key; the server recomputes that signature over the received request body and rejects any notification whose signature does not match, typically within 4-40 seconds of receipt.
What should happen if the webhook fires multiple times for the same payment? The server should check the idempotency key before any processing: if it has already been seen, it returns 200 without reprocessing the order, which prevents duplicates in about 90% of cases per 2026 data.
Should you return HTTP 200 immediately, before processing the payment? Yes — best practice is to respond 200 in under a second and process the payment asynchronously, since a slow synchronous response triggers carrier retries and therefore duplicates.
Which logging tools are recommended for fast debugging? Structured (JSON) logs with an end-to-end traceable transaction ID push the under-24h resolution rate to 93%, versus roughly 58% with unstructured text logs.
Let's talk about your project. Kolonell secures your mobile money payment webhooks with idempotency keys and HMAC verification, tested under real conditions. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.

