Skip to content
Configure and run monthly payroll

Configure and run monthly payroll

You are going to configure Payroll Admin for GadgetSphere Sdn Bhd and complete one monthly pay run — from company employer numbers through Calculate, bank file, Post GL, and statutory downloads. The first company takes about 90 minutes if employees and the chart of accounts already exist. Later months are mostly Steps 8–12 and take far less time.

Meet GadgetSphere

GadgetSphere Sdn Bhd (company code GS) is a Malaysian consumer electronics retailer. For this walkthrough you pay the HQ retail staff on a monthly cycle: salary cutoff around the 25th, payment on the 28th, MYR, with EPF, SOCSO, EIS and PCB. Sister companies (GSO, GSD) are out of scope until GS is stable.

Payroll Admin is not the employee master. Create or update people in Employee Maintenance first (name, ID, employment status, bank payment config). This guide only assigns them to a pay group with salary and runs payroll.

Concepts you need once

Pay calendar vs pay period. The calendar stores the rules (cutoff day, payment day, MONTHLY). A pay period is one concrete month (1–30 Sep, payment 28 Sep).

Pay group. Employees who share the same company rhythm. GadgetSphere uses one group GS-HQ-MONTHLY for HQ staff.

Pay run. One execution of payroll for a pay group and period. Status moves DRAFTCALCULATEDAPPROVEDFINALIZED → bank file → posted.

Default GL mapping. Post GL looks up the company’s default mapping to know which Chart of Account codes to debit/credit. Only one default mapping per company.

Statutory rates. Configuration headers (EPF / SOCSO / EIS / PCB) with the percentages your company must use. This guide never invents gazette rates — enter the rates your payroll owner approved.

Before you start

Check these off; do not skip them.

  • Payroll Admin is installed for your login (ask your BigLedger contact if you cannot open it).
  • Company GS exists in Organisation with currency MYR.
  • Chart of accounts for GS includes codes you will use for payroll expense, net-pay liability, and statutory liability (see Chart of Accounts Setup if the chart is empty).
  • At least one ACTIVE employee exists for GS in Employee Maintenance, with bank payment details.
  • You have the company’s EPF / SOCSO / EIS / PCB employer numbers on paper.
  • You have approved statutory rate % for the default tiers you will enter.

Step 1: Open Payroll Admin and set defaults

Payroll Admin applet → Settings (gear) → Default Selection

Set Default Company to GadgetSphere (GS), optionally a default currency MYR. Save. This only pre-fills forms; it does not create payroll data.

Also open Application Settings if you want to hide noisy listing columns later — you can leave defaults for the first run.

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).
  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; set taxable / EPF / SOCSO / EIS / PCB flags to match how each component should behave.

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. Set statutory flags so Calculate knows who contributes to EPF / SOCSO / EIS / PCB.
  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.

Step 9: Create the pay run and Calculate

Pay Runs → Create

  1. Choose company GS, pay group GS-HQ-MONTHLY, and the September pay period.
  2. Save, then open the run (workspace).

Status should be DRAFT. Click Calculate.

When Calculate finishes, status becomes CALCULATED. Open a few Payslip links and check basic pay and statutory lines. Use Exclude on any employee who must not be paid this cycle (with a reason). You may recalculate while still in draft/calculated stages if you fixed master data — the workspace blocks recalculate after approve/finalize.

Step 10: Approve and Finalize

Still on the workspace:

  1. When the grid looks right, click Approve (CALCULATEDAPPROVED).
  2. Click Finalize when you are ready to lock the run (APPROVEDFINALIZED).

Do not finalize if you still expect salary master changes for this period.

Step 11: Generate the bank file and Post GL

  1. On the finalized run, open the bank format dropdown (searchable) and pick the format your bank requires — for example Maybank M2U Biz / M2E fixed-width TXT (MAYBANK_M2E_TXT).
  2. Click Generate Bank File, then download the file and upload it in your bank portal per bank instructions.
  3. Click Post GL so the payroll journal uses your default GL mapping.

If Post GL fails, return to Step 8 and confirm the default mapping and COA codes, then retry per your support process.

Step 12: Download statutory and payroll reports

Reports

  1. Select the pay run you just finalized.
  2. Run CP39 / e-Data PCB, EPF Form A, and SOCSO + EIS (and EIS alone if your process splits them).
  3. In the result dialog, download each TXT and archive it with the bank file.
  4. Optionally run Payroll Summary and Payroll Register for finance sign-off.

Form EA / Form E entries are monthly summary / draft paths — full annual EA is a later phase; do not treat them as the annual submission pack.

What success looks like (30-second check)

  • Company Setup listing shows GS with EPF/SOCSO/EIS/PCB numbers.
  • Exactly one GL Mapping row for GS has Default checked.
  • Pay run status is past Finalize, bank file downloaded, Post GL completed without error.
  • Statutory TXT files open and show the employer numbers you entered in Step 2.
  • Payslips for a sample employee show basic salary and statutory lines consistent with the rates you entered in Step 3.

Common mistakes

MistakeWhat you seeFix
Skipped Employee Maintenance bank setupBank file empty / employee errorsFix payment config on the employee, update roster, recalculate if still allowed
No default GL mappingPost GL fails or posts nothing usefulTick Default on one mapping for the company
Multiple defaults for one companyWrong accounts on Post GLUse the listing Default checkbox — only one remains
Statutory rates left at 0%Zero EPF/SOCSO on payslipsRe-enter approved % on Statutory Rates, recalculate if allowed
Company Setup emptyStatutory TXT missing employer identifiersComplete Step 2, regenerate reports
Tried to recalculate after FinalizeUI blocks / error toastCreate a correction process with support; do not force status
Used invented bank format codesGenerate bank file failsPick only formats listed in the dropdown

Related documentation

Last updated on