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.
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 DRAFT → CALCULATED → APPROVED → FINALIZED → 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
GSexists in Organisation with currency MYR. - Chart of accounts for
GSincludes 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
GSin 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
- Select company
GS. - Country
MY. - Enter EPF Employer No, SOCSO Employer Code, EIS Employer Code, PCB Employer No (E).
- Tick HRDF Applicable only if it applies; fill HRDF number when required.
- 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:
- Country Code
MY. - Statutory Type and a clear Statutory Name (e.g.
EPF Employee/Employer default). - Effective Date (use the date your rates apply from).
- Contribution Basis
GROSSunless your process says otherwise. - Enter Employee Rate % and Employer Rate % for the default tier — values your payroll owner approved.
- For PCB, confirm Annual Threshold (form default is 34000; change only if your process requires it).
- Save.
Step 4: Create the pay calendar and September period
Settings → Pay Calendar → Create
- Company
GS. - Calendar Code
GS-MONTHLY, nameGadgetSphere Monthly. - Pay Frequency
MONTHLY. - Salary Cutoff Day
25, Allowance Cutoff Day25, Payment Day28. - Save.
Settings → Pay Period → Create
- Link the calendar you just created.
- Period Code e.g.
2026-09. - Period Start / End for September; Payment Date on the 28th (or your agreed banking day).
- Period Status
OPEN. - 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)
- Company
GS. - Code
GS-HQ-MONTHLY, nameHQ Monthly Staff. - Frequency
MONTHLY. - Link the pay calendar from Step 4 (and salary structure from Step 5 if you use one).
- 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:
- Select the Employee.
- Company
GS, Pay GroupGS-HQ-MONTHLY. - Employment Type (usually
FULL_TIME). - Enter basic salary and salary basis / frequency / currency.
- Payment method and bank account link (the account must already exist on the employee).
- Set statutory flags so Calculate knows who contributes to EPF / SOCSO / EIS / PCB.
- Leave On Hold unticked unless you intentionally want them out of payroll.
- 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
- Select company
GS. - Tick Default Mapping (first mapping for the company should be default).
- Pick Chart of Account codes for:
- Payroll expense
- Net pay liability
- Statutory liability
- 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
- Choose company
GS, pay groupGS-HQ-MONTHLY, and the September pay period. - 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:
- When the grid looks right, click Approve (
CALCULATED→APPROVED). - Click Finalize when you are ready to lock the run (
APPROVED→FINALIZED).
Do not finalize if you still expect salary master changes for this period.
Step 11: Generate the bank file and Post GL
- 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). - Click Generate Bank File, then download the file and upload it in your bank portal per bank instructions.
- 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
- Select the pay run you just finalized.
- Run CP39 / e-Data PCB, EPF Form A, and SOCSO + EIS (and EIS alone if your process splits them).
- In the result dialog, download each TXT and archive it with the bank file.
- 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
GSwith EPF/SOCSO/EIS/PCB numbers. - Exactly one GL Mapping row for
GShas 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
| Mistake | What you see | Fix |
|---|---|---|
| Skipped Employee Maintenance bank setup | Bank file empty / employee errors | Fix payment config on the employee, update roster, recalculate if still allowed |
| No default GL mapping | Post GL fails or posts nothing useful | Tick Default on one mapping for the company |
| Multiple defaults for one company | Wrong accounts on Post GL | Use the listing Default checkbox — only one remains |
| Statutory rates left at 0% | Zero EPF/SOCSO on payslips | Re-enter approved % on Statutory Rates, recalculate if allowed |
| Company Setup empty | Statutory TXT missing employer identifiers | Complete Step 2, regenerate reports |
| Tried to recalculate after Finalize | UI blocks / error toast | Create a correction process with support; do not force status |
| Used invented bank format codes | Generate bank file fails | Pick only formats listed in the dropdown |
Related documentation
- Payroll Admin applet reference — screens and field map
- Employee Maintenance — employee master
- Chart of Accounts Setup — COA before Post GL
- HR & Payroll Module — module overview