Updated 8 November 2026
M-Pesa bulk payments (Business to Customer, or B2C) let an organisation send money from its M-Pesa shortcode to many people’s phones at once, for salaries, casual wages, loan disbursements, insurance claims, dividends or prizes. Under Safaricom’s published B2C tariff, the recipient pays nothing to receive and the business pays KSh 5, 9, 11 or 13 per payment depending on the amount. If the business chooses to cover the recipient’s withdrawal fee as well, the per-payment cost rises to between KSh 11 and KSh 322.
Checked on 8 November 2026 against Safaricom’s M-PESA Bulk Payment (B2C) guide and its M-PESA charges and limits page (last updated 4 August 2026). Tariffs can change; confirm with your Safaricom account manager before you budget a payroll run.
Contents: What it is · Charges · Withdrawal charges paid · Float · Apply and set up · Controls · FAQ
In this guide
- What M-Pesa bulk payments are used for
- M-Pesa bulk payments charges to registered M-Pesa users
- The "withdrawal charges paid" option
- Loading float before you pay
- How to apply for M-Pesa bulk payments
- Controls built into M-Pesa bulk payments
- Budgeting a payroll run on M-Pesa bulk payments
- M-Pesa bulk payments vs other ways to pay staff
- M-Pesa bulk payments FAQ
What M-Pesa bulk payments are used for
Safaricom describes B2C as a way to make real-time payments from an M-Pesa shortcode to individuals “at the click of a button”. Its own list of use cases includes banks, microfinance institutions and SACCOs disbursing loans or withdrawals, insurers settling claims, companies paying salaries and casual workers, promotional cash prizes, petty cash and small supplier payments, dividend payments by listed companies, and government agencies or NGOs paying field staff and relief funds.
A B2C account is identified by a shortcode and a username. You can use it manually through the M-Pesa web portal or automatically through an API integration. This is different from a till or paybill, which collects money; see our M-Pesa business till guide for collections.
M-Pesa bulk payments charges to registered M-Pesa users
For payments to registered M-Pesa users, Safaricom’s B2C table shows the customer charge as zero in every band. The business pays:
| Amount per payment (KSh) | Business charge (KSh) | Charge if business also pays withdrawal (KSh) |
|---|---|---|
| 1 – 49 | 0 | 0 |
| 50 – 100 | 0 | 11 |
| 101 – 500 | 5 | 34 |
| 501 – 1,000 | 5 | 34 |
| 1,001 – 1,500 | 5 | 34 |
| 1,501 – 2,500 | 9 | 38 |
| 2,501 – 3,500 | 9 | 61 |
| 3,501 – 5,000 | 9 | 78 |
| 5,001 – 7,500 | 11 | 98 |
| 7,501 – 10,000 | 11 | 126 |
| 10,001 – 15,000 | 11 | 178 |
| 15,001 – 20,000 | 11 | 196 |
| 20,001 – 35,000 | 13 | 210 |
| 35,001 – 50,000 | 13 | 291 |
| 50,001 – 250,000 | 13 | 322 |
Safaricom’s PDF lists 20,001–35,000, 35,001–50,000 and 50,001–250,000 in smaller sub-bands, but the charges inside each grouped range above are identical. The KSh 250,000 ceiling matches M-Pesa’s maximum amount per transaction.
The “withdrawal charges paid” option
B2C includes an option to add the recipient’s agent withdrawal fee to the payment, so a worker receives the full amount in cash. In Safaricom’s table, the higher figure is simply the B2C business charge plus the withdrawal charge. For a KSh 3,000 casual wage, for example, the cost is KSh 9 without the option and KSh 61 with it (KSh 9 plus KSh 52).
Whether to use it is a pay-policy decision. Many recipients do not withdraw at all and spend directly from M-Pesa, so paying withdrawal fees for everyone can multiply the cost of an M-Pesa bulk payments run. Some employers pay it only for casual workers in cash-heavy areas.
Loading float before you pay
A B2C shortcode only pays out what has been deposited into it. Safaricom lists M-Pesa Holding Co. Limited accounts at NCBA, KCB, Co-operative Bank and Equity Bank for float deposits. For RTGS, the beneficiary account is 333 followed by your B2C shortcode: a shortcode of 123456 becomes 333123456. Safaricom’s stated timelines are about 1 hour for RTGS, 2 working days for EFT and 3 days for cheques, so fund payroll float early.
How to apply for M-Pesa bulk payments
- Apply online through Safaricom’s M-Pesa for Business site, m-pesaforbusiness.co.ke, which the B2C guide names as the application channel.
- Once approved, the business administrator receives a username and first-time password by email for the organisation portal.
- The administrator logs in with the shortcode, username, password and an SMS one-time code, then sets a new password and security questions.
- Users are created on the M-Pesa Business Portal (pay.m-pesaforbusiness.co.ke), which handles both bulk B2C and business-to-business payments.
- Deposit float, then upload or schedule your first batch.
Controls built into M-Pesa bulk payments
- Maker and checker: one user initiates a batch and a separate user approves it before release.
- Scheduling: approved payments can be released at a set date and time.
- ID validation: recipients can be validated before payment to reduce wrong-number errors.
- Reports: real-time transaction reports and downloadable statements.
Use separate maker and checker users even in a small business; it is the main protection against a mistyped amount or an unauthorised batch.
Budgeting a payroll run on M-Pesa bulk payments
Because the charge is per payment, cost depends on how many people you pay and in which bands. Paying 40 casual workers KSh 4,000 each costs 40 × KSh 9 = KSh 360 in B2C charges, or 40 × KSh 78 = KSh 3,120 if you also cover withdrawal fees. Load float for the full payroll plus the charges, and allow for RTGS or EFT timelines so payments are not held for lack of float.
M-Pesa bulk payments vs other ways to pay staff
B2C is not the only option. A business can pay staff by bank transfer, by cheque, in cash, or by sending money from a personal M-Pesa line. Each has trade-offs:
- Bank transfer: suits salaried staff with bank accounts and gives clean payroll records, but casual workers without accounts cannot be paid this way and EFT can take a day or more.
- Cash: has no transaction charge but carries theft and record-keeping risk, and it is hard to prove who was paid what.
- Personal M-Pesa: charges the sender the consumer tariff on every transfer, is capped by personal daily limits and mixes business and personal money. See our M-Pesa send money charges for that tariff.
- M-Pesa bulk payments: charge a flat business fee per band, pay many people in one approved batch, and produce a statement your accountant can reconcile.
For a business paying many small amounts, the B2C charge is often lower than the consumer send-money charge for the same amount. Compare the two tariffs for your typical payment size before switching. Also check with your accountant how B2C statements will be matched to payroll records and statutory deductions, which M-Pesa does not calculate for you.
Keep the recipient list clean. Remove people who have left, confirm phone numbers when staff change lines, and use the ID validation feature so money goes to the registered owner of each number.
M-Pesa bulk payments FAQ
Who pays the charge on M-Pesa bulk payments?
The business. Safaricom’s B2C table shows a zero customer charge for payments to registered M-Pesa users.
How much do M-Pesa bulk payments cost per transaction?
KSh 0 for payments under KSh 101, then KSh 5, 9, 11 or 13 depending on the band, up to KSh 250,000 per payment.
Can the business cover the recipient’s withdrawal fee?
Yes. With withdrawal charges paid, the cost becomes the B2C charge plus the withdrawal fee, from KSh 11 to KSh 322.
How do I top up a B2C shortcode?
Deposit float into the listed M-Pesa Holding accounts; for RTGS use 333 plus your shortcode as the account number.
Can M-Pesa bulk payments be scheduled?
Yes. Approved batches can be scheduled for release at a set date and time.
Prefer WhatsApp? Follow Business Radar on WhatsApp
Weekly, free. We only use your email for this newsletter and you can unsubscribe in one click. Privacy policy.

