Safaricom's Daraja 3.0: what actually changed for your M-Pesa payments

Safaricom upgraded the API engine behind every M-Pesa checkout. What is genuinely new, how fraud APIs work, and what it means for your business.

A client listening across a meeting table, a laptop open between them.

Before 2017, connecting a Kenyan website or digital product directly to Safaricom's M-Pesa network was a bureaucratic ordeal: business owners filled out physical paperwork, submitted bank slips at Safaricom headquarters along Waiyaki Way, waited sixty to ninety days for approval, and wrestled with legacy SOAP XML protocols. Safaricom introduced Daraja (Swahili for “Bridge”) to solve that friction: a modern REST API that let software developers programmatically trigger STK pushes, verify Paybill collections, and disburse payouts.

On 25 November 2025, Safaricom officially launched Daraja 3.0, timed with the telecom's 25th anniversary and framed as the foundation for “Fintech 2.0”. Safaricom's Chief Financial Services Officer, Esther Waititu, heralded the update as a transformative shift into cloud-native payments. But marketing announcements aside, what actually changed for Kenyan e-commerce stores, SaaS founders, and brick-and-mortar merchants?

The three concrete upgrades in Daraja 3.0

Beyond generic promises of “higher uptime” and “cloud-native scale”, three functional upgrades directly impact how commercial payments operate in Kenya:

  • 1. Native Security & Fraud Prevention APIs: In earlier Daraja versions, fraud detection was entirely the merchant's problem. Daraja 3.0 introduces native security endpoints that sit directly in front of the transaction. Merchants can now programmatically check SIM-swap risk indicators and account age before initiating high-value transactions, significantly mitigating social engineering and identity theft attacks.
  • 2. Resilient callback delivery & retry mechanisms: The single most notorious pain point of Daraja 2.0 was dropped webhook callbacks during national traffic spikes (such as Black Friday or end-of-month paydays). Daraja 3.0 re-engineers callback dispatch on a distributed message queue with automatic exponential backoff retries, ensuring your server receives payment confirmations even during network latency spikes.
  • 3. M-Pesa Super App Mini Programs integration: Daraja 3.0 provides the direct API plumbing for businesses to host lightweight web applications directly inside the Safaricom M-Pesa consumer app. Rather than forcing a customer to open Chrome and visit an external URL, the entire shopping and checkout flow can execute within the user's M-Pesa wallet.

Your M-Pesa checkout runs on an API bridge you never see, until the day dropped callbacks leave paid orders unfulfilled.

STK Push, C2B, and B2C: choosing the right endpoint

Understanding Daraja 3.0 requires knowing which payment rails align with your business model:

Daraja EndpointHow the Payment HappensIdeal Use CaseKey Technical Consideration
Lipa Na M-Pesa Online (STK Push)Website prompts Safaricom to push a PIN prompt onto customer's phoneE-commerce carts, instant booking deposits, subscription renewalsMust handle timeouts (ResultCode: 1037) and cancellations (ResultCode: 1032) gracefully
C2B (Customer to Business)Customer initiates payment via Paybill/Till on their SIM toolkit or M-Pesa appBill payment, utility accounts, school fees, manual counter purchasesRequires public Validation and Confirmation webhook URLs with SSL
B2C (Business to Customer)Your business programmatically sends funds from utility balance to customerInstant refunds, vendor payouts, agent commissions, driver disbursementsRequires Safaricom security credentials (initiator password and public key certificate)

What this means if your site already takes M-Pesa

If your current website already accepts M-Pesa through Daraja 2.0, nothing will break overnight. Safaricom maintains backwards compatibility and has not announced a deprecation sunset date for 2.0 endpoints. However, any new integration or payment rebuild in 2026 should be built on 3.0 from the start to take advantage of improved token management and callback reliability.

The most immediate action for existing merchants is to audit your callback handling. If your integration does not verify CheckoutRequestID uniqueness or fails to query transaction status during network drops, you are still exposed to dropped order vulnerabilities.

Production Engineering Rule

Always pair Daraja STK Push with an automated Transaction Status Query fallback. If Safaricom's webhook callback is delayed by more than 60 seconds, your backend should query the transaction status programmatically before flagging an order as failed.

How to get started with Daraja 3.0

To build on Daraja 3.0, register an account on the official Safaricom Developer Portal, create a sandbox app, and obtain your Consumer Key and Consumer Secret. From there, your backend engineer can implement OAuth 2.0 authentication, construct the base64-encoded password timestamp, and configure secure HTTPS webhook endpoints.

For a complete breakdown of development costs and gateway comparisons, read our guide on how much M-Pesa integration costs in Kenya or view our custom payment engineering services.

Keep reading

All insights
  1. Insight 15Strategy7 min read

         

    A practical five-point diagnostic framework for business owners: whether your current website is worth repairing, or whether you are pouring money into a dead asset.

    Read the article
  2. Insight 16Payments7 min read

           

    The Daraja API is free. The production engineering is not. What a fair STK Push quote covers, what it leaves out, and when an aggregator is the cheaper answer.

    Read the article

Want an answer for your site?

Tell us what you're building and we'll reply within one working day with a flexible quote, or book 20 minutes and ask us directly.

Chat with us