Escrow Safe Trade is live: protect your next high-value deal Learn more
ProductsPayment links & checkoutM-Pesa, cards, invoices, split payoutsEscrow Safe TradeMilestone and release-based escrowWallets & P2PPersonal and business walletsChama, Lengo & DeniGroup savings, goals and IOUsBusiness toolkitAccounting, payroll, POS, ticketingBulk payments & payrollPay many people in one uploadSubscriptions & billingRecurring plans and renewalsRent, loans & donationsCollections and campaignsAll products
SolutionsMerchantsBuyersChama groupsBusiness solutionsIndustries
Pricing
DevelopersDeveloper overviewQuickstart, auth and sandboxREST APIsCheckout, invoices and requestsWebhooksSigned, real-time eventsWallet-as-a-ServiceVirtual sub-accountsDocumentationGuides and API reference
Security
CompanyAbout usCareersPartnersBlogHelp centreContact us
Log in Get started Talk to sales
Guides4 min read

How to Accept M-Pesa Payments with Paysasa STK Push in Xduka POS

Connect Paysasa to your store and start sending M-Pesa STK push prompts and checkout requests straight from the Xduka POS register.

Paysasa Team12 Oct 2026

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

Connecting Paysasa to your store happens once
Connecting Paysasa to your store happens once
  1. Open Settings from the Account section of the menu.
  2. Go to the Payments tab.
  3. Start the Paysasa setup for your store ("Set up Paysasa for this store").
  4. Verify your identity: enter your full legal name, document type and document number. A Tax ID / KRA PIN field is optional.
  5. Connect your business: choose or set up the Paysasa business, API key and webhook for this store.
  6. 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

Sending an STK push during a sale
Sending an STK push during a sale
  1. Open Register and add the customer's items to the cart.
  2. Under Payment, choose the Paysasa option.
  3. Enter the customer's phone or wallet number.
  4. Click Initiate STK Push.
  5. The customer receives a payment prompt on their phone and approves it with their M-Pesa PIN.
  6. 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:

  1. Enter the customer's phone or wallet.
  2. Click Send Checkout Request.
  3. A hosted checkout link and a QR code are created. Click Open checkout to show them.
  4. 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.

#M-Pesa#Paysasa#STK push#payments#how-to

Get paid by M-Pesa, cards and wallets, safely.

Create a free Paysasa account in minutes: payment links, checkout, escrow and instant reconciliation.