# Payment Gateway Kenya
Summary: Choosing a payment gateway in Kenya requires balancing M-Pesa mobile money dominance, processing fees, settlement schedules, and API reliability. While direct Safaricom Daraja API provides the lowest domestic fees (free under KES 500, then ~0.55% capped at KES 200 for Buy Goods), aggregators such as Paystack (1.5% M-Pesa, 2.9% card; T+2 settlement), IntaSend (1.5%–3.0%), Pesapal (3.5%), and Flutterwave (2.9%) deliver turnkey card acceptance, multi-channel checkout, and developer SDKs for digital commerce.
---
Digital commerce across Kenya is anchored in mobile money. According to official disclosures in Safaricom PLC Annual Reports and quarterly sector statistics from the Communications Authority of Kenya (CA), the M-Pesa ecosystem processes over 100 million transactions daily across its regional infrastructure, accounting for the vast majority of domestic digital transaction volume. Yet as Kenyan companies expand to serve regional and international customers, single-rail payment collection is no longer sufficient. Modern web and mobile applications require checkout architectures that support M-Pesa, Airtel Money, and international payment card networks in both Kenyan Shillings (KES) and US Dollars (USD).
Navigating the payment landscape regulated by the Central Bank of Kenya (CBK) requires balancing processing margins, settlement liquidity, and engineering overhead. This guide evaluates Kenya's top six payment gateways—Safaricom M-Pesa Daraja, Paystack, IntaSend, Flutterwave, Pesapal, and DPO Group—to help you identify the best payment gateway Kenya offers for your technical architecture and business model.
---
Direct Daraja API vs. Multi-Channel Aggregators
Kenyan merchants face a foundational architectural choice: integrate directly with Safaricom Daraja or deploy an integrated multi-channel Payment Service Provider (PSP).
Direct Safaricom Daraja 2.0 Integration
Integrating directly via the Safaricom Daraja Developer Portal connects your platform to Lipa Na M-Pesa Buy Goods (Till) and Paybill (C2B) shortcodes.
- Margin Efficiency: According to official Safaricom Lipa Na M-Pesa Tariffs, Buy Goods transactions under KES 500 carry zero merchant fees, while amounts above KES 500 incur a 0.55% fee capped at KES 200 per transaction. On a KES 50,000 order, a merchant pays KES 200 instead of KES 750 or more under percentage-based aggregators.
- Engineering Overhead: Daraja exclusively processes M-Pesa transactions. It cannot accept debit or credit cards or foreign currencies. Development teams must build and maintain custom callback listeners, handle telco maintenance intervals, and automate bank sweeps via clearing rails such as PesaLink or RTGS.
Multi-Channel Payment Aggregators
Licensed PSPs consolidate mobile money, card networks, and bank transfers into a single unified API.
- Omnichannel Reach: Local shoppers pay via M-Pesa STK push while international clients check out using Visa, Mastercard, or American Express in KES or USD. Aggregators disburse funds into accounts at licensed Kenyan commercial banks according to standard settlement schedules (typically T+1 to T+3 business days depending on the gateway and clearing rail).
- Cost Trade-off: Aggregators charge percentage-based processing fees (typically 1.5% to 3.5%) without the domestic KES 200 fee cap, which increases transaction costs on higher-ticket domestic sales.
---
Comparison Matrix: Top Payment Gateways in Kenya
The table below contrasts transaction fees, settlement periods, and developer capabilities across leading online payment Kenya providers based on their published rate schedules.
| Gateway Provider | M-Pesa Fee % | Local Card Fee % | International Card Fee % | Settlement Timeline | API Quality & DevEx | Best Suited For |
|---|---|---|---|---|---|---|
| Safaricom M-Pesa (Daraja 2.0) | 0% (<KES 500); ~0.55% capped at KES 200 | N/A | N/A | Instant to Till; Bank sweep via PesaLink/EFT | REST API; requires custom callback handling & failovers | High-volume domestic retail, utilities, billers |
| Paystack (Stripe) | 1.5% | 2.9% | 3.8% | T+2 business days (automated bank payout) | 10/10; Stripe-grade docs, pre-built modals, mobile SDKs | Startups, SaaS, digital platforms, modern e-commerce |
| IntaSend | 1.5% – 3.0% (STK Push) | 3.5% | 4.5% | Instant (M-Pesa B2C) to T+1/T+2 (Bank) | 9/10; Modern REST API, Python/PHP SDKs, native payouts | Kenyan fintechs, freelance platforms, agency billing |
| Flutterwave | 2.9% | 3.2% | 4.8% | T+1 (Local KES) / T+3 to T+5 (FX) | 8.5/10; Pan-African v3 API, multi-currency rails | Regional East African commerce, multi-country sales |
| Pesapal | 3.5% flat | 3.5% | 3.5% | T+1 to T+2 business days | 7.5/10; REST API 3.0 (IPN v3), CMS plugins, POS hardware | Hospitality, hotels, ticketing, education, retail POS |
| DPO Group (Network Int.) | Custom quote (1.5% – 3.0%) | Custom quote (2.9% – 3.8%) | Custom quote (3.8% – 4.5%) | T+1 to T+2 (Local) / up to T+7 (FX) | 6.5/10; Enterprise XML/JSON token redirects, fraud scoring | Airlines, safari operators, luxury travel, cross-border |
---
Detailed Evaluation of Kenya’s Leading Gateways
1. Safaricom M-Pesa (Daraja 2.0 Direct)
Safaricom forms the foundation of Kenya’s domestic payments infrastructure, processing over 100 million transactions daily as reported in Safaricom Annual Reports.
- Fee Structure: Per the official Safaricom Lipa Na M-Pesa Merchant Tariffs, Buy Goods is free for transactions under KES 500 and charges approximately 0.55% capped at KES 200 for amounts above KES 500. Paybill C2B collections follow tiered tariff bands based on transaction value.
- Settlement Time: Funds reflect immediately in your Safaricom merchant utility account. Bank transfers can be executed via PesaLink for near-instant settlement or scheduled via EFT.
- API Quality: The Daraja 2.0 REST API provides endpoints for Lipa Na M-Pesa Online (STK Push), C2B payment validation, and B2C disbursements. Production deployments require dedicated backend engineering to manage bearer token renewal, carrier maintenance windows, and webhook listener security.
2. Paystack (a Stripe Company)
Authorized as a Payment Service Provider by the Central Bank of Kenya, Paystack brings Stripe's developer-focused infrastructure to Kenyan merchants.
- Fee Structure: According to the official Paystack Kenya Pricing, transaction rates are 1.5% for M-Pesa, 2.9% for local Kenyan cards, and 3.8% for international cards, with zero monthly maintenance fees or setup charges.
- Settlement Time: As specified in Paystack's official documentation, standard payouts settle automatically into Kenyan commercial bank accounts on a T+2 business day schedule in KES or USD.
- API Quality: Developer experience is best-in-class. Paystack offers cryptographic webhook verification (HMAC SHA-512), pre-built checkout modals, drop-in UI libraries, and official SDKs for Node.js, Python, PHP, Flutter, and React Native.
3. IntaSend
IntaSend is a licensed Kenyan payment processor built specifically for software platforms, digital agencies, and fintech startups.
- Fee Structure: Based on the published IntaSend Pricing Schedule, M-Pesa STK push collections incur fees between 1.5% and 3.0% depending on monthly volume. Local card transactions are billed at 3.5%, and international cards at 4.5%. Payouts and disbursements incur published standard transfer rates.
- Settlement Time: Provides instant disbursement capabilities for B2C payouts directly to M-Pesa wallets, alongside standard T+1 to T+2 settlement schedules for commercial bank accounts.
- API Quality: RESTful API design supported by official SDKs for Python, PHP, and JavaScript. IntaSend's native payout endpoints make it a strong choice for platforms managing contractor payouts, freelance disbursements, or split settlements.
4. Flutterwave
Flutterwave enables cross-border digital commerce across more than 30 African countries, providing extensive regional payment coverage.
- Fee Structure: Under the official Flutterwave Kenya Pricing, merchant processing rates are 2.9% for M-Pesa, 3.2% for local card transactions, and 4.8% for international cards, with flat fees applied to outbound disbursements.
- Settlement Time: Typically settles domestic KES receipts on a T+1 business day basis, while multi-currency and cross-border card transactions settle on a T+3 to T+5 business day timeline.
- API Quality: The v3 API suite includes hosted checkout links, payment orchestration, and subscription billing engines. Teams should implement robust webhook retry listeners to accommodate periodic peak-traffic signaling delays.
5. Pesapal
Operating as one of East Africa’s earliest licensed payment processors, Pesapal powers thousands of merchants across hospitality, education, and retail.
- Fee Structure: Under published Pesapal Merchant Fees, standard processing is structured at approximately 3.5% across supported mobile money rails (M-Pesa, Airtel Money) and major card networks (Visa, Mastercard, American Express).
- Settlement Time: Payouts clear to Kenyan bank accounts within T+1 to T+2 business days, supporting dual KES and USD balances.
- API Quality: Pesapal API 3.0 utilizes Instant Payment Notification (IPN v3) webhooks. The platform provides verified e-commerce plugins (WooCommerce, Shopify, Magento) and tight integration with smart Android POS hardware for omnichannel retail.
6. DPO Group (Network International)
DPO Group focuses on enterprise merchants, travel agencies, airlines, and luxury safari operators requiring advanced fraud prevention and extensive multi-currency support.
- Fee Structure: Operates on negotiated enterprise contracts per DPO Group Merchant Services. Custom rates typically fall within standard enterprise ranges (1.5%–3.0% for mobile money and 2.9%–4.5% for card transactions) determined by monthly processing volume and risk tier.
- Settlement Time: Standard settlement takes T+1 to T+2 business days for domestic transactions, extending up to T+7 for complex cross-border or high-risk travel settlements.
- API Quality: Utilizes an enterprise token redirect architecture supporting over 20 African and international currencies, coupled with real-time fraud screening tailored for high-ticket bookings.
---
Technical Architecture: Implementing STK Push and Card Checkouts
In Kenya, the standard mobile checkout experience is the Lipa Na M-Pesa Online (STK Push). The customer supplies their mobile number during checkout, and an encrypted SIM prompt appears on their mobile device requesting their secret M-Pesa PIN.
[Customer Checkout]
│
▼ (1) POST /api/checkout { phone: "2547XXXXXXXX", amount: 3500 }
[Merchant Backend]
│
▼ (2) API Request with Bearer Token & Timestamped Password
[Payment Gateway]
│
▼ (3) GSM Network Flash Prompt (USSD / SIM Toolkit)
[Customer Handset] ──(4) Customer enters M-Pesa PIN──► [Safaricom Core]
│
[Merchant Backend] ◄──(5) Asynchronous Webhook Callback (Signed)─┘
│
▼ (6) Verify Signature, Check Idempotency, Update LedgerTo demonstrate how engineering teams handle these callbacks reliably, the following runnable TypeScript/Node.js example shows an Express webhook listener that validates cryptographic signatures and ensures idempotent database updates:
import express, { Request, Response } from "express";
import crypto from "crypto";
const app = express();
// Ensure raw body is preserved for cryptographic signature verification
app.use(express.json({
verify: (req: any, _res, buf) => {
req.rawBody = buf;
}
}));
interface WebhookPayload {
event: string;
data: {
reference: string;
amount: number;
status: string;
paid_at: string;
channel: string;
};
}
// Simulated transaction repository
const processedTransactions = new Set<string>();
app.post("/api/webhooks/payment", async (req: Request, res: Response) => {
const secret = process.env.PAYMENT_GATEWAY_WEBHOOK_SECRET || "live_secret_key";
const signature = req.headers["x-paystack-signature"] || req.headers["x-gateway-signature"];
// 1. Verify Cryptographic Signature (HMAC SHA-512)
const hash = crypto
.createHmac("sha512", secret)
.update((req as any).rawBody || JSON.stringify(req.body))
.digest("hex");
if (hash !== signature) {
return res.status(401).json({ error: "Invalid webhook signature" });
}
const payload = req.body as WebhookPayload;
const { reference, status, amount } = payload.data;
// 2. Strict Idempotency Check: Prevent duplicate credit on network retries
if (processedTransactions.has(reference)) {
return res.status(200).json({ status: "acknowledged", duplicate: true });
}
// 3. Process Only Completed Charges
if (status === "success") {
// Record transaction ID in database ledger within an atomic transaction
processedTransactions.add(reference);
// Fulfill customer order or credit wallet balance
console.log(`Order fulfilled: Ref ${reference}, Amount KES ${amount / 100}`);
}
// 4. Return Immediate 200 OK to prevent gateway retry loops
return res.status(200).json({ status: "processed" });
});
export default app;When building digital commerce platforms or investing in professional app development in Kenya, engineering teams must design payment workflows around local network conditions:
1. Webhook Idempotency: Gateway and telco retry mechanisms often emit duplicate webhook notifications when network acknowledgement is delayed. Always compute cryptographic signature verification (such as HMAC SHA-512) and record unique transaction identifiers (e.g., Safaricom's MpesaReceiptNumber or Paystack's transaction reference) inside an indexed database ledger protected by unique constraints.
2. Dynamic Polling Fallbacks: Peak network traffic or signaling queue delays can occasionally defer STK push prompt delivery to mobile devices. Rather than hanging client checkouts indefinitely, design an asynchronous timeout flow: if a webhook callback is not received within a sensible interval (typically 20 to 30 seconds), query the gateway's transaction verification endpoint while displaying an informative progress state to the shopper.
3. Manual Paybill/Till Fallback Display: If a customer's handset is engaged on an active voice call, out of immediate cellular coverage, or affected by SIM Toolkit queue delays, the automated push prompt can fail. Displaying manual Paybill or Till payment instructions (with order reference) alongside the automated checkout ensures the customer can complete payment manually without abandoning their shopping cart.
---
Regulatory Compliance and Tax Obligations in Kenya
Deploying an online payment gateway Kenya businesses rely upon requires adherence to statutory frameworks and regulatory best practices:
- Central Bank of Kenya (CBK) Licensing: Under the National Payment System (NPS) Act (2011) and the National Payment System Regulations (2014), entities offering payment processing and settlement services in Kenya must hold formal authorization as Payment Service Providers from the Central Bank of Kenya (CBK). Integrating with CBK-authorized processors helps businesses protect customer funds and maintain regulatory compliance.
- Data Protection Act (2019) & ODPC Compliance: Payment systems collect Personally Identifiable Information (PII), including customer mobile numbers, legal names, and transaction histories. Under the Kenya Data Protection Act (2019) administered by the Office of the Data Protection Commissioner (ODPC), merchants and payment processors must operate as lawful data controllers or processors—implementing transport encryption, obtaining informed consent, and ensuring compliance when handling cross-border data flows.
- Kenya Revenue Authority (KRA) & eTIMS Alignment: Under Section 23A of the Tax Procedures Act, businesses registered in Kenya must validate commercial transactions and deductible expenditure through electronic tax invoices generated via the electronic Tax Invoice Management System (eTIMS). Payment processing fees and service commissions attract statutory Kenyan taxes (such as Excise Duty on financial transfer services or applicable taxes on platform fees). CBK-authorized gateways provide periodic statements or eTIMS-compliant invoices detailing fee deductions, which finance teams should reconcile automatically against company accounts.
---
Operational Diagnostics: Falsifiability Checks
To maintain reliable checkout conversion, monitor your payment infrastructure against these operational telemetry checks:
- Diagnostic 1: STK Push Completion Rate Deviations
Falsifiability Check*: Establish an operational baseline for STK push completion rates in your analytics pipeline. If checkout completions fall significantly below your baseline, investigate common failure causes: carrier signaling delays, handset SIM Toolkit timeout windows, gateway API throttling, or failure to validate mobile numbers to the international E.164 standard (2547...).
- Diagnostic 2: Webhook Latency Monitoring
Falsifiability Check*: Track the duration between the gateway's recorded transaction completion timestamp and your server's verified webhook ingestion. When latency increases, proactive front-end status feedback and polling fallbacks prevent shopper anxiety and avoid accidental duplicate payment attempts.
- Diagnostic 3: Automated Ledger Reconciliation Discrepancies
Falsifiability Check*: Run daily automated reconciliation comparing gateway settlement reports against internal transaction tables. Any variance greater than 0.00% identifies unhandled webhook drops, network timeouts, or unprocessed customer refunds requiring technical remediation.
---
Frequently Asked Questions (FAQ)
Can a Kenyan business accept international credit cards without an overseas bank account?
Yes. CBK-authorized gateways including Paystack, Flutterwave, Pesapal, and IntaSend enable Kenyan businesses to accept international Visa, Mastercard, and American Express cards. Processed funds can be disbursed in Kenyan Shillings (KES) or, where supported by the processor and merchant banking arrangements, deposited into an approved foreign currency account (FCA) such as USD.
What is the cheapest payment gateway for a small business in Kenya?
For businesses selling strictly to domestic consumers via mobile money, direct Lipa Na M-Pesa Buy Goods is the most economical solution: transactions under KES 500 incur zero fees, while transactions above KES 500 are charged at approximately 0.55% capped at KES 200 per transaction. For businesses requiring both M-Pesa and card payments, aggregators like Paystack (1.5% on M-Pesa) and IntaSend (1.5%–3.0%) offer competitive percentage pricing with no monthly recurring charges.
Is Lipa Na M-Pesa Buy Goods better than Paybill for an online store?
Paybill shortcodes are historically preferred for e-commerce because they include an Account Number field, allowing systems to map payments to specific invoices or user accounts. However, modern Lipa Na M-Pesa Online (STK Push) APIs support automated backend webhook reconciliation for both Buy Goods and Paybill numbers, making either option suitable when paired with automated callback listeners.
How are payment gateway fees taxed under Kenyan law?
Payment processing fees and commissions in Kenya are subject to statutory taxation under Kenya Revenue Authority (KRA) frameworks. Depending on the service structure, fees are subject to applicable taxes, including Excise Duty on financial transfer services or standard taxes on software platforms. Authorized processors provide periodic eTIMS-compliant invoices or statements, allowing merchants to account for deductions properly in corporate tax filings.
---
Sources
- Central Bank of Kenya (CBK) – National Payment Systems
- Communications Authority of Kenya (CA) – Sector Statistics
- Safaricom Lipa Na M-Pesa Merchant Tariffs
- Safaricom Daraja Developer Portal
- Paystack Kenya Pricing Documentation
- IntaSend Merchant Pricing & Documentation
- Flutterwave Kenya Pricing Documentation
- Pesapal Merchant Fees & Terms
- DPO Group Merchant Services
- Office of the Data Protection Commissioner (ODPC) Kenya
- Kenya Revenue Authority (KRA) – eTIMS Guidelines