Frequently asked questions

The questions Malaysian employers actually ask us.

Every answer below comes from a real conversation with a buyer or a customer — 76 of them, grouped by topic. If yours is not here, ask us directly.

Pricing and plans

How much does Pandahrms cost, and how is the price calculated?

It is per employee, per month.

The price is based on the headcount you subscribe for and the modules you switch on.

The Essentials bundle — Time & Attendance, Payroll and Leave together — is priced by headcount band:

  • RM9 per employee per month for 10 to 100 staff
  • RM8 for 101 to 200
  • RM7 for 201 to 500
  • RM6 for 501 and above

Any single module on its own is RM5 per employee per month, except Performance at RM8. If you are on Essentials, the add-on modules are cheaper:

  • Claim RM3 per employee per month
  • Training RM3 per employee per month
  • Performance RM5 per employee per month

Rates are before 8% SST, and there is a one-time setup fee in your first year.

Can I buy just one module? I only need attendance and payroll, not the whole thing.

Yes, modules are sold a-la-carte.

Each module is RM5 per employee per month (Performance is RM8), so you can take Time & Attendance only, or Payroll only, and add the rest later.

Once you want two or more, the Essentials bundle is usually the cheaper route — Time & Attendance + Payroll + Leave together is RM9 per employee per month, against RM10 for any two single modules.

Tell our team which modules you actually need and the quotation is built around that.

Min kena 10 employees ke? My company only has 7 staff.

The minimum billing is 10 headcounts.

If you have 7 staff you can still subscribe, but the invoice is calculated on 10.

There is no maximum and no cut-off at 100 staff — the rate simply moves down the ladder as your headcount grows.

Is SST charged on top? Any other hidden charges I should know about?

Yes, 8% SST is added on top.

8% SST is added on top of both the subscription and the setup fee, so the per-employee rates quoted above are before tax. On a standard subscription the only other cost is the one-time setup fee in year one.

Three things sit outside standard scope and are quoted separately:

  • Customisation or non-standard report formats
  • Biometric hardware
  • A one-off integration setup fee if you connect a biometric device that was not bought from us

Ask for the line-by-line breakdown before you sign.

Can I pay monthly, or must it be a full year upfront?

It must be a full year upfront.

We do not offer monthly billing. The per-employee rate is quoted monthly for easy comparison, but the invoice is that rate multiplied by your headcount and by 12 months, paid one year in advance.

The setup fee is invoiced with it and settled before onboarding work starts.

What is the setup fee for, and do I pay it again every year?

It is a one-time charge in your first year, not yearly.

The setup fee covers:

  • Account and domain setup
  • Configuration to your company’s rules
  • Migration of your existing employee and payroll data
  • Training for your team

It is settled before onboarding work begins and it is not charged again at renewal.

We do not publish it as a fixed figure because it depends on your headcount and how much data has to be migrated — it is quoted together with your plan.

What happens at renewal, and what if my headcount goes up or down during the year?

You pay the subscription only, at the same rate.

At renewal you pay the subscription for the coming year only — the rate does not change and there is no second setup fee.

If you hire during the year, additional headcount is bought in blocks of 5 minimum and quoted by our team at the same rate card, so it is a short request, not something you self-serve in the system.

When someone leaves, run the Cessation process: once their final payroll cycle is closed the system marks them Resigned and that headcount is released for a new joiner.

The system warns you when you reach your licensed headcount, and the first thing to check then is whether any cessations are still pending.

Clocking in and attendance

Do we have to buy a punch card machine, or can staff just clock in with their phones?

No, you do not need to buy a machine.

Staff clock in and out from the Pandahrms mobile app. The app only accepts a clocking inside the GPS boundary set for their workplace under Setting > Attendance > Geo Fencing.

A biometric terminal is optional. We supply ZKTeco fingerprint and face terminals for sites where phones are not practical, and both methods feed the same timesheet.

What is not supported is running your own iPad or tablet as a shared kiosk for everyone to tap on. For a shared clocking point it has to be a terminal.

We have a few outlets. Can we set GPS clock-in so staff can only punch inside their own outlet?

Yes.

Each site is set up as a geofence under Setting > Attendance > Geo Fencing with its address or GPS coordinates and a radius you choose. Real customer setups run from about 100 m to 500 m.

There is no limit on how many locations, and each employee is assigned the geofence they are meant to clock at, so a KL outlet’s staff cannot clock at the Johor outlet.

When you open a new outlet, send us the address or a Google Maps pin and we will add the geofence for you. Your admin can also create it in Settings, and we have a short video guide for that.

My salesmen and site staff are never at the office. How do they clock in if they are outside the boundary?

There are three ways, depending on how often it happens.

For the occasional trip, the employee ticks “Weak GPS signal or out of fence” in the app, picks the location they are supposed to be clocking at, and submits in real time. The record sits pending until an admin approves it, and the app still records the actual address it captured.

For staff who are always on the road, we can instead set them a deliberately wide boundary, up to the whole of Malaysia, so they clock normally without triggering approvals.

For a planned trip there is also an Outstation Application under Attendance Menu, so the day shows as Outstation in the timesheet rather than Absent. That one is submitted and approved on the web, not in the app.

Some of my workers don’t have a smartphone. How do they punch?

They use a biometric terminal at the door instead.

For those staff you use a fingerprint or face terminal, and you can mix both methods in one company: we run companies where a couple of staff still clock on the app while everyone else is restricted to the fingerprint machine, all feeding one timesheet.

We supply ZKTeco terminals — the SenseFace and MB series are the ones our customers run — and quote them with your plan.

What we cannot offer is a shared phone or tablet running the Pandahrms app as a common clocking point. That is not supported, so a shared clocking point has to be a terminal.

We already have FingerTec / ZKTeco machines. Can we keep using them instead of buying new ones?

Send us the brand and model first.

We check every device before committing, and we have had to tell a customer their machine simply cannot be integrated.

Where it works, FingerTec comes in through our Ingress Downloader reading the file Ingress exports, and ZKTeco through our TA Downloader or ZK.Biotime. Either way a small downloader is installed on the PC connected to your terminal over a remote session, so keep an AnyDesk ID handy.

Newer ZKTeco units need a ZK.Biotime licence of their own, and a one-off integration setup fee normally applies — it is quoted with your plan.

Our team is more experienced with ZKTeco than with FingerTec, so for FingerTec sites expect us to confirm the model before we commit.

One of my staff forgot to clock out. What happens, and how do we fix it before payroll?

That day is flagged as Odd Clocking.

The system reads time logs in pairs (1st = in, 2nd = out), so from an unpaired record it cannot calculate work hours, overtime or attendance allowances.

There are two ways to clear it. The employee submits a Backdated Clock Time Application in the mobile app and an admin approves it, or the admin edits the log directly under Attendance Menu > Process > Timesheet Adjustment or in the Timesheet report.

If the clocking came from a biometric terminal, tick “Manual Edited” when you save, otherwise the next raw-data sync restores the original timing.

Clear all Odd Clocking before you run the payroll import, because a day left in that state carries no hours or overtime into payroll.

Must staff take a selfie every time they clock in? Does the app recognise their face?

No, the selfie is a setting, not a requirement.

“Must submit selfie when clock in/out in mobile app” is a company-level system parameter, and you ask us to switch it on or off. When it is on, the app takes two photos, one selfie and one of where the employee is standing; when it is off, the photo disappears for everyone, including out-of-fence clockings, as it cannot be set per employee.

The app does not do face recognition or face matching. The photos are simply there for you to review alongside the address the app captured.

Under Attendance Menu > Report > Timelog Transaction you can see which records came in with a remark such as “Out of fence” or “Camera broken”, or with no photo at all, which is how HR spots staff who are routinely bypassing normal clocking.

Overtime

Does the system calculate OT automatically from the clock-in and clock-out, or must staff apply for it?

Either — it is a setting on each work schedule.

The setting is called Require OT Application. With it off, overtime appears in the timesheet on its own as long as that day has a complete pair of clockings.

With it on, the employee submits an Overtime Application on the web or the Pandahrms mobile app, and the hours only count once the approver on your Approval Route approves — backdated applications included.

Applied hours are still trimmed to the real time logs. Apply for 8:00–10:00am but clock in at 9:43am and only 17 minutes is counted.

You can see who applied and who approved under Attendance Menu > Report > Overtime Application Listing. Approved OT flows into payroll through Import From Module — get it approved before that import runs, because the import locks the timesheet for that period.

We only pay OT if staff work at least 30 minutes past knock-off. Can the system follow that, and how does it round the hours?

Yes.

Each schedule carries a minimum time required before OT starts counting, and anything shorter is simply not counted. 30 minutes, 1 hour, 1 hour 45 minutes and 2 hours are all in live use.

Rounding is a separate rule on the same schedule, with these options:

  • Exact minutes
  • Round down to 30 minutes (3 hours 40 becomes 3 hours 30)
  • Round to the nearest 30 minutes
  • Round down to the hour
  • A banded table such as 0–29 min to 0, 30–54 min to 30, 55–59 min to a full hour

Both the minimum and the rounding rule are set per schedule code by our support team during setup or on request, not by you in the UI, so they match your existing OT policy.

Can we cap OT so nobody claims more than a set number of hours in a month?

Yes — a Max Overtime Hour Setting caps it.

The Max Overtime Hour Setting caps the overtime the timesheet generates. One customer runs a 26-hour monthly ceiling, with anything beyond that needing a separate OT application.

By default that cap also counts overtime submitted through the Overtime Application. If you want applied OT to sit outside the ceiling, our team creates a second OT transaction code for it so the two are tracked apart — that two-code split is set up by Pandahrms support, not a switch you flip.

One honest limitation: it does not on its own stop normal OT and applied OT both landing on the same day — that the two are separated during setup, so tell us your OT policy up front and we configure it with you.

Can we set different OT rates for a normal day, off day, rest day and public holiday?

Yes.

The OT multiplier is set per schedule code and per day type. A typical Malaysian setup is:

  • 1.5 on a normal working day
  • 1.5 for Saturday as an off day
  • 2.0 for Sunday as a rest day
  • 3.0 on a public holiday

Rest day and public holiday overtime can also be set to require an approved OT application before it shows in the timesheet, if you do not want it counted automatically.

The rates are yours to decide and our team configures them per schedule — confirm them against the Employment Act 1955 for your own staff.

What formula does the system use for the OT hourly rate?

Basic salary ÷ 26 ÷ daily hours, times the OT rate.

Ordinary rate of pay is monthly basic salary divided by 26, divided by the daily working hours, then multiplied by the OT rate and the OT hours. On RM1,700 with an 8-hour day that is 1,700 ÷ 26 ÷ 8 = RM8.17 an hour, and RM12.26 an hour at 1.5.

The divisor 26 follows section 60I of the Employment Act 1955, and support will not change it to your own number of working days.

The daily-hours divisor lives in the OT transaction code, which our team sets to match your schedule — 7.5, 8, 8.5, 9 and 10-hour days are all in live use. Any change beyond that formula is an emailed customisation request, not a setting.

Our factory runs a night shift that finishes the next morning. Will the OT still be captured?

Yes, with setup.

Schedule codes can be built to cross midnight with the OT band defined across the day boundary — for example work ending 8:00pm and OT running 8:00pm to 2:00am.

The setting that decides whether the next-morning clock-out lands on the right day is the Time Log Capture Range on that schedule. It defaults to roughly four hours either side of the shift and has to be widened for you — for instance 04:00 to 01:30 to catch a clock-out at midnight or 1:00am. The capture range does not support a full 24-hour window.

Overnight shifts are configured by our team and then checked against a real week of your clockings before you rely on them.

Shifts and schedules

We run 24 hours. Can the system handle a night shift that crosses midnight, like 11pm to 7am?

Yes, using a schedule code that crosses midnight.

You use a schedule code whose working time crosses midnight, and the clock-out the following morning is matched back to the correct working day. Late-in, early-out, break and OT are judged against that shift rather than the calendar day.

Schedule codes already in live customer use include:

  • 11pm-7am
  • 6pm-2am
  • 5pm-1am
  • 3pm-11pm
  • 1pm-12am

There are two real limits. A single schedule cannot run longer than 24 hours, and the time log capture range cannot cover a full 24 hours – so a normal day shift cannot also be stretched to catch OT running right through to the next morning.

If your staff genuinely work through the night, tell us and we set it up as an overnight schedule code rather than as an extended day shift.

Our staff rotate shifts every week. Do I have to key in the roster for each person one by one?

Only for the people who actually rotate.

Staff on a fixed pattern go into a Group Duty Roster under Attendance Menu > Group Duty Roster, where one roster covers the whole group and can be plotted over a long date range – one customer has theirs set 01/01/2026 to 31/12/2027.

Staff whose shift changes week to week go into an Individual Duty Roster instead, where you plot each week according to their rotation.

If a day has no roster at all, the timesheet shows status U, Undefined Schedule, and the system cannot calculate working hours or leave hours for that day until a schedule is plotted.

Our JB branch knocks off at 6pm but KL and Penang finish at 5.30pm. Can the system follow each branch?

Yes, through a separate schedule code per branch.

There is no branch-hours screen as such. You create a separate schedule code for each set of working hours and assign each outlet’s staff to their own code, usually through one Group Duty Roster per outlet.

From then on the system compares every employee’s clock-in and clock-out against their own scheduled shift, so late-in, early-out, over-break and OT are judged by the right hours at each location.

If a code was assigned wrongly, correct it and re-run Timesheet Calculation for those dates and the statuses are re-evaluated. The one exception: if that payroll period has already been closed and imported to payroll, those days are locked and cannot be adjusted afterwards.

How do I create a new schedule code? We keep needing new ones, like 10am to 6.30pm or a part-timer 10am to 3pm.

Schedule codes live under Setting Menu > Attendance > Schedule.

Schedule codes live under Setting Menu > Attendance > Schedule, and we have step-by-step guides for setting up a new schedule and for editing an existing one, so your HR admin can do it themselves.

In practice most customers just WhatsApp us the hours, break and OT rule and our support team sets the code up for them – that is how the majority of new codes get created.

If someone has no fixed start and end time and only needs to complete a set number of hours a day, a Flexi Schedule is used instead, where you set the required daily working hours rather than fixed in and out times.

How is break time set up? Some of our shifts have a fixed lunch, some let staff take one hour whenever they like.

Break is its own code attached to the schedule code.

A break code is created under Setting Menu > Attendance > Break and then attached to the schedule code, so two shifts with the same hours but different breaks are simply two codes.

A break can be fixed to a window or set as a flexible one hour taken any time within the shift, and you choose whether the break hour is included in or excluded from working hours.

Each break code has its own capture window, which must sit inside the schedule’s time log capture range, and staff back later than the allowed break show as Over Break in the timesheet.

One condition worth knowing: Over Break only works if staff actually clock out and in for their break and the Time Log First In Last Out setting is switched off. With that setting on, the system keeps only the first and last clocking of the day and the Over Break column stays empty.

My staff clocked out at 1am but the timesheet shows nothing. Why is the clocking missing?

Almost always the Time Log Capture Range on the schedule code.

The Time Log Capture Range decides which clockings get pulled into that day’s timesheet. It is generated automatically from the in and out times you key in, normally about four hours before and four hours after the shift, so a clocking outside that window simply is not picked up.

For an 8am-4pm shift where people sometimes finish at midnight, the range can be widened to 4:00-1:30 and the late clock-out is then captured against the correct day.

The range can be extended but not to a full 24 hours, and the Rest Day and Public Holiday versions of the schedule need the same treatment or their ranges overlap and pull clockings onto the wrong date.

So tell us your earliest clock-in and latest clock-out and we will set it.

Allowances and deductions

Can the system pay an attendance allowance only if the staff has no late-in, no absent and no MC that month?

Yes, but our support team writes the formula for you.

A conditional attendance allowance is set up in the Attendance Incentive module as a formula that reads your attendance and leave data directly. The variables it can read are:

  • Late In
  • Early Out
  • Over Break
  • Absent
  • Unpaid leave
  • Annual leave
  • Medical leave
  • Emergency leave

It can pay the full amount, a reduced amount or nothing, so a rule like RM100 for a clean month, RM50 if only part of the criteria are met and RM0 otherwise works. The result flows into payroll without HR re-keying it.

Two limits up front. The cycle is monthly, so a rolling three-month accumulation pool is not supported, and there is no “incomplete working hours” variable — Late In, Early Out and Over Break are the metrics available.

Writing the formula is our support team’s job; it is not something you build in the screen yourself.

We pay RM5 a day for night shift. Must HR key that in every month?

No, it attaches to the shift code and counts automatically.

A per-day allowance is attached to the work schedule code as a Schedule Allowance. On any day an employee is plotted on that night shift code it is counted on the timesheet as one day’s entitlement, and it carries into payroll when attendance is imported — the same way daily meal, transport and cashier allowances are handled. Entitlement can also be narrowed to a specific Employee Group.

One thing to check with us first: a Schedule Allowance is driven by the day’s attendance record, so on a day with odd clocking (a missed punch) it may not compute. Cases like that are handled through the Attendance Incentive module instead.

We create the schedule and transaction codes for you (for example ALLOW_NS) and confirm with you whether the item contributes to EPF, SOCSO, EIS, PCB and the HRD levy before it goes live.

We give a fixed RM100 allowance every month. Do I have to key it in for every payroll, and what happens if someone joins or resigns mid-month?

No re-keying — you set it up once as a recurring transaction.

A fixed monthly allowance is created once under Payroll Menu > Entry > Recurring Transaction with an effective date, and it then populates into the payroll dashboard automatically each month. Your own admin can create these records — there is a short video guide — provided the user account is not set to read-only.

Note that it applies from the payroll month of its effective date onward, so a record created after a month’s payroll has been processed only shows up from the following month.

By default the system prorates a recurring allowance for new joiners and leavers based on the join or last working date. If you want the full amount paid regardless, there is a “Don’t prorate on new join / leaving employee” option that can be enabled on that item.

Our policy is that we only start deducting after 10 minutes late. Can the system follow that, and what does it deduct from?

Yes, each schedule code carries a late-in tolerance.

Each work schedule code carries a Tolerance Late In and Tolerance Early Out in hours and minutes, and anything inside that tolerance is not treated as lateness at all. Set 10 minutes and a 9-minute late-in produces nothing — it will not even appear on the timesheet.

Past the tolerance the deduction is a formula. Some customers deduct on actual minutes, such as Basic Salary / 26 / 8 x minutes late, while others round the excess up to the nearest 30 minutes, and the divisor can be 26 days or the calendar days of the month depending on your policy.

Tolerance, rounding and the formula are configured by our support team on your written instruction, not toggled by the HR admin.

Can we switch off automatic deduction for late clock-in, early clock-out and over break?

Yes — leave the formula unconfigured and nothing is deducted.

Deduction only happens where a formula is configured for that tardiness type, so leaving one unconfigured means no salary is deducted for it. In live setups one customer deducts on late-in but has no formula on over break, so over break shows on the timesheet without touching pay, and another has early out recorded but never deducted.

It can also be scoped — for example salesmen with no late-in or early-out deduction while the rest of the company keeps it.

These are configuration changes our team makes on your instruction. The records still appear in the timesheet report, so you keep the visibility without the deduction.

How does the system work out the unpaid leave deduction?

By formula, with the base set to match your policy.

Unpaid leave is deducted by formula and the base is set to match your policy — Basic Salary / 26 x UPL days, or Basic Salary / calendar days in that month x UPL days. It can be changed later; one customer moved from a 26-day base to calendar days from the July 2026 payroll onward.

Half-day and part-day unpaid leave uses a separate hourly code, for example UPL-H at Basic Salary / calendar day / 8 hours x hours taken.

Once the unpaid leave application is approved it feeds into the payroll run and appears on the payroll ledger and payslip with nothing to key in by hand. The formula itself is set up or amended by our support team on your request.

Running payroll

How does a payroll run actually work in Pandahrms — what are the steps?

Attendance first, then import, calculate, check, lock and close.

You finalise and review the month’s attendance first, then work through the payroll cycle in this order:

  • Go to Payroll Menu > Import From Module to transfer the approved overtime, leave, absence and tardiness figures into payroll.
  • In Payroll Dashboard, create the cycle and click Calculate.
  • Check the figures in the Payroll Ledger and the payslip report.
  • Lock the dashboard, then generate the bank file and payslips.
  • Close it only after the payment has gone out and been checked.

At the Calculate step the system pulls each employee’s basic salary from Employee Profile > Job & Service, applies the allowances and works out EPF, SOCSO, EIS, SKBBK and PCB.

Note that Import From Module locks the timesheet for the period it covers, so any attendance correction after that point needs a Reverse Transfer and a re-import.

I’ve already run the payroll and then found a mistake. Can I redo it?

Yes, unless the dashboard is already Closed.

While the dashboard is still Open or Locked you can unlock it, correct the entry and click Calculate again. If the wrong figures came from attendance, you run Reverse Transfer for those days or that employee, fix the timesheet, then Import From Module again.

Be aware that a Reverse Transfer reverses every module that was transferred for that employee — not just attendance — and wipes the matching Express Entry records, so we don’t recommend using it routinely.

Once a dashboard is Closed you cannot reopen it yourself, because the transactions inside it (including Express Entry records) are cleared. Our support team can revert a closed cycle back to Locked, but we check the case first, so treat Close as final and only close after the payment is confirmed.

How do my staff get their payslips?

Posted to their app, emailed, or printed as PDF.

Payslips are generated under Payroll Menu > Report > Payslip and can be printed or saved as PDF.

Once the payroll dashboard is Locked you click Post Now and the payslip appears in each employee’s Pandahrms app, where it stays and is not auto-deleted — but note that unlocking the dashboard withdraws the posted payslips immediately.

Payslips can also be emailed if the ‘Email Payslip’ system parameter is switched on and the employee’s email is filled in on the profile; the PDF is automatically password-protected with the employee’s NRIC or passport number.

The payslip layout can be adjusted for your company — for example showing annual leave and sick leave balances, or carrying your signature and company stamp — and our team makes those format changes for you rather than it being a self-serve setting.

Can Pandahrms produce the bank file so I don’t key in salaries one by one?

Yes, under Payroll Menu > Autopay Generator.

Bank payment files are generated under Payroll Menu > Autopay Generator, and you pick the payroll date matching a Locked payroll dashboard; a dashboard still in Open status will not flow into the file.

We configure the file to your bank’s format (for example CIMB BizChannel, including the DuitNow Bulk Payment template, and Public Bank), and staff banking with different banks can sit in the same file.

You upload the file to your bank portal yourself — Pandahrms generates the file, it does not make the payment. If your bank uses a layout we have not built yet, send us their specification and we will review it; we cannot promise every format, as some bank layouts fall outside what the generator produces.

One of my staff is leaving. How do I do the final pay and pay out the balance annual leave?

Create the Cessation record before you run the payroll.

Create the record under HR Menu > Cessation with the tender date, last working day and last payroll day before you run the payroll. Then run Leave Menu > Leave Calculation with the Leave Computation Date set to the last working day so the balance is re-prorated — skip this and the encashment can show the full year’s balance.

The cessation then works out the final month’s salary, the short-notice deduction — measured against the resign notice period on the employee profile — and the annual leave encashment.

Encashment is calculated as basic salary divided by calendar days multiplied by the days encashed; if your policy uses a divisor of 26, tell us and our team amends the setting for you.

You can still amend the days encashed under Payroll Menu > Entry > Express Entry before calculating, and the employee’s status changes to Resigned once that payroll dashboard is closed.

We backdate increments, and sometimes OT gets approved after I’ve already transferred the attendance. Does the system catch up?

Yes, if the retro setup was done before the transfer.

Salary changes go under HR Menu > Process > Salary Adjustment with an effective date, and the proration follows that date against your payroll cut-off — so an increment effective mid-month on a 21st-to-20th cycle is split correctly instead of paid for the whole month.

Retro pay for attendance approved after Import From Module does exist, but it only works if the retro back-pay and deduction transaction codes were set up before the transfer, and a date that has already been retro-calculated once will not be picked up a second time. Overlapping retro periods between cycles are allowed.

It is a setup we configure with you rather than something to switch on mid-cycle — several cases have needed our team to re-run or patch the retro flag — so raise it at implementation if you rely on it.

Can it handle bonus, advance salary and company car BIK, or only normal monthly pay?

Yes — bonus, advance salary and BIK each have their own setup.

For bonus you create a separate payroll dashboard with the Payroll Type set to Bonus — that produces a separate payslip and keeps the bonus EPF and PCB distinct. Put bonus and salary in one dashboard and the statutory figures come out combined and cannot be split afterwards.

Pick the type carefully: the payroll type cannot be changed once the dashboard is created, and an employee can only sit in one dashboard per payroll type.

Advance salary runs under its own dashboard, which must be closed before you calculate the month-end payroll for the repayment (ADV-) to flow in.

Benefit-in-kind such as a company car uses a dedicated BIK transaction code that our team sets up: it is taxable but non-cash, so it raises the employee’s monthly PCB and lowers net pay without adding to the cash gross salary.

EPF, SOCSO, EIS, PCB and HRDF

Does the system calculate EPF, SOCSO, EIS and PCB automatically, or do I still key them in myself?

They are calculated automatically the moment you calculate a payroll.

The moment you calculate a payroll, the system works out the statutory items using the current statutory schedules:

  • EPF
  • SOCSO
  • EIS
  • SKBBK
  • PCB
  • The HRD levy

For example, on the KWSP Third Schedule a staff member whose EPF wage is below RM5,000 gets the 13% employer rate, and above RM5,000 gets 12%. You do not key any of it in, and you can check every figure per employee under Payroll Menu > Statutory Listing before you pay anything out.

One honest caveat on PCB: it is only as right as the employee’s tax profile. Marital status, dependants and any previous employment income for the year have to be entered correctly, otherwise the monthly PCB will not match what LHDN expects.

Some of my staff should not contribute — part-timers over 60, directors, foreign workers. Can I switch it off just for them?

Yes, per person.

Go to HR Menu > Employee Profile > Statutory, untick what does not apply, then go back to the Payroll Dashboard, select that employee and click Calculate to refresh the figures. That screen has separate tabs for:

  • EPF
  • PERKESO (SOCSO, EIS, SKBBK)
  • Tax

The EPF employee, employer and floating percentages are fields on that same screen, so a non-standard rate is set there per employee.

Be clear on one thing: the system does not work out exemptions for you from age or nationality — deciding who is exempt is still HR’s job.

Which allowances count towards EPF, SOCSO and PCB? My petrol and phone allowance keep messing up the numbers.

It is decided per pay item, not per employee.

Each transaction code carries its own tick boxes for:

  • EPF
  • SOCSO
  • EIS
  • SKBBK
  • Tax
  • HRD levy

So a night shift allowance can contribute to everything while a gratuity payment is set to PCB only. Whatever is ticked is added into the contribution wage, so if basic plus the EPF-enabled allowances crosses RM5,000 the employer rate moves to 12% that month. SKBBK follows SOCSO: if a code contributes to SOCSO it contributes to SKBBK too.

You can view these settings under Settings Menu > Transaction Code, but in practice our support team creates and edits the codes for you. We will always ask you to confirm what is subject to what, because that call belongs to your company and your tax agent, not to us.

Will it submit EPF, SOCSO, EIS and PCB straight to KWSP, PERKESO and LHDN for me?

No. You upload the files yourself.

Pandahrms generates the submission files under Payroll Menu > Autopay Generator:

  • The KWSP file for batch upload to the KWSP portal
  • The PERKESO text file for the ASSIST portal
  • The PCB file for LHDN’s e-PCB / e-Data PCB
  • The bank autopay file

Two real gotchas. The PERKESO portal file is the combined SOCSO + EIS + SKBBK format, but the bank payment formats only combine SOCSO + SKBBK, so if you pay through your bank you download and submit EIS as a separate file. And if no employee has any PCB deduction that month, no PCB file is generated at all, so a nil declaration has to be done by hand in e-PCB.

Also download the EPF CSV and upload it straight to the portal without opening it in Excel first, or Excel reformats the 12-digit IC numbers and the portal rejects them.

PERKESO changed the Lindung 24 Jam rules halfway through the year. Who updates the system when things like this change?

We do, through a versioned system update.

And we tell you what changed. SKBBK (Lindung 24 Jam) was built and tested for the June 2026 payroll, and when PERKESO made participation voluntary for local employees from 8 July 2026, version 26.7.1 on the night of 17 July 2026 added an SKBBK Declaration.

With it, employees declare from their ESS dashboard, and HR reviews all the responses in one place and applies them to profiles in bulk.

Two practical notes. The declaration is submitted on the ESS website, not the mobile app. And you do not have to use it at all, since HR can just untick Entitle SKBBK under Employee Profile > Statutory > PERKESO for the few who opt out.

Updates are applied per site, so if your version is behind, ask support to upgrade you.

My HRDF levy in the system does not tally with the eTris portal by a few cents. Is it wrong?

It is not an error, it is two different rounding methods.

Pandahrms calculates the 1% HRD levy on each employee’s wages individually and then totals them — HRD Corp confirmed to us in writing that this is the correct method. The eTris portal takes the combined total wages and calculates 1% once, so with a dozen staff the two can differ by a few sen.

The HRDF report shows that variance on purpose so you can see exactly where it comes from. If your company is not liable, you can untick HRD at the employee level.

Your HRD Corp employer reference number sits in your company profile. Our team fills it in during setup, so send it to support if it needs changing.

Year-end and tax forms

At year end, does the system actually give me the EA Form, Form E and CP8D, or do I still have to key everything in myself?

Yes, it generates them from your payroll records.

Pandahrms generates the EA Form, Form E, CP8D, CP22 and CP22A from your payroll records, under the Payroll menu — Payroll Menu > EA, and Payroll Menu > Yearly Report for the year’s summary.

The order matters. CP8D and Form E are built from the EA Form records, so each employee’s EA has to be generated and posted before they appear in the CP8D. Regenerating an EA reverts it from Posted to Unposted, so you re-post it and then regenerate the CP8D.

Which transaction codes land on which EA line is controlled by EA Code Mapping. So if an allowance was set as non-taxable and you want it on a past year’s EA, our support team has to update the mapping and run a data patch for you.

Form E is kept current with LHDN’s version through system updates — the 2025 Form E, for example, came in from version v26.2.0. Pandahrms does not submit for you: you download the forms and files and upload them to MyTax yourself.

How do I export the PCB file to submit to MyTax?

From Payroll Menu > Payment File Export > Auto Pay Generator.

Two things must be in place first: the month’s Payroll Dashboard has to be in Locked status, because the tax file only picks up locked payroll records, and the employees’ Payment Method must be set to Bank Transfer.

Then go to Payroll Menu > Payment File Export > Auto Pay Generator and:

  • Pick GENERAL STATUTORY BODY FILE FORMAT.
  • Fill in the Payroll Date (your cut-off) and the Payment Date.
  • Tick TAX, plus EPF or SOCSO + EIS + SKBBK if you need those too.
  • Click Download.

The .txt file reports PCB and CP38 in separate header positions, and any CP38 amount has to exist as a CP38 transaction record to appear. You upload the file yourself to LHDN through e-PCB / e-Data PCB on MyTax.

If no employee has a PCB deduction that month, no file is produced, so a nil declaration has to be keyed in directly at LHDN’s portal.

My staff already resigned. How do I close her tax file, I mean the PCB and the CP22?

Start with the cessation, not the payroll.

Go to HR Menu > Cessation, create the cessation, process her final payroll, then close that payroll dashboard before the next month’s run.

Her CP22A is then generated from the Payroll menu, and you submit it yourself at mytax.hasil.gov.my under ezHasil Services > e-SPC > Permohonan Secara Kelompok > CP22A, keying in the details or uploading the file and saving the acknowledgement.

Note that the CP22/CP22A transaction-code mapping is a one-time setup our support team performs for your company. If Part B comes out empty, that mapping has not been done yet, so message us and we will set it up.

CP22 for new hires works the same way: pick a report date and a date-joined period, and everyone who joined in that window comes out on the form. A mid-year leaver’s EA form can be generated for the months she was paid, without waiting for December.

If we want to include our part-timers in Form E at the end of the year, how does Panda handle this?

The same way as anyone else, through the Payroll module.

A part-timer flows into Form E and CP8D like any other employee: they need an employee profile and their pay must run through the Payroll module. As long as there are payroll records for the year an EA form can be generated, and once that EA is posted they appear in the CP8D and Form E.

For hourly staff, key the hourly rate into the Basic Salary field and set Salary Count By to Hourly, otherwise the payroll run skips them.

Also check that Tax contribution is enabled under HR Menu > Employee Profile > Payroll > Statutory > Tax — if it is switched off, the EA form will not generate for that person.

Can my staff download their own EA form, or must HR print one for every single person?

Staff download it themselves from the mobile app.

Employees download their own EA form from the Pandahrms mobile app, in the same place they get their payslip, clock in and apply for leave.

It appears once HR has generated and posted that year’s EA under Payroll Menu > EA. If the EA is unposted for a correction, it disappears from the employee’s side until it is posted again.

Staff who have gone through cessation can still log in to view their payslip and EA form, which saves HR digging out copies for ex-staff — though we can block a leaver’s login if you prefer.

Leave, claims and benefits

Why is everyone showing the same 14 days annual leave? Our policy gives more after 2 years and 5 years.

Annual leave is tiered per leave code, not one figure for everyone.

Annual leave is set per leave code with tiers by years of service — for example 14 days for 0–2 years, 16 for 2–5 and 18 for 5 years and above. Where different groups of staff sit on different ladders, our support team creates separate employee categories or leave entitlement groups, each with its own tier table, and you then assign employees into them.

You also choose how the entitlement behaves:

  • Computed by calendar year or anniversary year
  • Granted upfront or earned by month
  • Whether only confirmed staff carry a balance, so people on probation show zero

If your figures look wrong it is almost always one of those settings, or a Service Effective Date that does not match the join date, and support will check the leave code with you.

One limit to know: the system cannot split one year into two entitlements (for example 20 days January–April then 22 days from May) — the change applies to the whole leave year.

Can staff bring forward last year’s unused annual leave, and what happens if they don’t use it?

Yes, but you must run the carry forward at year end.

It is a year-end action, not silent automation. At year end you run the carry forward from Leave Menu, and the carried days are held under Leave Menu > Process > Carry Forward Adjustment with a maximum number of days and an Effective From / Effective To window (for example 1 January to 31 December 2026).

Anything still unused after the Effective To date is forfeited. When an employee takes leave the system deducts the carry-forward balance first, before touching the current year’s entitlement.

If someone needs more time, the expiry date can be edited in that same screen, or the days treated as advance leave that the employee earns back over the year.

One case to raise with us: a leave applied before the Effective To date but taken after it needs the carry-forward window set correctly, so check the balance after year-end.

If someone joins in June or resigns in July, is their annual leave prorated automatically?

Yes, for both joiners and leavers.

A mid-year joiner is prorated by calendar days from the join date — 8 days entitlement from 25 February 2026 gives 8 / 365 x 310 = 6.79 days, not an even monthly split. If the figure looks wrong, the join date or Service Effective Date is usually the cause.

For a leaver you create the cessation under HR Menu > Cessation and set the Leave Computation Date to the last working day. The system re-prorates the entitlement and works the unused balance into annual leave encashment, calculated as basic salary / 26 x encashment days.

Please still check that encashment figure against the prorated balance. If the cessation was created after payroll ran, it can be reverted, corrected and recalculated.

Staff who work on a rest day get replacement leave — how does the expiry work?

Expiry runs from the date worked, not the application date.

Replacement leave is credit-based: the staff member raises a Replacement Leave Request for the day worked, and once the supervisor approves it a credit appears in their balance.

Expiry runs from the date actually worked plus the effective period you set — 27 June 2025 with a 12-month period expires 26 June 2026, not 12 months from the application date — and unused credit is forfeited. Once a credit has expired the date cannot be extended; the workaround is to create a fresh credit starting from the original expiry date. Expiry runs from the replacement date rather than a fixed calendar year.

Note two things: replacement leave must go through the Replacement Leave function rather than the general Leave Application, and the replacement leave request itself cannot carry an attachment today.

Can we create our own leave types? We need one for prolonged illness and one for work from home.

Yes, our support team builds the new leave code with you.

Codes such as Work From Home, Examination Leave, Convocation Leave, On-Site and Quarantine Leave have all been set up for clients. In practice our support team builds the new code with you after confirming the rules:

  • Entitlement days
  • Whether half-day and backdated applications are allowed, and how far back
  • Notice days required
  • Who it applies to
  • Any extra HR approval step

An admin with access can view and edit those settings afterwards under Setting Menu > Leave > Leave Code, and a code can be linked to a payroll transaction code so the leave lands as the right payment or deduction in payroll.

For six months full pay then six months half pay, the set-up is two codes — full pay 182 days and half pay 183 days. But be clear on this: the system will not switch from one code to the next when the first runs out, so HR has to make sure the full-pay code is used first.

Leave already approved but staff wants to cancel — how do we take it back?

Yes, an approved application can still be cancelled.

If the employee cancels it themselves it goes to Pending Cancellation and waits for the approver or HR to approve before the days return to the balance. If HR or the admin cancels on their behalf, no cancellation route is needed and the status shows Cancelled by Admin.

You do it from Leave Menu > Leave Application: select the application, click Edit and pick the specific date to remove, so a two-day application can be part-cancelled.

Once the leave has been transferred into a payroll run, only the HR admin can cancel it — the employee can no longer withdraw it, and employees cannot withdraw it themselves at that stage.

Can we set our own claim types, make staff attach the receipt, and cap medical at RM400 a year?

Yes to all three, though the cap sits in the Benefit module.

Claim codes such as mileage, parking, meal and dental are set up for you, and staff submit a claim with the receipt date, amount, remarks and a photo of the receipt. Attachments upload from the web system only — the mobile app does not yet support attaching documents to a claim or leave application.

Each claim runs through your approval route, usually HOD, and you can switch on two further HR stages in the system parameters: Verification (typically accounts payable) and Admin Approval, which is also where a wrongly chosen claim code gets corrected. A claim code cannot be edited by the employee once submitted, so otherwise it must be cancelled and re-submitted.

Approved claims link to a payroll transaction code so the amount reaches the payslip, or export through Claim Payment to be marked as paid, with everything traceable in the Claim Application Report.

A yearly or per-employee cap — medical RM400 a year, or dental by job grade — sits in the Benefit module instead: a benefit code with a Benefit Entitlement per job grade, applied under Benefit Menu > Application > Benefit Application, with the amount used deducted from the remaining balance.

Getting started and migration

How long before we can actually start using it?

Our internal target is go-live within about two months.

Once your subscription starts you get a named onboarding PIC and a kickoff meeting covering system setup, the migration template and the timeline. Our internal target is go-live within about two months of your subscription date.

Honestly, though, the pace is set by how fast your side returns the completed template. Accounts where the data does not come back sit unfinished for far longer, and that is the single biggest cause of delay.

If you have a particular month in mind for going live, tell us and we will work backwards from it, so the handover lands at the start of a payroll cycle rather than in the middle of one.

What data do we need to give you to get set up?

Employee, attendance, leave and payroll data, plus company details.

The standard set is:

  • Employee master data
  • Current-month attendance records
  • This year’s leave entitlements and balances
  • This year’s payroll history
  • Any existing HR reports or exports

We also collect your company details (registration number, address, financial start month), your EPF, SOCSO, LHDN and HRD Corp employer reference numbers, your payroll cut-off period, public holiday dates, work schedules and duty rosters, and the site addresses for geofenced clock-in.

We email you a migration template — fill in the green tab only — and you send it back to support@pandaworks.net. If you already hold the same information in your own reports, send those instead; you do not have to retype anything into our format.

We are using SQL Payroll / UBS / just Excel now. Can you pull our data out?

Yes, we extract it for you.

For UBS Payroll & HR we work from your backup files, or you share an AnyDesk ID and we extract the data remotely with you on the call.

For SQL and other on-premise systems we schedule a remote session (UltraViewer or AnyDesk) and export the employee master data with you.

If you are on another payroll system or on nothing but Excel, send us the payroll listing in Excel and our team does the mapping into our template — you do not do it yourself.

If we only start in the middle of the year, can you bring in the payroll we already ran for January onwards?

Yes, and you should.

Send this year’s payroll listings in Excel and we migrate them month by month, so year-to-date figures are in place and PCB, EPF, SOCSO and EIS keep calculating correctly from your first live run. Migrated months sit in the system and payslips can be generated for them.

If an employee’s earlier months were paid by a different company, those go in as Previous Employment Income instead — the amounts count towards tax but no payslip is produced, and the employee gets two EA Forms.

Flag any corrections to the earlier months before go-live, because PCB from your first live payroll is only as accurate as the history we load.

Can we run it side by side with our current system first before we fully switch over?

Yes, and we plan for it.

We schedule a parallel run session online, process that month’s payroll in Pandahrms while your existing system runs as usual, then compare results line by line.

Expect differences at first, usually because OT, incentives or commission are not imported yet, or a statutory setting still needs adjusting.

Groups with several outlets or entities normally parallel one or two outlets first rather than everything at once. Cutting over at the start of a payroll cycle is cleanest; going live mid-cycle means running two systems for a month.

Is there proper training, or do we just watch YouTube ourselves? And what does the setup fee actually cover?

Training is live and guided, not self-serve.

Sessions run online over Google Meet, module by module — the first covers HR, Leave and Attendance plus a review of your settings, the next covers Payroll — and we follow up with meeting minutes and the session recording. A physical session can be arranged instead if you prefer.

Written user guides and video walkthroughs at pandahrms.com/youtube-video/ sit on top of that, not in place of it.

The setup fee is one-time and paid before work starts. It covers domain setup, system configuration, data migration, and the training sessions including your first payroll run; it is quoted with your plan, and there is no second setup fee at renewal.

Group companies, foreign workers and access

I have four companies and twelve branches. Can I run them all in one Pandahrms account?

Yes, one account can hold all of them.

Each company is set up as its own company profile with its own registration number and its own EPF, SOCSO, LHDN and HRD Corp employer reference numbers, so payroll, statutory files and bank files are produced separately per company.

You work in one company at a time, picking it from the company selection page after you log in. There is no combined cross-company payroll view, and cross-company reporting is a known rough edge our clients have raised.

New company profiles are created by our team, so send us the registration and employer reference numbers and we will build it. For some groups we recommend the opposite approach — one consolidated company profile with Cost Centre separating the entities — and we will advise which suits you before we build.

One of my staff draws a salary from Company A and also from Company B. How does the system handle that?

He gets a separate employee profile under each company.

He has his own employee number in each company, and each company runs its own payroll and issues its own payslip for him.

This needs the system parameter “Create Employee Profile – Prevent Duplicate NRIC across Companies” switched off first, which we set for you.

In the app he cannot see both companies’ payslips at once — he selects the company he wants to view. Where a contribution only needs to be made once across the group, such as SKBBK, you nominate the single company profile it is deducted under.

If I move a staff from Company A to Company B in the group, does he lose his leave and records?

No, records can be brought across, but external transfers are fiddly.

There are two transfer types at HR Menu > Process > Employee Transfer. Internal Transfer is a move inside the same company — department, division or category — where service years and entitlement carry on and only one EA form is produced.

External Transfer moves him to another company in the group: his clock-in/out records and applied leave can be brought across based on the effective date, and if he already has a profile there you tick “Link to Existing Employee Profile”. Because the two companies are separate employers he gets two EA forms, and the old profile is set Inactive from the transfer date so payroll can no longer be run there.

External transfers are fiddly in practice — every pending leave, clock-time and claim application must be cleared first, and leave entitlement does not always carry over when the new profile has a later date joined — so run the first ones with us rather than on your own.

Most of my workers are foreign workers with no IC and no email address. Can they still use the system?

Yes, and no personal email address is needed.

Leave the NRIC field blank — this is not optional, because a filled NRIC makes the system treat them as local — and record the passport under the Immigration section of the profile.

Their app login is their employee number with a default password of their birth year and month (YYYYMM), against IC last 6 digits for locals.

Date of birth, gender and marital status must be keyed in, because SOCSO category and PCB are worked out from them.

How does the system handle EPF, SOCSO and tax for foreign workers?

EPF is not chosen by nationality — it is set per employee.

The employee and employer percentages are set per employee at HR Menu > Employee Profile > Statutory. HR keys in the rate that applies and payroll then calculates it every cycle.

For SOCSO, the 12-digit Foreign Worker Social Security Number PERKESO issues at registration goes into the SOCSO account number field in the same Statutory tab, otherwise the PERKESO file is rejected on upload.

Tax residency is separate, under Employee Profile > Profile > Personal Info: a non-resident is taxed at a flat 30% with no personal reliefs. Once the worker has actually been in Malaysia 182 days or more in the tax year you change the residency status and recalculate the payroll dashboard.

Note the system generates the statutory files — you still upload them to KWSP, PERKESO and LHDN yourself.

I want my branch manager to see attendance but not salary. Can I control who sees what?

Yes — two separate settings do it.

The Module Access Template controls which menus a user gets (full Attendance, no Payroll, for example), while Access Level and the Profile Access Template control which employees she can open at all, so an outlet admin can be limited to her own outlet and blocked from opening her own profile.

Payroll Profile Access is the permission that exposes salary figures, so it stays off for anyone who should not see pay. One honest catch: a few reports, such as Confirmation Due Listing, will not return data without it, and for those we have someone with access run the report instead.

If you run several companies, an admin account can be restricted to named companies only. Tell us what each account should do and we will build the templates.

Our leave has to go to the HOD first, then HR. Can the system follow that approval route?

Yes — each employee is assigned to an Approval Route Group.

The group defines the levels — Level 1 HOD, Level 2 HR, Level 3 Management, as many layers as you need — with the application only moving up as each level approves.

The same routes drive leave, overtime, claim and clock-time applications. Claims has two further optional stages after the route: Verification, usually done by Accounts Payable, and Admin Approval.

Route groups span the whole account, so assigning an employee to the wrong group can put an approver from another company on his route. If someone’s leave or clock-in applications sit unapproved and never reach anyone, the usual cause is that the employee was never assigned to a route group at all.

The product, support and the company

Who is actually behind Pandahrms? Can you send me something on your company background?

Pandaworks Sdn Bhd, a Malaysian company in HR and payroll since 2012.

Pandahrms is built and run by Pandaworks Sdn Bhd, a Malaysian company that has been in the HR and payroll business since 2012.

Pandaworks is also an HRD Corp Registered Training Provider, so the training we run can be submitted as an HRDF levy claim, though the approval decision always rests with HRD Corp.

The system is 14 modules, and you can start with only the modules you need. They cover:

  • HR records
  • Payroll
  • Time attendance
  • Leave
  • Claims
  • Training
  • Performance
Is this a cloud system or do we have to install it on our own server? Where is our payroll data kept?

It is cloud-based — there is nothing for you to install.

Your company gets its own web address (for example yourcompany.pandahrms.com). HR and admin staff log in through a normal browser, employees use the mobile app, and there is no server for you to maintain.

The servers are run by our hosting provider. Backups are taken so the system can be restored to a recovery point if there is an incident, and updates are pushed centrally with a release note.

We used to sell an on-premise version installed on the customer’s own server. It reached end of life on 31 July 2026 and is no longer offered, and existing on-premise sites have to migrate to our hosted environment — a chargeable migration — to get mobile app features at all.

What can my staff actually do in the app, and do all of them need an email address to use it?

No email address is needed.

Staff download the PandaHRMS app, scan the QR code we give you once during setup, then log in with their employee number and a default password — the last six digits of the IC for local staff, or year and month of birth (YYYYMM) for foreign workers.

In the app they can:

  • Clock in and out with GPS inside the geofence you set
  • Apply for leave
  • Submit claims with a receipt
  • Download their own payslip and EA Form

Admin work is web-only — admin accounts cannot log into the app. Staff who have left keep app access to view past payslips and EA Forms unless you ask us to block them.

Can the reports come out in the format we want? My boss wants specific columns every month.

Yes for most, but our team sets the layout up for you.

Every module has its own reports and most can be printed or exported to Excel.

On payroll, Payroll Menu > Report > Master Payroll runs off report templates whose columns can be arranged to suit you — for example moving a paid medical claim into the Allowance column, or splitting allowance and deduction listings. Our support team sets that up on request rather than you configuring it yourself.

Send us a sample of the layout your accounts or audit team needs and we will tell you straight what is possible. Some things genuinely are not — signature columns on the Timesheet Listing report, for instance, are not supported — and anything beyond the standard templates may carry an additional charge, which we quote before starting.

Can Pandahrms link with our accounting system and with the thumbprint machine we already have? Do you have an API?

Devices often yes; accounting systems, no live link.

On devices: FingerTec terminals sync through our TA Downloader / Ingress, which our team installs on the PC connected to the clock. ZKTeco terminals can push to us by pointing the device’s cloud server address at timebridge.pandahrms.com. Send us the brand and model first, because not every device is supported and we will tell you straight if yours is not.

On accounting, there is no live link into SQL Account or AutoCount. You export payroll to Excel and your accounts team keys or imports it, with the Master Payroll report giving the summarised figures.

We also have JSON data endpoints for Employee, Leave and Timesheet master data that a customer feeds into Power BI, released on request and issued with an access key by our team.

Pandahrms does not issue or submit e-Invoices to MyInvois — that stays with your accounting or ERP system.

After we go live, who do we call when something goes wrong with payroll?

A dedicated WhatsApp group with a named onboarding PIC and our support team.

That group stays open after go-live, and most customers simply ask there. You can also email support@pandaworks.net, which raises a ticket on our side; office hours are Monday to Friday, 9.00am to 6.00pm.

Training is run with your team during onboarding and can be repeated later for new admin staff. There are also step-by-step videos on our YouTube channel for the app and the main payroll functions.

For payroll matters you would rather keep private, we set up a separate confidential group with only the people you name. And if you would rather not run payroll in-house at all, we also offer a fully outsourced payroll service, quoted separately from the software.

No question matches that. Try a shorter word, or ask us directly.

Still not sure it fits your payroll?

Bring us the rule your current system cannot handle — the stacked OT, the outlet roster, the group entity split. We will show you how it runs.