EPF, SOCSO, EIS and PCB belong to your employees and to LHDN, not to a software vendor’s best guess. UrusHQ posts a balanced ledger entry before it releases a single ringgit to a bank file — and where a statutory rate has not been approved, it refuses to calculate rather than quietly filing a number nobody checked.
Balanced entry before any payment file exists
Maybank Autopay · Public Bank
Corrections post as adjustment runs
The arithmetic for EPF, SOCSO, EIS and PCB is implemented, but UrusHQ will not return a statutory figure for production filing until effective-dated rates have been loaded and approved by tax counsel. Until then the payroll engine raises an explicit unavailable state instead of a number.
That is a deliberate trade. The worst outcome this product could produce is a confident wrong EPF or PCB submission filed to LHDN in your company’s name — an error you would not discover until a reconciliation or an audit, and which you, not the vendor, would have to answer for. A blocked run is recoverable in an afternoon. A wrong statutory filing is not.
If you are evaluating UrusHQ for payroll specifically, ask us where this gate stands before you commit — we will give you a straight answer rather than a demo that hides it.
A run is prepared per employee, approved once, and then posted to the ledger as a balanced journal before any money moves. Payment files are generated in each bank’s own format — Maybank’s fixed-width MAS/Autopay layout and Public Bank’s, written to the byte specification each bank expects, because a payroll file rejected at upload costs you a pay cycle.
Payslips are generated per employee for the run, and leave is governed by rules you configure. Each leave application and each decision on it is preserved — UrusHQ does not substitute a generic default for your employment terms, because those terms are contractual and vary by employer.
An employee without a bank account is named explicitly, held out of that bank file, and their net pay stays visible in salaries payable until it is actually paid. Twenty-three people get paid on time and the twenty-fourth is a line item you can see, rather than a silent rounding difference nobody notices for a month.
Nobody edits a finalised month. A correction posts an adjustment run that references the original, so the ledger and the payslips you already handed to staff continue to agree — which matters when an employee queries a figure from four months ago.
The payroll journal posts into the same accounts your trial balance reads, so salaries, statutory liabilities and net pay are already in your management accounts. There is no month-end export step between payroll and bookkeeping.
Start a trial and look at the run flow, the bank file output and the statutory gate for yourself before you decide.