If your payroll process is a spreadsheet emailed between HR and finance every month, you are one missed WPS file away from a MOHRE penalty.
Start here
Before building payroll controls, make sure you have the operational backbone in place:
- Approval matrix — route payroll runs through the right signatories before bank file generation
- Audit logs — every payroll change, salary adjustment, and approval decision must be traceable
- Role-based access control — restrict who can create, modify, and approve payroll runs
- ERP platform — connect HR, finance, and bank reconciliation in one system
What WPS actually requires from your operations
The Wage Protection System is not just a bank file format. It is a compliance gate that MOHRE enforces monthly. Your ERP must produce a SIF file that matches your employment contracts, and your bank must confirm receipt. If there is a mismatch between contracted salary and transferred amount, you get flagged.
Operational requirements:
- Employee master data must include labour card number, bank IBAN, and contract salary
- Each payroll run must reconcile to the SIF file line by line
- Partial payments (advances, deductions, overtime) must be broken out with evidence
- The SIF file must be generated from the same data source as the payroll journal entry
Payroll run controls that prevent rework
- Freeze employee changes 48 hours before payroll cut-off. No new hires, terminations, or salary changes during the run window.
- Require approval before bank file generation. The payroll run should move through draft, pending review, approved, and then bank file generated as distinct statuses.
- Reconcile gross-to-net before approval. Total gross salary minus deductions minus employer contributions must equal the net transfer amount. If it does not balance, block the approval.
- Attach supporting documents. Overtime sheets, leave records, and deduction memos should be linked to the payroll run before it reaches the approver.
Salary journal entry and GL reconciliation
Every payroll run should produce a journal entry that debits salary expense accounts by department or project, and credits the payroll liability account. After the bank transfer, a second entry clears the liability against the bank account.
Common mistakes:
- Posting salary expense as a lump sum instead of splitting by cost centre
- Forgetting to reverse the liability after bank confirmation
- Not reconciling the payroll bank account monthly using bank reconciliation
End-of-service gratuity accrual
UAE labour law mandates end-of-service gratuity after one year. If you are not accruing monthly, your balance sheet is understated and your cash flow forecast is wrong. Set up a monthly accrual journal that calculates gratuity based on each employee's tenure and current basic salary, and reverse it on actual payout.
Audit trail requirements
Every payroll-related action needs a trail: who created the run, who modified an employee's salary, who approved the bank file, and when the SIF was submitted. Without this, you cannot answer MOHRE queries or pass an internal audit. Use audit logs to capture each state transition automatically rather than relying on email threads as evidence.