WPS SIF File Format - UAE Specification Guide

This guide defines the operational structure of UAE payroll SIF files and maps regulatory record requirements to implementation-safe validation behavior.

At-a-Glance Technical Summary

EDR: Employer Detail Record line used for each employee salary entry.

Employer Detail Record

Employee-level salary row containing ID, routing, IBAN, pay period, and monetary fields.

SCR: Salary Control Record line summarizing record count and totals.

Salary Control Record

Single control line appended at file end with totals, counts, and period control values.

Validation Model

Bank + DocSmith Enforcement

Bank-format constraints are mirrored by DocSmith deterministic pre-check and file-level validation.

Employer Detail Record (EDR)

The EDR block carries per-employee payroll values. All required fields must conform to routing, IBAN, date, and numeric constraints before submission.

EDR field map
FieldNameRequirementImplementation Notes
EDR.01Record typeLiteral "EDR".Every employee salary line must begin with EDR.
EDR.02Person IDExactly 14 digits.Primary employee identifier used in WPS file validation.
EDR.03Employee routingExactly 9 digits.Must match a valid bank or exchange routing code.
EDR.04Employee IBANAE-prefixed UAE IBAN, fixed length, checksum-valid.Normalized to uppercase before validation.
EDR.05-06Pay periodYYYY-MM-DD start and end dates.End date must be on/after start and align with salary month.
EDR.07Days paidInteger in range 0-31.Derived from inclusive pay period in standard flow.
EDR.08-09Fixed and variable payNumeric and non-negative.Used in SCR total salary reconciliation.
EDR.10Leave daysInteger in range 0-31.Enforced in input validation and final parser checks.

Salary Control Record (SCR)

The SCR line is the final control record. It binds payroll period, record count, and total salary values to the corresponding EDR lines.

SCR field map
FieldNameRequirementImplementation Notes
SCR.01Record typeLiteral "SCR".Must appear once as summary control record.
SCR.02Employer ID13 digits (left-padded if source value is shorter).Validator enforces exact length in final SIF.
SCR.03Employer routingExactly 9 digits.Must be a valid routing code for payroll institution.
SCR.04File creation dateYYYY-MM-DD.Generated in UAE time context.
SCR.05File creation timeHHMM (24-hour format).Used for submission traceability.
SCR.06Salary monthMMYYYY.Cross-checked against EDR pay period.
SCR.07Record countMust equal number of EDR lines.Mismatch is treated as submission risk.
SCR.08Total salarySum of fixed + variable amounts from EDR lines.Computed with decimal-safe arithmetic.
SCR.09CurrencyAED.Non-AED currency values are rejected by validator policy.

Sample SIF Snippet

Reference shape only. Confirm bank or exchange provider constraints before operational upload.

EDR,12345678901234,702123456,AE070331234567890123456,2026-02-01,2026-02-29,29,4000.00,250.00,0
EDR,12345678901235,702123456,AE070331234567890123457,2026-02-01,2026-02-29,29,4000.00,250.00,0
SCR,1234567890123,702123456,2026-02-14,1130,022026,2,8500.00,AED

Bank vs DocSmith Enforcement

This comparison aligns common bank-oracle checks with the enforcement currently applied by DocSmith generation and validation routines.

FieldMeaningBank RuleDocSmith Enforcement
SCR.02Employer ID13 digits (left-padded with zeros when source ID is shorter).Pre-check accepts 1-13 digits, generator pads to 13, validator enforces exactly 13 digits.
SCR.03Employer routing9-digit bank/exchange routing code.Checked as 9 digits before build and in final SIF validation.
SCR.04File creation dateDate in YYYY-MM-DD format.Generated in UAE time (UTC+4) and validated as YYYY-MM-DD.
SCR.05File creation timeTime in HHMM (24-hour format).Generated in UAE time and validated by HHMM pattern.
SCR.06Salary monthMMYYYY.Validated as MMYYYY and cross-checked against EDR period dates.
SCR.07Record countMust match number of employee records.Generator writes EDR row count, validator compares with observed EDR lines.
SCR.08Total salaryTotal fixed + variable pay across all employees.Computed with decimal-safe arithmetic and verified against EDR aggregates.
SCR.09CurrencyAED.Generator writes AED and validator rejects other values.
EDR.02Person ID14-digit employee identifier.Pre-build and final validator both enforce exactly 14 digits.
EDR.03Employee routing9-digit routing code.Enforced as 9 digits before build and on SIF parse.
EDR.04Employee IBANUAE IBAN (AE prefix, fixed length).Normalized to uppercase; checked for AE prefix, length, and checksum during input validation.
EDR.05-06Pay periodValid start/end dates within payroll month.Dates must be YYYY-MM-DD, end after start, and match SCR salary month.
EDR.07Days paidInteger range 0-31.Generator computes inclusive day count from pay period; parser validates 0-31.
EDR.08-09Fixed and variable payNon-negative numeric values.Input and parser enforce numeric non-negative values before totaling.
EDR.10Leave daysInteger range 0-31.Input validation and parser both enforce integer range.

Pre-Submission Validation Checklist

Establishment ID is correct for the payroll entity.
Salary month mapping is correct (operational month YYYY-MM mapped to SCR MMYYYY).
Routing code values are valid and 9 digits.
Employee count matches SCR record count.
Total salary equals the sum of all EDR fixed + variable values.
No employee has a negative net salary.
Mandatory employer and employee fields are populated.
Numeric fields are formatted correctly before submission.

How SIF Files Are Submitted

1

Generate SIF File

Prepare validated EDR rows and final SCR control line.

2

Upload to Bank WPS Portal

Submit the generated SIF through your approved institution workflow.

3

Bank Validates to MoHRE

Bank-side checks run before onward WPS compliance submission.

Local-Only Mode Active
CSP: connect-src 'self' [LOCKED]