Buy Goods till or paybill for a Kenyan shop?
How a Buy Goods till and a paybill differ for a Kenyan shop's customers, and how each works with Achekam's till, M-Pesa prompts and invoice matching.
By Achekam · · 4 min read · For Retail businesses in Kenya
For a Kenyan shop, M-Pesa is not an extra payment method. For many customers it is the main one. The question a new shop or a growing one faces is not whether to take M-Pesa, but how: on a Buy Goods till number, where the customer simply pays the shop, or on a paybill, where the customer pays the shop and quotes an account number.
Both work at a counter. They behave differently when you also invoice trade customers, and they behave differently in Achekam when it comes to matching a payment to a sale or an invoice without anyone retyping it. This article sets out those differences so you can choose, or decide to run both.
How a Buy Goods till and a paybill differ for the customer
From the customer's side of the counter:
| Buy Goods till | Paybill | |
|---|---|---|
| What the customer enters | The till number and the amount | The business number, an account number and the amount |
| Effort at the counter | Fewer steps, quick for walk-in sales | One extra field, which customers sometimes get wrong |
| What the shop learns | Who paid and how much | Who paid, how much, and the account reference they quoted |
| Typical use | Over-the-counter retail | Bills, invoices and accounts with a reference |
Safaricom's page on Lipa Na M-PESA describes Buy Goods tills and the M-PESA Business Till for merchant payments, and is where a shop starts if it does not yet have a short code.
That account reference on a paybill is the important difference for your books. It is what lets a payment be matched to the right invoice without a person in the loop.
Payment prompts to either kind of short code
You do not have to rely on customers typing numbers at all. A Kenyan business can send an M-Pesa payment prompt to a customer's phone for a shilling invoice, to its paybill or its Buy Goods till, and the payment is confirmed with Safaricom before it counts. On a shilling till, the cashier can send the same kind of prompt for a sale, with the amount rounded to whole shillings by the business's rounding rule.
So for prompts, the choice of short code makes little difference. The customer sees the request on their phone, enters their PIN, and the sale or invoice is paid once Safaricom confirms.
A few details worth knowing:
- Only whole shillings are requested. Any cents stay due on the invoice.
- The same phone can be prompted once a minute, so a cashier who resends too quickly will be held back.
- Production use needs Safaricom's Go-Live for your short code.
Payments matched by invoice number as the account
The difference shows up when customers pay without a prompt, from their own phone.
A Kenyan business can register its paybill or till with Achekam. Then a payment that quotes an open shilling invoice number as the account number is receipted against that invoice automatically. Any other payment waits in a list, in suspense, for a person to allocate.
Think about what that means for each kind of short code. On a paybill, a trade customer paying an invoice can quote its number as the account, and the receipt is recorded for you. A Buy Goods payment carries no account number, so there is nothing to match it to an invoice by, and it waits for a person to allocate. For a shop that invoices builders, schools or restaurants on account, that is the strongest reason to have a paybill.
Tell trade customers exactly what to type as the account: the invoice number, as printed. Put it on every invoice next to your paybill number.
Customer-initiated payments claimed at the till by code
At the counter, customers often pay before the cashier has finished ringing up, or prefer to pay from their own phone rather than wait for a prompt. When a customer pays the business's paybill or till number that way, the cashier types the M-Pesa code from the customer's confirmation message, and the server matches that payment to the sale, once only. A code cannot be used to pay for two sales.
That works for both a paybill and a till number, but only after the short code is registered for payment notifications. Until then, the server has no record of the payment to match the code against. The same reception-desk pattern is described for clinics in M-Pesa at reception.
Registering the short code and going live
Getting either kind of short code working in Achekam takes three steps on your side:
- Complete Safaricom's Go-Live for your short code. Safaricom e-mails the production passkey afterwards.
- Enter your own production details in Achekam: the short code, the passkey and your Daraja keys.
- Register the short code so payments are notified to Achekam. Production URL registration is one-time per short code at Safaricom, and changing it later needs two operators in the M-Pesa org portal.
Plan those operators before you start. The full walk-through is in going live with M-Pesa.
Choosing for a shop that also invoices trade customers
A practical way to decide:
- Counter sales only, walk-in customers. A Buy Goods till is simplest for customers, and prompts plus till codes cover your matching.
- Counter sales and trade customers on invoices. A paybill, so invoice payments match themselves by invoice number. Prompts work for the counter too.
- Both, kept apart. Some shops run a Buy Goods till at the counter and a paybill for accounts. Payments then arrive already separated, but both short codes need registering and going live.
Whichever you choose, check the suspense list every day. Anything sitting there is a customer's money you have received but not yet recorded against what they bought. Start by deciding which short code your trade customers will use, and print it on your next batch of invoices.
General guidance only, not advice on your own circumstances. Tax and payroll rules change: check the current position with the authority or your adviser.