Human Resources
“Where is payroll?” Not in an applet you can install yet. This folder holds the two people applets that exist in source — Payroll Admin and Time and Attendance — and neither has a row in the applet registry, the list behind the Applet Store, so neither can be installed on any tenant (checked 2026-10-13). HR & Payroll is a planned module, not yet sold. What a group runs today is three things that do work: the employee master, expense claims that hand some amounts to payroll, and payroll computed in another system and brought in as a monthly journal.
This page is for whoever owns payroll, the finance person who books it, and the HR or branch administrator who keeps the employee records. It says what each applet here is, what you use instead and when, where the wages and claim figures in your books come from, and what to check each month. The detail is on each applet’s own page; the module view is HR & Payroll Module.
What is here, and what you use today
| Applet | What it is | What you can do with it today |
|---|---|---|
| Payroll Admin | A Malaysian payroll applet wired to a real backend: company statutory setup, pay groups, salary structures, pay runs from Calculate to Post GL, bank files and statutory text files | Read it to judge what the module will and will not do. Its Post GL writes three lines into payroll’s own journal and nothing reaches your general ledger, so even installed it would not book your wages |
| Time and Attendance | A clock-in and clock-out data model and API in the backend; the front ends that carry the name are an unwired scaffold and an unstarted repository | Nothing on a screen. A device or an outside attendance system could write clock events through the API, which belongs to no offered module, so confirm with your BigLedger contact before you build on it |
What carries people administration today sits in other folders:
| You need | Use | Why that one |
|---|---|---|
| The person: identity, employment status and dates, branch, login, bank details | Employee Maintenance | The employee lens on the one entity table. It holds no salary and no EPF or SOCSO number |
| To make an existing customer or supplier an employee as well, or maintain employee categories | Entity Maintenance | The same record with no type filter, and where a person is deleted: Employee Maintenance has no delete |
| Staff expenses, some paid by finance and some paid with salary | Claim and Claim Cycle | The only part of people administration with an approval engine, and the hand-off to payroll |
| Wages in your accounts | A general journal from whatever computes payroll, posted in Financial Accounting | The supported shape today, not a workaround (Use cases) |
Which one to choose
| You want to | Use | Rather than |
|---|---|---|
| Pay mileage and meal claims with salary instead of a voucher per person | Payment Processing Option = Salary Payment on those claim items. At the last supervisor approval the line goes straight to Approved and skips finance review. It shows on the month’s claim cycle, Payroll Payment tab, only if it was approved by that cycle’s cut-off or Auto-add approved claims to active cycle is on in the Claim Cut-Off Logic; otherwise it is on no cycle, and only the Payroll Payment Report run with Claim Cycle left empty lists it | Finance Payment, which sends every line to the month’s claim cycle for finance review and the Bank Report |
| Record where an employee is paid | Payment Config on the employee record; the claim cycle’s Bank Report reads it | The Bank Name and Bank Account No pair on the employee header, which is separate from Payment Config and which the Bank Report does not read; or Payroll Admin’s roster, which cannot be installed yet |
| Record leave | A leave register outside BigLedger — a spreadsheet, an HR system — with the unpaid-leave days agreed before the salary cut-off | The Approved Leave tab on the employee record, which shows a form and an Add button and saves nothing |
| Plan payroll this month | Your current payroll system and a monthly journal | Payroll Admin, or the walkthrough written against it, which describes screens you cannot open |
| Integrate a payroll system | The journal: the payroll system computes, BigLedger receives the monthly result as a general journal | The payroll endpoints, whose contracts belong to an applet that has not been released |
Where the people figures come from
| Figure | Where you see it | How it is made |
|---|---|---|
| Wages expense and the payroll liabilities | Trial balance, financial reports | Only from the manual journal finance posts. Nothing in this folder or in Claims posts one |
| Amounts to add to each person’s pay | Claim Cycle › Payroll Payment Report, or the salary-payment CSV | The Salary Payment claim lines that reached Approved at the last supervisor approval. Nothing checks them after the supervisor: finance never reviews them |
| What finance pays each claimant | Claim Cycle › Bank Report | Approved Finance Payment lines added up per employee, with the bank code and account number taken from the employee’s payment method. An employee with none appears with those columns empty. The result is stored at the time you press Generate, so a correction shows only after you generate it again |
| A claimant’s remaining entitlement | The claim account balance | Reduced at final approval only on a line on the claim-account workflow, and only when Display Entitlement Balance is set for that balance. Without the tick an approved claim never reduces it |
| A payslip’s EPF, SOCSO and EIS, in Payroll Admin | The payslip | Your Statutory Rates if the lookup worked; if it failed, built-in placeholder rates with no message. A trace label on each payslip says which, readable through the payroll API, and each Calculate deletes every payslip and trace and recalculates them from scratch, keeping no earlier version |
| The payroll journal, in Payroll Admin | Payroll’s own journal | Numbered from the pay run’s code and dated the run’s payment date, or the day of posting when the run has none. Its debits exceed its credits by any non-statutory deduction such as a staff loan, because no line credits it |
Two consequences. The payroll journal’s date is the payment date, while the month the work was done
is the month the cost belongs to: a December run paid on 3 January would be a January entry there.
And a pay run reading POSTED or FILED is a status, not a result — POSTED reaches no ledger, and
FILED means the three statutory files were attempted, not produced.
A payroll month at GadgetSphere
GadgetSphere Sdn Bhd (GS) runs its payroll with an outside payroll bureau and keeps its people and
its claims in BigLedger. Mileage and meal claims are set to Salary Payment; laptop and travel
reimbursements stay Finance Payment. Each branch that raises claims has its approval designations
set in the Claim applet’s branch settings, so a cashier at GS-KV-01 can submit.
Through December, staff claim mileage between branches. When the branch supervisor gives the last approval, each mileage line goes straight to Approved and never appears in the claim cycle’s inbox. GadgetSphere has Auto-add approved claims to active cycle switched on, so a mileage line approved after the claim cut-off still lands in December’s cycle. Before the bureau’s cut-off on the 25th, whoever owns payroll opens the Claim Cycle’s Payroll Payment Report for December’s cycle, exports the CSV and sends it with the month’s unpaid-leave days from the leave register. The bureau computes the pay, including the claims, and returns its summary.
Finance posts one general journal dated 31 December, although salaries are paid on 3 January:
EXPENSE-WAGES debited with gross plus the employer’s contributions, net pay credited to a payable
and both halves of each statutory contribution to their liability accounts. Each line carries its
branch, so the Penang branch manager sees Penang’s wages without anyone running an analysis, and the
lines are totals per branch, so nobody can read a person’s salary off the ledger. The laptop
reimbursement goes the other way: the claim cycle’s Bank Report lists it with the claimant’s bank
account, and finance pays it from there.
When people administration looks wrong
| What you see | Why | What to do |
|---|---|---|
| Payroll Admin or Time and Attendance is missing from the Applet Store | Neither has a registry row, and every install route refuses an applet without one | Run payroll where it runs today and bring the result in as a journal |
| Leave added on an employee’s Approved Leave tab never appears | The tab has no save path | Keep the leave register elsewhere (Employee Maintenance, Troubleshooting) |
| Approved claim lines never reach the claim cycle’s Inbox | The item is Salary Payment (it goes to the Payroll Payment Report instead), or the company has no Claim Cut-Off Logic row, so no cycle exists | Check the item’s payment option; create the cut-off row (Claim Cycle, Troubleshooting) |
| A claimant gets “Your designation … is yet to be configured for branch …” on Submit | The ordinary claim workflow finds approvers by branch and designation | Add the designation under the Claim applet’s Settings → Branches (Claims configuration) |
| Bank Report rows with an empty bank code and account number | The employee has no payment method on Payment Config | Fill it on the employee record and regenerate the report |
| The claim cycle refuses to close | Closing needs a reviewer flagged Is Final Approval Level for that company. Lines still become ready to pay without one, at the highest configured level | Flag exactly one level, the highest (Claims configuration) |
| Wages in the trial balance do not match the payroll system | The journal is missing, partial, or posted in the month of payment | Post or correct it in the month the work was done |
| A company record carries the employee flag | Entity Maintenance’s edit screen adds the flag without checking the legal form; only its create screen limits an employee to an individual | Check the legal form before adding the flag to an existing record (Core concepts) |
Verify a payroll month in one minute
After the journal is posted, open the trial balance for the month: the wages expense equals the payroll system’s gross plus employer contributions. Open the Claim Cycle’s Payroll Payment Report for the same month’s cycle and compare its total with the claim amount the payroll owner added to pay; a difference is a claim nobody paid or one paid twice. Open the Bank Report and look for a row with no bank code. After the 15th of the next month, each statutory liability account reads nil, because the contributions were remitted. Each check catches a gap nothing else reports: a journal nobody booked, a salary-paid claim that fell between two people, a claimant finance cannot pay, and a contribution not remitted. The module’s three monthly checks are the same, with the branch split added.
What is left to people, and who does it
- Compute pay and file the statutory returns. Whoever runs payroll today. Every Malaysian monthly contribution and PCB falls on the 15th of the month after the wage month; whoever files diarises them at the start of the year, and the check is an acknowledgement for each on file by the 16th.
- Book payroll. Finance, by manual journal, in the month the work was done, at the level of detail agreed once with the payroll owner: aggregate by branch or cost centre unless there is a reason for individual lines.
- Keep leave and attendance. Wherever they are kept today. Payroll needs one number a month from the leave register, the unpaid-leave days; hours are converted to pay by a rule the business writes down once — the divisor for an hourly rate and the rest-day multiplier.
- Decide who approves leave, overtime and a pay change. A written policy, not a setting: Claims has the only approval engine. Name one source for the reporting line — the org chart, the Report To fields or the claims designations — and say which.
- If Payroll Admin arrives, separate the duties. The applet defines no permissions of its own; the API has six separate pay-run permissions and records who calculated, approved and finalised, and it does not check that those are different people. Assign them so they are.
Where these applets sit
- Must exist first: companies and branches in Organisation; each employee in Employee Maintenance, with a payment method for anyone paid from the Bank Report; wages, payable and statutory liability accounts in the Chart of Account for the journal; for claims, a designation per branch, an approval setting per workflow and a cut-off row per company — without that row, approved claims never reach finance and nothing says so.
- Downstream: the journal is what puts payroll into the trial balance and every financial report; the Payroll Payment Report is what a payroll owner adds to pay; the Bank Report is what finance pays claimants from.
- Siblings, and when to choose which: Employee Maintenance for the person, Entity Maintenance to add the flag to an existing record or delete one; Salary Payment to pay a claim with salary, Finance Payment for finance to pay it; payroll elsewhere with a journal now, Payroll Admin only once it is registered.
- Blast radius, or what breaks elsewhere: a Salary Payment claim the payroll owner did not pick
up stays unpaid, and no review queue prompts anyone about it; a journal dated the payment month moves
wages from one month’s profit to the next; employee-level journal lines put individual salaries in
a ledger many people read; an employee record set
INACTIVEdisappears from the pickers, so set it only after the person’s last claims are settled. - Used together: Employee Maintenance and the Claim and Claim Cycle applets every month, with the payroll owner’s export and finance’s journal at month-end.