Home/Modules/
Payroll

Odoo Payroll

Saudi payroll inside Odoo: GOSI, end of service and the Mudad WPS file computed from the same employee record your accounting uses.

Payroll
Capabilities

What this module handles

Saudi payroll means two GOSI schemes depending on registration date, a wages file that Mudad must accept within 30 days, end of service liabilities that rarely appear on the balance sheet, and an accountant re-keying the journal every month. Odoo Payroll computes payslips from contracts, attendance and leave and posts them to accounting, and Naqlah, Odoo partner in Saudi Arabia, configures the Saudi rule set and the WPS export for your bank.

  • Salary structures with basic, housing, transport and custom allowances defined per contract type
  • GOSI contributions for Saudi employees under the pre and post July 2024 schemes and for non Saudi staff
  • WPS wages file generated per pay run in your bank's layout for upload to Mudad
  • End of service provision accrued monthly and the final settlement computed by exit reason
  • Unpaid leave, overtime and absence inputs pulled from Time Off and Attendances automatically
  • Bilingual payslips in Arabic and English delivered to the employee portal each month
  • Journal entries posted per branch, department or cost center into Odoo Accounting
  • Multi company payroll for groups with several commercial registrations and bank accounts
Saudi ready

Built for how business runs in Saudi Arabia

Salary rules follow the GOSI contribution tables and labor law parameters, including the contributory wage of basic plus housing with its cap, overtime at the hourly wage plus half the basic rate, and the reduced Ramadan working day, and Naqlah maintains them as the annual July scheme steps change. Payslips print in Arabic and English, the wages file matches the layout your SAMA licensed bank expects, and the contract salary stays consistent with what is documented on Qiwa. Where a client prefers to keep Jisr or ZenHR, Naqlah syncs employees and journal entries into Odoo instead, as listed on the integrations page.

GOSI by registration date
Each Saudi employee's contribution rate depends on whether they were first registered before or after 3 July 2024, and the new scheme steps up every July. Odoo applies the right rate per employee, so a new hire is never calculated on the old table.

Mudad ready wages file
The WPS file is exported from the pay run in the format your bank uploads to Mudad, inside the 30 day window. Finance no longer retypes salaries into a bank template every month.

End of service on the balance sheet
The provision is booked monthly per employee at half a month per year for the first five years and a full month after, and the settlement on exit applies the resignation fractions the law sets.

How it connects

How does a monthly pay run work in Odoo, from attendance devices and leave to the bank file, Mudad and the ledger?

1. Inputs collected
Approved leave, overtime from the biometric attendance devices, expense reimbursements and sales commissions arrive on the payslip as inputs without HR emailing finance.

2. Payslips computed and reviewed
Odoo calculates gross, GOSI employee and employer shares, deductions and net per employee, and HR reviews exceptions before validation.

3. WPS file exported and salaries paid
The wages file is generated in your bank's layout, uploaded through the bank and Mudad, and salaries land before the 10th of the following month.

4. Journal posted and GOSI filed
The payroll entry posts to Odoo Accounting by branch or cost center, the end of service provision updates, and the GOSI contribution report is ready for the portal.

Implementation

What Naqlah configures in your implementation

  1. Contract and salary structure templates. Naqlah defines contract types for Saudi and non Saudi staff with basic, housing, transport and the allowances your offer letters actually use.
  2. GOSI and end of service rules. Contribution rates per nationality and registration scheme, the contributory wage cap and the end of service accrual and settlement rules are configured and tested on sample employees.
  3. Attendance and leave integration. Biometric devices, the attendance kiosk and Time Off are mapped so absences, overtime and unpaid days flow into the payslip.
  4. WPS file format for your bank. The wages file is built to the layout your bank accepts for Mudad and validated on a test upload.
  5. Accounting mapping. Salary, allowance, GOSI and provision accounts are mapped per department, branch and company so the journal entry posts correctly.
  6. Parallel run and handover. A pay cycle is run alongside your current system or spreadsheet, differences are reconciled and HR is trained before going live, with Naqlah support covering the first cycles.

Timelines depend on headcount, number of entities and the state of current records, and Naqlah gives you a clear roadmap in the first consultation.

Who it is for

Companies that get the most from this module

  • F&B and retail chains with shift staff. Baristas and kitchen teams across branches with per branch cost centers, Ramadan hours and frequent end of service settlements.
  • Distributors and logistics firms. Drivers and warehouse staff with overtime from attendance and allowances tied to routes.
  • Contractors with site allowances. Site, hardship and transport allowances per project with GOSI applied only to the contributory base.
  • eCommerce operators with seasonal hiring. Ramadan and White Friday hires onboarded and paid on the same rules, then settled correctly on exit.
  • Groups with several CRs. Separate companies, bank accounts and Mudad files in one database with consolidated cost reporting.
Before and after

Excel payroll and bank templates vs Odoo Payroll

AreaBeforeWith Odoo via Naqlah
GOSIRates typed into Excel, old scheme applied to new hiresComputed per employee by nationality and registration scheme
WPSBank template retyped every monthWages file generated from the pay run in the bank layout
End of serviceUnknown liability until someone resignsAccrued monthly, settlement computed by exit reason
InputsHR emails leave and overtime to financeLeave and attendance flow into the payslip
JournalsRe-keyed by the accountant after paydayPosted automatically per branch and cost center
Multiple CRsSeparate files and separate processesSeparate companies in one system with one process
FAQ

Module questions, answered

Everything else, we cover in a free 30-minute consultation.

Does Odoo calculate GOSI for Saudi and non Saudi employees?
Does Odoo generate the Mudad WPS file?
How is end of service calculated in Odoo?
Should we use Odoo Payroll or keep Jisr or ZenHR?
Can payroll deduct absences from biometric attendance?
Are payslips in Arabic?
Related

Modules that work well together

Ready to run your business on one system?

Free consultation. Meet the team and get a clear roadmap in one call.

Book your consultation