Back to blog

How to Accept M-Pesa Payments on WooCommerce with LipaWoo: A Step-by-Step Guide

Take M-Pesa on your WooCommerce store without writing code: get Daraja keys, test the free LipaWoo sandbox, then go live with auto-completing orders — every click and setting written out for beginners.

How to Accept M-Pesa Payments on WooCommerce with LipaWoo: A Step-by-Step Guide

Our developer tutorials cover wiring M-Pesa into custom code, but most Kenyan stores run on WooCommerce — and store owners should not have to write a line of code to take M-Pesa. This guide is for them: if you can install a WordPress plugin, you can finish this walkthrough. Every click, every setting, and every expected result is written out below. By the end, customers on your store will see M-Pesa at checkout, pay through an STK Push prompt on their phone, and their orders will complete themselves — with LipaWoo doing the wiring.

How the finished checkout works

Once LipaWoo is live, the payment flow runs like this:

Customer checks out → chooses M-Pesa → STK Push prompt appears on their phone
→ they enter their PIN → payment confirmed by webhook → order auto-completes

That last arrow is the whole point. In the old days you watched an M-Pesa statement and flipped WooCommerce orders to "completed" by hand. LipaWoo's webhook system listens for the payment confirmation from Safaricom's Daraja 3.0 API and closes the loop for you — "instant confirmation, zero manual work" — and it supports both STK Push (the most popular option) and Customer to Business (C2B) payments.

A customer paying online with a smartphone and card in hand

Step 0 — What you need before starting

LipaWoo lists three requirements:

  • WordPress with WooCommerce 5.0 or newer — the plugin runs inside WooCommerce, so the store must already exist. If you are starting from zero, install WordPress first, then the WooCommerce plugin, and complete its setup wizard
  • A Safaricom M-PESA account with Daraja 3.0 API access — this is what lets your store talk to Safaricom's payment system. You will walk away from Step 1 with a Consumer Key and Consumer Secret
  • An SSL certificate on your domain — the padlock in the browser bar, https:// instead of http://. Most hosts add this free via Let's Encrypt; check with yours. Payment data never travels over an unencrypted connection

You do not need coding skills, a developer, or a payment aggregator account. WordPress admin access is enough.

Step 1 — Get your Daraja API keys

Your keys come from Safaricom's developer portal, not from LipaWoo. Go to developer.safaricom.co.ke, create an account, and generate your Consumer Key and Secret for the Daraja 3.0 API.

In your browser:

  1. Go to developer.safaricom.co.ke and sign up with your details
  2. Once logged in, create a new app and select the M-Pesa products you need — LipaWoo uses STK Push
  3. The portal shows you a Consumer Key and a Consumer Secret. Copy both somewhere safe, like a password manager. Treat the secret like a password: anyone holding both can initiate payments in your name

One thing to know before you copy anything: Daraja issues sandbox credentials and production credentials separately. Sandbox credentials simulate payments without moving money — perfect for Step 5's test run. Production credentials are the real thing. Grab the sandbox pair now; you will switch to production keys in Step 6.

We have a full sandbox-to-production walkthrough if you want the deeper detail: Going Live on Daraja API: The Sandbox-to-Production Checklist.

Step 2 — Download the LipaWoo plugin

Head to lipawoo.wasmer.app and download the free sandbox version — no credit card required. Start with the sandbox: it lets you test the entire checkout flow with fake money before you pay anything.

The free sandbox plan includes a sandbox testing environment, STK Push test mode, basic documentation, and community support. Just as important is what it leaves out:

  • No live payments — sandbox only
  • No auto-order completion — you manage test orders manually
  • No webhook support — the automatic confirmation loop is a live-plan feature

In other words: the sandbox answers "does this work on my store?", and the paid plans answer "does this work with real customers?". The site also offers a free M-PESA WooCommerce Setup Checklist download if you want a printable companion to this guide.

Step 3 — Install and activate the plugin

Now put the plugin on your WordPress site. In your WordPress admin dashboard:

Plugins → Add New Plugin → Upload Plugin → choose the LipaWoo .zip file
→ Install Now → Activate

If you have ever installed any WordPress plugin, this is the same motion — LipaWoo promises the whole thing takes less than a minute.

Checkpoint — after activation, confirm WordPress sees it:

Plugins → Installed Plugins → LipaWoo listed as Active

You should also see the M-Pesa gateway registered in your WooCommerce payment settings:

WooCommerce → Settings → Payments → M-Pesa (LipaWoo) appears in the list

If it does not appear, the plugin is not activated — go back to Plugins → Installed Plugins and click Activate under LipaWoo.

Step 4 — Connect your Daraja keys

Open the LipaWoo settings from the WooCommerce payments screen and paste the two values from Step 1:

  • Consumer Key — from your Daraja app
  • Consumer Secret — the matching secret, not something you invent

While you are in the settings, use the sandbox pair from Step 1, since Step 5 is a test run. Save the settings. The plugin's bundled documentation covers the settings screen in more detail if a field is unclear — and the LipaWoo team is reachable on WhatsApp through their site if you are stuck.

Step 5 — Run a test order

Time to be your own customer. In your WordPress admin:

Products → Add New → create a cheap test product (e.g. KES 10 "Test Item") → Publish

Then open your store in a normal browser window — or an incognito window, so you are not logged in as admin — add the test product to the cart, and go to checkout:

  1. Fill in the billing details as a customer would
  2. At payment, choose the M-Pesa option LipaWoo added
  3. Place the order. Because you are in STK Push test mode, you get the sandbox payment simulation instead of a real prompt on your phone
  4. Back in WordPress admin, open WooCommerce → Orders and find your test order

Expect to complete that order by hand — flipping its status to completed yourself. That is not a bug — it is the sandbox plan's manual order management, listed back in Step 2. The point of this run is to prove the gateway loads at checkout and the flow hangs together on your theme and your checkout page.

Step 6 — Go live

Happy with the test? Now make it real. On lipawoo.wasmer.app, upgrade from the free sandbox:

  • Single Site — KES 2,999 one-time: use on 1 website, plugin updates, support access
  • Unlimited Sites — KES 5,000 one-time: unlimited websites, priority support

Both are one-time payments with lifetime updates — no monthly fees. Back in the plugin settings, swap your sandbox Consumer Key and Secret for your production Daraja credentials from Step 1. Now the full loop goes live: customers see M-Pesa at checkout, they pay via STK Push, and orders auto-complete through webhook confirmation. Delete the KES 10 test product, and you are running.

Plans and add-ons at a glance

Plan / add-onPriceWhat you get
SandboxFreeTest mode, basic docs, community support — no live payments
Single SiteKES 2,999 one-time1 website, lifetime updates, support access
Unlimited SitesKES 5,000 one-timeUnlimited websites, lifetime updates, priority support
PalPlus API add-onKES 1,500 (free with any LipaWoo plan)M-Pesa via PalPlus API instead of Daraja
SMS add-onKES 2,000 (KES 500 with any LipaWoo plan)Order confirmation SMS, delivery tracking, promotions

Two add-ons deserve a closer look. The SMS add-on turns your payment stack into a customer-communication channel: buyers get an order confirmation SMS, you can send delivery tracking alerts, and promotional broadcasts are supported with customizable templates and delivery reports. For a Kenyan delivery business, that KES 500 add-on price alongside any LipaWoo plan is hard to beat.

A courier handing a package to a customer

The PalPlus API add-on takes a different route: it processes M-PESA payments through the PalPlus API rather than your own Daraja app, with order automation, STK Push, transaction logging, and webhook support — and no monthly fees. It is free with any LipaWoo plan, so you can try both routes and keep whichever fits.

If something is not working

  • Orders are not auto-completing — check which plan you are on. Auto-order completion and webhooks are live-plan features; the sandbox manages orders manually by design
  • M-Pesa is missing at checkout — confirm the plugin is activated (Plugins → Installed Plugins) and enabled in WooCommerce → Settings → Payments
  • Payments fail in production but sandbox was fine — the usual culprit is key confusion: production keys pasted while still in sandbox mode, or vice versa. Re-check Step 4, and make sure your Daraja production credentials are fully approved — our Daraja go-live checklist walks through that approval
  • Checkout page complains about security — your SSL certificate is missing or expired, one of LipaWoo's three stated requirements. Ask your host to fix it before processing payments

Where to go next

You now have the complete loop: M-Pesa at checkout, STK Push on the customer's phone, orders completing themselves. Four ways to keep going:

The LipaWoo site itself has a live demo, the free setup checklist, and WhatsApp support, all at lipawoo.wasmer.app.

7.7Ksubscribers
50+tutorials
Freeforever

You made it to the end.

Most people don't. Since you're here: we teach this stuff on YouTube, free, every week. 7.7K developers already watch. Pull up a chair.

Watch on @fortunedevacademy

READY TO START
A PROJECT?

Let's discuss your next project.

START A PROJECT