ERPNext Saudi Payroll: GOSI, Mudad WPS & EOSB

 · 12 min read

ERPNext Saudi payroll with GOSI contributions, Mudad WPS and end of service award

Saudi payroll has three recurring jobs that every employer must get right: GOSI contributions for social insurance, the Wage Protection System (WPS) through the Mudad platform, and the end-of-service award when employment ends. Each has its own rates, rules and deadlines. ERPNext with Frappe HR can handle the calculation side well, but you have to configure it for Saudi rules, because the standard payroll is not Saudi-specific.

This guide explains each of the three, shows how to set them up in Frappe HR, and is clear about what ERPNext does not do for you. It is written for HR managers, finance heads and ERPNext administrators of companies in the Kingdom. For Saudi e-invoicing, see our post on ERPNext ZATCA Phase 2. For the UAE equivalent of this topic, see ERPNext WPS payroll in the UAE.

Important: rates and rules change. The figures below were checked against GOSI, the Ministry of Human Resources and Social Development (HRSD) and the Saudi Labour Law at the time of writing. Confirm them against the latest official notices or with a Saudi HR specialist before running payroll.

Key takeaways

  • GOSI rates depend on nationality and system: for Saudi employees on the existing system the employer pays 11.75% and the employee 9.75%. Non-Saudi employees carry a 2% employer-only contribution.
  • The contribution base is capped at SAR 45,000 a month and made up of basic wage plus housing allowance.
  • End-of-service award follows the Labour Law: half a month’s wage for each of the first five years, one month for each later year, reduced on resignation by length of service.
  • Mudad upload is a manual step, and files must be uploaded within 30 days. ERPNext prepares the data, but your bank and Mudad handle the wage file.

Running payroll for staff in Saudi Arabia?

Book a free 30-minute payroll walkthrough. We will show a salary structure with GOSI, an end-of-service calculation and the monthly WPS routine on ERPNext.

Show me Saudi payroll → WhatsApp us: +91 8089051848

Or email info@nexeves.com

1. GOSI contributions: who pays what

GOSI is made up of branches, and the percentages look odd until you add them up. According to GOSI and the published legal texts, the branches are:

Branch Employer Employee Who it covers
Annuities (pensions) 9% 9% Saudi nationals on the existing system (see below for the new system)
Occupational hazards 2% Nil All workers, any nationality
SANED (unemployment insurance) 0.75% 0.75% Saudi nationals only

For a Saudi employee on the existing system, that gives 11.75% for the employer (9% + 2% + 0.75%) and 9.75% for the employee (9% + 0.75%). For a non-Saudi employee, only the 2% occupational hazards contribution applies, paid by the employer. No GOSI deduction is made from the employee's salary.

The new GOSI system and the rising annuities rate

A newer social insurance system applies to workers who had no contribution periods before 3 July 2024. For them the annuities rate rises in steps. According to GOSI's guide, each of employer and employee pays 9% from 3 July 2024, 9.5% from 1 July 2025, 10% from 1 July 2026, 10.5% from 1 July 2027 and 11% from 1 July 2028. As of this post, a new-system Saudi employee therefore has 10% annuities plus 0.75% SANED on the employee side (10.75%), and 10% annuities plus 2% plus 0.75% (12.75%) on the employer side. Occupational hazards and SANED stay the same.

This means your payroll needs to know which system each Saudi employee is on, not just their nationality.

Contribution wage, cap and floor

  • Base: the contributory wage is the basic wage plus the housing allowance. Commissions and sales percentages are treated as part of the basic wage. Confirm with GOSI how other allowances, bonuses and overtime are treated for your employees.
  • Cap: the maximum contributory wage is SAR 45,000 a month. A package above that is capped.
  • Floor: GOSI publishes a minimum contributory wage of SAR 1,500 for the annuities branch and SAR 400 for occupational hazards. Check the current floor for your case.

2. Setting up GOSI in Frappe HR

  1. Add a custom field on Employee, for example GOSI Category, with options such as "Saudi - existing system", "Saudi - new system", "Non-Saudi" and "GCC national". Your formulas read this field.
  2. Create earning components: Basic Salary (abbreviation BS), Housing Allowance (HA), Transport and others. Keep housing separate from other allowances, because GOSI needs it separately.
  3. Create a statistical component for the GOSI base, for example GOSI Wage, with the formula below. A Statistical Component does not change earnings or deductions, but other components can use its value.
  4. Create the employee deduction, GOSI Employee Share, with a condition and formula per category.
  5. Create employer contribution components using the type Employer Contribution. According to the Frappe HR documentation, these count towards cost to company but do not appear on the salary slip and do not reduce net pay.
  6. Map accounts: a GOSI payable liability account for the employee share and the employer share, and an expense account for the employer share.

Example formulas, using the abbreviations above. On Frappe HR version 16 the functions min and max are available in formulas. On older versions, test that they work or split the cap into separate conditions.

# GOSI Wage (statistical component, abbreviation GW)
max(min(BS + HA, 45000), 1500)

# GOSI Employee Share - Saudi, existing system
condition: custom_gosi_category == "Saudi - existing system"
formula:   GW * 0.0975

# GOSI Employee Share - Saudi, new system (rate valid from 1 Jul 2026 to 30 Jun 2027)
condition: custom_gosi_category == "Saudi - new system"
formula:   GW * 0.1075

# GOSI Employer Share (Employer Contribution type) - Non-Saudi
condition: custom_gosi_category == "Non-Saudi"
formula:   GW * 0.02

Keep the rates in a clear place and review them every July. A tidy way is to create one component per category and per rate period, with a date-based condition, so old payslips remain auditable. Do not edit a rate in place and recalculate old months.

3. End-of-service award (EOSB)

Under the Saudi Labour Law, as published by HRSD, the end-of-service award is:

  • Article 84: half a month's wage for each of the first five years of service and one month's wage for each later year, based on the last wage, with a pro-rata amount for part years.
  • Article 85, on resignation: nothing under two years of service; one third of the award for two to five years; two thirds for more than five and under ten years; the full award at ten years or more.
  • Article 87: the full award is payable if the worker leaves because of force majeure, and for a female worker who ends the contract within six months of her marriage or three months of childbirth.
  • Article 88: the employer must settle wages and entitlements within one week of the end of the contract, or within two weeks if the worker ends the contract.

The wage for the calculation is the last wage, which HRSD defines as the basic wage plus other due increases tied to the work, such as fixed allowances in the contract. Variable commissions can be excluded if the contract says so (Article 86). Which allowances count in your contracts is a legal question for your adviser.

Two worked examples (illustrative figures)

Case Calculation Result
Contract ends after 6 years 4 months, last wage SAR 8,000 5 years x 4,000 = 20,000; 1 year x 8,000 = 8,000; 4 months = 4/12 x 8,000 = 2,666.67 SAR 30,666.67 (full award)
Resigns after 7 years, last wage SAR 6,000 5 x 3,000 = 15,000; 2 x 6,000 = 12,000; full award 27,000; two thirds applies SAR 18,000

Doing it in Frappe HR

Frappe HR has a Gratuity Rule document with service-year slabs and a "fraction of applicable earnings" per slab. For Saudi EOSB, set the applicable components to your wage components (basic, housing and the fixed allowances your contracts include), then define two slabs: 0 to 5 years with a fraction of 0.5, and above 5 years with a fraction of 1. Choose the calculation method "Sum of all previous slabs", so years 1 to 5 earn half a month each and later years earn a full month each.

Two things the rule does not do for you, which you must handle and test:

  • Part years. The rule offers two work-experience methods: round off (3 years 6 months counts as 4) or take exact completed years. Neither matches the Labour Law's pro-rata for part years, so test a few cases and, if needed, add a small calculation.
  • Resignation percentages. One third and two thirds on resignation are not part of the slab logic. Apply them in the Full and Final Statement or through a custom field and a small script that reduces the award by the right fraction.

Keep a EOSB provision account and accrue the liability monthly, so the cost does not land in one month when someone leaves. Your auditor will ask for this.

Send us one payslip and your GOSI sheet

With a sample payslip and your latest GOSI schedule, we will map each line in a free call and tell you what needs custom work.

Map my Saudi payroll → WhatsApp us: +91 8089051848

Or email info@nexeves.com

4. WPS and the Mudad platform

The Wage Protection System requires covered establishments to pay wages through bank accounts and report them to the Ministry. According to HRSD, wage protection files are uploaded through Mudad, not the older ministry e-services site. The steps published by HRSD are:

  1. Sign in to Mudad and select the establishment.
  2. Open Upload Files and choose the wage type and the month.
  3. Select the wage file processed by the bank and upload it.
  4. Open Compliance Information to see your compliance rate, review any flagged differences and give justifications.

Prerequisites: the establishment must be registered with the Ministry and with GOSI, and the establishment and each employee must have bank accounts. From 1 March 2025, files must be uploaded within 30 days (the earlier allowance was 60 days). Some banks offer an optional service that uploads the return file to Mudad on your behalf. If that fails, you upload the file manually.

What ERPNext does and does not do for WPS

  • ERPNext does: calculate salaries, hold each employee's bank and IBAN details, create the Payroll Entry and give you a clean register to reconcile against.
  • ERPNext does not ship a Saudi bank WPS file template or log in to Mudad. Each bank has its own file layout, so the usual solution is a script report or export that matches your bank's template. Our UAE post on WPS payroll shows the same pattern for SIF files.
  • You still do: send the file to the bank, wait for processing, and upload the processed file to Mudad within the deadline.

Make Mudad a monthly checklist item: payroll approved, file sent to bank, bank file processed, file uploaded to Mudad, compliance reviewed. Store the confirmation with the Payroll Entry.

5. Payslips, Arabic and Iqama details

Saudi payslips usually need English and Arabic text, the employee's Iqama or national ID, GOSI number and bank IBAN. Add custom fields on Employee for each of them and build a print format with both languages. Our posts on customising print formats and employee and payroll management in ERPNext cover the building blocks.

6. A monthly payroll control checklist

  1. Update employee master changes: new joiners, leavers, salary revisions, GOSI category changes.
  2. Run attendance and leave, then create the Payroll Entry.
  3. Review the GOSI total against the GOSI schedule. A mismatch usually means a wrong category or a wrong base.
  4. Approve payroll, pay through the bank and generate the bank WPS file.
  5. Upload the bank-processed file to Mudad and review compliance.
  6. Pay GOSI by its due date and clear the GOSI payable account.
  7. Accrue EOSB and review the provision quarterly.

Do not forget Saudi e-invoicing for your sales side. It is a separate topic, covered in our ZATCA Phase 2 guide.

How Nexeves helps with Saudi payroll

We configure salary structures, GOSI formulas, EOSB rules, bank file exports and Arabic-English payslips, and train your HR team on the monthly routine. See our ERPNext implementation services and our customisation work for the parts that need scripts.

Frequently asked questions

What are the GOSI contribution rates in Saudi Arabia?

For Saudi employees on the existing system, the employer pays 11.75% and the employee 9.75%. For non-Saudi employees, the employer pays 2% for occupational hazards and nothing is deducted from the employee. A newer system for workers with no contribution before 3 July 2024 has annuities rising 0.5% a year from 9% to 11%.

What is the maximum salary for GOSI contributions?

GOSI caps the contributory wage at SAR 45,000 a month. The base is the basic wage plus the housing allowance.

How is the Saudi end-of-service award calculated?

Half a month’s last wage for each of the first five years and one month’s wage for each year after that, pro-rated for part years. On resignation, the award is reduced to one third, two thirds or the full amount depending on service length.

Can ERPNext upload the WPS file to Mudad?

No. ERPNext prepares payroll data and can export a bank file in your bank’s format, but the bank-processed wage file is uploaded to Mudad by you, or by your bank if you use its auto-upload service.

How long do I have to upload wage files to Mudad?

HRSD and Deloitte report that from 1 March 2025 the upload period is 30 days, reduced from 60 days. Check the current rule before relying on it.

Does Frappe HR support Saudi gratuity?

Frappe HR’s Gratuity Rule can model the half-month and one-month slabs. Part-year proration and the resignation fractions need extra configuration or a small script, so test them with sample cases.

Make Saudi payroll a routine, not a month-end scramble

Nexeves implements ERPNext and Frappe HR for companies in Saudi Arabia and the wider GCC, with Arabic-English payslips, training and support.

Book my free payroll review → WhatsApp us: +91 8089051848

Or email info@nexeves.com

Nexeves serves India & the GCC: UAE (Dubai, Abu Dhabi), Saudi Arabia (Riyadh, Jeddah), Qatar (Doha), Kuwait, Bahrain and Oman (Muscat).


No comments yet.

Add a comment
Ctrl+Enter to add comment