writing/blog/2026/09
BlogSep 2, 2026·6 min read

Why Mudad Rejects Your WPS File — and How to Fix It

A Saudi WPS file fails in three ways, each with its own fix: whole-file rejection, record rejection, and violations that surface only in your compliance ratio.

Most people searching for "why was my WPS file rejected" are looking for one reason. That is the problem: the system does not reject in one way. It rejects in three completely different ways, each with a different point of failure and a different fix.

The file can be rejected in its entirety before a single line of it is read. Or the file is accepted and specific records inside it are rejected. Or the file is accepted, every record inside it is accepted, and a violation appears anyway — one that has nothing to do with the file at all, but with the gap between what you uploaded and what is registered with GOSI.

Anyone treating the third case with the tools of the first will re-upload the same file ten times and watch the compliance ratio stay exactly where it was. This article separates the three, using the rules the Ministry of Human Resources and Social Development published itself.

Case one: the whole file is rejected

When the Ministry launched its updates to the Wage Protection System business rules, it stated that the WPS file is rejected entirely when:

  • The file was opened after being received from the bank. This is the most painful reason because it looks completely innocent. The file arrives electronically sealed from your bank; opening it — even just to look — breaks the seal and makes it invalid. Do not open it, do not "check the contents", do not re-save it from Excel.
  • The establishment's unified number is missing or does not match.
  • Payment is in a currency other than the Saudi riyal.
  • The file does not follow the WPS file specification published in the specification document and user guide on the Ministry's portal.

All four share one property: none of them has anything to do with your employees. The file is rejected as a single unit, and the number of correct records inside it counts for nothing. Reviewing payroll line by line after this kind of rejection is entirely wasted work.

Case two: employee records rejected inside an accepted file

Here the file itself is sound, but specific rows drop out. The Ministry specified that an employee record is rejected when:

  • The total does not equal the sum of basic salary, housing allowance, other entitlements and deductions.
  • Any payment detail or the total is negative.
  • The total salary equals zero.
  • The worker's national ID or iqama number is missing.

All four are fully detectable before upload — they are pure arithmetic and need no connection to Mudad at all. The equation net = basic + housing + other allowances − deductions either holds on every row or it does not, and that can be checked in seconds.

From the files we have inspected, the fault is rarely in the numbers. It is in the export: Excel in an Arabic locale writes semicolons instead of commas, HR systems emit Arabic-Indic digits in amount columns, and halala-level rounding leaves the net one cent away from the sum — which is enough.

The free WPS file validator covers exactly this category: total reconciliation, negative or zero values, ID and iqama format, IBAN checksum, and duplicate employees. It runs entirely inside your browser — the file carries your employees' names, iqama numbers and bank accounts, and uploading that to a server just to have its formatting checked is not a reasonable trade. If you are building the file from scratch, the WPS file template gives you the columns in the order the platform expects.

Case three: violations that never surface at upload

The hardest category, because the file is accepted and nothing appears. The violation is born from the comparison between your file and GOSI. The Ministry lists, among others:

  • Paying a worker's wage more than once in a month — the duplicate record is excluded.
  • Not paying a worker's wage on time.
  • Deducting more than 50% of the basic salary registered for that worker with GOSI.
  • Exceeding the GOSI-registered salary by 20%.
  • A basic salary that does not equal the salary registered with GOSI.

Three of these five compare the wage in your file against the wage declared to GOSI. Which means the source of the violation is not your payroll system — it is the gap between two systems. We covered that specific point in WPS violations: the problem is in your data, not in Mudad, and the GOSI deduction rate explains which wage is actually being compared.

The Ministry does leave an exit: violations affect the compliance ratio calculation if they are not justified by the establishment owner and then accepted by a Ministry inspector. Justification is part of the official procedure, not a way around it — but it requires a document, not a sentence.

The compliance ratio: the denominator is not your payroll run

This is the point that explains the most confusing cases — an establishment that paid everyone in its file on time and still has a low compliance ratio.

The Ministry calculates the compliance indicator as: the number of employees whose wages were transferred through the Wage Protection System, out of the total number of employees registered with GOSI under that establishment.

The denominator is GOSI, not your file. Every employee registered with GOSI and absent from your wage file lowers the ratio, however clean your file is. The exclusions are narrow, published, and all of them require justification:

  • A new expatriate worker is not counted for the first 90 days after entering the Kingdom.
  • A worker on leave outside the Kingdom is not counted.
  • Workers with cases pending before the courts are not counted.
  • A Saudi worker is counted if present at the establishment for a full month.

In practice: before asking "why did my ratio drop", export the GOSI-registered list and compare it against the wage file list. The difference between the two lists is your answer in most cases. The updated system also lets you see rejected records by month and by violation type, plus the compliance status for the current month and the previous six.

The window changed: 30 days, not 60

Since 1 March 2025, the grace period for uploading the WPS file is 30 days from the end of the previous month, down from 60. The Ministry announced the change on the basis of a study of establishment behaviour, which showed that 91% of establishments already upload within 30 days of the due date.

The operational impact is immediate: you can no longer batch two months and upload them together. Each month stands alone, and lateness registers as a failure to upload rather than a late upload. Anyone who relied on the long window to correct GOSI data before uploading has lost half the time they had.

Service suspension for non-compliant establishments also falls after the establishment is notified, within the period in which the establishment is required to upload the file — the notice is not extra time, it is a warning inside the same window.

Penalties: what is documented, and what to re-check today

In the schedule of violations and penalties for the Labour Law and its executive regulations, issued under ministerial decision 4786 dated 28/12/1436H, item 20 covers "failure to pay workers' wages on their specified due dates, or paying them in a currency other than the official one" with a fine of SAR 3,000, multiplied by the number of workers. Note that this item bundles late payment and non-riyal payment into a single violation — the same non-riyal rule that triggers whole-file rejection above.

The Ministry has stated through its official account that an employer failing to upload the wage protection file monthly is exposed to a fine of SAR 10,000.

A caution about the date, not the figure: the schedule of violations and penalties was amended by ministerial decision 112377 dated 21/08/1447H, which reclassified a number of violations into categories according to the nature of the activity. Verify the amount for the item that applies to your activity against the schedule currently in force before building a decision on it or quoting it to a client. What circulates most on this topic is figures that were correct in their year and have been carried out of context.

What can be checked before upload, and what cannot

Separating the three categories is not academic; it decides what you can automate:

CategoryDetectable before uploadHow
Whole-file rejectionPartlyUnified number and currency are verifiable; breaking the bank's seal is a human action, not a check
Record rejectionYes, fullyTotal reconciliation, negative or zero values, ID, IBAN, duplicates
Violations and compliance ratioNo, not from the file aloneRequires comparison against GOSI data and attested contracts

That third row is the boundary no tool reading a single file can cross — and it is also where most repeat violations live. Crossing it takes a reconciliation layer between payroll, GOSI and contracts, run monthly before upload rather than after the violation appears. We walked through how that layer is built in the WPS file generator and validator guide, and how to wire it straight into the platform in the Mudad integration guide.

The practical step this month

Before your next upload, in order:

  1. Do not open the file that came from the bank. Ever.
  2. Verify the establishment's unified number and that the currency is Saudi riyal.
  3. Run your working copy of the payroll sheet through the validator to catch total, ID and IBAN errors.
  4. Compare the GOSI-registered list against the wage file list, and justify every name present in the first and absent from the second.
  5. Upload within 30 days of month end, not longer.

Do WPS violations keep recurring at your establishment even though salaries go out on time? Send us your rejected-records report for the last three months and we will return it sorted into the three categories above, with the source responsible for each one identified. Free diagnosis, no commitment, via the contact page.


Sources: Ministry of Human Resources and Social Development — Wage Protection Programme page and the updates to the system's business rules; the Ministry's announcement amending the permitted period for uploading wage protection files on the Mudad platform to 30 days effective 1 March 2025; the schedule of violations and penalties issued under ministerial decision 4786 dated 28/12/1436H and amended by ministerial decision 112377 dated 21/08/1447H.