ZyncDocs · MY-Payroll · Modules · Statutory contributions (detailed)
Must Should Could
Detailed Functional Requirements

Statutory Contributions — Detailed Requirements

The deep specification for Malaysia's mandatory wage contributions as computed by the pay run: EPF/KWSP retirement fund, SOCSO/PERKESO social security, EIS/SIP employment insurance, and the employer-only HRDF/HRD Corp training levy. Rates are fixed by statute and applied from a built-in legal schedule — an operator can choose which schemes apply to an employee (via contribution groups) but cannot override the scheduled rates.

4
Statutory schemes
9
Requirements
2
Rounding regimes

EPF / KWSP

Retirement savings — employee + employer shares, age- and citizenship-dependent, no wage ceiling.

SOCSO / PERKESO

Employment injury & invalidity — two categories by age, RM6,000 wage ceiling.

EIS / SIP

Employment insurance — 0.2% + 0.2% for ages 18–59, RM6,000 wage ceiling.

HRDF levy

Employer-only training levy on prorated basic + fixed allowances, configurable rate.

Statutory · Detailed

How contributions resolve STA-R

An employee's statutory treatment is driven entirely by the contribution group they are assigned to. Each group lists the statutory types that apply; when the employee is added to a pay run, one contribution row is written per type with the employee and employer amounts already computed. The statutory types themselves are seeded master data — epf, socso, eis, pcb — and the schedule matches on these keys case-insensitively.

FR-STA-R01Must
When an employee is added to a pay run (or resynced), the system SHALL create one contribution record per statutory type in the employee's contribution group, carrying the scheme kind, who pays (employee / employer / both), the employee amount, the employer amount, and the unprorated full-month employee amount.
Acceptance criteria
  • An employee with no contribution group produces no contribution rows (and no statutory deductions).
  • Contribution rows are deleted when the employee is removed from the run and recreated on resync.
  • Both a prorated amount (used for net pay and the journal) and a full-month amount (used ×12 for the EPF tax relief) are stored per row.
FR-STA-R02Must
The contribution base wage for a statutory type SHALL be the sum of the employee's active payroll items tagged with that statutory type; when no item is tagged, the default base — basic salary plus allowances — SHALL apply. The base is prorated for partial months before rates are applied.
Acceptance criteria
  • An allowance flagged as EPF-able joins the EPF base; an untagged catalogue leaves the default base in force.
  • A mid-month joiner's contribution base is prorated by the same worked-days factor as their salary.
FR-STA-R03Must
For the scheduled Malaysian schemes (EPF, SOCSO, EIS) the system SHALL always apply the built-in statutory schedule, ignoring any percentage or fixed-value rate configured on the contribution group.
Acceptance criteria
  • Configuring EPF as a custom percentage has no effect — the legal schedule computes the amounts.
  • Only non-scheduled (custom) contribution types honour the group's PERCENTAGE / FIXED configuration (see STA-C).

Statutory · Detailed

EPF / KWSP STA-EPF

The Employees Provident Fund — the retirement savings scheme. Rates depend on age at pay date, citizenship, and monthly wage. EPF has no wage ceiling, and each share is rounded up to the next whole ringgit.

Rate schedule

CaseEmployeeEmployer
Citizen / PR, under 60, wage ≤ RM5,00011%13%
Citizen / PR, under 60, wage > RM5,00011%12%
Citizen / PR, age ≥ 600%4%
Non-citizen foreign worker (any age)2%2%
FR-STA-E01Must
The system SHALL compute EPF per the schedule above, evaluated on the employee's age at the run's pay date and the (prorated) contribution base, with no wage ceiling, rounding each share up to the next whole ringgit.
Acceptance criteria
  • Wage RM5,000.00, citizen under 60 → employee RM550, employer RM650 (13% band boundary is inclusive).
  • Wage RM5,000.01 → employer share drops to the 12% band.
  • A RM20,000 wage contributes on the full RM20,000 (no RM6,000 cap).
  • Fractional shares round up: RM550.01 → RM551.
FR-STA-E02Must
The system SHALL apply the foreign-worker EPF rate (2% employee / 2% employer) only for pay dates on or after 1 October 2025, excluding domestic servants; before that date foreign workers contribute nothing.
Acceptance criteria
  • Non-citizen, pay date 2025-09-30 → EPF 0/0. Pay date 2025-10-01 → 2%/2%.
  • An employee with an empty or unknown nationality is treated as Malaysian (the foreigner rule never auto-applies to incomplete records).

Statutory · Detailed

SOCSO / PERKESO STA-SOC

Social security — employment injury and invalidity coverage. The contribution wage is capped at RM6,000; amounts round to the nearest 5 sen.

Rate schedule

CategoryConditionEmployerEmployee
Category 1 — injury + invalidityage < 601.75%0.5%
Category 2 — injury onlyage ≥ 601.25%0%
FR-STA-S01Must
The system SHALL compute SOCSO on min(wage, RM6,000) per the category table above, rounding each share to the nearest 5 sen.
Acceptance criteria
  • Wage RM8,000 contributes as RM6,000 (ceiling).
  • An employee aged 60+ pays 0% while the employer still pays 1.25% (Category 2).
  • Rounding: round(x × 20) / 20 — nearest 5 sen.
  • A missing date of birth is treated as under 60 (Category 1 applies).

Statutory · Detailed

EIS / SIP STA-EIS

The Employment Insurance System — retrenchment protection. Same RM6,000 ceiling and 5-sen rounding as SOCSO; applies only to employees aged 18–59.

FR-STA-I01Must
The system SHALL compute EIS as 0.2% employee + 0.2% employer on min(wage, RM6,000) for employees aged 18–59, and zero outside that age range, rounding to the nearest 5 sen.
Acceptance criteria
  • Age 17 or 60+ → EIS 0/0.
  • Missing age is treated as within 18–59 (EIS still charges).
  • Wage RM6,000+ contributes RM12.00 / RM12.00.

Statutory · Detailed

HRDF / HRD Corp levy STA-HRD

The employer-only human-resource development levy. It never reduces employee pay — it is an employer cost computed at calculate time and reported on the run, but excluded from the salary journal.

FR-STA-H01Must
When HRDF is enabled in company configuration, the system SHALL compute an employer levy of round(base × rate%) per Malaysian employee, where base is the prorated basic salary plus fixed allowances — excluding overtime, bonus/commission, unpaid-leave and absence adjustments.
Acceptance criteria
  • HRDF disabled → levy 0 for everyone; enabled → levy only for Malaysian employees.
  • The rate is configurable (HRD Corp mandatory registration 1%; optional-category employers 0.5%).
  • The levy joins employerCost and the run's totalHrdfLevy, but never the employee's deductions and never the salary journal.

Statutory · Detailed

Custom (non-scheduled) contributions STA-C

Contribution groups may also carry non-statutory types (e.g. a private pension top-up). Only these honour the group's configured rates.

FR-STA-C01Should
For a non-scheduled contribution type, the system SHALL compute amounts from the group configuration: PERCENTAGEbase × (mandatory + voluntary)%; FIXED → the configured flat amount (÷12 when the type's frequency is annual); TABLE → the statutory schedule.
Acceptance criteria
  • Each side (employee / employer) is configured independently with mandatory and voluntary components.
  • Frequency MONTHLY applies every run; ANNUALLY is smoothed ÷12.
  • An unknown statutory key routed to the schedule contributes zero (no error).

Statutory · Detailed

Business rules

  • Two rounding regimes. EPF rounds each share up to the next ringgit; SOCSO/EIS round to the nearest 5 sen. They are not interchangeable.
  • Age is evaluated at the run's pay date, not at calculation or approval time.
  • Wage ceiling RM6,000 applies to SOCSO and EIS only (in force since 1 Oct 2024); EPF has none.
  • Safe defaults for missing data: unknown nationality → Malaysian; missing date of birth → under 60 and within EIS age range.
  • Proration twin amounts. Every contribution stores the prorated amount (net pay + journal) and the unprorated full-month amount (annualised ×12 for the PCB EPF relief). They must not be conflated.
  • Employer-side amounts never reduce net pay — they only accumulate into employerCost and the run's employer totals.

Statutory · Detailed

Known gaps

No statutory remittance files. The system computes and reports contribution amounts but does not generate EPF Form A / SOCSO 8A / EIS / CP39 submission files or bank files — remittance to the agencies is performed outside the system.
Rates are code-shipped. The EPF/SOCSO/EIS schedule lives in the application (not operator-editable data); a statutory rate change requires a software update.
Percentage method, not the official contribution tables. SOCSO/EIS are computed as percentages of the capped wage; the official PERKESO Jadual Caruman (banded table) can differ by a few sen per bracket. Likewise EPF uses the percentage method rather than the KWSP Jadual Ketiga bands. The engine is structured so the exact tables can replace the percentage method later.
Group rates for EPF/SOCSO/EIS are dead configuration. Mandatory/voluntary percentages entered on a contribution group for the three scheduled schemes are stored but never used — the legal schedule always wins.