M-Pesa Fees Explained: Complete 2026 Guide
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.
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:
- Bracket boundaries matter. Sending KSh 1,001 jumps you into a more expensive bracket than KSh 1,000. If you're close to a boundary, sending the exact bracket-maximum amount costs the same fee as sending KSh 1 less.
- Splitting across brackets rarely helps. Two transactions of KSh 5,000 each cost more in total fees than one transaction of KSh 10,000. The bracket structure is generally efficient at larger amounts.
| Amount Range (KSh) | Send to Registered Fee | Effective Rate |
|---|---|---|
| 1 - 49 | 0 | 0% |
| 50 - 100 | 0 | 0% |
| 101 - 500 | 7 | 1.4-7% |
| 501 - 1,000 | 13 | 1.3-2.6% |
| 1,001 - 1,500 | 23 | 1.5-2.3% |
| 1,501 - 2,500 | 33 | 1.3-2.2% |
| 2,501 - 3,500 | 53 | 1.5-2.1% |
| 3,501 - 5,000 | 57 | 1.1-1.6% |
| 5,001 - 7,500 | 78 | 1.0-1.6% |
| 7,501 - 10,000 | 90 | 0.9-1.2% |
| 10,001 - 15,000 | 100 | 0.7-1.0% |
| 15,001 - 20,000 | 105 | 0.5-0.7% |
| 20,001 - 250,000 | 108 | 0.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.
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.
Use the WalletCalc fee calculator to know what your transaction will actually cost before you tap send.
Open the Fee Calculator