Kenyan payroll software

Kenyan payroll, in the browser.

Pesa Sahihi is online payroll for any Kenyan employer: payroll in the browser, run as one locked month: PAYE, NSSF, SHIF and the Affordable Housing Levy for every employee, then the payslips, the KRA iTax file, the NSSF and SHIF returns and the bank upload. It runs in the browser, behind the XelQ Portal sign-in. Nothing to install.

Two ways to run payroll.

Spreadsheets recalculate; a payroll application commits. One run, checked, locked, filed.

The month, watched.

Everything this page says, seen once through in the app itself — the film of one payroll month, start to finish.

Where the money goes.

One salary, taken apart: what the employee keeps and what goes to KRA, NSSF and SHA — in the order the law takes it.

One click. All the paperwork.

Payslips, the PAYE iTax CSV, NSSF and SHIF returns, and the bank upload file — written together from figures that can no longer drift.

Four laws. One date.

PAYE, NSSF, SHIF and the Housing Levy all fall due by the 9th of the following month. The app builds every filing from the same locked run.

One month, start to finish.

Import your people once, run the month, review, lock, and send payslips — a payroll department in an app.

01 · Before the month — One dashboard, no hunting.

Open the app and the month is already looking at you: who is on the payroll, what is due, and what the last locked run said.

The app's home screen: the month's payroll not yet started, statutory total due, net paid, cost to date, headcount, and a bar chart of payroll cost over the year so far.

02 · The people — The roster is the source of truth.

Everyone's pay, department, payment method and statutory numbers in one filterable list. Change someone here and the next run picks it up — nothing is retyped into a payroll sheet.

The employee list, filtered and sorted: personnel number, name, department and position, basic pay, car benefit, pension, start date and payment method, with buttons to import or export the roster as CSV.

03 · Month input — Leave, sick days and advances come in as a CSV.

Fill the sheet you already keep, import it once, and preview every line before anything is written. No retyping.

Step two of the run, monthly inputs: a row per employee with editable advances and leave-day fields, and a button to import them from the tracker instead of typing.

04 · The run — Every name, all four statutes, side by side.

The engine computes PAYE, NSSF, SHIF and the Housing Levy for the whole roster at once, and shows its working before you commit to any of it.

Step three of the run, the preview: every employee on one line with gross, NSSF, SHIF, housing levy, PAYE, advances and net pay computed side by side.

05 · The lock — Approve, and the month locks.

The foot of the run tells you exactly what leaves the accounts on pay day, split by how each person is paid. Locked means locked — the audit log records who locked it, and when.

The foot of the preview: headcount, advances and the net split across cash, bank transfer and M-PESA, with the button that locks the month.

06 · The paperwork — One click writes the lot.

Encrypted payslips, one per employee, saved as email drafts to send from your own mail — the password is theirs, so the file is useless to anyone else. Then PAYE in iTax's own CSV layout, the NSSF and SHIF returns, the payment totals report and the auditor pack. Keep scrolling and watch the card work through them.

The outputs screen once generation has finished: every document type ticked off, with a button to open the folder they were written to.

07 · Afterwards — Analytics with a discreet mode.

Cost trends and headcount at a glance — and one click blurs every shilling figure, because payroll gets reviewed in open-plan offices. Scroll on and the figures go soft.

The same year view with discreet mode switched on: the layout is unchanged and every money figure is blurred out.

A tax year is not a calendar year.

NSSF limits move every February, so January and February of the same year are different calculations. Pesa Sahihi reads the table off the month.

Two payrolls. Still one taxpayer.

An employee paid by two companies is still one taxpayer to KRA. Pesa Sahihi combines the income by KRA PIN and charges the bands once.

Who can see your payroll.

Each client’s payroll is its own database, stored in Cloudflare’s EU jurisdiction. You sign in through the XelQ Portal, with a passkey if your company requires one, and payroll checks that sign-in on every request for data. A person opens payroll only once given access and a role; XelQ support looks in read-only, and only when your company’s admin lets it in. With two-person approval on, whoever changed a month cannot lock it. Every logged action carries the signed-in person, and you can download all your payroll data as one SQLite file at any time.

Who it is for

Pesa Sahihi is for any Kenyan employer. We set it up for your company, and the XelQ Portal handles sign-in. Statutory updates are included: when the tables change, the engine changes for every client at once. Ask for a demo.

Try the arithmetic first

The free PAYE calculator, net pay calculator and gross-up calculator run the same engine as the app, on the current Kenyan tax rates.