Last checked
An M-Pesa integration costs developer time to build and test, a shortcode you apply for, a fee on every sale, and upkeep when Safaricom changes something. Safaricom charges you per collection. Paystack charges 1.5 percent on M-Pesa and takes weeks off the build. Choose by sales volume and by how much developer time you have.
Picture a hardware shop in Eldoret that asks customers to pay by M-Pesa on the website. Behind that one button sit four separate costs.
This guide is part of our series for business owners. The overall budget for an app is in how much it costs to build an app in Kenya. Here we stay on M-Pesa alone.
A till (Buy Goods) is the number a customer types when paying a shop. A paybill is the business number plus an account number, such as an invoice or a student admission number. Both can be used by an app.
| Till (Buy Goods) | Paybill | |
|---|---|---|
| Typical use | Shops, restaurants, services paid at the counter or online | Rent, school fees, utilities, subscriptions, loan repayments |
| What the customer enters | Till number and amount | Paybill, account number and amount |
| Matching money to a customer | By phone number or order reference in your system | By the account number the customer typed |
| Fee structure | Published bands | Agreed with Safaricom for your business |
The choice changes how you match each payment to a customer. A paybill carries an account number you can use as the match. A till depends on the reference your app creates and the phone number the payment came from.
If you already know your shortcode type and want a developer to take it live, you can talk to Mctaba Labs about a payments integration.
Get weekly developer tips
Join 25,000+ developers. Practical guides, job tips, and new content — straight to your inbox.
No spam. Unsubscribe anytime.
Fees are the cost that never ends. Work them out per month, not per sale.
For a till, reporting on Safaricom's August 2026 change lists Buy Goods collections up to KES 500 as free, 0.55 percent from KES 501, and a flat KES 200 above KES 36,363 (Tech-ish report on the Buy Goods tariff, checked on 3 November 2026). Safaricom did not let us read its own tariff page today, so confirm these against your merchant agreement.
For a paybill, there is no single published rate we can point to. The charge depends on the tariff model Safaricom gives your business. Ask your account manager for the written rate card before you plan around any figure.
Through Paystack, the Kenya price is 1.5 percent per M-Pesa transaction with no setup or monthly fee, and funds settle two working days after payment (Paystack Kenya pricing, checked on 3 November 2026).
For example, imagine a shop collecting KES 1,000,000 in a month through Paystack. At 1.5 percent that is KES 15,000 in fees. The same shop on a till pays 0.55 percent on each sale above KES 500, which is a lower figure on larger baskets. The gap is what the extra developer work buys you.
Also ask who pays the fee. You can absorb it or add it to the price. Check that your price list and your terms say which.
Daraja is Safaricom's developer platform for M-Pesa. You build and test in a sandbox, then ask Safaricom to move your app to production against your real shortcode. The platform documentation sits at the Safaricom Daraja portal.
Our developer notes cover the detail: Daraja from sandbox to production, M-Pesa callback URLs and STK Push explained.
Writing the payment call is the short part. Most hours go on the callback that arrives late or twice, the customer who closes the prompt, and matching each payment to an order. A developer who has done this before saves you the waiting.
We do not publish studio prices. You can still estimate the work by counting what the payment flow must handle.
| Piece of work | Ask the developer |
|---|---|
| Customer pays on the phone prompt | What if they enter the wrong PIN or ignore it? |
| Result arrives | What if the callback comes twice, or never? |
| Match payment to order | What if the customer pays the wrong amount? |
| Refunds and reversals | Who triggers them, and how are they recorded? |
| Daily reconciliation | Does the finance team get a report that matches Safaricom's statement? |
| Security | How do you check a callback is really from Safaricom? |
A quote that covers only "STK Push" has left out most of the table. Read our notes on M-Pesa payment reconciliation and securing payment webhooks to see what a complete job includes.
The amount is stored as an integer in cents in many systems, because decimals in money cause bugs. Our note on handling money in code explains why.
Paystack is a payment company that already holds the connections. You integrate once with Paystack, and it handles M-Pesa and cards for you. Its documentation is at Paystack docs.
All of mctaba.com's own M-Pesa payments run through Paystack. We chose that route for our own site because it cut build time and gave one dashboard for cards and mobile money.
Many businesses start on an aggregator and move to direct rails when volume justifies it. That path works only if your first build keeps payments behind one clean boundary in the code, so the swap touches one part. Ask your developer how they will do that.
If you later sell outside Kenya, the answer widens. See one checkout for M-Pesa, MoMo and cards across Africa.
After go-live, someone must watch the payments. A failed callback is a customer who paid and got nothing, which is the worst phone call a shop owner takes.
If you run a till at a restaurant or shop, the receipt side matters too: see eTIMS integration for restaurants and shops for how M-Pesa and tax receipts fit together.
Our overview of the stack behind this is in the M-Pesa integration guide. If you are comparing builders, 12 questions to ask before you hire a software studio lists what to ask about payments in particular.
Bring your shortcode type, your monthly volume and the list of flows: pay, refund, payout, reconcile. With those four, any competent team can give you a fair estimate.
When you are ready, talk to Mctaba Labs about a payments integration. We will tell you honestly whether Paystack or a direct link fits, and why.
Our studio integrates M-Pesa, Airtel Money, MTN MoMo and Paystack into your product, with reconciliation that holds up on busy days.
Book a scoping call