Skip to content
Monthly Payroll: Run and File

Monthly payroll: calculate, approve, pay, post and file the run

Steps 9 to 12 of Configure and run monthly payroll: the monthly pay run itself, from Calculate to the statutory files. It follows Step 8, where you mapped payroll to the chart of accounts. In later months, this part and Step 8 are most of the work.

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, and the statutory amounts it computes are placeholders, not the gazetted schedules (why). The running example is GadgetSphere’s September run for the pay group GS-HQ-MONTHLY, paid on the 28th.

Two cautions before you press anything here: Post GL (Step 11) writes into the payroll module’s own journal tables and does not reach the general ledger, so a person still posts the manual journal; and the statutory files (Step 12) must each be checked before upload, because a blank employer number becomes a run of zeros and the run reads FILED even when the files failed.

  1. Step 9: create the pay run and Calculate.
  2. Step 10: Approve and Finalize.
  3. Step 11: generate the bank file and Post GL.
  4. Step 12: download the statutory and payroll reports.

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 (CALCULATED → APPROVED).
  2. 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

  1. On the finalized run, open the bank format dropdown (searchable) and pick the format your bank requires — each supported bank’s fixed-width TXT layout is listed under its own code.
  2. Click Generate Bank File, then download the file and upload it in your bank portal per bank instructions.
  3. Click Post GL. It writes three lines — payroll expense, net-pay liability, statutory liability — into the payroll module’s own journal tables, using your default GL mapping.

Post GL is not a general-ledger posting. Nothing reaches the chart of accounts balances, the trial balance or any financial report, and the run reads POSTED afterwards all the same. A component with no mapping row is written anyway, with the component code standing in as the account code. And the three lines do not balance whenever the run carries a non-statutory deduction — a staff loan, unpaid leave, a manual deduction — because nothing credits it. See What Post GL actually posts.

So the accounts are brought up to date by a person, with a manual journal, in the month the work was done. Whoever keeps the books posts it; the check that it worked is that the wages expense in the trial balance equals gross plus employer contributions for the month, and that the statutory liability clears to nil when you remit on the 15th.

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.

Check every file before you upload it, and expect to have to. The generators write a file even when the employer number on Company Setup is blank, padding it with zeros; the EPF Form A carries a hard-coded state code; and File statutory sets the run to FILED even when all three files failed to generate — the failure is recorded inside the run’s properties and nothing tells you. FILED here means three files were attempted, not the regulator has them.

So the annual statements and the employer return are somebody’s job outside BigLedger, on a deadline that does not move: Form EA or EC to every person employed at any point in the year by the last day of February, and Form E with its C.P.8D schedule by 31 March. Whoever files them builds them from the year’s payslips; the check is that the twelve months of gross add up to the EA totals, and the twelve CP39 remittances add up to the C.P.8D.

What success looks like for this part

The September run is past Finalize, its bank file is downloaded and uploaded in your bank portal, and Post GL completed without error. Post GL leaves the general ledger where it was, so this part is done only when whoever keeps the books has posted the manual journal for the month: wages expense in the trial balance equals gross plus employer contributions. Each statutory TXT file opens and shows the employer numbers you entered in Step 2, not a run of zeros, and the EPF Form A’s hard-coded state code has been checked before you upload it. The full check for the run, including the calculation trace, is on the front page.

Common mistakes in this part

The mistakes table for the whole run is on the front page. The ones that show up in these steps: a bank file that is empty or errors because an employee has no bank payment config, Post GL that fails or posts nothing useful because the company has no default payroll GL mapping, trying to recalculate after Finalize, and picking a bank format code that is not in the dropdown.

Related documentation

Last updated on