Skip to main content

How to Submit Contribution Data to The eMPF Platform through Workstem?

This article will introduce how to use CSV file generated by Workstem or API to submit contribution data in Workstem to eMPF platform.

Workstem CS avatar
Written by Workstem CS
Updated today

Step 1: Maintain the "Employer eMPF ID"

The "Employer eMPF ID" is the ID code obtained and viewed by the employer on the eMPF platform after registering an eMPF account. It will be used in Workstem to link the eMPF platform to facilitate the sending of contribution data to the eMPF platform through the API.

Step 2: Connect to the eMPF Platform

In "System"-"Integration", click on "Settings" of eMPF, and in the pop-up window click on "Start Using", which will be associated to the employer's eMPF platform according to the "eMPF Employer ID" in step 1.

Step 3: Maintain key information of employees according to the requirements of eMPF

According to the requirements of eMPF, it is necessary to maintain basic employee information, employment information and benefit file information.

Please refer to the appendix and link at the bottom of this article to learn about eMPF's requirements for filling in employee information and the value logic of each information in the system.

  1. Maintain basic information and employment information of employees

  2. Maintaining information for employees' benefit files

  3. Maintains the Payroll Policy ID for an employee's Payroll Policy

    Set the Payroll Policy ID for each Payroll Policy in [Payroll] - [Settings] - [Payroll Policy] in the system.

    "Payroll Policy ID" corresponds to the "Payroll Group ID" in the eMPF Requirement field. It is a required field. Please be sure to be consistent with the name of the "Payroll Group ID" defined in the eMPF platform.

    Where to view "Payroll Group ID" in the eMPF platform:

Step 4: Maintain Benefit Scheme (i.e. MPF Scheme) information

In the [Settings] of [Benefits], "Name of Scheme" and "Scheme Registration No." need to be filled in according to the name and scheme registration number required in eMPF after the MPF scheme has been transferred to the eMPF platform (eMPF official template file description is provided, Workstem is also built-in, and you can select directly)

In addition, if you have started using eMPF to submit contributions, the original "Employer Participation Number" location in system now needs to be filled in the "eMPF Employer Account No." instead of the "Employer Participation Number".

Where to view "Employer Account No." in eMPF account:

Step 5: Calculate salary and generate contribution data

In "Payroll"-"Pay Run", calculate the payroll results and contribution data.

Step 6: View contribution record data and contribution overview data

In [Benefits] - [Benefit File] - [View] to check employees' calculated contribution results on the "Contribution Record" page. Amendments can be made if necessary.

View Remittance Overview under each MPF scheme in [Benefits] - [Overview].

Step 7: Click "Generate" to generate the preparatory file for submitting contribution data

Since the system not only supports the submission of contributions using CSV files, but also the submission of contribution data using APIs, it is necessary to have the system generate a preparation file containing the fields and data specified by eMPF, called a "message", before selecting the final submission method. It will take the value in the system according to the set logic when it is generated, and you can use it to check the generated eMPF data in advance.

Click [Generate] in [Benefit] - [Overview]:

In the pop-up window, select the Name of scheme, Cycle and Contribution Day that needs to generate a "message":

After the message is successfully generated, a green "√" will be displayed on the "Message Generation Status" on the right side of the corresponding benefit scheme and the corresponding period:

Step 8: Check if the eMPF contribution data is correct

In [Benefits] - [Overview], click the [Message] on the right side of the MPF scheme and cycle record you want to check to download the message file (json format) and check whether the fields and data in it are correct.

You can also click [View] on the right side of the MPF scheme and cycle record you want to check to check the contribution results of each employee. On the [eMPF Records] page, you can view the contribution data of the fields sorted according to the eMPF regulations and check whether the data meets the expected results.

Step 9: Select the submission method and submit the contribution data

If the Message has been generated and the contribution data is checked to be correct, on the [Benefit] - [Overview] page, click [Submit] on the right side of the Overview record, and you can select the contribution submission method on the pop-up page. You can select CSV or API:

If you select the "CSV" submission method, an upload file in CSV format containing eMPF contribution data will be generated based on the information in the Message file. You can directly use this file to upload to the eMPF platform to submit contributions.

Select the submission method of "API", and the progress window of API submission of contribution data will pop up, and the result of successful or failed upload will be displayed.

If the top of the interface prompts "Contribution data has been submitted" when submitting a contribution through the API, it means that the data of the current message has been submitted through the API. When this happens, or the employee's contribution data and employee information have changed, You need to click [Delete] on the right side of the current MPF scheme and cycle record to delete the currently generated Message, and then click [Generate] to generate new messages and eMPF contribution data.

Step 10: View submission records and submission results

After each successful initiation of the API contribution submission process, regardless of success or failure, the submission time, success or failure, and the submission result returned by eMPF through the interface will be recorded. You can view it on the [Submit Record] page after clicking [View]:

Click [View Result] to see the detailed results returned by eMPF, including the specific reasons for submission failure:

If the submission fails, after readjusting the relevant data and information, you need to click "Delete" on the right side of the current MPF scheme and cycle record in [Benefit] - [Overview] to delete the currently generated message, and then click [Generate] to generate a new Message file and eMPF contribution data, and then try to submit again.

The above ten steps can complete the entire process of eMPF-related information maintenance and contribution submission.


Appendix 1: eMPF specified fields and value logic in the system

Part I General Information

General information is the part that must be completed for each contribution, regardless of whether the "Member's Status" is "N" (New, New employee), "E" (Exist, active employee), or "T" (Termination, Terminated employee).

Field Name

Format Requirements in Reports

condition

Definition

In-system value logic

example

Scheme Registration No.

String (10)

Required

The unique registration number assigned by the eMPF platform to each trustee scheme.

[Benefits] - [Settings] - [Scheme Registration No.]

MT12345

Employer Account No.

Numeric (15, 0) when used as the "eMPF Employer Account Number", not more than 15 digits

Required

The employer's unique account number on the eMPF platform must be consistent with the submitted contribution record.

[Benefit] - Renamed field "eMPF Employer Account No. (Employer Participation No.)" in Settings

3777463656273

Payroll Group ID

String (20

Can be in English or numbers only

Condition Required (if there are multiple pay groups)

Identification used by employers to classify employees (e.g. department, contribution frequency). If there are more than one pay group, it must be filled in.

Payroll Policy ID in [Payroll] - [Settings] of [People] - [Employment & Payroll Information]

MLY

Department Code

String (50

Only in English and numbers

optional

The department code of the employee is for employer reference only and does not affect the calculation of contributions.

[People] - [Employment & Payroll Information] - [Department] corresponding "code" in [Company]-[Department]

HRD

Payroll Contribution Period Start Date

YYYYMMDD

Required

The start date of the payroll contribution period.

First day of the "period" month selected when generating the Message file

20221201

Payroll Contribution Period End Date

YYYYMMDD

Required

The end date of the payroll contribution cycle.

End date of the "period" month selected when generating the Message file

20221231

Contribution Day

YYYYMMDD

Condition Required (temporary workers in industry plan only)

Contribution date for temporary workers in the industry plan (if "next working day" is selected to contribute).

When [Benefit] - [File] -[Account Type] is "CEE", fill in the "Contribution Date" selected when generating Message file

20230110

Employee Account Type

String (3)

Required

Employee Type:

CEE: Temporary workers

REE: Regular employees

[Benefits] - [File] - [Account Type]

REE

ID Type

String (20)

Required

Identification Type:

-KID: Hong Kong Identity Card

-PASSPORT: PASSPORT (used when there is no Hong Kong Identity Card)

In the previous information field of [People] - [Basic Information] - [ID Card/Passport No.], fill in "HKID" if it is "ID Card", fill in "PASSPORT" if it is "PASSPORT"

HKID

ID No.

String (50)

Required

Hong Kong identity card number (including check digits, no brackets) or passport number.

The latter information column in [People] - [Basic Information] - [ID Card/Passport No.]

E3649125

Date of Employment

YYYYMMDD

Required

Employee entry date.

[People] - [Employment & Payroll Information] - "Join Date"

20121231

Member's Status Member Status

String (1)

Required

Member Status:

N: New, New employees

E: Exist, Existing employees

T: Termination Resigned employees

Fill in "N" for all records in the report of the employee's first contribution, that is, the contribution cycle month of less than 60 days of employment and the month of first 60 days of employment.

Fill in "E" in the second month after the employee has been employed for 60 days (after the first contribution is completed, and in the subsequent contribution cycle month without Termination Date.

Fill in "T" if the employee has a Termination Date, and the contribution period is within the month of the Termination Date.

E

PART II: MEMBERS' CONTRIBUTION

The member contribution information section is the part that employees must fill in according to the conditions when they need to submit contribution data.

Field Name

Format

condition

Definition

In-system value logic

example

Member Account No.

Numeric (15, 0)

Condition Required (when there are multiple active accounts under the same employer/pay group)

The employee's unique account number on the eMPF platform. If there are no multiple accounts, you can leave them blank and the platform will be identified by the ID number.

Leave blank

22983883092

Staff No.

String (20)

optional

The employer's internal employee number is for reference only and does not affect the calculation of contributions.

[People] - [Basic Information] - "Staff ID"

AG55446576

Member Contribution Period Start Date

YYYYMMDD

Conditions Required (with contributions or surcharges)

The start date of the contribution cycle (if multiple payments need to be made, they need to be filled in separately).

[Benefit] - [Benefit File] - [View] Details - [Contribution Record] -Start date of the "Period" in which the current contribution data is located

20220201

Member Contribution Period End Date

YYYYMMDD

Conditions Required (with contributions or surcharges)

The end date of the contribution cycle.

[Benefit] - [Benefit File] - [View] Details - [Contribution Record] - End date of the "Period" in which the current contribution data is located

20220228

No. of Working Days

Numeric (3, 0)

Condition Required (temporary workers in industry plan only)

The number of days worked by temporary workers in the contribution cycle of the industry plan.

When [Benefit] - [Benefit File] - "Account Type" is "CEE", fill in the sum of "MPF Working Days" of compensation projects in the "Period" where the current contribution data is located.

When the result is 0, leave the report blank

3

Working Period Start Date

YYYYMMDD

Condition Required (temporary workers in industry plan only)

The start date of the work cycle of the temporary worker.

[Benefit] - [Benefit File] - [View] Details - [Contribution Record] - start date of the "Period" in which the current contribution data is located

20121201

Working Period End Date

YYYYMMDD

Condition Required (temporary workers in industry plan only)

The end date of the work cycle of the temporary worker.

[Benefit] - [Benefit File] - [View] Details - [Contribution Record] - end date of the "Period" in which the current contribution data is located

20121231

Relevant Income

Numeric (18, 2)

Conditions Required (except for temporary workers in specific industries, when contributions are available)

Calculate all monetary income of MPF (including salaries, bonuses, etc.).

[Benefit] - [Benefit File] - [View] Details - [Contribution Record] - "Relevant Income" in the "Period" where the current contribution data is located.

When the result is 0, leave the report blank

23000.5

Basic Salary

Numeric (18, 2)

optional

Basic salary (required if voluntary contributions are calculated based on basic salary).

[People] - [Employment & Payroll Information] - "Basic Salary"

23000.5

Employer's Mandatory Contribution

Numeric (18, 2)

Conditions Required (when the employer needs to pay)

Employer mandatory contribution amount.

[Benefit] - [Benefit File] - [View] Details - [Contribution Record] - "Employer Mandatory Contributions" for the "Period" where the current contribution data is located.

When the result is 0, leave the report blank

1150.03

Employee's Mandatory Contribution

Numeric (18, 2)

Conditions Required (when employees need to pay)

Employee mandatory contribution amount.

[Benefit] - [Benefit File] - [View] Details - [Contribution Record] - "Employee Mandatory Contributions" for the "Period" where the current contribution data is located.

Leave blank when result is 0.

1150.03

Employer's Voluntary Contribution

Numeric (18, 2)

optional

Amount of employer voluntary contributions.

[Benefit] - [Benefit File] - [View] Details - [Contribution Record] - "Employer Voluntary Contributions" for the "Period" where the current contribution data is located.

When the result is 0, leave the report blank

1200

Employer's Voluntary Contribution 2

Numeric (18, 2)

optional

Employer Second Voluntary Contribution Account Amount (applicable to multi-voluntary schemes).

Leave blank

1200

Employee's Voluntary Contribution

Numeric (18, 2)

optional

Employee voluntary contribution amount.

[Benefit] - [Benefit File] - [View] Details - [Contribution Record] - "Employee Voluntary Contributions" for the "Period" in which the current contribution data is located.

When the result is 0, leave the report blank

1000

Employer's Surcharge

Numeric (18, 2)

optional

Employer surcharge (costs incurred for late contributions).

[Benefit] - [Benefit File] - [View] Details - [Contribution Record] - "Employer Surcharge" for the "Period" where the current contribution data is located (see Requirement Contents 1).

When the result is 0, leave the report blank

57.75

Employee's Surcharge

Numeric (18, 2)

optional

Employee surcharge.

[Benefit] - [Benefit File] - [View] Details - [Contribution Record] - "Employee Surcharge" in the "Cycle" where the current contribution data is located (see Requirement Content 1).

When the result is 0, leave the report blank

57.75

Total Amount

Numeric (18, 2)

Conditions Required (with contributions or surcharges)

Total amount (mandatory + voluntary contributions + surcharges).

Sum of the previous "Employer Mandatory Contribution" + "Employee Mandatory Contribution" + "Employer Voluntary Contribution" + "Employee Voluntary Contribution" + "Employer Surcharge" + "Employee Surcharge".

When the result is 0, leave blank in the report.

6415.56

Part III: New Members Data

When the employee's "Member Status" is "N", the "New Members Data" section needs to be filled in according to the conditions of the field.

(1) In particular, when the employee has not been employed for 60 days in the current contribution period, it does not need to appear in the [Remittance Overview] and [Remittance Details] of the current period. In the contribution cycle month that has just been employed for 60 days, you need to make contributions at the same time as the contribution cycle that has not been employed for 60 days (that is, the current rules are used). The "member status" of these records needs to be filled in as "N", and you need to fill in the information in the "New Members Data" section.

(2) When "Member Status" is not "N", the information in "New Members Data" section needs to be left blank.

Field Name

Format

condition

Definition

In-system value logic

example

Gender

String (1)

Required (when Member's Status is "N")

Gender identification:

-M: male

-F: female

-U: neutral

-O: No information

[People] - [Basic Information] - "Gender".

When "gender" is "Male", fill in "M";

When "gender" is "Female", fill in "F";

When it is blank, fill in "O".

M

Surname (English)

String (100)

Required (when Member's Status is "N" and there is no Chinese name)

English surnames, symbols (such as "-", ",") are allowed.

[People] - [Basic Information] - "Surname(ID card)"

Lee

Given Name (English)

String (100)

Required (when Member's Status is "N" and there is no Chinese name)

English name, if there is only one word, fill in the last name, leave the first name blank.

[People] - [Basic Information] - "Given Name(ID card)"

Chee Hynn Aiden

Surname (Chinese)

String (50)

Required (when Member's Status is "N" and there is no English name)

Chinese surname, symbols (such as "-", ",") are allowed.

Leave blank

Li

Given Name (Chinese)

String (50)

Required (when Member's Status is "N" and there is no English name)

Chinese name, if there is only one word, fill in the last name, leave the first name blank.

Leave blank

Zixuan

Date of Joining the Scheme

YYYYMMDD

Required (when Member's Status is "N")

The date on which the employee joins the MPF scheme.

[Benefit] - [Benefit File] - [View] Details - "Scheme Start Date"

20121231

Date of Birth

YYYYMMDD/YYYYMM/YYYY

Required (when Member's Status is "N")

Date of birth, fill in according to ID card/passport:

-Full Date (YYYYMMDD)

-Year Month (YYYYMM)

-Year (YYYY)

[People] - [Basic Information] - "Birthday"

19710212 or 197102 or 1971

Member Class

String (50)

Conditions Required (when new employees join voluntary contributions)

Membership category, used to define the Vesting Scale of voluntary contributions.

New field "Member Class" added in [Benefit] - [Benefit File] - [View] Details

Manager

Commencement Date for Vesting Entitlement/ Effective date of vesting interests

YYYYMMDD

Required (when a member joins voluntary contributions and service definition is determined by the employer)

The start date on which the voluntary contributions vest in interest (e.g., the date of employment or a specific date).

New field "Commencement Date for Vesting Entitlement" added in [Benefit] - [Benefit File] - [View] Details

20121231

Employee Type

String (11)

Required (when Member's Status is "N")

New Employee Type:

-NEW New employees

INTRA _ GROUP: Intra-group transfers

EXEMPT: Exempted persons

EXPATRIATE: Foreign employees

[People] - [Basic Information] - "ID Card/Passport No." is Passport, fill in "EXPATRIATE" (foreign employee);

Open [Benefit] - [Benefit File] - [View] Details, fill in "EXEMPT" (Exempted Person);

In other cases, fill in "NEW";

Priority: "EXEMPT" → "EXPATRIATE" → "NEW"

NEW

Previous Date of Employment

YYYYMMDD

Condition Required (when employee type is INTRA _ GROUP)

Date of previous employment.

Leave blank

20121231

Visa Issue Date

YYYYMMDD

Condition required (when employee type is EXPATRIATE)

Foreign employee visa issuance date.

Required when "Employee Type" is "EXPATRIATE".

"Employee"-"Profile"-Newly added field "Visa Issue Date"

20121231

Email Address

String (100)

Required (when Member's Status is "N" and there is no mobile phone number)

Employee email address.

[People] - [Basic Information] - "Email Address"

Mobile No. (Country Code)

String (10)

Condition Required (when Member's Status is "N" and no mailbox)

Mobile number (country code)

Area code in the column before [People] - [Basic Information] - "Phone Number"

852

Mobile No.

Numeric (15, 0)

Condition Required (when Member's Status is "N" and no mailbox)

Mobile Number

The number in the column after [People] - [Basic Information] - "Phone Number"

29180102

Part IV Termination Data

When the employee's "Member Status" is "T", the "Termination Data" section needs to be completed according to the conditions of the field. When the "Member Status" changes from "T" to "N" in the next contribution, the information in the "Employment Termination Information" section needs to be left blank.

Field Name

Format

condition

Definition

In-system value logic

example

Last Date of Employment

YYYYMMDD

Condition required (when the membership status is "T")

Employee's last working date.

[People] - [Employment & Payroll Information] - "Termination Date"

20121231

Reason of Termination

String (15)

Condition required (when the membership status is "T")

You must follow the following separation reason code:

1. RESIGN: Resign

2. RETIRE: Retirement

3.EARLY _ RETIRE: Early retirement

4. DEATH: Death

5.ILL _ HEALTH: Health reasons

6. TOTAL _ INCAP: Total incapacity

7. REDUNDANCY: Layoffs

8. LAID _ OFF: Severance

9. DISMIS: Dismissal 10.SUM _ DISMISS: Immediate Dismissal

11. WRONG _ ENROL: Error registration

12.INTRA _ GROUP _ TRF: Intra-group transfer

13.CONTRACT _ END: Contract expiration

[People] - [Employment & Payroll Information] - "Termination Reason"

RESIGN

Long Service Payment/Severance Payment

Long service payment/severance payment

String (1)

Required condition (when the membership status is "T" and the employer applies for deduction)

Application Type:

-L: Long service payment (subject to ≥ 5 years of service and DEATH: DEATH, DISMIS: dismissal, CONTRACT _ END: contract expiration, ILL _ HEALTH: health reasons or RETIRE: retirement)

-S: severance pay (subject to ≥ 2 years of service and the reason for resignation is REDUNDANCY: layoff or LAID _ OFF: severance)

If the Termination reason is "Death", "Dismissal" (new), "End of Contract" (new), "Ill-Health" (new), or "Resignation" (new), and the "Long Service Payment" in the [Benefit] - [Benefit File] - [View] Details - [Contribution Record] of the month in which the Termination Date is located is not 0, then fill in "L";

If the Termination Reason is "Redundancy" (new) or "Lay off", and the "Severance Payment" in the [Benefit] - [Benefit File] - [View] Details - [Contribution Record] of the month where the Termination Date is located is not 0, then fill in "S";

Special case: If neither the Pay Items "Long Service Payment" nor "Severance Payment" are 0, then the judgment is made based on the "Termination Reason".

If both the Pay Items "Long Service Payment" and "Severance Payment" are 0, leave them blank

L

Appendix II MPF report generation rules under special Scenarios

Scenario 1: The employee just turns 18 or 65 on a date of the month

Processing Rules

When the employer submits contributions, Relevant Income, EE/ER MC/VC submits data based on the amount of the whole month, and the eMPF platform will process it proportionally. Therefore, when generating eMPF contribution records, the Relevant Income, EE/ER MC/VC of employees who have just reached the age of 18 or 65 will not be calculated pro-rata.

Scenario 2: Employee employed for less than 60 days

Processing Rules

Generally, there is no need to make immediate contributions and do not need to appear in the current month's contribution report and contribution details

Example

Employees enrolled on June 12, 2024. In the contribution reports and contribution breakdowns for June and July, no immediate contributions are required because the employee has not been employed for 60 days.

Scenario 3: The employee has just been employed for 60 days in the current month

Processing Rules

Contribution data for the current month and contribution data for previous months with less than 60 days of employment are submitted in different record lines in the same report. "Member Status/Member Status" is N, and you need to fill in the information section of "New Employee Information".

Example

Employee Chan Ka Cheung joined the company on 2024-12-07, and the related income of the new employee's salary operation is 24193.55; Not joining VC (voluntary contribution). The basic salary is 30,000.

Before 2025-01-10, the employer is not required to make immediate contributions to the employee, but is required to submit the contributions for the month in which the employee has been employed for 60 days together with the previous month that has not been employed for 60 days

Scenario 4: Employees leave and re-join within the same month

Processing Rules

The current month's contributions only contain the contribution record data for which the "member status" is "T" in [Benefit] - [Benefit File] - [View] Details - [Contribution Record]. Contribution data after re-employment is submitted during the 60-day contribution cycle month of new employment. Therefore, the separation contribution portion during this month and the reentry contribution portion are submitted separately.

In order to realize this submission method, it is recommended that when an employee is rehired, if it is not necessary to record the historical data of the employee's last employment period, a new information file should be set up for the employee in the system to separate the two contributions of the same month.

Example

Employee Chan Ka Cheung terminated on 2024-11-10. There is no long service payment/severance pay. The relevant income in the resignation salary is 9000, EE MC, ER MC = 450; Not joined VC. When leaving the job, the basic salary is 27,000. This Final Payment generates contribution record data for the period with "Member Status" of "T" in November 2024 in [Benefit] - [Benefit File] - [View] Details - [Contribution Record].

Then Chan Ka Cheung re-joined the company on November 21, 2024 in the same month, and the relevant income in the new employee's salary was 10,000; Not joined VC. The basic salary is changed to 30,000. This payroll additionally generates regular contribution record data in November 2024 for periods with empty "Member Status" in [Benefit] - [Benefit File] - [View] Details - [Contribution Record].

When submitting contribution data for November, the termination month, only submit contribution data whose "Member Status" cycle is November 2024 is "T", that is, Relevant Income = 9000; EE MC, ER MC = 450

After re-employment on November 21, 2024, contributions between November 21 and November 30 need to be submitted as "New" employee status in the January contribution record just 60 days after employment, which belongs to another employment period begins.

Appendix 3 eMPF official template file, including a description of the meaning of each field, filling requirements and filling examples:

Did this answer your question?