Achekam

Taking M-Pesa at a Kenyan practice's reception

How a Kenyan clinic can take M-Pesa at the front desk, by a prompt to the patient's phone or a claimed till payment, and handle rounding and refunds.

By Achekam · · 4 min read · For Healthcare businesses in Kenya

M-Pesa payment clinic reception

At most Kenyan clinics, the patient at the counter reaches for a phone, not a wallet. M-Pesa is how people expect to pay. The trouble starts afterwards: a receptionist scrolling through confirmation messages on the clinic phone, a patient holding up a screenshot, two people who paid the same amount at almost the same time, and an end-of-day total that does not match the statement.

The goal is simple. Every M-Pesa payment at reception should be tied to one patient's sale, once, with no guessing. This article shows the two ways Achekam's till takes M-Pesa, what happens to the odd cents, and how refunds work.

Getting set up before the first patient

Three things need to be in place:

  • The till. It comes with the Point of Sale add-on, under Commerce & POS. Without the add-on, the till does not appear.
  • Your own M-Pesa credentials. A workspace administrator enters the clinic's M-Pesa details in Settings under Payment Gateways & Checkout, and can test the connection there. Payments go to the clinic's own paybill or Buy Goods till.
  • Safaricom's Go-Live. Taking real payments needs Safaricom's Go-Live for your short code, so start that process early.

If you want to claim payments that patients send themselves (the second route below), your paybill or till must also be registered for payment notifications.

Route one: a prompt on the patient's phone

This is the tidiest way. On a shilling till, the receptionist rings up the visit, chooses M-Pesa and enters the patient's phone number. Achekam sends a payment prompt to that phone. The patient checks the amount and the clinic's name and enters their PIN.

Because the prompt carries the exact amount for that sale, there is nothing to match afterwards. The patient does not type a till number or an amount, so there is less room for the wrong figure or the wrong business. The server refuses any till sale that is not paid in full, so the sale completes only when the whole amount is covered.

A prompt works best when the patient has their phone in hand and network at the counter. For a patient whose phone is flat, or who prefers to pay their own way, use route two.

Route two: the patient pays the till number

Many patients are used to paying a paybill or till number themselves. That is fine, but the payment then arrives without any link to the patient's sale.

To make the link, the receptionist types the M-Pesa code from the patient's confirmation message into the till. The server finds that payment and matches it to the sale, once only. If someone tries to use the same code on a second sale, it will not match again. That single rule ends the "screenshot problem": a code can pay for one visit and no more.

A short routine for reception:

  1. Tell the patient the exact amount and show the clinic's paybill or till number.
  2. Wait for the patient's confirmation message.
  3. Type the M-Pesa code from that message into the till, not an amount.
  4. Complete the sale and give the patient their receipt.

Whole shillings and the odd cents

M-Pesa deals in whole shillings, so the till rounds the amount before sending a prompt. By default it rounds up to the whole shilling. A business can set the rule to round down or to the nearest shilling instead. Either way, the difference is recorded on the sale, so the books still agree with what was charged.

In words: if a visit comes to a total with cents on the end, the prompt asks for the next whole shilling by default, and the extra fraction is recorded against that sale. If the clinic prefers to absorb the cents, it sets the rule to round down.

Refunds go through the M-Pesa portal

Sometimes a patient is charged for a procedure that did not happen, or pays twice. A supervisor or manager can refund all or part of a till sale, with a reason, and the refund is kept as its own document linked to the original sale.

For M-Pesa, Achekam does not send the money back itself. The clinic makes the refund in its own M-Pesa portal, then records it at the till with the M-Pesa reference. Agree who in the clinic can make portal refunds, and make sure that person records each one the same day, so the till and the portal never drift apart.

Where M-Pesa money lands in the books

Every till sale that reaches the server posts a journal in the same step, and each payment method has its own account. M-Pesa takings go to their own account (1070 in the default chart), apart from cash and card. When money moves from M-Pesa to the bank, someone records that payout by hand against M-Pesa's clearing account, together with the fees. At month-end your accountant can then see M-Pesa received, M-Pesa paid out and the charges in between.

A word on eTIMS

Taking payment by M-Pesa does not change the clinic's tax invoicing duties. Under section 23A of the Tax Procedures Act, every business in Kenya must issue electronic tax invoices through KRA's eTIMS, subject to the exclusions in the law. Achekam does not generate eTIMS receipt numbers itself, and its Kenyan VAT return lists till sales that are not yet fiscalised so you can see what still needs attention. Ask your accountant how your practice's services are treated and which eTIMS channel you should use.

Next steps for the clinic

Run one test sale each way before going live: a prompt to a staff member's phone, and a payment to the till number claimed by its code. Then check both on the receipt and in the books. For what a full patient receipt should show, see giving patients a proper receipt at reception, and for balances patients settle later, statements and reminders for patient accounts.

General guidance only, not advice on your own circumstances. Tax and payroll rules change: check the current position with the authority or your adviser.

Related articles

More on Healthcare

See how Achekam handles it with your own records: create your account