Skip to main content
KreupAI Logo
RESOURCE GUIDEApplies to: QatarAuraOS
KB-026

Qatar's Wage Protection System: File Format, Deadlines and the Errors That Trigger Blocks

The Qatar WPS salary file field by field, the seven-day clock, the errors that reject it, and how to clear a Ministry block before it stops your hiring.

Author:Bosco Sabu John
11 min read

Qatar's Wage Protection System: File Format, Deadlines and the Errors That Trigger Blocks

Qatar's WPS requires employers to transfer wages through a Qatari bank within seven days of the due date, using a CSV salary information file keyed to the eight-digit establishment ID and each worker's Qatari ID or visa ID. Miss it and the Ministry stops issuing new work permits and suspends other dealings.

This is for the person who builds and uploads the Qatar salary information file each month, and for the HR manager who finds out something went wrong when a visa application will not go through. After reading it you should be able to construct a compliant file, read a rejection and tell whether the problem sits in your data, in the worker's record at the Ministry or at the bank, and understand what a block stops and how it is lifted.

Qatar's rules are not the UAE's. The identifiers differ, the file is a CSV with a header block rather than a flat record set, the deadline is a rolling seven days rather than a fixed calendar date, and the enforcement lever is a suspension of Ministry dealings rather than a fine schedule.

Who is inside the Qatar WPS

The legal spine is Article 66 of Labour Law No. 14 of 2004 as amended by Law No. 1 of 2015, requiring wages to be paid from the employer's local Qatari account into a Qatari account in the worker's name, plus Ministerial Decision No. 4 of 2015, which established the system. The Clyde & Co summary in Gulf Times records enforcement from 18 August 2015, phased in from employers of 500 or more workers; the ILO's 2019 assessment dates the Decision to 18 February 2015.

Scope follows the Labour Law. The ILO assessment lists exclusions as government employees and the petroleum sector, armed forces, police, seafarers, casual workers, domestic workers, employers' family members, and agricultural workers with exceptions. QIIB describes coverage as all institutions registered with the Ministry, with embassies, Qatar Financial Centre entities and government institutions outside it. The ILO's 2025 regional analysis states that all workers subject to the Labour Code are now covered, the public sector remains excluded, domestic workers may participate voluntarily, and 69,086 companies were registered as of 2023. A QFC entity does not file, but a mainland sister company under the same ownership does, and blocks travel across an owner's establishments.

[NEEDS SOURCE: the current scope and exemption list for the Qatar WPS as published by the Ministry of Labour, and whether the domestic worker position is voluntary or mandatory as at 2026.]

The salary information file: header block, then records

The Qatar file is a .csv, not a fixed-width flat file. Both the Commercial Bank of Qatar file format specification and QNB's publication of the format introduced by QCB Circular 2020/7 describe the same structure: a header row of titles, a header row of values, a titles row for the records, then one row per worker. Ahli Bank puts the minimum at four rows. One employer per file.

#Header fieldTypeUsageWhat it actually is
1Employer EIDNUMBER(8)MandatoryThe establishment's computer card number
2File Creation DateNUMBER(8)MandatoryyyyyMMdd
3File Creation TimeNUMBER(4)Mandatoryhhmm, 24 hour
4Payer EIDNUMBER(8)ConditionalEither this or Payer QID, never both
5Payer QIDNUMBER(11)ConditionalUsed where a person, not an establishment, pays
6Payer Bank Short NameCHAR(4)MandatoryBank code from the annex list
7Payer IBANTEXT(29)MandatoryMust match the WPS registration
8Salary Year and MonthNUMBER(6)MandatoryyyyyMM
9Total SalariesDECIMAL(18,2)MandatoryQAR
10Number of RecordsNUMBER(6)MandatoryMust equal the record rows
11SIF VersionTEXT(35)OptionalSet to 1 for the newer format, blank or 0 for the legacy format

Field 11 surprises people. QNB's note on Circular 2020/7 is explicit: if a version is indicated the system validates against the new rules, and if the field is blank or zero it reads the file as the older format. Two entities in the same group can therefore be submitting to two different rule sets without anyone noticing. QNB records that the legacy format remains supported and that QCB will announce the decommission date separately.

Mandatory record fields across both published specifications: Record Sequence, Employee QID or Employee Visa ID, Employee Name, Employee Bank Short Name, Employee Account, Salary Frequency, Net Salary, Basic Salary, Extra Hours, Extra Income, Deductions. Optional or conditional: Number of Working Days, Payment Type, Notes, four allowance fields (housing, food, transportation, overtime), Deduction Reason Code, and two reserved fields.

The identifier rules decide whether a row loads. Employee QID is NUMBER(11); populate it and leave Visa ID blank. Employee Visa ID is TEXT(12), for a worker without a QID; populate it and leave QID blank. Never both. Employee Name is TEXT(70), at least two segments, matching the ID card or visa. Basic Salary must exceed zero. Deduction Reason Code becomes mandatory once Deductions is non-zero: 01 working hours, 02 work arrangements, 03 harm or damage, 04 advance payment recovery, 99 other, which then requires the Notes field.

Two published discrepancies are worth settling with your bank before go-live. The file format specifications give Salary Frequency as B for bi-weekly or M for monthly, while the Commercial Bank operational guide describes M or W. And Number of Working Days is optional in QNB's table, mandatory in the file format specification with a range of 0 to 31, and produces error 80 in the Commercial Bank generator when omitted. Build to the stricter reading.

[NEEDS SOURCE: the authoritative current field specification for the Qatar SIF published by the Ministry of Labour or Qatar Central Bank, including the definitive Salary Frequency code set and whether Number of Working Days is mandatory. The fields above are taken from agent bank publications of the Ministry and QCB format.]

The file name is itself validated: SIF_[EmployerEID]_[BankShortName]_[yyyyMMdd]_[hhmm].csv, for example SIF_10007230_CBQ_20150119_0952.csv. Date and time in the name must agree with header fields 2 and 3.

The seven-day clock, and what a block actually stops

Employers must transfer wages through the WPS within seven days of their due date. The ILO assessment quotes the obligation in those words, and the 2025 regional analysis describes companies being blocked from government services within eight days of the due pay date, the same clock seen from the enforcement side.

The consequence sits in Article 4 of Ministerial Decision No. 4 of 2015, quoted in the ILO assessment: the Ministry may discontinue the granting of any new work permits, and suspend all dealings with the Ministry, with the suspension not extending to the certification of employment contracts. The assessment adds two facts that matter more than the text. Renewal of existing permits also stops, and the block can be extended to other companies owned by the same sponsor. Lifting is not a system event: the suspension is lifted by decision of the Minister or a delegate, after the employer has proved that all outstanding wages have been transferred in full.

Criminal exposure sits separately, under Article 145 bis: not more than a month in prison and a fine of not less than QAR 2,000 and not more than QAR 6,000, applied per worker per violation, imposed by a court rather than by the Ministry.

[NEEDS SOURCE: whether the seven-day period runs from the contractual due date or from the end of the wage period, and how a wage period other than calendar monthly is treated, from the Ministry of Labour or the text of Ministerial Decision No. 4 of 2015.]

[NEEDS SOURCE: the wage-related provisions of Qatar Law No. 9 of 2026 amending the Labour Law, which is reported to strengthen wage protection provisions and Ministry suspension powers. The text was not retrievable, and no figure in this article has been updated for it.]

Monitoring is rule-driven, not purely complaint-driven. The ILO assessment describes five automatic alert categories from the Ministry's WPS Unit: a mismatch between registered headcount and workers paid, non-payment within seven days, a payment of zero or below QAR 50, overtime hours recorded with no corresponding payment, and deductions exceeding 50 per cent of gross salary. Some alerts trigger an automatic block before any request for explanation, the example given being five unpaid workers in an establishment of ten. The 2025 analysis adds that Qatar's is the only WPS in the region that checks against minimum wage law, set by Law No. 17 of 2020 at QAR 1,000 basic plus QAR 500 housing and QAR 300 food where not provided in kind. Basic Salary is the field that check reads, which is why writing an all-in figure into Basic and zero into Extra Income is a compliance decision, not a formatting preference.

[NEEDS SOURCE: whether the QAR 50 low-payment alert threshold is still in use, and the current minimum wage validation rule applied to the Basic Salary field.]

Why files reject, and who fixes what

The validation tool issued by QCB and the Ministry carries, per the ILO assessment, some 113 possible errors, each with a code and description. The codes below are those visible in the Commercial Bank of Qatar WPS guide, which are the ones payroll teams meet in practice rather than the full set.

FailureCode and messageReal causeFixOwner
File will not load6, file with the same name already existsResubmission reusing the original file nameRegenerate with a new creation time in both the header and the file namePayroll
Header rejected23, columns in the SIF header do not match specificationA column added, removed or reordered by a spreadsheet exportRebuild the header from the specification, never from last month's filePayroll systems
Count mismatch51, Number of Records does not match actual recordsA leaver deleted from the rows without updating header field 10Compute the count from the file at generation, not from headcountPayroll
Whole file rejected at registration check52, no regulated entity registered for this Employer EID, Payer EID and Payer IBANPaying from an account not on the WPS registration, or a group entity paying for a sister companyRegister the paying account, or file separately per establishmentFinance and bank relationship
Row rejected59, neither Employee Qatari ID nor Employee Visa ID specifiedNew joiner whose QID has not issued and whose visa number was never capturedPopulate Visa ID only, and set a task to swap to QID once issuedHR operations
Row rejected70 or 74, bank short name or account not specifiedWorker has no salary account yet, or the account is held in the file as a free-text noteOpen the account before the run; QCB Circular No. 50/2014 requires banks to accept WPS accounts regardless of incomeHR operations
Row rejected80, number of working days not specifiedField treated as optionalAlways populate, zero for a full month of unpaid absencePayroll
Row rejected84 or 88, net or basic salary not specifiedBasic held as zero for an all-inclusive packageBasic must exceed zero and should reflect the contractPayroll and HR
Row rejected92, 96 or 100, extra hours, extra income or deduction not specifiedBlank left where the specification requires an explicit zeroWrite 0.00 rather than leaving emptyPayroll systems
Account numbers become zerosNo error, silently wrong dataThe .csv was opened and saved in ExcelNever open the file in a spreadsheet; regenerate from sourcePayroll

The last row costs the most time, because it produces a file that passes validation and pays the wrong accounts. Note also the boundary of the bank's responsibility: the ILO assessment records that banks provide only an internal check for a mismatch between net and gross less deductions, and quotes Qatar Islamic Bank's terms that it processes salaries as per the soft copy without liability for the contents. Nobody between you and the Ministry checks whether the amounts are right.

New joiners, leavers, unpaid leave and final settlements

New joiners. A worker whose QID has not issued goes into the file on Employee Visa ID, TEXT(12), with the QID column blank. The moment the QID issues, the identifier swaps and the visa field is blanked. Leaving the visa ID in place after a QID exists creates a worker the Ministry cannot match to a registered contract, which is the input to the headcount discrepancy alert.

Unpaid leave. Set Number of Working Days to zero where the whole period was unpaid, and keep the record in the file. A worker silently dropped is a non-payment alert, not a neutral omission.

Leavers and final settlements. Payment Type says what a payment is rather than altering how it is processed. Published values across bank specifications include Normal Payment, Settlement, Partial and Delayed, with Final Settlement appearing in at least one bank's field list. Where a settlement differs materially from the normal monthly figure, the Notes field is where you say why, because the checker's first step is to look for an explanation already in the file before contacting the employer. Gratuity is calculated under the Labour Law and is not a WPS construct; what WPS decides is whether the payment is visible to the Ministry.

[NEEDS SOURCE: whether end of service gratuity and final settlement amounts must be transmitted through the WPS, the Payment Type value the Ministry expects for them, and the deadline for the final payment after the last working day.]

Reconciling the file to what the bank actually credited

No reconciliation happens elsewhere that you can rely on. The ILO assessment states there is no systematic reconciliation of the wage paid against the remuneration stipulated in the contract, and that the WPS cannot currently issue alerts for underpayment against contract terms, in part because the contractual figure has not been entered for most workers. Run four checks monthly:

  • Header field 9, Total Salaries, against the sum of Net Salary across the record rows. The Ministry's count check is on field 10; the amount check is yours.
  • The file total against the debit on the payer IBAN, the only permissible difference being bank charges, which are an employer cost.
  • Per-worker credits confirmed by the bank against the record rows. Anything unmatched is a worker who has not been paid, whatever the file says.
  • Basic Salary in the file against the registered contract, per worker, and workers in the file against workers registered to the establishment ID. Neither check happens upstream, and both are what a dispute turns on.

The monthly WPS run, in order

  1. Freeze the establishment view first. Pull the list of workers registered under the establishment ID, not the payroll list, and reconcile the two. Joiners without a QID, leavers not yet cancelled and transfers in progress all appear here.
  2. Resolve identifiers. Confirm exactly one of QID or Visa ID is populated per worker, and that names carry at least two segments and match the identity document.
  3. Confirm accounts exist. Every worker needs an account and bank short name. Chase openings now, not on upload day.
  4. Set Basic Salary from the contract, not the payslip. It must exceed zero and is the field read against minimum wage.
  5. Classify absences. Unpaid days reduce Number of Working Days; a fully unpaid month is zero, with the worker still in the file.
  6. Populate deductions with reason codes. Any non-zero deduction needs a code, and code 99 needs a note. Check total deductions against 50 per cent of gross, which is an alert threshold.
  7. Generate the file, do not edit it. Produce the CSV from the payroll system and never open it in a spreadsheet.
  8. Set the SIF Version field deliberately, once, and apply the same decision to every establishment in the group.
  9. Validate before upload. Run the validation tool or the bank's generator, fix only the named field, revalidate.
  10. Rename on every resubmission. Change the creation time in the header and the file name together, or you meet error 6.
  11. Upload, capture the acknowledgement, and keep the reference against the pay run record.
  12. Match confirmed credits back to record rows once the bank has processed, and treat unmatched rows as unpaid workers the same day.
  13. Log the timeline: due date, generation, validation, upload, acknowledgement, credit confirmations, with dates and times. This is the evidence if lateness is queried and what you need to lift a block. Correct the cause in the master data, not just in this month's file.

Where teams get this wrong

Treating the seven days as a grace period. It is the outer limit, and the consequence lands immediately after it. A calendar built to submit on day six leaves no room for a rejection, and leavers and unpaid-leave workers dropped from the file read as non-payment against a registered worker.

Running a group as one file. One employer per file. Establishments sharing a finance team still need separate files, separate establishment IDs and separate registered payer accounts, which is what error 52 tests.

Letting a spreadsheet touch the CSV. Leading zeros vanish from the eight-digit establishment ID and the eleven-digit QID, and account numbers can convert to zeros. The file then validates and pays the wrong people.

Ignoring the block radius. A block can extend to other companies owned by the same sponsor, so one establishment's payroll failure can freeze recruitment across an owner's whole portfolio. That is why this reaches the board faster than the sums involved suggest.

What to automate, and what not to

Automate file construction, identifier hygiene and reconciliation. Producing the CSV from structured data removes the whole class of spreadsheet corruption. Enforcing exactly one of QID or Visa ID, two name segments, an explicit zero rather than a blank in numeric fields, a reason code whenever deductions are non-zero, and a comparison of Basic Salary to the registered contract are deterministic checks that belong in a system, as does matching confirmed credits back to rows.

Do not automate the judgement. Whether to hold a file because a worker's status is mid-transfer, how to describe a settlement in the Notes field, whether to pay a disputed amount, and how to respond once a block is in place carry legal weight. Lifting a block is a submission to the Ministry supported by evidence, not a system transaction. Automate the checking, keep a named person on the approval.

Where a system helps

Most Qatar WPS failures are identity failures rather than payment failures: the wrong identifier for a worker's current status, a name that does not match the document, a worker registered to the establishment but absent from the file. AuraOS holds QID, visa ID and their validity against the worker record, so the file is built with the identifier correct on the day of the run rather than the one captured at onboarding, and it reconciles the file's worker list against the establishment's registered list before generation rather than after rejection. See AuraOS for HCM.

FAQ

Is the deadline seven days from the end of the month? Seven days from the wage's due date, which for a monthly wage is set by the contract. The ILO's regional analysis describes blocking within eight days of the due pay date, the same clock seen from the enforcement side. [NEEDS SOURCE: Ministry of Labour confirmation of how the seven days are counted for non-calendar wage periods.]

Can we register for WPS with more than one bank? The file is validated against the registered combination of Employer EID, Payer EID and Payer IBAN, and error 52 is raised where that combination is not registered, so any additional paying account must be registered before use. [NEEDS SOURCE: whether a single establishment may hold WPS registrations with multiple banks simultaneously.]

What is the difference between the old and new file format? The format published under QCB Circular 2020/7 adds a SIF Version field, four allowance fields, a deduction reason code and two reserved fields. If the version field is blank or zero the file is validated against the older rules. QNB records that the older format remains supported and that QCB will announce its decommission separately.

How is a block lifted? Not by submitting a corrected file. Ministerial Decision No. 4 of 2015 provides for the suspension to be lifted by decision of the Minister or a delegate, once the employer has provided proof that all outstanding wages have been transferred in full. You will be producing payment evidence, which is why the run log matters.

Related reading: UAE WPS Payroll Rejections: The Codes That Cause Most Failures, and How to Clear Them (KB-002), and GOSI Contribution Calculation in Payroll (KB-024).

Sources