Field reference
Every field on every Payroll form: label in English and Arabic, type, whether it is required, its limits, a valid example and what the system refuses.
On this page (34)
Payroll runs > New runRun record > Freeze inputsRun record (all commands)Run record > ApproveRun record > Exceptions > AcknowledgeRun record > Correction runRun record > Prepare WPS file (SIF)Run record > Prepare payment fileManual inputs > New inputManual inputs > Approve / RejectAdjustments > Void adjustmentPayment file record > Release to bankPayment file record > Bank answerSettlement record > CalculateSettlement record > Sign offSettlement record > Return to preparerSettlement record > Cancel settlementSettlement record > Correct settlementEnd-of-service provisionsEnd-of-service provisions (API)End-of-service provisions > Roll-forwardRule packages > New package / recordRule packages > New package / record (API)Rule package > Add elementRule package > Add element (API)Rule package > Add rulePay groups > New groupPay groups > New group (API)Pay groups (API) > membersPay periods > New periodPay periods > New period (API)Settlement policy recordSettlement policy > ComponentsPayroll app configuration > Fields
Payroll runs > New run
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Period | الفترة | Select (pay period) | Yes | Pay periods of this company shown as '<group> <code>'. The group must be active. Only one regular run per period that is not cancelled | MONTHLY 2026-09 | A period that already has a regular run -> 'Period 2026-09 already has the regular run PR-MONTHLY-2026-09-01 (draft). A second one would pay the period twice; cancel that run or raise an off-cycle or correction run instead.' | |
| Type | النوع | Select | Yes | Regular / Off-cycle. A correction run is raised from the run it corrects; a final run only from a settlement | Regular | Off-cycle | (API) run_type=correction -> 'Choose regular or off-cycle. A correction is raised from the run it corrects.' |
| Run number | رقم المسير | Auto | - | PR-<group code>-<period code>-<nn>, nn = runs of that period + 1 | PR-MONTHLY-2026-09-01 | ||
| Pay group (via period) | مجموعة الرواتب | Rule | - | An inactive group is refused | Period of an inactive group -> 'This pay group is inactive.' |
Run record > Freeze inputs
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Rule package in force | حزمة القواعد السارية | Rule | Yes | The group's package code must have an APPROVED version in force on the period's last day, and its content hash must still match | No approved package -> 'No approved rule package DEMO-AE is in force on 2026-09-30. Approve one under Configuration.' | ||
| People in the run | الموظفون في المسير | Rule | Yes | Named group members, or (no members) everyone on the roster whose contract currency is the group's currency; a leaver with no contract is left out | Group with nobody -> 'No employees fall in this pay group and period.' |
Run record (all commands)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Revision | رقم المراجعة | Hidden number | Yes | Each command carries the revision you are looking at | Act in a stale tab -> 'This payroll run has changed since you opened it (revision 3, you sent 2). Reload and try again.' |
Run record > Approve
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Fingerprint | البصمة | Hidden | Yes | The run fingerprint you reviewed; must equal the run's current one | Recalculated in another tab -> 'The run no longer matches the fingerprint you reviewed.' |
Run record > Exceptions > Acknowledge
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Why is this acceptable? | لماذا هذا مقبول؟ | Text (prompt) | Yes | Max 500. Needs payroll.approve. Not on a closed or cancelled run | Joined mid-month, proration checked | Empty -> 'This is required.'; on a closed run -> 'This run is finished.' |
Run record > Correction run
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Payslip | القسيمة | Select | Yes | A payslip of the original (posted or closed) run | (API) a payslip of another run -> 'Each line must name a payslip of the original run.' | ||
| Element code | رمز العنصر | Text | Yes | Upper-cased; must be an element of the run's rule package | BONUS | 'XYZ' -> 'XYZ is not in the run's rule package.' | |
| Amount (negative reduces) | المبلغ (السالب يخفض) | Decimal | Yes | Non-zero; negative reduces pay | 250.00 | 0 -> 'A correction line needs a non-zero amount.'; 'abc' -> | |
| Reason | السبب | Text | Yes | 5 to 500 characters (button disabled under 5) | Missed September bonus | 'oops' (API) -> 'Say why the run is being corrected.' | |
| Idempotency key | مفتاح عدم التكرار | Hidden | Yes | Sent by the screen; same key + same request returns the first answer; same key + different request refused | (API) no key -> 'A correction is a financial command: send an idempotency key.'; reused -> 'That idempotency key was already used for a different request.' |
Run record > Prepare WPS file (SIF)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| MOHRE establishment number (13 digits) | رقم المنشأة (13 رقماً) | Digits | Yes | Non-digits stripped; exactly 13 digits | 1000000000001 | '12345' -> 'Give the MOHRE establishment number (13 digits) and the paying agent's routing code (9).' | |
| Paying agent routing code (9 digits) | رمز الوكيل (9 أرقام) | Digits | Yes | Exactly 9 digits | 803320101 | '8033' -> same message as above | |
| Each bank's routing code | رموز البنوك | Text area (bank=code per line) | Yes | Bank code = IBAN characters 5-7 (e.g. AE07 033 ... -> 033); each needs a 9-digit routing code. Every employee needs a MOHRE person reference or labour card number in HR | 033=803320101 | Missing a bank -> 'The SIF cannot be written: PI-...: no 9-digit routing code for bank 033'; no labour card -> '...: no MOHRE person reference or labour card number on the employee' | |
| Currency | العملة | Rule | - | WPS pays in AED only | A USD instruction -> 'WPS pays in dirhams; an instruction is in another currency.' |
Run record > Prepare payment file
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Format | صيغة الملف | Hidden | Yes | GENERIC-CSV-1 (button Prepare payment file) or WPS-SIF-1 (button Prepare WPS file) | GENERIC-CSV-1 | (API) format=XYZ -> 'Choose the file format: GENERIC-CSV-1 or WPS-SIF-1.' |
Manual inputs > New input
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee | الموظف | Select | Yes | Employees of this company (list read from HR employees) | EMP-0001 Test Employee A | (API) another company's employee -> 'Choose an employee of this company.' | |
| Period | الفترة | Select | Yes | A pay period of this company | (API) none -> 'Choose a pay period.' | ||
| Element code | رمز العنصر | Text | Yes | Max 30, upper-cased. If an approved package is in force for the period, the element must be in it | BONUS | BONUS | 'XMAS' -> 'The rule package DEMO-AE v1 has no element XMAS.' |
| Amount | المبلغ | Decimal | Yes | Above 0 (or quantity x rate via API); not negative | 1500.00 | 0 -> 'An input needs an amount, or a quantity and a rate.'; -5 -> 'This cannot be below 0.'; 'abc' -> 'Send the amount as a decimal string.' | |
| Source reference (unique) | مرجع المصدر (فريد) | Text | Conditional | Max 64. Blank = system id. Field setting 'Pay input source reference': Required or Hidden. Same source + version cannot be entered twice | BONUS-2026-09-A | Same reference again -> 'The source manual:BONUS-2026-09-A (version 1) is already recorded as input <id> (pending). It cannot be paid twice.' | |
| Source version (API) | إصدار المصدر | Whole number | No | Starts at 1; a newer version supersedes older ones no run has taken; an older version is refused | 1 | 0 -> 'The source version starts at 1.'; 1 after 2 -> 'Version 1 of manual:X is superseded: version 2 has already been recorded.' | |
| Quantity / Rate / Note (API only) | الكمية / المعدل / ملاحظة | Decimal / text | No | Not on the dialog. Quantity default 1, rate 0, both not negative; note max 500 | quantity 2, rate 250 |
Manual inputs > Approve / Reject
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Decider | المعتمد | Rule | - | Needs payroll.approve; a different person from whoever entered it; only a pending input no run has taken | Own input -> 'A pay input is approved by somebody other than whoever entered it.'; twice -> 'This input is already approved.' |
Adjustments > Void adjustment
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Reason | السبب | Text | Yes | 5 to 500 characters; only a Queued adjustment; needs payroll.approve | Duplicate of HR correction | 'no' -> 'Say why the adjustment is being voided.'; an In-a-run one -> 'Only a queued adjustment can be voided; this one is consumed.' |
Payment file record > Release to bank
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Releaser | المُصدر | Rule | - | payroll.pay_release; a different person from the file's preparer; file must be Prepared; stored bytes must match SHA-256; bank details unchanged | Preparer releases -> 'A payment file is released by somebody other than whoever prepared it.' |
Payment file record > Bank answer
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Status per instruction (API) | حالة التعليمة | Choice | Yes | accepted / rejected / unknown, with optional reason (max 300). Screen only offers 'accepted all' / 'rejected all' | status=paid -> 'Status is accepted, rejected or unknown.'; accepted -> rejected -> 'An accepted instruction cannot be reversed here.' |
Settlement record > Calculate
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Settlement policy (resolved) | سياسة التسوية | Rule | Yes | An approved policy covering the HR termination reason on the last day; else finding 'No approved settlement policy covers this termination reason on the last day.' (blocking) |
Settlement record > Sign off
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Specialist note per not-configured component | ملاحظة المختص | Text | Conditional | Every 'Not configured - specialist rule required' component needs a note of 5+ characters; each component once | Not applicable: resignation under 1 year | Blank -> 'Every not-configured component needs the specialist's written decision before sign-off.' with 'Acknowledge notice_pay with a note saying what was decided ...' | |
| Review note (optional) | ملاحظة المراجعة (اختياري) | Text | No | Max 500 |
Settlement record > Return to preparer
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Reason | السبب | Text | Yes | 5 to 500 characters; clears the sign-off | 'no' -> 'Say why the settlement is sent back.' |
Settlement record > Cancel settlement
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Reason | السبب | Text | Yes | Max 500; only before approval | Empty -> 'This is required.'; an approved one -> 'This settlement is approved; this step needs it to be draft or calculated or review or reviewed.' |
Settlement record > Correct settlement
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Lines (payslip, element, amount, note) and reason | بنود التصحيح | Lines | Yes | Same rules as a run correction; only within the policy's correction period after posting | Posted 40 days ago with a 30-day period -> 'The policy accepts corrections for 30 days after posting; this was posted 40 days ago.' |
End-of-service provisions
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Month end | نهاية الشهر | Date | Yes | YYYY-MM-DD; only one proposed run at a time; must be after the last posted one | Last day of this month | 2026-09-30 | Same date as a posted run -> 'A provision is already posted for 2026-09-30 or later; provisions move forward only.'; second proposal -> 'A provision run is already waiting to be posted.' |
| Base components | مكونات الأساس | Text (comma list) | No | Contract earning codes summed as the monthly base | BASIC | BASIC | A code the contract lacks -> line note 'no XYZ on the contract' (not refused) |
| Expense account | حساب المصروف | Account code | Conditional | Must exist in this company's chart; blank = 620200 if it exists | 620200 | '999999' -> 'Name the end-of-service expense and provision accounts of this company's chart.' | |
| Provision account | حساب المخصص | Account code | Conditional | Must exist in this company's chart; blank = 240200 if it exists | 240200 | Unknown code -> same message |
End-of-service provisions (API)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Divisor | المقسوم عليه | Decimal | No | Above zero; day's wage = base / divisor | 30 | 0 -> 'The divisor turns a monthly base into a day's wage; give it above zero.' |
End-of-service provisions > Roll-forward
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| From / To | من / إلى | Date | Yes | YYYY-MM-DD | 1 Jan this year / this month end | (API) start=2026/01/01 -> 'Send the date as YYYY-MM-DD.' |
Rule packages > New package / record
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code | الرمز | Text | Yes | Max 30, upper-cased. A new package with an existing code becomes the next version (v2, v3) | AE-STD | Empty -> 'This is required.'; 31 characters -> 'Keep this to 30 characters.' | |
| Name | الاسم | Text | Yes | Max 160 | UAE standard payroll 2026 | Empty -> 'This is required.' | |
| Arabic name (API) | الاسم العربي | Text | No | Max 160; not on the New package dialog | رواتب الإمارات القياسية | ||
| Country (API) | الدولة | Text | No | Max 3, upper-cased | AE | AE | 'UAEX' -> 'Keep this to 3 characters.' |
| Effective from | ساري من | Date | Yes | YYYY-MM-DD | 2026-10-01 | '01/10/2026' (API) -> 'Send the date as YYYY-MM-DD.' | |
| Effective to (API / close window) | ساري حتى | Date | No | Not before Effective from. On an approved package it can only be shortened | Before start -> 'The package cannot end before it starts.'; later than now set -> 'A window can be shortened, not extended.' | ||
| Legal source reference | المرجع القانوني | Text | Conditional | Max 500; required to approve | Federal Decree-Law 33 of 2021 (test) | Blank at approval -> 'An approved package needs a legal source reference.' | |
| Net pay ledger account | حساب صافي الرواتب | Account code | Conditional | Max 30; required to approve and to post | 2200 | Blank at approval -> 'Set the ledger account net pay is credited to.' | |
| Part-month basis | أساس الشهر الجزئي | Select | Yes | Calendar days of the period / Fixed number of days | Calendar days of the period | Fixed number of days | (API) 'weeks' -> 'Choose calendar or fixed.' |
| Days in the basis | عدد الأيام | Decimal | Conditional | Shown for Fixed; not negative; above 0 to approve | 30 | Fixed with 0 at approval -> 'A fixed day basis needs the number of days.'; -1 -> 'This cannot be below 0.' |
Rule packages > New package / record (API)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Rounding mode | طريقة التقريب | Choice | No | half_up, half_even, down, up | half_up | 'bankers' -> 'Choose a rounding mode from the list.' | |
| Rounding places | منازل التقريب | Whole number | No | 0 to 6 | 2 | 7 -> 'Use between 0 and 6 rounding places.'; 'two' -> 'Rounding places is a whole number.' | |
| Variance limit % | حد الفرق | Decimal | No | Not negative; net change above it raises a review exception | 10 | -1 -> 'This cannot be below 0.' | |
| DEMO flag | تجريبية | Yes/No | No | Marks package, runs and journals '[DEMO RULES]' | No |
Rule package > Add element
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code | الرمز | Text | Yes | Max 30, upper-cased, unique in the package; draft package only | FOOD | Existing code -> 'This package already has an element with that code.'; approved package -> 'An approved package is immutable. Create a new version to change it.' | |
| Name | الاسم | Text | Yes | Max 120 | Food allowance | Empty -> 'This is required.' | |
| Type | النوع | Select | Yes | Earning / Deduction / Employer cost | Earning | (API) 'bonus' -> 'Choose earning, deduction or employer cost.' | |
| Ledger account | حساب الأستاذ | Account code | Conditional | Max 30; required to approve the package | 5210 | Blank at approval -> 'Element FOOD has no ledger account.' | |
| Liability account (employer cost) | حساب الالتزام (تكلفة صاحب العمل) | Account code | Conditional | Required for Employer cost elements to approve | 2220 | Blank on an employer cost -> 'Employer cost DEMO_EMPLOYER needs a liability account.' | |
| prorate / taxable / contributory | يتناسب / خاضع للضريبة / خاضع للاشتراك | Checkboxes | No | prorate = multiplied by the proration factor; taxable and contributory are flags only today | All off | prorate on |
Rule package > Add element (API)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Sequence | الترتيب | Whole number | No | Order on the payslip | 100 |
Rule package > Add rule
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Element code | رمز العنصر | Text | Yes | Upper-cased; the element must already be in the package | FOOD | 'ABC' -> 'Add the pay element to the package first.' | |
| Calculation | الاحتساب | Select | Yes | Fixed amount / Percent of another element / Percent of gross so far / Approved hours x multiplier. Nothing else ('no free-form formula') | Fixed amount | (API) 'formula' -> 'Choose one of: fixed, percent_of_element, percent_of_gross, per_hour_multiplier. No other calculation is supported.' | |
| Order | الترتيب | Whole number | No | Rules run in this order; a percent-of-element rule must come after the rule producing its base | 100 | Base produced later -> at approval 'Rule for X depends on Y, which a later rule produces: the order is not acyclic.' | |
| Amount | المبلغ | Decimal | Conditional | For Fixed; prorated if the element prorates | 300 | ||
| Percent | النسبة | Decimal | Conditional | For percent kinds; not negative to approve | 2 | -5 at approval -> 'Rule for X has a negative percent.' | |
| Base element | العنصر الأساس | Text | Conditional | For Percent of another element; must exist and not be itself | BASIC | Itself -> 'Rule for X refers to itself.'; missing -> 'Rule for X is a percent of Y, which is not a package element.' | |
| Multiplier | المضاعف | Decimal | Conditional | For hours x multiplier; above 0 to approve | 1.25 | 0 -> 'Rule for OVERTIME needs a positive hours divisor and multiplier.' | |
| Hours per month (divisor) | ساعات الشهر (المقسوم عليه) | Decimal | Conditional | Hourly rate = overtime-eligible monthly pay / divisor; above 0 | 240 | 0 -> same message | |
| Cap / Floor | الحد الأعلى / الحد الأدنى | Decimal | No | Optional; floor not above cap | cap 500 | Floor 600, cap 500 -> 'Rule for X has a floor above its cap.'; 'abc' -> 'Send the amount as a decimal string.' |
Pay groups > New group
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code | الرمز | Text | Yes | Max 30, upper-cased, unique in the company | MONTHLY | Existing -> 'A pay group with this code exists.' | |
| Name | الاسم | Text | Yes | Max 120 | Monthly staff | Empty -> 'This is required.' | |
| Currency | العملة | Text | No | Max 3, upper-cased; only contracts in this currency are paid | AED | AED | 'DIRHAM' -> 'Keep this to 3 characters.' |
| Rule package code | رمز حزمة القواعد | Text | No | Max 30; not checked to exist | DEMO-AE |
Pay groups > New group (API)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Frequency | التكرار | Choice | No | monthly, biweekly, weekly; not on the dialog | monthly | 'daily' -> 'Choose monthly, biweekly or weekly.' | |
| Arabic name / Active | الاسم العربي / نشط | Text / Yes-No | No | Inactive group refuses new runs | Active |
Pay groups (API) > members
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Named members | الأعضاء المحددون | Employee list | No | PUT .../groups/{id}/members; none = everyone on the roster in the group currency | Another company's employee -> 'Some employees do not belong to this company.' |
Pay periods > New period
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Group | المجموعة | Select | Yes | A pay group of this company | None -> 'Choose a pay group.' | ||
| Start | البداية | Date | Yes | No overlap with another period of the group | 2026-10-01 | Overlap -> 'This overlaps period 2026-09 (2026-09-01 to 2026-09-30).' | |
| End | النهاية | Date | Yes | Not before Start | 2026-10-31 | Before start -> 'The period cannot end before it starts.' | |
| Input cutoff | إغلاق المدخلات | Date | Conditional | Blank = End date. Field setting 'Input cutoff date': Required / Hidden | 2026-10-25 | ||
| Pay date | تاريخ الدفع | Date | No | Blank = End date; not before Start; is the payment value date | 2026-10-28 | Before start -> 'The pay date cannot precede the period.' |
Pay periods > New period (API)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Period code | رمز الفترة | Text | No | Max 20; blank = YYYY-MM of Start; unique in the group | 2026-10 | Duplicate -> 'This group already has a period with that code.' |
Settlement policy record
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code | الرمز | Text | Yes | Max 30, upper-cased; existing code = next version | AE-SETTLE | ||
| Name | الاسم | Text | Yes | Max 160 | UAE settlement policy | Empty -> 'This is required.' | |
| Arabic name | الاسم بالعربية | Text | Conditional | Max 160. Field setting 'Settlement policy Arabic name': Required / Hidden | سياسة التسوية الإماراتية | ||
| Rule package code | رمز حزمة القواعد | Text | Conditional | Max 30; required to approve | Blank at approval -> 'Name the rule package family that prices its components.' | ||
| Legal source reference | المرجع القانوني | Text | Conditional | Max 500; required to approve | Blank -> 'An approved policy needs a legal source reference.' | ||
| Effective from / Effective to | ساري من / ساري حتى | Date | Yes / No | End not before start; two approved policies for one category may not overlap (a newer version of the same code supersedes the older) | Today (company date) | End before start -> 'The policy cannot end before it starts.'; overlap -> 'Policy X v1 already covers resignation over these dates. Two policies for one category cannot overlap.' | |
| DEMO policy | سياسة تجريبية | Switch | No | Off | |||
| Termination categories | فئات الإنهاء | Tags | Conditional | Closed list: Resignation, Dismissal, Mutual agreement, End of contract, Probation not confirmed, Redundancy, Retirement, Death in service, Absconding, Transfer out, Other; at least one to approve | Resignation | (API) 'fired' -> 'Unknown termination reason: fired.'; none -> 'Choose at least one termination category.' | |
| Recovery cap percent (blank: no cap) | نسبة سقف الاسترداد | Decimal | No | 0 to 100 | 50 | 120 -> 'A share cannot exceed 100.' | |
| Recovery priority | أولوية الاسترداد | Ordered list | No | loan, advance, expense claim, travel advance, asset; each once | Loan, Advance, Expense claim, Travel advance, Asset | (API) duplicate -> 'Priority is a list of: loan, advance, expense_claim, travel_advance, asset, each once.' | |
| Correction period (days after posting) | مدة التصحيح | Whole number | No | Not negative; 0 = no limit | 30 | -1 -> 'Correction period cannot be negative.'; '1.5' -> 'Correction period is a whole number of days.' | |
| Always require specialist review | مراجعة المختص دائماً | Switch | No | On: approval needs the specialist sign-off even with nothing not-configured |
Settlement policy > Components
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Component key | مفتاح المكوّن | Text | Yes | Lower-case letters, digits, underscores, starts with a letter, max 40; unique. Standard: unpaid_salary, leave_encashment, end_of_service, notice_pay | end_of_service | 'End Service' -> 'A component key is lower-case letters, digits and underscores.'; twice -> 'The component end_of_service appears twice.' | |
| Label / Arabic label | الوصف / الوصف بالعربية | Text | No | Max 120; standard keys get default labels | |||
| Pay element | عنصر الأجر | Text | Conditional | Required for every component except unpaid_salary; max 30 | END_OF_SERVICE | Blank -> 'Component end_of_service needs a pay element code.' | |
| Quantity from | الكمية من | Select | Yes | One unit / Leave days / Service days / Completed months / Completed years | leave_encashment: Leave days; end_of_service: Completed years; others: One unit | (API) 'weeks' -> 'Choose one of: none, leave_days, service_days, service_months, service_years, ae_gratuity_days.' | |
| Base elements | عناصر الأساس | Codes | No | Contract elements summed as the monthly base | BASIC | ||
| Leave types | أنواع الإجازة | Codes | No | Leave types whose balance is encashed; blank = all | ANNUAL | ||
| Min. service days | الحد الأدنى لأيام الخدمة | Whole number | No | Not negative; below it the component pays nothing | 0 | 365 | -1 -> 'Minimum service days cannot be negative.'; 'one' -> 'Minimum service days is a whole number.' |
Payroll app configuration > Fields
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Pay input source reference | مرجع مصدر مدخل الراتب | Field rule | - | Required: a manual input needs its source reference. Hidden: not shown, the system makes one, and one sent is refused | |||
| Input cutoff date | تاريخ إغلاق المدخلات | Field rule | - | Required: a period needs its cutoff date. Hidden: not shown, cutoff = period's last day, a date sent is refused | |||
| Settlement policy Arabic name | الاسم العربي لسياسة التسوية | Field rule | - | Required: a policy is not saved without it. Hidden: not shown; a name sent on create or change is refused. Belongs to the Final settlements feature |