Every Kenyan WooCommerce store runs into the same wall: customers want to pay with M-Pesa, but the default WooCommerce checkout has no idea what M-Pesa is. The usual workarounds are a paybill number plus someone refreshing SMS to match transaction codes to orders, or a free plugin that was uploaded years ago and never touched again. We built LipaWoo as the third option: a current, direct Daraja 3.0 integration that completes the order the moment Safaricom confirms the payment. This post explains what it does, why we believe it is the best M-Pesa plugin for WooCommerce, and what it costs.
What LipaWoo does at checkout
LipaWoo adds an M-Pesa payment method to WooCommerce and runs the whole payment cycle without anyone watching the till:
- STK Push on the customer's phone. The buyer picks M-Pesa, enters their phone number, and a payment prompt appears on their handset. They enter their PIN and the payment is done. Nobody types a transaction code.
- Automatic order completion. The plugin registers a webhook with Safaricom, so the order flips to paid as soon as the callback confirms it. Stock decrements, confirmation emails go out, and the order sits correctly in your dashboard.
- Daraja 3.0 directly. Payments run through Safaricom's official Daraja 3.0 API with OAuth 2.0 authentication. Your Consumer Key and Secret are stored encrypted and never appear in your dashboard.
- C2B support. Customer-to-Business payments work alongside STK Push, so customers who prefer to pay from their own menu can do that too.
- Transaction analytics. Revenue and transaction history live inside WooCommerce admin, with CSV export and date/status/amount filters for your accountant.
- Test mode. A free sandbox lets you place test orders with test credentials before a single shilling moves.
- Refunds from WooCommerce. Refunds are issued from the WooCommerce admin and land back in the customer's M-Pesa account.
Why we believe LipaWoo is the best option
Kenyan store owners realistically have three paths to M-Pesa, and LipaWoo wins against both alternatives.
Path one: manual paybill reconciliation. You display a paybill number, the customer pays, and someone matches the SMS to the order. It works until it does not: mistakes, slow confirmations, customers who paid but never got their order marked, and no automatic stock updates. It also does not survive a Saturday of traffic.
Path two: build the Daraja integration yourself. This is a real project, not an afternoon. You need the STK Push call, a publicly reachable callback URL, idempotent handlers so a replayed callback cannot double-record, status polling as a fallback, and Safaricom's go-live process before you accept live traffic. We wrote the Daraja go-live checklist covering exactly those requirements. Most stores should spend that time selling, not wiring webhooks.
Path three: grab a free plugin from WordPress.org. Some of them are stale. The popular "Pay via ProxyAPI" plugin, for example, has not been tested against the last three major WordPress releases and was last updated five years ago, and it requires a separate ProxyAPI account on top of your Safaricom account. LipaWoo runs on Daraja 3.0 directly, ships updates as WooCommerce changes, and comes with email support from the team that built it.
Setup takes about five minutes
- Get Daraja 3.0 credentials. Create an account at developer.safaricom.co.ke, go to My Apps, create a new app, and select the Daraja 3.0 API. You get a Consumer Key and Consumer Secret. Approval can take a day or two, so start this first.
- Install the plugin. Download the zip from your purchase email, upload it under WordPress admin, and activate it.
- Enter your credentials. Under WooCommerce, Settings, Payments, open LipaWoo and paste the Consumer Key, Consumer Secret, business shortcode, and passkey.
- Test. Turn on Test Mode, place an order, and confirm the order completes automatically.
- Go live. Switch off Test Mode and take real payments.
Pricing with no monthly fees
| Plan | Price | What you get |
|---|---|---|
| Sandbox | Free | Test mode, documentation, community support |
| Single Site | KES 2,999 once | One website, updates, email support |
| Unlimited Sites | KES 5,000 once | Unlimited websites, updates, priority support |
There are no subscriptions and no per-transaction fees from us, and every paid plan includes a 14-day money-back guarantee. Two optional add-ons extend it: the PalPlus API gateway (KES 1,500 standalone, free with any LipaWoo plan) for stores that want an alternative to Daraja, and an SMS add-on (KES 2,000 standalone, KES 500 with a plan) for order confirmations and delivery updates.
What your customer experiences
The buyer adds products to the cart, chooses M-Pesa, types their phone number, and gets the prompt on their phone. PIN in, payment confirmed, order marked complete, confirmation email sent. The whole exchange happens on their handset while your store updates itself in the background. No transaction codes, no waiting on a human with a spreadsheet.
LipaWoo is not for every payments problem
LipaWoo needs a WooCommerce store. If you are collecting money without one, event tickets, school fees, donations, bookings, or registration fees paid through a shareable link, that is what we built FormPesa for. For the wider landscape of M-Pesa plugins, our 2026 WordPress plugin roundup compares the options in detail.
Get LipaWoo
Grab LipaWoo at lipawoo.com, start on the free sandbox, and move to a paid plan when you are ready to take live payments. Questions go to [email protected], and the documentation walks through installation, credentials, and testing step by step.
