Payroll & HR

Running Payroll at a GCC Law Firm: GOSI, WPS & End of Service, Explained

Updated 23 August 2026 · 8 min read · by the QuickInflo team

Payroll at a law firm looks simple — a handful of salaries once a month. In Saudi Arabia and the wider GCC it rarely is. Between GOSI, the WPS bank file, end-of-service, Iqama expiries, mid-month raises and leave, a "quick" payroll run turns into a spreadsheet marathon with real compliance risk. Here's what actually has to happen each month, and how to make it a ten-minute job.

1. Why firm payroll is harder than it looks

A law firm's headcount is small but its pay data isn't. Salaries are split into basic, housing, transport and other allowances — and that split drives GOSI, end-of-service and the bank file. Someone joins or leaves mid-month, so pay is prorated. A partner approves an increment effective the 15th, so the month has to be split across two salaries. An associate takes unpaid leave; a clerk has a loan instalment; a paralegal's Iqama is about to expire. Miss any one of these and you either overpay, underpay, or file the wrong number to the bank.

Most firms run this in Excel, re-keying the same figures into the bank portal and the accounting system. It works — until it doesn't, and the error only shows up when an employee or the regulator flags it.

2. GOSI — who pays what

GOSI (the General Organization for Social Insurance) is Saudi Arabia's social-insurance scheme, and contributions come out of every run. Both the employer and the employee contribute a percentage of basic salary plus housing, up to a contribution ceiling. The rates differ for Saudi and non-Saudi staff, and are updated from time to time, so payroll needs to apply the right percentage per employee — and occasionally an instructed override for a specific person.

3. WPS — the bank file you can't skip

The Wage Protection System (WPS) requires salaries to be paid through the banking system and a standardised salary file (SIF/IFILE) filed with your bank each month. That file lists, per employee, their IBAN, national ID or Iqama number, basic, housing, other earnings, deductions and net pay, wrapped in a header your bank specifies exactly.

Where firms trip up: the WPS file is fussy. A hyphen in a name, more than two decimal places, a mismatched bank code or a name that differs from the bank record can get the file rejected — after the run is already "done". The safest workflow is to generate the WPS file straight from the approved payroll, with names sanitised and amounts formatted to the bank's rules.

4. End of service (EOSB) under Saudi Labor Law

When someone leaves, they're owed an end-of-service benefit (EOSB). The Saudi Labor Law formula is:

Two things catch firms out. First, the liability is accruing all year — it should be visible, not a surprise on the day someone resigns. Second, if the employee has an outstanding loan, it's usually netted off the settlement, and the firm needs a clean no-dues clearance to prove it.

5. Iqama, leave & the admin around pay

Payroll doesn't sit alone. A lapsed Iqama can stop someone working (and paying them becomes a problem), so expiries need tracking well ahead. Leave feeds pay directly: unpaid leave should reduce the month, and paid leave shouldn't — which means leave needs an approval trail and a live balance, not a WhatsApp message. And every figure eventually has to reach the accounts as a balanced journal, ideally without re-keying.

6. How to run a compliant month in minutes

The fix is to keep one master record per employee — salary split, GOSI setup, GL accounts, Iqama, bank details — and let the system do the month. That's what QuickPayroll (part of the QuickInflo suite) is built for:

Two-step sign-off, built in. The preparer (a finance clerk or HR assistant) builds and submits the run; the Finance Manager and Managing Partner approve it, each seeing the full register and every comment. The WPS file only unlocks once it's approved — so the number that goes to the bank is the number that was signed off.

Run a live month on your own numbers

See GOSI, WPS, end-of-service and the GL journal on your actual staff list — in a 30-minute demo, or a free 10-day trial.

Explore QuickPayroll →

7. Frequently asked questions

What is GOSI and who pays it?

GOSI is Saudi Arabia's social-insurance scheme. Both employer and employee contribute a percentage of basic salary plus housing (up to a ceiling), with different rates for Saudi and non-Saudi staff. Payroll deducts the employee share and records the employer share as a cost.

What is WPS in Saudi Arabia?

The Wage Protection System requires salaries to be paid through banks and a standardised salary file (SIF/IFILE) filed each month, listing each employee's IBAN, ID/Iqama, basic, housing, other earnings, deductions and net pay. Filing it incorrectly risks penalties.

How is end-of-service (EOSB) calculated in Saudi Arabia?

Half a month's wage per year for the first five years, one month's wage per year after that, based on the last wage — reduced on a sliding scale for resignation under Article 85.

Does QuickPayroll handle GOSI, WPS and EOSB automatically?

Yes — QuickPayroll computes GOSI, generates the WPS bank file in your bank's format after approval, and calculates end-of-service under the Labor Law, alongside prorata, mid-month raises, loans and leave.

Further reading: QuickPayroll — payroll & complete HR · QuickBD — business development · Why law-firm bills get stuck · Pricing