Odoo Payroll UAE WPS Guide: SIF File, Gratuity, Leave and Visa Expiry
Odoo payroll UAE WPS guide for Odoo 19 and 20: SIF file export, gratuity calculation, leave rules, visa expiry alerts and the 2026 salary deadline.
Most guides stop at "Odoo supports WPS". This one names the modules, fields, formulas and gaps to test before your first salary run. Our Odoo customization services team builds the pieces the standard localization leaves out.
It is for HR managers, payroll officers and finance leads at UAE companies on Odoo 19 or 20. For the tax side of the same setup, see our guide to Odoo Middle East VAT and GCC compliance.
What does Odoo UAE payroll include in Odoo 19 and 20?
Odoo UAE payroll is two Enterprise modules that add UAE salary rules, the WPS export and payroll accounts. Odoo's UAE payroll localization documentation lists both.
| Module | Technical name | What it adds |
|---|---|---|
| United Arab Emirates - Payroll | l10n_ae_hr_payroll | Salary rules, calculations and salary structures |
| United Arab Emirates - Payroll with Accounting | l10n_ae_hr_payroll_account | Accounts linked to each payroll rule |
Rules cover end of service, leave provisions, social insurance for UAE nationals, DEWS, sick and unpaid leave, and employer costs such as medical insurance and visas. Regular Pay runs the monthly cycle; Instant Pay handles bonuses, commissions and advances, which are recovered on the next payslip.
How do you set up employees and contracts for UAE payroll in Odoo?
Set the nationality, ID number and bank account on each employee, then the wage, allowances and leave days on the contract. Payslips and the WPS file read these fields directly.
- Install the modules: both payroll modules plus the UAE fiscal localization.
- Nationality: set it on every employee, UAE nationals included, as GCC citizens are handled differently.
- Identification number: fill the Identification No field; Odoo uses it as the employee identifier in the WPS report.
- Bank account: needed for the WPS file and payments.
- Contract wage: choose Fixed Wage or Hourly Wage and the amount.
- Allowances: Housing, Transportation and Other Allowance become payslip lines.
- Leave days: Number of Leave Days drives end of service and unpaid leave.
- Gratuity basis: tick Computed Based On Daily Salary only if you want a fixed daily rate instead of monthly basic divided by 30.
Confirm with your WPS agent which ID they expect in that field before you load data.
How does Odoo generate the WPS SIF file?
Odoo builds the WPS file from posted payslips through a payment report with the export format set to UAE WPS. You can export one payslip or a whole batch.
First, open Payroll, then Configuration, then Settings, and fill the Emirati Localization section:
- Employer Unique ID: the company identifier in the WPS report.
- Salaries Bank Account: held by the company, with a valid IBAN.
- Routing code: the bank's Routing Code Agent must be 9 digits.
- Send Money: enabled and set to Trusted.
Then generate the payslips, post the journal entry and create the payment report. The file comes out as .sif or .xlsx in the same layout.
| Record | What it holds | How many per file |
|---|---|---|
| EDR (Employee Detail Record) | Each employee on the batch | One per employee |
| EVP (Employee Variable Pay) | Variable pay from other inputs linked to salary rules | Only when variable pay exists |
| SCR (Salary Control Record) | Employer details and payslip totals | Exactly one |
Odoo says the format follows MoHRE guidelines and suits most WPS agents, including Emirates NBD, FAB and Dubai Islamic Bank. Variable pay comes from inputs such as OVERTIMEALLOW and LEAVEENCASH.
Why the 2026 WPS rules make the salary run date critical
Since 1 June 2026, UAE salaries are due through WPS on the first day of the following month, with no grace period. MoHRE Ministerial Resolution No. 340 of 2026 replaced the earlier 15-day window.
The UAE government portal says at least 85% of wages due must be transferred on time, then lists these steps:
| Days after the due date | What happens |
|---|---|
| Day 2 | Notifications and alerts to the establishment |
| Day 5 | New work permits suspended, with a warning to pay |
| Day 11 | Administrative fine under Cabinet Resolution No. 21 of 2020 |
| Day 16 | Labour disputes registered for affected workers |
| Day 21 | Payment orders or collective dispute procedures, by company size |
So validate, post and export the pay run a few days before month end, working back from your bank's cut-off.
Which UAE payroll rules does Odoo cover out of the box?

Odoo covers WPS export, gratuity, sick leave tiers and Emiratisation reporting as standard, while visa reminders and some policy choices need your own setup.
| Requirement | UAE rule | Odoo 19 and 20 standard |
|---|---|---|
| WPS file | Salaries paid through WPS by the 1st | SIF or XLSX export with EDR, EVP, SCR |
| Gratuity | 21 days, then 30 days per year | EOS rule on departure, monthly provision |
| Annual leave | 30 days after one year | Leave days on contract, monthly provision |
| Sick leave | 90 days: 15 full, 30 half, 45 unpaid | Single Sick Time Off type with tiers |
| Visa expiry | Renew before expiry to keep status | Dates stored; reminder for work permits only |
| Emiratisation | Track Emirati share by skill level | Emiratisation Compliance Report in Employees |
The Emiratisation report counts Emirati employees in job positions with a MoHRE skill level of 5 or below. Set the skill level on every job position, or the percentage will be wrong.
How does Odoo gratuity calculation work for UAE end of service?
Odoo calculates gratuity when you archive the employee with a departure reason, using monthly basic wage divided by 30 as the daily rate. It also books a monthly end of service provision from the first payslip.
UAE government guidance sets the rules to test against: no gratuity under one year, 21 days of basic wage for each of the first five years, 30 days for each later year, capped at two years' wage. Unpaid absence does not count.
Illustrative check, AED 10,000 basic and 7 years of service:
- Daily rate: 10,000 divided by 30 is AED 333.33.
- Years 1 to 5: 5 years times 21 days is 105 days, or AED 35,000.
- Years 6 and 7: 2 years times 30 days is 60 days, or AED 20,000.
- Total: AED 55,000, well under the two-year cap.
Odoo's documentation words the over-five-years case as 30 days for each year spent in the company. If your test returns AED 70,000, the rule is applying 30 days to all seven years and needs a fix.
The monthly provision is wage divided by 30, times 21 over 12 (or 30 over 12 after five years). It is internal and does not change net pay.
How does Odoo apply UAE leave rules for annual, sick and unpaid leave?
Odoo reads annual leave days from the contract, applies sick leave tiers automatically and deducts unpaid leave at gross salary divided by 30. Each rule has a policy choice you should confirm.
- Annual leave: tick Is Annual Leave on the time off type. UAE law grants 30 days after one year, and 2 days a month from six months.
- Leave provision: total salary times leave days, divided by 30 and by 12.
- Leave balance on exit: at departure, Odoo pays positive remaining days and recovers negative ones on the final payslip.
- Sick leave: 15 days full pay, 30 half pay and 45 unpaid, on one Sick Time Off type.
- Unpaid leave: total unpaid days times gross per month, divided by 30.
Two checks matter. The UAE portal says carried-over leave is paid at basic salary, while Odoo's provision uses total salary. And UAE law gives no paid sick leave during probation, which Odoo does not apply by itself.
The law does not say whether sick days are working or calendar days, so write your choice into the policy.
How do you track visa and work permit expiry in Odoo?
Odoo stores visa and work permit numbers with expiry dates, and a daily job creates a to-do for work permits nearing expiry. Visa dates are not part of that reminder.
The Odoo employee setup documentation shows the Visa & work permit section: Visa No and Work Permit No, each with an expiry date, plus one document.
Work Permit Expiry Notice Period defaults to 60 days and Contract Expiry Notice Period to 7. The job assigns a to-do to the HR responsible, with the expiry date as the deadline.
For UAE companies that is not enough. We usually add:
- Visa expiry alert: an automation rule on the visa expiry date, using the same notice period.
- Extra documents: Emirates ID, passport and medical insurance expiry fields with their own alerts.
- PRO dashboard: documents expiring in the next 30, 60 and 90 days.
- Payroll link: a pay run warning when a permit has expired.
For the Saudi version of this problem, our Odoo Muqeem integration guide covers iqama and visa tracking.
What changes in Odoo 20 for UAE HR and payroll?
Odoo 20 removes work entries, merges time off types into one Time Type and adds a guided pay run, so Odoo 19 payroll setups need a careful upgrade test. Our Odoo 20 payroll release notes list all 15 changes.
- Time Types: work entries are gone and time off types merged into Time Types, so custom code on them must be rewritten.
- Guided pay runs: a Before You Start check lists issues first.
- Dashboard warnings: missing bank accounts and contracts show as cards, which helps WPS readiness.
- UAE rules: the 20.0 docs add a plane ticket allowance and a leave balance at departure.
New rollout? Compare Odoo 19 vs Odoo 20 first.
What does Odoo UAE payroll cost to license and set up?
The license cost is driven by how many employees you pay, because Odoo counts every active employee record without a full user as a Light User. Setup cost depends on headcount, policies and customization.
On Odoo pricing, a Light User is listed at US$8.90 a month in the US. Payroll officers and HR staff need full users: Standard is US$31.10 and Custom US$61.00 per user a month, billed yearly.
Illustrative: 200 site workers with no login add 200 Light Users.
Our published Odoo implementation cost ranges are small $3k to $9k (4 to 8 weeks), mid-size $9k to $27k (8 to 14 weeks) and large $27k to $150k+ (12 to 24 weeks). Data migration adds $1.2k to $9k.
Odoo UAE payroll by industry
The UAE localization is the same for every sector, but the cost drivers and the rules you test differ by industry. Typical patterns:
| Industry | Pain or cost driver | Odoo approach | How iVentureTeam helps |
|---|---|---|---|
| Construction and contracting | Large site workforce, overtime, permits | Overtime inputs on WPS, permit alerts | Bulk import, site-wise pay runs |
| Trading and distribution | Mixed nationals and expats, commissions | Instant Pay for commissions, social insurance | Commission rules, accounting mapping |
| Hospitality and F&B | Shift work, high turnover, leave balances | Leave provisions, final settlement payslips | Exit checklist, gratuity UAT |
| Healthcare | Licenses and visas with many expiry dates | Visa and permit dates on employees | Extra document alerts, PRO dashboard |
| DIFC-based firms | DEWS and multi-entity payroll | DEWS rule, one database for entities | Entity setup, DEWS checks |
How do you go live with Odoo UAE payroll without a WPS failure?

Run at least one parallel month, compare every payslip with the old system and submit a test SIF file to your bank before the real run. This order catches errors before they reach the bank.
- Write the policy: leave, sick leave counting, overtime and gratuity basis.
- Clean master data: nationality, ID, IBAN and contract for every employee.
- Configure WPS: employer ID, salaries bank IBAN and 9-digit routing code.
- Build test cases: joiner, leavers under one and over five years, sick leave tiers, an advance.
- Run a parallel month: compare net pay line by line with your current payroll.
- Test the SIF: send one file to your WPS agent and fix every rejection.
- Go live early: schedule the first real run several days before the 1st.
For a quick budget and timeline, try our free Odoo project estimate tool.
How iVentureTeam helps with Odoo payroll UAE WPS
iVentureTeam sets up the UAE localization, tests it against your policy and customizes the gaps so your first WPS file goes through. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.
- Payroll design: policy workshop, salary structures and rule review through our Odoo consulting services.
- WPS setup: employer ID, bank data, SIF export and a test file with your WPS agent.
- Gratuity, leave and visa: UAT for every service band, plus expiry alerts and a PRO dashboard.
- Odoo 20 upgrade: move Odoo 19 payroll customizations off work entries before you upgrade.
Comparing providers? See top Odoo partners in Dubai and the UAE.
Odoo payroll customization case study: Enabl Health
A health-tech company had its Odoo Timesheet and Payroll layers extended so billing followed day-type rates without manual lookups. Enabl Health is in Australia, but the pattern fits UAE overtime and holiday rules.
Rates differed for weekdays, weekends and holidays, and time was captured by hand. We cleaned five data sets, including payslips, then classified timesheets by day type to drive the right rate. The work took 10 weeks on Odoo.sh with separate staging and production branches.
Invoices are now generated from timesheet rates and working-day types without manual rate lookups. Read the Enabl Health Odoo timesheet and billing case study.
The bottom line on Odoo payroll UAE WPS
Odoo 19 and 20 handle UAE payroll and WPS well once the localization is configured and every rule is tested against your policy. The risk sits in data quality, gratuity and leave edge cases, and visa alerts.
With salaries due on the 1st, clean the data, test the SIF with your bank and close the gaps before your first live run.
Ready to run your next UAE payroll and WPS file from Odoo?

Get a payroll review from a team that configures and customizes Odoo for UAE companies. Plan your Odoo UAE payroll and WPS setup with us, call +91-90235-15208, or email business@iventureteam.com.
Frequently Asked Questions
Does Odoo support WPS in the UAE?
+
Yes. The Odoo Enterprise UAE payroll localization exports a WPS file in .sif or .xlsx format with EDR, EVP and SCR records from posted payslips. You need the employer unique ID, a salaries bank IBAN and a 9-digit routing code set first.
Which Odoo module is needed for UAE payroll?
+
Install United Arab Emirates - Payroll (l10n_ae_hr_payroll) and United Arab Emirates - Payroll with Accounting (l10n_ae_hr_payroll_account). Payroll is an Enterprise app, so it is not available in Odoo Community.
How does Odoo calculate gratuity in the UAE?
+
Odoo uses monthly basic wage divided by 30 as the daily rate, or a daily salary set on the contract. It applies 21 days per year up to five years and 30 days beyond, triggered when the employee is archived with a departure reason.
Can Odoo send visa expiry reminders?
+
Odoo stores visa and work permit expiry dates, and a daily job creates a to-do for work permits nearing expiry, 60 days ahead by default. Visa, Emirates ID and passport alerts need an automation rule or a small customization.
Is Odoo payroll available in Odoo Community?
+
No. Payroll and the UAE payroll localization are Enterprise features. Community users rely on third-party modules from the Odoo Apps Store, which need their own testing and upgrade plan.
When must UAE salaries be paid through WPS?
+
Under MoHRE Resolution No. 340 of 2026, wages for the previous month are due on the first day of each Gregorian month. Establishments must transfer at least 85% of wages due on time to stay compliant.
Does Odoo handle UAE sick leave rules?
+
Yes. Odoo tracks sick leave on one Sick Time Off type and pays the first 15 days in full, the next 30 at half pay and the next 45 unpaid. Decide whether days are working or calendar days, as the law does not say.
Does Odoo 20 change UAE payroll setup?
+
Yes. Odoo 20 removes work entries and merges time off types into Time Types, so custom code built on work entries must be rewritten. It also adds a guided pay run and dashboard warnings such as missing bank accounts.
Does Odoo produce an Emiratisation report?
+
Yes. The Emiratisation Compliance Report in the Employees app counts Emirati employees in job positions with a MoHRE skill level of 5 or below. Nationality, job position and skill level must be set correctly.
Ready to put this into action?
Talk to iVentureTeam about Odoo, AI automation, or custom development — get a free, no-obligation consultation.
Free Odoo tools
All tools- Odoo Health CheckVersion, modules, findings and upgrade cost
- Odoo App SelectorWhich apps you need, by industry
- Odoo Project EstimateIndicative cost and timeline in minutes
- Odoo Implementation Cost CalculatorImplementation cost and timeline, in minutes
- Odoo Migration Cost CalculatorVersion jump or legacy ERP, priced in minutes
Continue reading
Odoo Sales Order Approval: Thresholds, Studio Rules and Audit Trail
Odoo sales order approval for Odoo 19 and 20: Studio approval rules on Confirm, amount thresholds, purchase approval, custom modules and audit trail.
Odoo Muqeem Integration: Iqama, Visas, GOSI and KSA Payroll Guide
Odoo Muqeem integration for Saudi HR: iqama renewal, exit re-entry visas, Odoo 20 GOSI API, WPS files for Mudad and KSA payroll setup, step by step.
Odoo Industry Packages Explained: Install, Customize and Roll Back
What Odoo industry packages install, which plan they need, and how to install, customize and roll back on Odoo Online, Odoo.sh and on-premise safely.
