Skip to content
Monthly Payroll: Set Up

Monthly payroll: set up the employer numbers, rates, calendar, pay group, roster and GL mapping

Steps 2 to 8 of Configure and run monthly payroll: the masters Payroll Admin needs before the first pay run. It follows Step 1, where you set GadgetSphere (GS) as the default company.

Payroll Admin is not in the Applet Store yet, so these steps are written from the applet’s source and describe screens you cannot open today: read them to judge what the module will do, not to plan a Malaysian go-live — the statutory amounts it computes are placeholders, not the gazetted schedules (why). The running example pays GadgetSphere’s HQ retail staff monthly — salary cutoff on the 25th, payment on the 28th, MYR, with EPF, SOCSO, EIS and PCB — in the pay group GS-HQ-MONTHLY.

Three settings on these screens look as if they steer the calculation and do not: Calculate takes the first Statutory Rates header it finds for a scheme whatever its Effective Date (Step 3), and it never reads the allowance applicability flags or the employee’s statutory record (Steps 5 and 7).

  1. Step 2: save Company Setup.
  2. Step 3: enter the statutory rate headers.
  3. Step 4: create the pay calendar and the September period.
  4. Step 5: salary structure, allowances, deductions.
  5. Step 6: create the pay group.
  6. Step 7: assign employees on the roster.
  7. Step 8: map payroll to the chart of accounts.

Step 2: Save Company Setup (employer numbers)

Settings → Company Setup → Create

  1. Select company GS.
  2. Country MY.
  3. Enter EPF Employer No, SOCSO Employer Code, EIS Employer Code, PCB Employer No (E).
  4. Tick HRDF Applicable only if it applies; fill HRDF number when required.
  5. Save.

What success looks like: the company appears on the Company Setup listing with those numbers. Statutory TXT generation reads them from here.

Step 3: Enter statutory rate headers

Settings → Statutory Rates → Create (repeat for each type you need)

For each of EPF, SOCSO, EIS, PCB:

  1. Country Code MY.
  2. Statutory Type and a clear Statutory Name (e.g. EPF Employee/Employer default).
  3. Effective Date (use the date your rates apply from). Calculate does not read it: it takes the first header it finds for the scheme, whatever its date. Keep one header per scheme and edit its rates when they change, rather than adding a second header.
  4. Contribution Basis GROSS unless your process says otherwise.
  5. Enter Employee Rate % and Employer Rate % for the default tier — values your payroll owner approved.
  6. For PCB, confirm Annual Threshold (form default is 34000; change only if your process requires it).
  7. Save.
Wrong rates produce wrong payslips and wrong statutory files. Have a second person check the four headers before the first Calculate.

Step 4: Create the pay calendar and September period

Settings → Pay Calendar → Create

  1. Company GS.
  2. Calendar Code GS-MONTHLY, name GadgetSphere Monthly.
  3. Pay Frequency MONTHLY.
  4. Salary Cutoff Day 25, Allowance Cutoff Day 25, Payment Day 28.
  5. Save.

Settings → Pay Period → Create

  1. Link the calendar you just created.
  2. Period Code e.g. 2026-09.
  3. Period Start / End for September; Payment Date on the 28th (or your agreed banking day).
  4. Period Status OPEN.
  5. Save.

Step 5: Salary structure, allowances, deductions (as needed)

Settings → Salary Structure / Allowance Types / Deduction Types

For a first monthly loop with basic salary only, create a simple salary structure for GS (code GS-BASIC, frequency MONTHLY, currency MYR) and leave exotic allowances for later. Add allowance or deduction types only when Calculate must include them.

The applicability flags do nothing. Taxable, EPF, SOCSO, EIS, PCB and HRDF all start ticked on an allowance type, and no code reads any of them — every earning is added into gross and every statutory amount is computed on the whole gross regardless. Recurring and Pre-tax on a deduction type are the same. What actually decides whether a component is a deduction is the component type on the employee’s salary line: a type whose code contains DED. Record the flags for later if you like; they will not change this month’s pay (a known issue, reported to engineering — see the Payroll Admin applet page).

So which components attract which contribution is a person’s decision, made outside the system, before you key the salary line — and it is a real decision, because the four schemes do not agree with each other. Overtime is not EPF wages but is SOCSO wages; an annual bonus is EPF wages but is not SOCSO or EIS wages; the HRD Corp levy is on basic plus fixed allowances only. Whoever owns payroll writes the component-by-component table down once, and the check that it worked is that a payslip’s EPF base equals the components that table says are EPF wages.

Step 6: Create the pay group

Pay Groups → Create (or Settings pay-group master)

  1. Company GS.
  2. Code GS-HQ-MONTHLY, name HQ Monthly Staff.
  3. Frequency MONTHLY.
  4. Link the pay calendar from Step 4 (and salary structure from Step 5 if you use one).
  5. Save.

Company name on the listing comes from the backend join — you should see GadgetSphere, not a raw GUID.

Step 7: Assign employees on the payroll roster

Employees → Create

For each HQ staff member you will pay this month:

  1. Select the Employee.
  2. Company GS, Pay Group GS-HQ-MONTHLY.
  3. Employment Type (usually FULL_TIME).
  4. Enter basic salary and salary basis / frequency / currency.
  5. Payment method and bank account link (the account must already exist on the employee).
  6. Record the employee’s statutory profile — EPF category and any rate election, SOCSO category, whether EIS applies, PCB residence status, marital status and child relief. Record it, but do not rely on it: Calculate never reads the employee statutory record. It is used to put member numbers on the statutory upload files, and nothing else. Every employee on the run is computed the same way.
  7. Leave On Hold unticked unless you intentionally want them out of payroll.
  8. Set Effective Date, Save.

Repeat until the roster for GS-HQ-MONTHLY is complete.

Step 8: Map payroll to the chart of accounts

Settings → GL Mapping → Create

  1. Select company GS.
  2. Tick Default Mapping (first mapping for the company should be default).
  3. Pick Chart of Account codes for:
    • Payroll expense
    • Net pay liability
    • Statutory liability
  4. Save.

On the listing, confirm the Default checkbox is ticked for this row only. You can click the checkbox later to move the default — the applet clears other defaults for the same company.

What success looks like for this part

The Company Setup listing shows GS with its EPF, SOCSO, EIS and PCB employer numbers; there is one Statutory Rates header for each of EPF, SOCSO, EIS and PCB, checked by a second person; the pay calendar GS-MONTHLY and its OPEN September period exist; the pay group GS-HQ-MONTHLY lists GadgetSphere as its company, not a raw GUID; every HQ staff member you will pay this month is on its roster with On Hold unticked; and exactly one GL Mapping row for GS has Default ticked. Then go on to Step 9.

Common mistakes in this part

The mistakes table for the whole run is on the front page. The ones that start in these steps: skipping the bank setup in Employee Maintenance, leaving the company with no default GL mapping or with two, creating no Statutory Rates header at all (Calculate then falls back silently to built-in placeholders), a header with 0% tiers, relying on the allowance or employee statutory flags, and an empty Company Setup.

Related documentation

Last updated on