Payments · Guide

Paying staff in Kenya: M-Pesa bulk payment vs bank file

Updated August 2026 · 6 min read

Once payroll is approved, the money still has to move. In Kenya that means one of two rails: a bulk M-Pesa payout, or a payment file uploaded to your bank. They behave very differently on cost, speed, limits and what happens when something fails. Here is how to choose.

The short version

M-Pesa bulk (B2C)Bank file
SpeedNear-instant, 24/7Same day to next day, banking hours
Per-person capKES 250,000 per transactionEffectively none for salaries
Recipient needsA phone numberBank name, branch and account number
ConfirmationPer-transaction result immediatelyBatch result, often the next day
Best forCasuals, field staff, urgent or off-cycle paySalaried staff, large amounts

Paying by M-Pesa

A bulk payment, technically a B2C transaction, pushes money from your paybill or business account to many recipients at once. It is the fastest option available and it works outside banking hours, which is why it dominates casual and field payrolls.

Two limits shape how you use it:

Batches can carry thousands of recipients, so scale is rarely the constraint. Cost is: transaction charges apply per payment, so a large salaried payroll is usually more expensive over M-Pesa than over a bank file.

Where M-Pesa wins

Casual and daily-rate workers who have no bank account. Off-cycle payments — an advance, a correction, a terminal payment — where waiting for a bank cycle is not acceptable. Anything where you need to know within seconds whether each individual payment landed.

Paying by bank file

A bank file is a formatted list of payees that you upload to your corporate banking portal in one action. Each bank has its own format, and the file must carry the exact bank code, branch code and account number for every employee. One wrong branch code is one bounced salary and one very unhappy conversation.

Bank files carry no practical ceiling, and per-payment cost is far lower on a large payroll. The trade-offs are timing and feedback: you are bound by the bank's cut-off time, and failures usually surface as a rejection report the following working day rather than instantly.

PesaLink for the gaps

PesaLink moves money between Kenyan banks in under a minute, around the clock, at up to KES 999,999 per transaction — though individual banks set lower limits of their own, so check yours. It is the right tool for a single late payment or a correction after the batch has gone, rather than for the whole payroll.

Most teams use both. Salaried staff go out on the bank file for cost, casuals and corrections go over M-Pesa for speed. The thing to avoid is maintaining two separate sets of payee data.

Know the net before you pay it

Work out take-home on any salary at 2026 rates, then pay it out of the same run.

Open the calculator →

The part that actually breaks

In practice, payday failures are rarely about the rail. They are about data:

All four have the same root cause: the payment file is produced somewhere other than where the payroll was calculated.

How Yolaworks handles it

Yolaworks HR generates the payment file from the approved payroll run itself, so the amounts cannot drift. All 38 Kenyan banks are supported with all 1,756 branch codes already loaded, so branch details are chosen from a list rather than typed. The same run can push an M-Pesa batch through Yolaworks Float, with maker-checker approval before anything moves. Free for 30 days.

Transaction limits and charges are set by Safaricom, the banks and IPSL and change from time to time. Figures here reflect published limits in August 2026; confirm current limits with your provider before relying on them.