Social Protection Fund (SPF) calculation error
The Social Security Deduction in field 15 does not match the expected Omani SPF rate. For Omani nationals, employee SPF is 8% of the basic salary, capped at 240 OMR per month (based on the 3,000 OMR salary cap). Expatriates typically have no employee-side SPF contribution.
Why the bank rejects this
A wrong SPF value breaks the salary equation (Net = Basic + Extra − Deductions − SPF), so the bank rejects the row on cross-field rule X01 even if the standalone value is numeric. If the SPF exceeds 240 OMR, it also trips the cap check (V70) because no one should contribute more than 8% of the 3,000 OMR ceiling.
How to fix it
- For Omani employees: multiply the Basic Salary (field 11) by 0.08 (8%) to get the expected SPF. Round to 3 decimal places.
- If the basic salary exceeds 3,000 OMR, cap the SPF at exactly 240.000 OMR do not keep multiplying.
- For expatriate employees, set field 15 to 0.000 unless you know the employer has enrolled them in the non-Omani SPF scheme.
- Check that the nationality split in your payroll system is correct a common cause of X05 is expats wrongly flagged as Omanis (and vice versa).
- If the rate has changed (legislation updates in 2024-2025 adjusted contribution rates), verify with your finance team which rate applies to this pay period.
- Re-run Ujoor; X05 should be green and the overall salary math (X01) should also balance.
How Ujoor catches this
Ujoor calculates the expected 8% for every Omani row and flags any row that deviates more than 1% showing the actual value, the expected value, and the difference. Rule V70 separately catches any SPF over the 240 OMR cap so you never submit a file that breaks the ceiling.
Validate your SIF file now
Drop your file. See every issue inline. Fix it and download a clean file all in your browser.