That time they arrested Lichuma from Mathare social justice, threw him on a lorry. High above them, he proceeded to give them a few truths on why Kenyans are protesting. Waliaibika mpaka akashuka.
SAD: When armed officers see a man with a disability as the easiest person to overpower, leadership has failed. Press briefings fade, but videos like these become history’s evidence. Shame on you MURKOMEN, IG POLICE AND GOK SPOKESPERSON #EndPoliceBrutality
One of the main reasons PHP is not used more is because of marketing.
People still think PHP code today is like PHP 20 years ago.
The language evolved a lot, has a strong community and a very strong ecosystem!
But because of its “fame” from years ago, a lot of people don’t use it.
Give me 5 minutes, and I'll explain what those 10 M-Pesa accounts in the Daraja Account Balance API actually mean.
Most developers only pay attention to a few of them and ignore the rest. Yet just 4 of these accounts are responsible for the core operations behind every successful Paybill setup:
API Usecase:
- Financial Reconciliation
- Automated Payment Systems
- Cash Flow Management
- Payroll Processing
Understanding these accounts will help you build more reliable M-Pesa integrations, track funds accurately, and avoid common mistakes when working with the Daraja Account Balance API.
👇👇
1/ UTILITY ACCOUNT
Your money inbox. Every customer payment (STK Push or Manual Payment to Paybill) lands HERE first.
Pro tip: Always check AVAILABLE balance before triggering B2C. Current ≠ Available.
Reserved funds = pending payouts already in queue.
2/ CHARGES PAID ACCOUNT
Always negative. Always.
This is Safaricom's running tab of what you owe in transaction fees.
If this isn't cleared → Safaricom BLOCKS your bank withdrawal. Full stop.
(It clears automatically during settlement , more on that in a sec)
3/ ORGANISATION SETTLEMENT ACCOUNT
The engine room. You won't see money sit here long.
When you trigger Revenue Settlement:
→ It clears your fee debt (Charges Paid)
→ Moves the net balance to your Working Account
Transit lane. Not a wallet.
4/ MMF / WORKING ACCOUNT
Withdrawal-ready funds live here.
Post-settlement, this is where your money sits before it hits your bank account.
Zero here = you can't withdraw. Check it before calling the bank.
5/ The full flow:
🔁 THE FLOW IN ONE LINE:
Customer pays → Utility Account → Settlement clears fees → Working Account → Your Bank/individual M-PESA account.
B2C bypass: Payouts draw DIRECTLY from Utility. No settlement needed. 🔑
---
Building on Safaricom Daraja? Follow for more M-Pesa and Payments integration
Got a Mpesa Daraja question? Drop it below 👇 I'll answer it.
Hey @X
May your code compile on the first try, your deployments be smooth, and your coffee be stronger than your deadlines.
Keep learning, keep building, and remember: every great application started with a single line of code.
Boomers be like, “Just walk into the office and ask for a job.”
The office: locked
The recruiter: AI
The interview: automated
The job posting: fake
The rejection email: instant
Your data: sold
Hey Laravel Developers
During the initial development of an application, you may want to implement some form of authentication until the access control module is ready, to prevent unauthorised users from accessing the application.
This can be done using HTTP Basic Authentication via the Authorization header, and it is just a matter of adding a couple of lines to the Nginx or Apache configuration.
But did you know that Laravel provides this functionality out of the box as well?
You simply need to use the auth.basic middleware on the routes that need to have the protection.
When a guest user accesses one of these protected routes, an HTTP Basic Authentication prompt is displayed where the user can enter their username and password.
The username and password are then checked against the configured authentication provider (typically the email and password columns in the users table) to authenticate the user.
Quick, easy, and simple.
#laravel #php