Payments, payroll and expenses for businesses in Kenya
Payouts and payroll, approved by the right people.
Bobplus Lipa pays suppliers, staff and expense claims from wallets your finance team controls. Every bulk payout and payroll run waits for a second person to approve it.
Pays out to M-Pesa, Airtel Money, PesaLink, bank EFT and RTGS.
Product
One place for every payment your team signs off
Bulk payouts, payroll, expense claims and wallets share the same roles, approvals and records.
Pay hundreds of people in one batch
Upload a CSV of recipients, check it before anything moves, then send the batch for approval. Once it’s approved, payouts go to M-Pesa, Airtel Money or bank accounts.
- Phone numbers and amounts checked before you submit
- A second person approves every batch before money moves
- A status for every recipient, so failed payouts are easy to find
Five payout rails
M-Pesa B2C, Airtel Money, PesaLink, bank EFT and RTGS.
No double payments
Every batch carries a unique reference, so sending the same batch twice doesn’t pay twice.
Run payroll with Kenyan deductions worked out
Keep a salary structure for each employee. Every run calculates statutory deductions and goes through two approvals before anyone is paid.
- Salary structures and custom deductions per employee
- Payroll review first, then a final sign-off by someone else
- A payslip PDF for every employee
Statutory deductions
PAYE, NSSF tiers I and II, SHIF and the housing levy, calculated per employee.
Return files
KRA P10, NSSF and SHIF schedules exported from each run.
Claims with receipts, reviewed before they’re paid
Staff submit claims with a receipt and a category. An approver reviews each one, and approved claims are reimbursed in a batch.
- A receipt and category on every claim
- Nobody approves their own claim
- Rejected claims carry a reason
Three ways to reimburse
Pay out directly, add it to the next payroll, or credit a wallet.
Approvals by role
Only people with approval rights can approve or reject a claim.
See every wallet and move money between them
Each organization gets its own wallets in Kenyan shillings. Top up, transfer between wallets and follow every movement in the ledger.
- Top-ups and transfers limited to finance roles
- Set money aside for tax with a reserve transfer
- Balances across all wallets at a glance
Four wallets
Operating, payroll reserve, expense float and tax reserve, opened with every new organization.
One ledger
Every credit and debit in one place, ready to export as CSV.
One queue for everything waiting on you
Bulk payments, payroll runs and expense claims that need your sign-off appear in one list, with the amount and who prepared them.
- Bulk payments, payroll and expenses in one queue
- The person who prepared something can’t approve it
- Every decision recorded with who and when
Roles, not favours
Owner, finance director, payroll manager, expense approver and auditor, each with its own permissions.
Read-only auditors
Auditors see wallets and reports without being able to move money.
Approvals
Maker-checker, built in
Money only moves after two people have looked at it, and the record shows who did what.
-
Step 1
Prepare
Someone with the right role prepares a bulk payment or payroll run and checks the totals.
-
Step 2
Approve
A different person with approval rights approves or rejects it. Payroll needs two sign-offs.
-
Step 3
Pay and record
Approved payouts go out to M-Pesa or the bank, and every decision stays on the record.
Developers
Connect your own systems
Create bulk payments, run payroll and read balances from your ERP or HR system. The REST API uses bearer tokens and idempotency keys, so retries never pay twice.
curl -X POST https://bobplus.bikundo.dev/api/v1/bulk-payments/batches \
-H "Authorization: Bearer $LIPA_TOKEN" \
-H "X-Idempotency-Key: b3724c96-03f1-4dfb-9ce9-93b519ab56c0" \
-H "Content-Type: application/json" \
-d '{
"name": "October supplier payouts",
"currency": "KES",
"items": [{
"recipient_name": "Alice Wambui",
"recipient_phone": "+254712345678",
"channel": "MpesaB2c",
"amount": 45000
}]
}'
Sandbox
Try it with a demo account
This environment runs on sample data. Sign in as any role to see what that person can do. Every demo account uses the password
password