Payments

Is the M-Pesa API Free? What Daraja Really Costs in 2026

What you actually pay to take M-Pesa on a website or by link: Safaricom's Till and Paybill charges, the hidden cost of building it yourself, gateway percentages, and a flat-fee option, with the numbers worked out.

The short answer

Safaricom lists no fee for using the Daraja API itself, in the sandbox or in production. There is no official statement that it is “free”, though, and every payment that goes through it carries the normal M-Pesa tariffs.

So the real costs are three things: Safaricom's tariff on each payment, building and hosting the integration, and any fee a gateway adds if you use one.

The rest of this post puts numbers on each, using the prices published at the time of writing (October 2026). Tariffs and gateway rates change, so follow the links and check before you decide.

What Safaricom charges on a Till (Buy Goods)

For Lipa na M-Pesa Buy Goods, the customer pays nothing (the one exception is authorised fuel stations). The merchant pays a charge on each payment received:

Payment amount (KES)Customer paysMerchant pays
0 – 500NothingNothing
501 – 36,363Nothing0.55% of the payment
Above 36,363NothingFlat KES 200

Source: Safaricom's tariff page (last updated August 2026), at the time of writing (October 2026).

The free band is new. In August 2026 Safaricom raised it from KES 200 to KES 500, according to its “Pata More” announcement (September 2026). If you read an older article that says payments up to KES 200 are free, that is why.

Worked examples for a Till

  • A KES 400 sale: in the free band, so you pay KES 0.
  • A KES 1,000 sale: 0.55% of 1,000 = KES 5.50. You receive KES 994.50.
  • A KES 10,000 sale: 0.55% of 10,000 = KES 55.
  • A KES 50,000 sale: above KES 36,363, so a flat KES 200.

The KES 36,363 line is where 0.55% reaches about KES 200, so the charge stops growing there.

What Safaricom charges on a Paybill

A Paybill works differently. When you set it up, you choose a tariff option with Safaricom. The cost can fall in one of three ways:

  1. The business pays the charge on each payment.
  2. The customer pays the charge when they send money.
  3. The cost is split between the business and the customer.

We are not quoting Paybill amounts here because we could not verify the current bands. Safaricom's Paybill page links its “Paybill standard tariff”, and your Safaricom account manager can tell you which option your Paybill is on.

Does STK Push cost extra?

Safaricom publishes no separate STK Push charge. As far as Safaricom's published tariffs show, STK Push payments are charged as ordinary Till or Paybill payments. The prompt is just a quicker way for the customer to pay the same shortcode. For how the prompt works, see our STK Push tutorial.

The hidden costs of doing Daraja yourself

No API fee does not mean no cost. If you connect to Daraja directly, you (or a developer you pay) take on:

  • A developer's time to write the STK Push request, handle errors and test in the sandbox.
  • A server that runs all the time, because Safaricom sends its result to your server, not to the customer's browser.
  • HTTPS on that server, and a callback URL Safaricom can reach.
  • Confirming payments properly. A callback alone is not good proof; you should ask Daraja for the status before you hand anything over.
  • Reconciliation: matching each payment to an order, and chasing the ones where the customer cancelled or the prompt timed out.
  • Go-live paperwork. Safaricom asks for the M-Pesa username of a Business Administrator or Business Manager on the M-Pesa Org Portal. If you do not have one, creating one needs a signed, stamped letter on company letterhead sent to Safaricom.

None of this has a fixed price, and if you already have a developer and a server it may cost you very little. It is still real work, and it is the part most “Daraja is free” posts leave out. Our guide to Daraja API keys walks through the go-live steps.

What payment gateways charge

Gateways do the technical work for you and charge a percentage. These are their published rates in October 2026 for M-Pesa payments in Kenya:

GatewayM-Pesa rateGetting your money
Paystack1.5%Payout after 2 working days
Flutterwave2.9%, plus KES 100 per transfer out (excl. VAT)Next-day settlement
IntaSend3%, plus KES 100 per M-Pesa payoutWallet settles instantly
PesaPalNot published on its siteHeld in a trust account; bank settlement up to 3 working days

Sources: Paystack support, Flutterwave Kenya pricing, IntaSend pricing, PesaPal business FAQs.

The important point is structural, not the percentage. All four collect the customer's money into their own accounts and settle it to you later. None of them pays straight into your own Paybill or Till. That is how they work, and for many businesses it is fine, especially if you also want cards. Just know that the money sits with someone else for a while, and that each transfer out can carry its own fee.

We have also not been able to confirm whether a gateway's rate already includes M-Pesa charges or whether it passes them on separately. Ask before you sign up.

A flat monthly fee: KenZobe Checkout

KenZobe Checkout is our own product, so weigh this section with that in mind. It is one option, not the only one.

It gives you hosted checkout, payment links, a pay button for any website, a REST API and webhooks. You bring your own Daraja app and your own Paybill or Till, and customer money goes straight into your own Paybill or Till. KenZobe never receives or holds it. Instead of a percentage, you pay a flat monthly plan:

PlanPrice (KES per month)Successful live payments per month
SandboxFreeUnlimited test payments
Basic2,400Up to 300
Growth6,000Up to 1,500
Business14,000Up to 6,000
CustomQuotedAbove 6,000
  • No percentage per payment from KenZobe. Plans are prepaid monthly by M-Pesa and carry no VAT (KenZobe is not VAT-registered).
  • Safaricom's own M-Pesa charges still apply as usual, because the payment lands in your shortcode.
  • A customer's payment is never blocked because you went over your plan's volume.
  • Sandbox is free, and a new account can try a test payment straight away, before adding its own Daraja keys.

The honest limits: it does M-Pesa only (no cards), and to go live you still need your own Paybill or Till and your own Daraja app approved by Safaricom.

Try it free in sandbox, or try the demo checkout to see what your customer sees (no real prompt is sent).

Which costs less? 300 sales of KES 1,000 a month

Take a shop that makes 300 sales of KES 1,000 each in a month: KES 300,000 in total. Here is what each route costs, using the published rates above:

RouteMonthly cost (KES)Notes
Paystack4,5001.5% of 300,000
Flutterwave8,7002.9% of 300,000, plus KES 100 per transfer out
IntaSend9,0003% of 300,000, plus KES 100 per payout
KenZobe Checkout (Basic) on a Till4,0502,400 plan + 1,650 Safaricom Till charge
Your own Daraja integration on a Till1,650Safaricom Till charge only, plus your developer and server

How to read this:

  • The Till charge is 0.55% × KES 300,000 = KES 1,650 (KES 5.50 on each sale). It applies whenever the payment lands directly in your own Till.
  • The gateway figures are before any M-Pesa charges the gateway may pass on, and before VAT where it applies. We could not confirm whether those are included.
  • 300 sales is exactly the Basic plan's limit. At more volume you would move to Growth (KES 6,000), while a percentage grows with every sale.
  • At lower volume a percentage can cost less. At 50 sales of KES 1,000, Paystack's 1.5% is KES 750, well under a KES 2,400 plan.
  • Doing it yourself is the cheapest on paper, if the developer time and hosting are already paid for.

So, is the M-Pesa API free?

Using Daraja itself has no listed fee. Taking money through it is never free: Safaricom's Till or Paybill tariff applies to each payment, and someone has to build, host and look after the integration. Your choice is really about who does that work and how you pay for it: a developer's time, a gateway percentage, or a flat monthly plan.

If you are still choosing how to take M-Pesa at all, start with our pillar guide, How to Accept M-Pesa Payments on Your Website.

Frequently Asked Questions

Is the Daraja sandbox free?+

Safaricom lists no fee for using the Daraja API, and that includes the sandbox. You create an account on developer.safaricom.co.ke, create an app, and test with the sandbox shortcode 174379. No real money moves in the sandbox.

Do customers pay anything to pay a Till number?+

No. At the time of writing (October 2026), Safaricom's tariff page says the customer pays nothing to pay a Buy Goods Till, except at authorised fuel stations. The merchant pays the charge: nothing up to KES 500, 0.55% from KES 501 to 36,363, and a flat KES 200 above that.

What is the cheapest way for a small shop to take M-Pesa?+

A plain Till number that customers pay from their phone costs you only Safaricom's Till charge, and nothing at all on sales of KES 500 or less. The catch is that you check each payment by hand. Once you want automatic STK prompts, payment links or a pay button on a website, you add either a developer's time (doing Daraja yourself), a gateway percentage, or a flat monthly plan such as KenZobe Checkout.

Do I need a Paybill to use the M-Pesa API?+

No. Safaricom's Daraja FAQ says STK Push works with a Till too. At go-live you use the store (head-office) number as the shortcode and the Till number as the receiving party, with the transaction type CustomerBuyGoodsOnline. A Paybill uses CustomerPayBillOnline instead.

Does Safaricom charge a monthly fee for the API or a Till?+

A monthly fee is not listed on the Safaricom tariff, Paybill or Daraja pages we checked in October 2026. That is not the same as a promise that there is none for every account, so confirm with Safaricom or your account manager for your own shortcode.

Try it before you pay anything

The sandbox costs nothing and moves no real money, so you can see the whole flow first. Try it free in sandbox or try the demo checkout (no real prompt is sent).

Would you rather have someone set it up for you? Talk to our team.