Quick answer

To accept M-Pesa at your shop you need a Safaricom Daraja account with a Paybill or Till Number, and a POS system that supports M-Pesa STK Push. When a customer pays, the POS sends a prompt directly to their phone. They enter their M-Pesa PIN and the payment confirms in under 10 seconds: no cash counting, no fake screenshots.

The problem with manual M-Pesa

Most small shops in Kenya still accept M-Pesa the old way: the customer sends money to a Till or Paybill, shows the confirmation SMS, and the cashier records the sale manually.

This works: until it doesn't. Four problems come up regularly:

  • SMS screenshots can be faked. Edited confirmation messages are easy to produce and visually identical to real ones.
  • Reconciliation is slow. Matching SMS codes to sales at end of day is manual, tedious, and error-prone.
  • No link between payment and sale. Your POS records a sale, but it has no connection to the M-Pesa transaction that paid for it.
  • Stock drift. If a cashier forgets to ring up a sale after receiving M-Pesa, your inventory numbers drift silently.

Integrated M-Pesa, specifically STK Push, solves all four.

What is M-Pesa STK Push?

STK Push (SIM Toolkit Push) is a Safaricom Daraja API feature that lets your POS send a payment prompt directly to a customer's phone. The customer does not open M-Pesa or find your number manually: the prompt appears on their screen automatically.

Here is exactly what happens when you use STK Push at the till:

  1. You ring up the sale in your POS as normal
  2. You select M-Pesa as the payment method and enter the customer's phone number
  3. The POS sends a payment request to Safaricom via the Daraja API
  4. A payment prompt appears on the customer's phone automatically
  5. The customer enters their M-Pesa PIN
  6. Safaricom sends a confirmation callback to your POS
  7. The sale completes. Stock deducts, receipt is ready

The whole flow takes under 10 seconds. Customers do not need to know your Till Number or Paybill number. There is no SMS to screenshot. The POS has a real, API-confirmed payment record: not just a manual note that money was received.

What you need before you start

Three things are required:

  • A Safaricom business account with a Paybill number or Till Number. Register at safaricom.co.ke/business.
  • A Safaricom Daraja API account. This is the developer portal that gives your POS access to M-Pesa programmatically. Register at developer.safaricom.co.ke. You will receive a Consumer Key and Consumer Secret.
  • A POS system that integrates with Daraja. Not every POS in Kenya does this. WebpinnPOS supports Daraja STK Push with both Paybill and Till Number.

Note on Daraja registration: Safaricom requires a go-live application for Daraja production access. After registering, you submit a short form describing your integration. Approval typically takes 2โ€“5 business days.

Paybill vs Till Number: which one for your shop?

Both work with STK Push, but they are structured differently. The right choice depends on how your business receives and manages money.

FactorTill NumberPaybill Number
SetupSimpler: register with Safaricom directlyRequires a business bank account
Funds go toM-Pesa wallet (withdraw to bank manually)Directly to your bank account
Account referenceNot required from customerCustomer must enter an account number
Monthly chargesLowerSlightly higher
Best forSingle-location retail shopsMulti-branch or high-volume businesses

For a single shop taking in-person payments, a Till Number is usually the simpler starting point. See the full breakdown: M-Pesa STK Push vs Paybill vs Till Number.

How to set up M-Pesa in WebpinnPOS

WebpinnPOS connects directly to the Safaricom Daraja API and supports both Paybill and Till Number configurations. Setup takes about 10 minutes once you have your Daraja credentials.

  1. In your WebpinnPOS dashboard, go to Settings โ†’ Integrations โ†’ M-Pesa
  2. Enter your Paybill or Till Number
  3. Enter your Daraja Consumer Key and Consumer Secret
  4. Click Save and run a KES 1 test transaction to confirm the connection

From that point, every payment at your till can be processed via STK Push. The confirmation is automatic. Cashiers do not need to verify SMS codes.

Does it work for multiple branches?

Yes. WebpinnPOS supports separate M-Pesa credentials per branch. If you have two shops with different Till Numbers, each branch is configured independently and payments are attributed to the correct location automatically.

Can customers still pay with cash?

Yes. WebpinnPOS lets cashiers choose the payment method at checkout: cash, M-Pesa STK Push, or card. Split payments (part cash, part M-Pesa) are also supported for customers who want to combine payment methods.

Frequently asked questions

Ready to connect M-Pesa to your shop?

WebpinnPOS integrates directly with Safaricom Daraja. Set up STK Push in under 10 minutes.

Start Free Trial
14 days free. No credit card required.