Half Cash, Half M-Pesa: Split Tender at a Kenyan Counter
The customer has 1,200 in M-Pesa and the rest in notes. Kenyan retail does this a hundred times a day, and how your till records it decides whether tonight's drawer reconciles or starts an argument. Here is what we support, what we do not, and what the workaround actually costs.
A basket comes to 3,450. The customer pays 2,000 by M-Pesa, hands over a 1,000 note, and finds 450 in coins. One sale, three tenders, thirty seconds. The queue does not care about your data model — but your cash drawer does, and so does the person who has to explain it at eight o'clock.
This post is about split tender: what it is, why it matters more in Kenya than in most markets, what our till does today, and — since this is one of the places we are not yet where we want to be — exactly what the workaround costs you so you can decide with your eyes open.
Why the tender mix matters more here
In a card-dominant market, the payment method is nearly an afterthought: the money arrives in a bank account either way. In Kenya the mix is the operational reality. Cash sits in a physical drawer that someone counts and is accountable for. M-Pesa lands in a paybill or till number that reconciles on a completely different rhythm. Card settles later, net of charges. Three tenders, three reconciliation processes, one sale.
That last figure is the whole problem. The expected cash in a drawer is the opening float plus cash sales less recorded drops. If a sale that was really paid by M-Pesa is recorded as cash, the expected figure rises by money that is not in the drawer, and the cashier is short by exactly that amount through no fault of their own. Mis-tendering does not just distort a report. It manufactures shortages.
What the till does at checkout
Being precise about this matters more than being flattering about it.
- A sale is completed with one payment method — cash, M-Pesa or card — and one payment amount.
- The amount tendered must be equal to or greater than the total. There are no partially paid sales at the counter; a POS sale is a completed transaction, not an open balance.
- If more is tendered than the total, the difference is recorded as change due, and the ledger records the net cash that actually stayed in the drawer rather than the gross amount handed over.
- An M-Pesa payment initiated at the register — an STK push to the customer's phone, or a card charge — can be linked to the sale, and the gateway transaction is flagged so the asynchronous callback does not post the same money twice.
- Every payment is attached to the open cash drawer session, which is how the shift close knows which cash belongs to which cashier.
- The shift summary then breaks the period down by payment method, so you can see the cash, M-Pesa and card split across counters and cashiers.
So: multiple tender types, fully supported and separately reconciled. Multiple tenders on a single sale, in one pass at the counter, is not built.
Two honest ways to handle it today
When a customer genuinely wants to split, you have two options. They are not equally good, and the difference between them is not a matter of taste.
Split the basket into two sales
- Ring the M-Pesa portion as its own sale, paid in full by M-Pesa; ring the rest as a second sale paid in cash.
- Every tender figure is true. The drawer expects exactly the cash that is in it.
- The customer gets two receipts, which is awkward at the counter and worse if they return one item later — the return has to find the right sale.
- Your transaction count and average basket value are both distorted: two sales where there was one customer.
- Reconciliation is clean. Reporting is slightly wrong in a way that is visible and easy to reason about.
Ring it under one tender and note the rest
- One receipt, one sale, correct basket value, correct transaction count.
- The tender mix is false, and falsely in the direction that hurts most.
- If you record it as cash, the drawer expects money that went to M-Pesa, and the cashier appears short.
- If you record it as M-Pesa, the drawer holds cash it does not expect, and the cashier appears over — which is treated with just as much suspicion.
- Reconciliation breaks quietly, every day, in small amounts that nobody can trace back to a cause.
A reporting inaccuracy you can see is always cheaper than a reconciliation error you cannot.
The reason we recommend splitting the basket
If splits are occasional
Split the basket
A handful of two-receipt sales a week costs you nothing that matters. Keep every tender figure true and keep the drawer reconciling. Tell staff the rule once and it holds.
If splits are constant
Change the tender you push, not the record
Constant splitting usually means customers are short of cash and topping up by phone. Encourage full M-Pesa payment — one tender, no change to give, no drawer exposure — rather than teaching staff to mis-record.
If splits are structural to your trade
Tell us, and we will build it
Some counters genuinely cannot avoid it — fuel, wholesale, anywhere a large basket meets a phone wallet limit. Multiple tenders on one sale is a contained change to the checkout, not a rewrite. It is a roadmap item, not an architectural obstacle.
Refunds are the same problem in reverse
When money goes back out, the tender matters just as much. A cash refund reduces the physical drawer, so it must reduce the expected figure — and it does: a cash refund during a shift is recorded as a negative payment against the open session, which lowers the expected cash by exactly the amount paid out.
-
Cash refund
A negative cash payment is recorded against the sale and attached to the open drawer session. The expected drawer figure falls. Because a cash refund needs a drawer to take money out of, the till asks for an open session before it will process one.
-
M-Pesa or card refund
A negative payment is recorded against the sale in that tender, so the payment mix stays honest. The money movement itself happens on the provider's rail; the record here is the instruction and the audit trail, not the transfer.
-
Store credit
Selectable as a refund tender, and it records the return and reverses the revenue and cost in the ledger — but no redeemable credit balance is created for the customer. There is no wallet to draw down at the next visit. Today store credit is an arrangement you keep outside the till.
On store credit, plainly
If store credit is central to how you handle returns, do not choose it as the refund tender and assume the system will remember. It will remember the return, not the promise. Credit notes exist on the invoicing side of the system, but they are not wired to POS returns as a redeemable balance at the counter. Use a cash or M-Pesa refund where you can, and if you need a real customer credit wallet at the till, ask — it is a defined piece of work.
What we do and do not do
What AWRA OpsHub does today
- Cash, M-Pesa and card as distinct tender types on every sale and every refund.
- A required full tender at checkout, with change due computed and the ledger recording the net cash retained.
- Register-initiated M-Pesa STK and card charges linked to the sale, with double-posting from the provider callback prevented.
- Every payment attached to the open drawer session, so cash reconciles to a named cashier.
- Negative payments for refunds, in the same tender, reducing the expected drawer figure for cash.
- A payment-method breakdown on the shift summary, filterable by counter and cashier.
- Additional payments recordable against an existing sale, recomputing paid, balance and change from all payments.
What it does not do
- Multiple tenders on a single sale in one checkout pass — the split-tender basket described above.
- Partially paid POS sales: the counter requires the full amount, so a POS sale is never an open balance.
- A redeemable store-credit or customer-wallet balance at the till.
- Automatic reconciliation of your M-Pesa paybill statement against recorded M-Pesa sales.
- Card settlement handling — the charge is recorded gross; the acquirer's fees and settlement timing are a bank reconciliation matter.
- Tender-level limits or rules, such as "no cash over 50,000" or "card only above a threshold".
Split tender is the item on this list we hear about most, and it is the one we would build first. It is listed as not built because it is not built — not because we think it does not matter.
What to do this week
Four things that cost nothing and stop manufactured shortages
- Tell every cashier the rule out loud: the tender you select must be the money that actually arrived. Never adjust the tender to make one receipt.
- Where a customer splits, ring two sales. Staple the receipts together and move on.
- Read the payment-method breakdown on the shift summary weekly. A counter whose cash share drifts against the others is either serving different customers or recording differently.
- Record cash refunds through the till while the drawer is open, not out of the drawer with a note in a book.
The mechanics of the drawer itself are in counters, cashiers and the handover, the returns process in returns and exchanges at the counter, and the reconciliation habit in POS shift reconciliation.
A tender record you can reconcile against
Cash, M-Pesa and card kept separate on every sale and every refund, attached to a named cashier's open drawer, with a payment-method breakdown you can read by shift.
See POS in AWRAFrequently asked questions
Can a customer pay part cash and part M-Pesa on one sale?
Not as a single sale today. Checkout takes one payment method and requires the full amount, so a genuinely split basket has to be rung as two sales — one paid by M-Pesa, one paid in cash. We recommend that over recording the whole thing under one tender, because a false tender figure breaks the cash drawer reconciliation and makes the cashier look short or over for reasons nobody can trace. Multiple tenders on one sale is a contained change to the checkout and it is the POS request we hear most often.
What is the actual harm in just recording it all as cash?
The expected cash in a drawer is the opening float plus cash sales less recorded drops. Recording an M-Pesa payment as cash raises the expected figure by money that never entered the drawer, so at close the cashier is short by exactly that amount. Do it a few times a day and you have a persistent unexplained shortage that looks like theft and is actually a data-entry convention. That is a much more expensive problem than two receipts.
Can a POS sale be left partly paid?
No. The counter requires the tendered amount to be equal to or greater than the total, so a POS sale is always a completed transaction rather than an open balance. If you need to sell on account with a balance to collect later, that belongs on a customer invoice, not at the till. Additional payments can be recorded against an existing POS sale, which recomputes the paid amount, balance and change from all payments — but the sale was already settled at checkout.
Does an M-Pesa payment at the till actually charge the customer, or do we just record it?
Both are possible. You can record that M-Pesa was the tender, or you can initiate the charge from the register — an STK push to the customer's phone, or a card charge — and link that gateway transaction to the sale. When you do, the transaction is flagged so the provider's asynchronous callback does not post the same money into your books a second time.
What happens when we refund by store credit?
The return itself is fully recorded — the returned lines, the reason, the person, the restock if you chose it, and a ledger reversal of the revenue and cost. What is not created is a redeemable credit balance for that customer. There is no wallet at the till to draw down on their next visit, so store credit today is a promise you track outside the system. If you need a real customer credit balance at the counter, that is a defined piece of work we can quote rather than something to assume.
How do cash refunds affect the drawer?
Correctly, and automatically. A cash refund is recorded as a negative payment attached to the open drawer session, so the expected cash falls by the amount paid out and the cashier is not held responsible for money they handed to a customer. This is also why the till wants an open drawer before it will process a cash refund — money cannot leave a drawer that is not open.