HomeGuides › M-Pesa Fees Explained

M-Pesa Fees Explained: Complete 2026 Guide

M-Pesa moves more daily transactions than most major banks, but its fee structure is genuinely complicated. This guide explains every transaction type, the bracket system, and the patterns that catch most users by surprise.

The five transaction categories you need to understand

M-Pesa fees vary based on the transaction type. Most people only think of "Send Money" but there are at least five distinct categories with different fee structures. Knowing which category your transaction falls into is the first step to understanding what you'll actually pay.

1. Send Money to Registered M-Pesa users

This is the most common transaction type. You're sending money from your M-Pesa account to another person who also has an M-Pesa account. The fee is bracketed — meaning the cost depends on which amount range your transaction falls into. The fee for sending KSh 100 is much smaller than the fee for sending KSh 50,000, but the relationship isn't linear. Within a bracket, the fee is fixed.

For 2026, the brackets range from KSh 1-49 (free) up to KSh 250,000 maximum per transaction. The largest single jump in fees happens around the KSh 1,500-2,500 bracket, where the fee climbs from KSh 23 to KSh 33. Plan transactions to avoid crossing into more expensive brackets when possible.

2. Send Money to Unregistered users

Sending to a phone number that doesn't have an M-Pesa account is significantly more expensive — often 3-5x more than the registered-to-registered rate. The recipient picks up the cash at an agent using a special code. M-Pesa charges this premium because they're effectively guaranteeing cash availability at the agent location.

If you find yourself frequently sending to the same unregistered number, it's worth helping that person register for M-Pesa. The fee savings pay back within a few transactions.

Common mistake: Many people don't realize that sending to a phone number that's never been registered for M-Pesa triggers the higher unregistered fee. Always confirm registration status before sending substantial amounts.

3. Withdraw from Agent

Cash withdrawal at an M-Pesa agent uses its own fee structure. Withdrawals up to KSh 100 are fee-free up to a certain monthly volume. Above that, fees scale with amount. The KSh 5,000-10,000 range carries an KSh 87 fee. Above KSh 50,000, withdrawal fees become significantly more expensive proportionally — withdrawing KSh 100,000 costs KSh 309.

4. To Bank Account (M-Pesa to Bank)

Direct transfers from your M-Pesa wallet to a bank account use a flat-fee structure for smaller amounts (KSh 30 for transactions up to KSh 2,500) and a tiered structure above that. For amounts above KSh 35,000, the fee is KSh 180 — much cheaper proportionally than withdrawing cash from an agent and depositing it manually at a bank.

5. Lipa na M-Pesa (Pay Bill, Buy Goods)

Lipa na M-Pesa transactions for paying bills (utilities, school fees, government) and buying goods at registered merchants follow yet another fee schedule. Pay Bill transactions up to KSh 1,000 cost KSh 5-10. Buy Goods transactions are typically free for the customer (the merchant pays a small percentage). For paying recurring bills, this is almost always the cheapest M-Pesa transaction type.

The bracket system and how to use it

Almost every M-Pesa fee is bracketed. Within a bracket, the fee is identical regardless of where in the range your amount falls. Sending KSh 5,001 costs the same as sending KSh 7,500 — both fall in the KSh 5,001-7,500 bracket and both cost KSh 78.

This creates two important optimization opportunities:

Amount Range (KSh)Send to Registered FeeEffective Rate
1 - 4900%
50 - 10000%
101 - 50071.4-7%
501 - 1,000131.3-2.6%
1,001 - 1,500231.5-2.3%
1,501 - 2,500331.3-2.2%
2,501 - 3,500531.5-2.1%
3,501 - 5,000571.1-1.6%
5,001 - 7,500781.0-1.6%
7,501 - 10,000900.9-1.2%
10,001 - 15,0001000.7-1.0%
15,001 - 20,0001050.5-0.7%
20,001 - 250,0001080.04-0.5%

Notice how the effective rate drops dramatically as amounts increase. Sending KSh 100,000 costs KSh 108 — about 0.1%. Sending KSh 500 costs KSh 7 — about 1.4%. M-Pesa is structurally cheaper for larger transactions.

The cross-border problem

M-Pesa now offers cross-border features in select corridors (Kenya to Tanzania, Kenya to Uganda, Kenya to Rwanda). The fees on these are significantly higher than domestic transactions, often 3-5% of the transaction amount. For amounts above the equivalent of $50, dedicated international remittance services like Wise often beat M-Pesa cross-border on price.

Watch out: M-Pesa cross-border charges fees in addition to the foreign exchange spread. The displayed fee may be small, but the FX margin can add another 2-3% in hidden cost. Always compare the total amount your recipient will actually receive against alternatives.

How to use this guide

Use the WalletCalc fee calculator to check the exact fee for any transaction before you send. The calculator uses the same bracket structure described here and is updated whenever Safaricom announces rate changes. For amounts crossing the equivalent of $50 in cross-border transactions, also check the dedicated remittance comparison in our cross-border remittance guide.

Calculate your exact fee in seconds.

Use the WalletCalc fee calculator to know what your transaction will actually cost before you tap send.

Open the Fee Calculator