In short
M-Pesa integration connects your Sacco's Paybill or Till to your Sacco system through Safaricom's Daraja APIs, so member deposits and loan repayments post to the right account automatically, and loans and withdrawals can be sent straight to members' phones. It removes manual statement reconciliation and gives members instant confirmation.
Why M-Pesa integration matters for Saccos
Most Sacco members already pay by M-Pesa. Without integration, staff download M-Pesa statements, match each payment to a member, and post it by hand. That is slow, and every wrong account reference becomes a suspense entry someone has to chase.
With integration, each payment is matched and posted the moment it arrives, the member receives an SMS confirmation, and the general ledger is always up to date.
The four M-Pesa services Saccos use
- C2B (Customer to Business): members pay to your Paybill or Till, using their member number as the account number. The system receives each payment and posts it automatically.
- STK Push (Lipa Na M-Pesa Online): the system sends a payment prompt to the member's phone; they enter their PIN and the payment is posted with the right reference every time.
- B2C (Business to Customer): the Sacco sends approved loans, withdrawals and dividends directly to members' phones.
- Transaction status and balance queries: used to confirm payments and reconcile the Paybill balance against the ledger.
How automatic reconciliation works
When a member pays, Safaricom sends the transaction details to your Sacco system. The system reads the account reference, finds the member, and applies the money according to your rules, for example loan repayment first, then deposits.
If the reference does not match any member, the payment goes to a suspense list for staff to allocate, instead of disappearing into a statement. At the end of the day the Paybill total and the system total should match exactly.
Faster loan disbursement with B2C
Once a loan is approved, B2C lets the Sacco send the money to the member's phone in seconds, with the disbursement recorded in the loan account and the ledger at the same time. Members no longer need to visit the office or wait for a cheque or bank transfer.
What you need to get started
- A Paybill or Till number registered to the Sacco.
- Daraja API access from Safaricom for your shortcode.
- A Sacco system that supports C2B, STK Push and B2C, with rules for how payments are applied.
- Clear member numbers that members use as the account reference.
- A testing period where staff compare system postings with M-Pesa statements.
Common mistakes to avoid
- Allowing members to use names or phone numbers as the account reference, which makes matching unreliable.
- Not deciding in advance how one payment is split between loans, interest and deposits.
- Skipping daily reconciliation in the first weeks after go-live.
- Giving too many staff permission to approve B2C payments.
Frequently asked questions
Can a Sacco receive member deposits through M-Pesa Paybill?
Yes. Members pay to the Sacco's Paybill using their member number as the account number, and an integrated system posts each payment to the right account automatically.
Can a Sacco send loans to members through M-Pesa?
Yes. Using M-Pesa B2C, approved loans and withdrawals can be sent directly to the member's phone, and the disbursement is recorded in the loan account and the ledger at the same time.
Does SaccoWorks support M-Pesa integration?
Yes. SaccoWorks supports M-Pesa C2B (Paybill and Till), STK Push and B2C, with automatic real-time reconciliation.