11. Payroll each month¶
Module
Part of Payroll & HR. If your plan does not include it, these screens are not in your menus.
This chapter is for whoever posts the monthly payroll. The screens are restricted to the Administrator role: holding full access to transactions does not give access to salary data, and every read is recorded.
Where payroll is actually run¶
Payroll is run in WhyzeHR. This system does not calculate anybody's pay and does not pay anyone.
What it needs is for the month to reach the accounts. Without that step the accounts have no salary cost in them at all — and nothing else in the system will tell you, because the books still balance perfectly with the largest expense missing.
That step is Payroll → Enter Payslip, and it takes about two minutes.
Entering the month¶
The tab works top to bottom in four stages: paste, check the columns, read the totals, post. Nothing is written until the last button.
Stage 1 — Paste¶
- In WhyzeHR, open the payroll detail for the month — one row per employee, with a heading row.
- Copy it. A block of Excel cells works; so does the text of a downloaded CSV file.
- Paste it into the large box.
- Click Check it.
Stage 2 — Check the columns¶
The system now shows you every column it found in your paste and what it thinks each one is for. Read this carefully.
Watch out
The first time you do this, the columns are guessed from the headings. A column mapped to the wrong role produces a journal that posts, balances, and is wrong — and nothing downstream can tell. After the first month it remembers the mapping you accepted and re-offers it, so you are only checking what has moved.
For each column, the Means dropdown offers:
| Setting | Use it for |
|---|---|
| ignore this column | Anything the accounts do not need. A Whyze export has several, and ignoring them is correct. |
| Employee (name/number) | Who the row is about |
| Gross pay | Total wage before deductions |
| Net pay | What actually goes to the bank |
| Deducted FROM the employee | Employee CPF, EPF, tax and so on |
| Employer cost (on top) | Employer CPF, SDL and so on |
Where you choose one of the last two, a second dropdown appears for the statutory scheme it belongs to. Set that too.
Every change re-checks the whole thing at once — the totals and the journal below update as you go. There is no "apply" button.
Stage 3 — Read the totals¶
If every employee row adds up — gross less every deduction equals net — you get five figures: employee count, gross, deductions, net and employer cost, followed by the exact journal that will be posted.
Check those five against the Whyze payroll summary before posting. This is the last point at which a wrong column is free to fix.
If any row does not add up, the totals are replaced by a warning listing the offenders and how much each is out by. It means a column has been missed, mapped twice, or mapped to the wrong role. Go back to stage 2 and fix it; nothing can be posted until it is clear.
Stage 4 — Post¶
- Choose the Company.
- Type the Period, in the form 2026-08.
- Set the Pay date.
- Leave Currency and Source as they are unless they are wrong.
- Add a Note if there is anything about this month worth recording.
- Click Post the journal.
Post the journal only becomes available when the check has run, every row adds up, and the company, period and pay date are all filled in. Hovering it while greyed tells you which of those is missing.
Note
One journal per company per month. A month already entered is refused — booking payroll twice doubles the largest expense in the accounts.
The running history at the bottom of the tab shows every month entered, with a link to its journal. If nothing has been entered yet, the empty row says so as a warning, because that is exactly the situation nothing else would flag.
What is kept and what is not¶
The per-employee rows you pasted are used to check that the totals add up, and are then discarded. Whyze stays the record of what each person was paid.
This is deliberate: a second copy of everybody's pay here would be sensitive personal information owned by nobody, and wrong the moment Whyze corrected anything.
Paying the bank¶
Where the system still produces the bank payment file, it is done in two deliberate steps from an opened pay run.
- Click Check who can be paid. This answers whether the run can be paid without opening anybody's account number, and lists every person who could not be — a missing account, a missing bank code.
- Resolve each problem. Run the check on the day the payslips exist, not on pay day: every problem it finds is one person who would otherwise discover it when their salary did not arrive.
- Read the column list in the panel below and check it against your bank's own specification.
- Tick I have checked this layout against the bank's specification.
- Click Generate the payment file.
Watch out
The column order has not been checked against any bank's specification. DBS, OCBC and UOB each define and version their own. A wrong layout is either rejected — costing a pay run — or accepted and paid wrongly. Check it before you rely on it.
The file downloads to your computer rather than appearing on screen, because full account numbers on a screen end up in screenshots. It carries those numbers in the clear: do not leave it on a shared drive, and delete it once the bank has confirmed the run.
The other payroll tabs¶
- Pay Runs — history from before the switch. Past payslips can still be reprinted. Creating a new run is switched off.
- People & Salary — each person's residency, date of birth and salary history. A pay change is a new dated record, never an edit, so an old payslip reprints correctly. Revealing a bank account number is a separate, deliberate action and is logged.
- Allowances & Deductions — the catalogue of pay components and who has which. An attachment is ended, never deleted, because a pay run already posted was calculated from it.
- Statutory Rates — the CPF, EPF, SOCSO and similar rates, effective-dated. Read-only on purpose: editing an existing row would silently recalculate historical payslips.
- Access Log — who looked at payroll, and when. Restricting access answers who may see pay data; this answers who did.
Watch out
The statutory rates are researched, not professionally verified, and the Malaysian schemes use percentages rather than the official contribution tables. Have them confirmed before relying on them for a live payroll.