E-commerce11 min read

Payment reconciliation with webhooks in Accra 2026

Mohamed Bah·Fondateur, Kolonell
August 27, 2026
Share:
Payment reconciliation with webhooks in Accra 2026

Payment reconciliation with webhooks in Accra 2026

E-commerce

The verdict in three sentences

Mobile money reconciliation in Accra means matching three sources — webhook, operator statement and internal orders — every day. The real work is on the 3 to 7 % of ghost 'pending' transactions, duplicates and an average settlement gap of 0.3 to 1.2 %. With an idempotency key and a 24 h webhook retry window, a daily script removes 95 % of manual errors.

Discrepancy types and their causes

Discrepancy typeEstimated frequencyMain causeAction
Ghost pending3-7 %Callback never receivedQuery status at D+1
Duplicate0.5-2 %Retry without idempotencyDedupe by reference
Amount mismatch0.3-1.2 %Fees deducted at settlementReconcile net vs gross
Orphan payment0.5-1.5 %Order cancelled on siteRefund or credit
Settlement delay5-10 %Operator T+2 payoutWait for D+2 statement
Status conflict1-3 %Webhook and query differTrust server query

Golden rule: the operator statement is authoritative for money actually paid out. The webhook signals intent, the query confirms status, but only the settlement statement proves the net amount received after fees.

The 5-step reconciliation method

StepOperationFrequency
1Export received webhooks (24 h)Daily
2Download the Paystack/MoMo statementDaily
3Join by reference / AccountReferenceAutomated
4Isolate pending, duplicates, orphansAutomated
5Re-query pending > 24 hDaily

Automate steps 1 to 4 with a nightly script. Critical point: enforce an idempotency key at payment initiation — it makes deduplication reliable and blocks double charges on retries.

Mini case study

Kwame runs an appliance shop in Accra: 400 transactions/month via MTN MoMo and Paystack, GHS 240,000 collected. Without reconciliation, 5 % ghost pendings (20 transactions) stay unconfirmed — about GHS 12,000 in uncertain status. His daily script re-queries these at D+1 and confirms 17 (the other 3 being genuine failures). Result: GHS 10,200 correctly booked and a monthly close that balances on the first try.

FAQ

Need a professional website?

Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.

Why do some 'pending' transactions never resolve?

Usually because the webhook callback never arrived (endpoint down, network timeout). The fix: re-query each pending at D+1 directly with the operator or Paystack API.

What exactly is an idempotency key for?

It uniquely identifies each payment attempt. On retry, the provider recognises the same key and does not charge twice, eliminating duplicates at the source.

Why does the amount paid differ from the amount ordered?

Because merchant fees (around 1 to 2 %) are deducted at settlement. Always reconcile the net amount received against the gross amount ordered, not the reverse.

What is a webhook's retry window?

Most providers retry delivery for about 24 h. Expose an idempotent endpoint able to receive the same event multiple times without creating duplicates.

Can I reconcile manually at first?

Yes, below 100 transactions/month. Beyond that, an automated script becomes essential to keep pace and avoid data-entry errors.

Let's talk about your project. We set up your daily reconciliation scripts with idempotency and automatic re-query of pending transactions. WhatsApp +221 77 596 93 33.

Tags:#reconciliation#webhook#mtn momo#paystack#bamako#accra#accounting#2026
Share:

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.