Payments

Kopo Kopo API Webhooks Explained for Non-Developers

Webhooks are how your till finds out a payment happened — in plain English. What a signed payment notification is, why it beats checking messages, and what it means for your shop.

25 August 2026 · Kiosk

Share

A webhook is a phone call between systems. When a customer pays your till, Kopo Kopo doesn't wait for anyone to check anything — it calls your POS and says, 'KES 1,500 just landed on till 3502582, from a number ending in 123.' No developer required to understand that. This guide explains the whole idea over the counter.

You'll come away knowing the two halves of any webhook — the event and the delivery — why the call carries a signature, what your till does with it, and what breaks when webhooks aren't set up.

1. A Webhook Is Just a Phone Call

Every webhook has two halves. The event: what happened — a payment arrived, with its amount and its details. The delivery: how your till finds out — Kopo Kopo dials a callback URL your POS registered when you subscribed till webhooks.

  • Who calls — Kopo Kopo, the moment the money moves.
  • Who picks up — your POS, at the callback URL wired up during setup.
  • What's said — a payment event: amount, till number, paying number, time.
  • How you know it's genuine — a signature on the call.

2. The Signature Is What Makes It Trustworthy

The key word is signed. Kopo Kopo signs every payment notification with a secret only it and your POS share — carried in the X-KopoKopo-Signature header. Before the till closes a sale on the strength of a call, it checks the signature. Wrong signature, ignored.

Why that matters at the counter: the 'I paid' claim. A customer or a staff member cannot forge a confirmation. The only way a sale closes as paid is if Kopo Kopo itself confirmed the payment.

A webhook as a signed phone call: a payment event, Kopo Kopo calling the till with an X-KopoKopo-Signature, and the till verifying the signature before it matches and closes the sale
Event, signed call, action — the three parts of a webhook, and the signature that keeps it honest.

3. What the Till Does with the Call

  • Matches it to an open sale — by amount, and by the paying number where available.
  • Closes the sale — receipt, stock drop, and a payment line in the shift record.
  • Or holds it — no match yet means the payment stays visible until a cashier resolves it. Nothing vanishes.

That's the whole magic: nobody checks anything, because the system that knows about the money is the system that tells the till.

4. Two Calls Your Till Cares About

In a shop, two Kopo Kopo webhooks matter, and both run through the same integration:

  • Payment received — a customer paid a till (buy goods). Kiosk uses it to complete sales, including the 'listening for till payment' flow where the cashier keeps working while the customer pays.
  • Send money — a payout was confirmed (Kopo Kopo Send Money). Kiosk uses it to update supplier ledgers the moment you pay an invoice.

One integration, two directions — money in and money out — and both update your records automatically.

5. Webhooks vs. Checking Messages

Webhook (integrated)Checking messages (manual)
How the till learnsInstantly — Kopo Kopo callsWhen someone scrolls to it
AccuracyExact amount, till, number, timeAs good as the reading and typing
Signature checkYes — can't be fakedNone
Close timeSale closes itselfClose waits on the match
What breaksA misconfigured callback or tillBusy days, staff changes, deleted messages

6. Why This Matters at Close

Because every payment arrived signed and matched at the moment it happened, the end-of-day report is a formality: the M-Pesa column comes from confirmed payments, and it agrees with your business account. Reconciliation doesn't disappear — it shrinks to the exceptions, and most days there are none.

Read next:

Frequently asked questions

What is a webhook in plain English?

An automated call from Kopo Kopo to your POS the moment a payment happens — with the amount, the till number, the paying number, and the time. No one checks anything; the system that knows about the money is the system that tells the till.

Does a webhook close the right sale?

Yes. The till matches the notification to an open sale by amount, and by the paying number where Kopo Kopo provides it. If nothing matches, the payment stays visible until a cashier resolves it — it doesn't silently vanish.

Can a webhook be faked?

No. Kopo Kopo signs every notification with a secret only it and your POS share (the X-KopoKopo-Signature). The till checks the signature before acting, so a customer or staff member can't forge a confirmation.

Do I need a developer to set up webhooks?

On Kiosk, no. The 'Subscribe till webhooks' action registers your till numbers and the callback URL automatically. On a POS without this, you'd typically paste a callback URL into the Kopo Kopo dashboard — that's the manual version.

What's the difference between a webhook and polling?

A webhook is Kopo Kopo calling the till the instant a payment happens. Polling is the till asking Kopo Kopo 'any payments yet?' over and over. Webhooks are instant and free to check; polling is slower and wastes effort on empty answers.

Which Kopo Kopo webhooks matter for a shop?

Two: payment received (a customer paid a till — Kiosk uses it to complete sales, including the 'listening for till payment' flow) and send money (a payout was confirmed — Kiosk uses it to update supplier ledgers). One integration, money in and money out.

Related articles

Ready for a POS built for Kenya?

Start free on Kiosk.ke — barcode POS, native M-Pesa STK, offline sales, and an online storefront from one stock count.