M-Pesa is how many of your customers prefer to pay. With Xduka POS and our sister platform Paysasa, you can send a payment prompt (an STK push) straight to the customer's phone from the register, with the amount already filled in. No mistyped till numbers, no screenshots, and every payment linked to its sale.
In this guide we cover the one-time setup and how to use it at the till.
What you need
- An Xduka POS store where you have owner or manager access to Settings.
- Your identification details for verification.
- A Paysasa business (the setup can help you connect or create one).
- An internet connection: STK push needs to be online.
Part 1: Connect Paysasa to your store

- Open Settings from the Account section of the menu.
- Go to the Payments tab.
- Start the Paysasa setup for your store ("Set up Paysasa for this store").
- Verify your identity: enter your full legal name, document type and document number. A Tax ID / KRA PIN field is optional.
- Connect your business: choose or set up the Paysasa business, API key and webhook for this store.
- When setup is complete, you will see a Ready for checkout status.
If the setup shows as incomplete or restricted, follow the on-screen messages or contact support.
As our Xduka POS API documentation sets out, your API keys remain in store settings on the server and are never exposed to browsers.
Part 2: Send an STK push at the register

- Open Register and add the customer's items to the cart.
- Under Payment, choose the Paysasa option.
- Enter the customer's phone or wallet number.
- Click Initiate STK Push.
- The customer receives a payment prompt on their phone and approves it with their M-Pesa PIN.
- Once the payment is confirmed, complete the sale and print or send the receipt.
Alternative: send a checkout request
Sometimes an STK prompt is not ideal, for example when the customer wants to pay from a different phone. Instead:
- Enter the customer's phone or wallet.
- Click Send Checkout Request.
- A hosted checkout link and a QR code are created. Click Open checkout to show them.
- The customer pays through the hosted page. You can also trigger an STK push on the same checkout session.
Recording M-Pesa payments made another way
If a customer has already paid by another M-Pesa method, choose M-Pesa as the payment method and record the M-PESA reference code. That keeps the payment traceable.
Handling common situations
The customer's phone is off or the prompt expires
Try again, or switch to a checkout request so the customer can pay via the link or QR.
The network is down
We keep live payment rails such as STK push blocked while you are offline. Accept cash, or wait for the connection to return.
A payment arrived but is not linked to a sale
Users with reconciliation permission can review unmatched payments in Payment Reconciliation and match them to the right checkout session.
Tips for your team
- Confirm the phone number with the customer before sending.
- Never accept a screenshot alone as proof of payment.
- Use split payments if the customer pays part cash and part M-Pesa.
- Tell customers what to expect: "You will get a prompt on your phone now."
Screens and labels may change slightly as we update Xduka POS; if something looks different, contact our support team.
Quick checklist
- Complete Paysasa setup until it shows Ready for checkout.
- Train cashiers on STK push and checkout requests.
- Confirm phone numbers before sending.
- Review unmatched payments daily.
A quick example
For example, take a pharmacy in Thika. The cashier enters the customer's number, taps Initiate STK Push, and the payment is confirmed and linked to the sale.
Frequently asked questions
Do I need to set up Paysasa for each store?
Paysasa is set up per store from that store's settings, so each store can be connected separately.
Can customers pay an invoice by STK push too?
Yes. Invoices can be paid through a PIN-protected page with Paysasa STK or hosted checkout, and you can send an STK prompt from the invoice.
Who can change the payment settings?
Users with permission to manage settings, by default owners and managers.
M-Pesa in a few taps
With Paysasa connected, accepting M-Pesa in Xduka POS is as simple as entering a phone number and tapping Initiate STK Push. The right amount, a clear reference and a linked sale, every time.
Learn more about Paysasa collections on our features page, or start at www.xduka.com.



