Field reference
Every field on every Human Resources form: label in English and Arabic, type, whether it is required, its limits, a valid example and what the system refuses.
On this page (126)
Employee record > Overview > IdentificationEmployee record > Overview > Work contactEmployee record > headerEmployee record > Overview > Private informationEmployee record > Overview > Emergency contactEmployee record > Documents > Add a documentEmployee record > Documents > UploadEmployee record > IDs & visas > Add an identifierEmployee record > IDs & visas (API only)Assignment editorAssignment editor > End active assignmentJob & pay > New contractJob & pay > New contract (API defaults)Contract detail > Put in forceActivate employee dialogTransfer dialogTransfer / Suspend / Resume dialogsSuspend dialogProbation decision dialogHR masters (Jobs/Positions/Grades/Contract types)HR mastersJobs / Contract typesPositionsGradesContract typesDepartments / Cost centresApprovals > Reject dialogDelegate my approvalsMy HR > Request a profile changeMy HR > Renew documentHeadcount & FTERenewal campaigns > builderRenewal campaigns > builder (API only)Renewal campaigns > pending renewalApproval escalationEmployee directoryApprovalsDocument expiryEmployee record > Actions > Request leaveApplications > Employees > FeaturesApplications > Employees > FieldsCandidate recordCandidate dialogs (Reject / Withdraw)Offer formOffer form > PayOffer dialogs (Reject / Decline / Withdraw)New hire > Hire detailsNew hire > Onboarding checklistPay change formPay change dialogsApply pay change dialogBenefit plan formStart offboardingTermination record > NoticeTermination record > Clearance dialogTermination record > Recovery dialogTermination record > Leave freeze dialogTermination record > Access cutoff dialogTermination record > Revoke access now / Terminate early / Cancel / ReinstatePlace dispute holdRelease dispute holdOnboarding checklistOnboarding checklist > TasksOnboarding task (employee record)Offboarding checklistTime offEmployees > Time off > Request leaveLeave balancesLeave ledgerLeave type recordAccrual plan recordAccrual plan > Add an expected caseAccrual plan > Approve planAccrual plan > Put the plan in forceHolidaysHolidays > Add holidayCalendar previewAccrual runs > AccrualAccrual runs > ExpiryAccrual runs > Year endAccrual runs > FTE change recomputeAccrual runs > ReviewAllocations > New requestAllocations > Approve / Reject / WithdrawAttendance days > Generate absent daysAttendance daysAttendance day recordCorrections > New correctionCorrections > DecideOvertime approvalsOvertime approvals > Approve overtimeOvertime approvals > Reject overtimeOvertime approvals > Withdraw the approvalTimesheets > New timesheetTimesheet record > LinesTimesheet recordTimesheet record > ReconciliationTimesheet record > DecisionShifts > recordShifts > BreaksShifts > Assign employeeShifts > Sample dayRosters > recordRosters > Assign employeeRosters > Schedule previewWorking calendars > recordAttendance exceptionsAttendance exceptions > footerExpense claim recordExpense claim > Add an expenseExpense claim > Add an expense (API)Expense claim record > Let throughExpense claim record > RefuseTravel > New tripTravel > New trip (API)Expense categories > New categoryExpense categories > New category (API)Travel policies > New policyCompany cards > Load a statementTalent (API) > vacancy decisionTalent (API) > applicationTalent (API) > application attachmentTalent (API) > reviewTalent (API) > goalTalent (API) > skillTalent (API) > session
Employee record > Overview > Identification
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee number | رقم الموظف | Text | Yes | 1-30 characters; starts with a letter/digit/underscore, then letters, digits, . / space -; stored upper-case; unique in the company; locked once the employee is no longer Draft | EMP-T001 | Number of another employee -> 'This HR record conflicts with another saved record. Reload and use a unique code or request ID.'; '-ABC' (API) -> 'Send a JSON object with supported fields and valid value types.' | |
| Legal name | الاسم القانوني | Text | Yes | 1-160 characters; control characters refused | Test Employee One | Empty (API) -> 'Send a JSON object with supported fields and valid value types.' | |
| Arabic name | الاسم بالعربية | Text | No | Max 160; searchable in the directory | موظف تجريبي | ||
| Join date | تاريخ الانضمام | Date | Yes | Locked after Draft; cannot be later than the start of an existing assignment; activation waits until the date is reached (company Dubai date) | 01 Oct 2026 | Move it after an assignment's start -> 'Joining date cannot follow an existing assignment start.'; change on an Active employee -> 'Employee number and joining date cannot change after activation.' |
Employee record > Overview > Work contact
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Work email | البريد الإلكتروني للعمل | No | Max 254; exactly one @, no spaces; NOT unique | test.one@example.com | 'a b@x' -> 'Send a JSON object with supported fields and valid value types.' | ||
| Work phone | هاتف العمل | Phone | No | Max 40; no format check | +97140000001 |
Employee record > header
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Photo | الصورة | Image upload | No | PNG, JPEG or WebP; max 2 MB; max 16 megapixels; re-encoded to a 512 px PNG; needs hr.employee.manage | A 300 KB JPEG | A 3 MB photo -> 'Photographs must be no larger than 2 MB.'; a .gif -> 'Use a PNG, JPEG or WebP image below 16 megapixels.'; a renamed text file -> 'That picture could not be read. Use PNG, JPEG or WebP.' |
Employee record > Overview > Private information
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Nationality | الجنسية | Select (country) | No | Active countries only; list only sent to holders of hr.private.view | India | An inactive country id (API) -> 'Choose an active country.' | |
| Date of birth | تاريخ الميلاد | Date | Conditional | Before today AND before the join date; Required/Hidden by Applications > Employees > Fields; no minimum-age check | 15 Mar 1990 | A date after the join date -> 'Date of birth must precede today and joining date.' | |
| Personal email | البريد الإلكتروني الشخصي | Conditional | Max 254; same shape check as work email; Required/Hidden by the Fields setting | test.one.home@example.com | 'abc' -> 'Send a JSON object with supported fields and valid value types.' | ||
| Personal phone | الهاتف الشخصي | Phone | No | Max 40 | +971500000101 |
Employee record > Overview > Emergency contact
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Emergency contact name | اسم جهة اتصال الطوارئ | Text | Conditional | Max 160; Required/Hidden by the Emergency contact field rule (all three fields together) | Test Relative | ||
| Relationship | صلة القرابة | Text | Conditional | Max 60 | Brother | ||
| Emergency phone | هاتف الطوارئ | Phone | Conditional | Max 40 | +971500000102 |
Employee record > Documents > Add a document
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Document type | نوع المستند | Select | Yes | Active document types of the company (kinds: Passport, Visa, National ID, Work permit, Contract, Medical, Other); Add disabled until chosen | Residence visa | An archived type (API) -> 'That document type is archived.' | |
| Number | الرقم | Text | No | Encrypted at rest; shown only to hr.private.view; no length, format or duplicate check | TEST-VISA-0001 | ||
| Issued on | تاريخ الإصدار | Date | No | YYYY-MM-DD | 01 Oct 2024 | '2024/10/01' (API) -> 'Use a valid YYYY-MM-DD date.' | |
| Expires on | تاريخ الانتهاء | Date | No | Not before Issued on; drives 'Expires in n days' (inside the type's alert days) and the expiry report | 30 Sep 2026 | Before Issued on -> 'A document cannot expire before it was issued.' | |
| Issuing authority | الجهة المُصدِرة | Text | No | Stored max 120 but not checked by the API | GDRFA Dubai |
Employee record > Documents > Upload
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Document file | رفع | File | No | PDF, PNG, JPEG or WebP, checked by content signature; max 8 MB; needs hr.private.manage | visa.pdf 400 KB | A .docx renamed .pdf -> 'Upload a valid PDF, PNG, JPEG or WebP file.'; 9 MB PDF -> 'Keep each document attachment under 8 MB.'; empty file -> 'The attachment is empty.' |
Employee record > IDs & visas > Add an identifier
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Type | النوع | Select | Yes | Passport; UAE: Emirates ID, UID / Unified number, Visa file number, Labour card / work permit, MOHRE person reference; KSA: National ID, Iqama, Border number, Qiwa, GOSI; Oman: Civil ID, Resident card, Labour permit, MoL, SPF | Emirates ID | Unknown code (API) -> 'Choose a valid identifier type.' | |
| Number | الرقم | Text | Yes | Stored max 80; unique per employee + type + value; NO Emirates ID format check (784-YYYY-NNNNNNN-N) | 784-1990-1234567-1 | Empty -> 'Enter the number.' | |
| Issued on | تاريخ الإصدار | Date | No | YYYY-MM-DD | 01 Jan 2025 | '01-01-2025' (API) -> 'Send the date as YYYY-MM-DD.' | |
| Expires on | تاريخ الانتهاء | Date | No | Not before Issued on; drives the 120/90/60/30/15/7-day bands | 31 Dec 2026 | Before Issued on -> 'It cannot expire before it was issued.' | |
| Issuing authority | جهة الإصدار | Text | No | Stored max 120, not checked | ICP |
Employee record > IDs & visas (API only)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Primary / Verified / Country / Note | أساسي / موثّق / الدولة / ملاحظة | Checkbox / Select / Text | No | Accepted by the API but not on the form; setting Primary clears Primary on the other identifiers of that type | is_primary=true |
Assignment editor
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee | الموظف | Select | Yes | Locked when opened from a record or once saved; cannot be moved to another employee | Change employee on a saved draft (API) -> 'An assignment cannot move to a different employee.' | ||
| Department | القسم | Select | Yes | Active department; must equal the position's department; its open/close dates must cover the assignment | Department other than the position's -> 'Assignment department must match the position department.'; department closing before the assignment ends -> 'Reference ends before the assignment; set an explicit assignment end date.' | ||
| Position | المنصب | Select | Yes | Active position whose job is active | Archived position -> 'Choose an active reference.' | ||
| Grade | الدرجة | Select | Conditional | If the position has a grade it must be that grade | Another grade -> 'Choose the grade assigned to this position.' | ||
| Manager | المدير | Select (employee) | No | Not the employee; not a Draft employee; no reporting cycle during the dates | Themselves -> 'An employee cannot report to themselves.'; a draft -> 'Activate the manager's employee record first.'; A->B->A -> 'This manager creates a reporting cycle during the assignment interval.' | ||
| Working calendar | تقويم العمل | Select | Yes | Active calendar | |||
| Contract type | نوع العقد | Select | Yes | Active contract type | |||
| Cost centre | مركز التكلفة | Select | No | Active cost centre covering the dates | Inactive -> 'Choose an active cost centre.' | ||
| Valid from | ساري من | Date | Yes | Not before the join date; once the employee is active a new assignment cannot be activated with a past start | Today | Before join date -> 'Assignment cannot start before the employee joins.'; past date on an active employee -> 'An activated employee's new assignment cannot rewrite past dates. Start today or later.' | |
| Valid to | ساري حتى | Date | No | On or after Valid from; empty = open-ended | Before Valid from -> 'End date must be on or after the start date.' | ||
| FTE | مكافئ الدوام الكامل | Decimal | Yes | > 0 and <= 1, 4 decimals; employee's overlapping active assignments sum <= 1.0; position's occupied FTE <= its capacity | 1.0000 | 0 or 1.5 (API) -> 'Send a JSON object with supported fields and valid value types.'; 0.6 + 0.5 overlapping -> 'Concurrent assignments cannot exceed 1.0 employee FTE.' |
Assignment editor > End active assignment
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Last effective date | آخر تاريخ سريان | Date | Yes | Today or later, not before start, earlier than any existing end | Yesterday -> 'An active assignment can end only today or later and not before its start.'; later than the existing end -> 'Use a date earlier than the existing end date; create a successor to extend.' | ||
| Reason for ending assignment | سبب إنهاء التعيين | Text | Yes | Max 500; End button disabled while empty | Empty (API) -> 'A reason is required.' |
Job & pay > New contract
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Starts | تاريخ البداية | Date | Yes | Create disabled without it | 01 Oct 2026 | Missing (API) -> 'Send the date as YYYY-MM-DD.' | |
| Ends | تاريخ النهاية | Date | No | Not before Starts; empty = open (unlimited) | Before Starts -> 'A contract cannot end before it starts.' | ||
| Employment type | نوع التعاقد | Select | Yes | Full time, Part time, Temporary, Project, Seasonal, Remote, Internship, Contractor (server also accepts casual) | Full time | 'freelance' (API) -> 'Choose a valid employment type.' | |
| Worker category | فئة العامل | Select | Yes | National, GCC national, Expatriate | Expatriate | Other (API) -> 'Choose national, GCC national or expatriate.' | |
| Salary structure | هيكل الراتب | Select | No | Its lines are COPIED into the contract (later edits to the structure do not change it) | None | Standard UAE | |
| Probation (months) | فترة التجربة (أشهر) | Number | No | Calendar months from the start: end = start + n months - 1 day; free text box (not a number box) | 6 | 'six' -> request fails (not refused with a message) |
Job & pay > New contract (API defaults)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Contract number / currency / hours / notice | رقم العقد / العملة / الساعات / الإشعار | Text / Number | No | Number generated from the sequence when blank; currency AED; 8 hours x 5 days; notice 30/30 days; not on the form | AED, 8 x 5, 30/30 |
Contract detail > Put in force
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Signed on | تاريخ التوقيع | Date | No | Accepted by the API on activate; the screen sends nothing, so it stays empty | Activate when another active contract overlaps -> 'Contract <no> is already in force for this period. End it first.' |
Activate employee dialog
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Readiness checks / acknowledgements | فحوص الجاهزية | Checklist + checkboxes | Yes | Blocked: join date, assignment covering today, calendar, manager (waivable), signed contract in force, required documents. Warning (tick to acknowledge): unsigned contract, identity incomplete, onboarding open, no bank account | Warning not ticked (API) -> 'Acknowledge the warnings before activating.'; blocked item -> 'Activation is blocked.' | ||
| Reason (waive manager) | السبب | Text | Conditional | Max 500; required when waiving the manager (top of the organisation) | Waive with empty reason -> 'Say why this employee has no manager.' |
Transfer dialog
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Effective from | ساري من | Date | Yes | Today or later; after the source assignment's start | Yesterday -> 'A change cannot start in the past. Choose today or later.' | ||
| Assignment to change / New position / Grade / Manager / Working calendar / Contract type / Cost centre | التعيين المراد تغييره / المنصب الجديد | Selects | Conditional | Blank keeps the current value; at least one must differ; assignment choice needed when two are in force | Nothing changed -> 'Nothing changes. Choose a different position, manager, grade, calendar, contract type, cost centre or FTE.' |
Transfer / Suspend / Resume dialogs
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Reason | السبب | Text | Yes | Max 500 | Empty -> 'A reason is required.' |
Suspend dialog
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Suspend from (optional) / Expected return (optional) | الإيقاف من / العودة المتوقعة | Date | No | Start today or later (future = scheduled); return after start; one scheduled at a time | Past start -> 'A suspension cannot start in the past.'; return before start -> 'The expected return must follow the suspension.' |
Probation decision dialog
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Outcome | النتيجة | Radio | Yes | Confirm / Extend / Terminate (terminate starts a draft termination someone else approves) | |||
| New probation end date | تاريخ نهاية التجربة الجديد | Date | Conditional | Extend only; after the current end; within 12 months of the probation start | Not later than current -> 'Choose a new end date after the current one.'; 14 months -> 'Probation cannot run past 12 months (<date>).' | ||
| Last working day | آخر يوم عمل | Date | Conditional | Terminate only |
HR masters (Jobs/Positions/Grades/Contract types)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code | الرمز | Text | Yes | 1-30; starts with letter/digit/_; then letters, digits, . / space -; upper-cased; unique per kind; cannot change once used by an active assignment/position | SALES-EXEC | Duplicate -> 'This HR record conflicts with another saved record. Reload and use a unique code or request ID.'; bad pattern -> 'Use the supported fields and valid values for this master.' |
HR masters
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Name | الاسم | Text | Yes | 1-120 | Sales executive | ||
| Arabic name | الاسم بالعربية | Text | No | Max 120 | تنفيذي مبيعات | ||
| Status | الحالة | Select | Yes | Active / Archived; cannot archive while used by an active position or current/future assignment | Archive a used position -> 'This master is used by an active position or current/future assignment.' |
Jobs / Contract types
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Description | الوصف | Text area | No | Max 500 |
Positions
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Job | الوظيفة | Select | Yes | Active job | Archived job -> 'Choose an active reference.' | ||
| Department | القسم | Select | Yes | Active department | Inactive -> 'Choose an active department.' | ||
| Grade | الدرجة | Select | No | Active grade; forces that grade on assignments | |||
| Capacity · FTE | السعة · مكافئ الدوام الكامل | Decimal | Yes | > 0 to 10000, 4 decimals; caps the summed FTE of overlapping active assignments | 2.0000 | 0 -> 'Use the supported fields and valid values for this master.' |
Grades
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Rank | الترتيب | Integer | Yes | 0-1000 | 0 | 5 |
Contract types
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Probation (months) | فترة التجربة (أشهر) | Integer | No | 0-12; can change even when in use | 0 | 6 | 13 -> 'Use the supported fields and valid values for this master.' |
Departments / Cost centres
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code | الرمز | Text | Yes | 2-30 of A-Z 0-9 _ -; upper-cased; unique per dimension | HR-OPS | 'A' -> 'Use 2–30 letters, digits, underscores or hyphens.'; duplicate -> 'Another value of this dimension already uses that code.' | |
| Name / Arabic name | الاسم / الاسم بالعربية | Text | Name | Max 120 each | Empty name -> 'Enter valid text (maximum 120 characters).' | ||
| Rolls up to | يندرج تحت | Select | No | Same dimension; not itself; no cycle | Own child -> 'Dimension hierarchies cannot form a cycle.' | ||
| Open from / Closed after | مفتوح من / مغلق بعد | Date | No | Closed after not before Open from; assignments must fit inside | Closed before opened -> 'The closing date cannot precede the opening date.' |
Approvals > Reject dialog
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Reason (the requester sees this) | السبب (يراه مقدم الطلب) | Text | Yes | Reject disabled while empty; max 500 | Empty (API) -> 'Say why you are rejecting this.' |
Delegate my approvals
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Delegate employee number | رقم موظف المفوض إليه | Text | Yes | Active or probation employee with a login; not yourself; only a current manager may delegate; leave scope only | EMP-T002 | Unknown number -> 'Choose an active employee with system access.'; yourself -> 'You cannot delegate approvals to yourself.'; not a manager -> 'Only a current manager can delegate approvals.' | |
| From / To | من / إلى | Date | Yes | To >= From and >= today; no overlap with an existing delegation to the same person | To in the past -> 'Choose a current or future delegation period.'; overlap -> 'This delegation overlaps an existing one.' | ||
| Reason | السبب | Text | No | Max 500 |
My HR > Request a profile change
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Work phone / Personal phone / Emergency phone | هاتف العمل / الهاتف الشخصي / هاتف الطوارئ | Phone | No | Max 40 each; only filled boxes are sent; at least one change | +971500000201 | All boxes empty -> button does nothing (API: 'Send a JSON object with supported fields and valid value types.') | |
| Personal email | البريد الشخصي | No | Max 254; hidden (and refused) when the company hides Personal email | me.test@example.com | 'me@' -> 'Send a JSON object with supported fields and valid value types.' | ||
| Emergency contact | جهة اتصال الطوارئ | Text | No | Max 160; hidden when Emergency contact is hidden; no Relationship box on this form | |||
| Reason | السبب | Text area | No | Max 500 |
My HR > Renew document
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| New number / Issued on / Expires on / Issuing authority | الرقم الجديد / تاريخ الإصدار / تاريخ الانتهاء / جهة الإصدار | Text / Date | No | Pre-filled from the current document; number max 80, authority max 120; expiry not before issue | Expiry before issue -> 'A document cannot expire before it was issued.' | ||
| Reason | السبب | Text | Yes | Max 500 | Empty (API) -> 'Say why this document is being renewed.' | ||
| PDF or image evidence (up to 5 files) | ملفات PDF أو صور (حتى 5 ملفات) | Files | Yes | 1-5 files; PDF/PNG/JPEG/WebP; each <= 8 MB; together <= 20 MB; one pending renewal per document | No file -> 'Attach at least one renewal document.'; 6 files -> 'Attach no more than 5 files.'; 3 x 8 MB -> 'Keep the combined renewal evidence under 20 MB.'; second request -> 'A renewal request is already pending.' |
Headcount & FTE
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| As of | كما في | Date | Yes | Any date; inclusive assignment dates | Company today | 30 Sep 2026 | |
| Department | القسم | Select | No | Departments only | All departments | A cost centre id (API) -> 'Choose a department.' |
Renewal campaigns > builder
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Campaign name | اسم الحملة | Text | Yes | 1-120 | Q4 visa renewals | ||
| Expiry from / Expiry to | الانتهاء من / الانتهاء إلى | Date | Yes | To on or after From; default today; any change clears the preview | 01 Nov 2026 - 31 Dec 2026 | To before From -> 'Send a JSON object with supported fields and valid value types.' | |
| Employee message | رسالة الموظف | Text area | No | Max 500; empty = 'Please submit updated document evidence from My HR.' |
Renewal campaigns > builder (API only)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Document type | نوع المستند | Select | No | Accepted by the API (document_type_id) but not on the screen; empty = all types |
Renewal campaigns > pending renewal
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Decision note | ملاحظة القرار | Text | Conditional | Max 500; required to Reject | Reject with empty note (API) -> 'Say why the renewal was rejected.' |
Approval escalation
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Enable scheduled escalation | تفعيل التصعيد المجدول | Checkbox | - | Off: the scheduler skips this company | On | ||
| Response time (hours) | مهلة الاستجابة (بالساعات) | Number | Yes | 1-720 whole hours; also re-times open approval notices | 48 | 24 | 0 or 721 (API) -> 'Send a JSON object with supported fields and valid value types.' |
| Notify workspace administrators | إشعار مسؤولي مساحة العمل | Checkbox | - | Admins get 'HR approval is overdue' | On |
Employee directory
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Search | بحث | Text | No | Max 160; matches employee number, legal name, Arabic name, work email (contains, case-insensitive); more than 2000 matches refused | T001 | Search matching 2001+ rows -> 'More than 2000 employees match. Narrow the search before loading.' | |
| Status filter | الحالة | Choice | No | Draft, Probation, Active, Suspended, Notice, Terminated | state=foo (API) -> 'Choose draft, probation, active, suspended, notice or terminated.' | ||
| Cards / List | بطاقات / قائمة | Toggle | - | Remembered in this browser only | Cards |
Approvals
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Scope | النطاق | Chips | - | Awaiting me / My team / Delegated to me / All (HR); each shows its count | Awaiting me | scope=x (API) -> 'Choose mine, team, delegated or all.' | |
| Type | النوع | Chips | No | Only types with items are shown; click again to clear | type=x (API) -> 'Choose a supported approval type.' | ||
| Overdue only | المتأخرة فقط | Checkbox | No | Older than the company's response time (default 48 h) |
Document expiry
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Expiry window | نافذة الانتهاء | Chips | - | Expired / Next 30 days / 31-60 / 61-90 / All within 90 days | Next 30 days | bucket=12 (API) -> 'Choose expired, 30, 60, 90 or upcoming.' |
Employee record > Actions > Request leave
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Leave type / From / To | نوع الإجازة / من / إلى | Select / Date | Yes | Active leave types; To not before From (rules owned by the leave module) | Annual leave, 12-14 Oct 2026 |
Applications > Employees > Features
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Feature On/Off | تشغيل/إيقاف الميزة | Toggle | - | 'Employees, contracts and assignments' is always on; Off refuses POST/PATCH/DELETE on the feature's routes ('capability_disabled') and removes its menus; reads still work | |||
| Time off (hr.leave) | الإجازات | Toggle | - | Off: POST/PATCH/DELETE on leave, hr/leave-cancellation-requests and ess/leave are refused with 'capability_disabled'; menus Time off, Leave balances, Leave ledger and ESS leave go; reads and history still work | On | Off | |
| Time and attendance (hr.attendance) | الحضور والوقت | Toggle | - | Off: changes refused on attendance, ess/attendance and ess/timesheets; the Time & attendance group, Attendance exceptions and ESS attendance menus go | On | Off |
Applications > Employees > Fields
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Date of birth / Personal email / Emergency contact mode | تاريخ الميلاد / البريد الشخصي / جهة اتصال الطوارئ | Select | - | Hidden / Optional / Required; Hidden: box gone and a new value refused (also in profile change requests); Required: private information not saved without it | Optional |
Candidate record
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Full name | الاسم الكامل | Text | Yes | 1-160 characters; spaces trimmed | Layla Hassan | Blank -> 'Enter the candidate's name.' | |
| Arabic name | الاسم بالعربية | Text | No | Max 160 | ليلى حسن | ||
| البريد الإلكتروني | Text | No | Max 254; exactly one @, no spaces | layla.test@example.com | 'layla@@x' -> 'Use a valid email address.' | ||
| Phone | الهاتف | Text | No | Max 40 | +971 50 000 0001 | ||
| Nationality | الجنسية | Select | No | Active country | Jordan | Inactive country -> 'Choose an active country.' | |
| Source | المصدر | Select | Yes | Referral, Agency, Job portal, Walk-in, Social media, Internal, Other | Other | Referral | Value outside the list (API) -> 'Choose where the candidate came from.' |
| ID type | نوع الهوية | Select | Conditional | Passport, Emirates ID, National ID, Iqama, Civil ID, UID / Unified number, Other. Needed whenever an ID number is typed | Passport | Number with no type -> 'Say which kind of identifier this number is.' | |
| ID number | رقم الهوية | Text | Conditional | Max 80. Shown only with hr.private.view; writing needs hr.private.manage. Compared ignoring spaces, dashes, dots, slashes and case; must be set before the hire. Unique among live candidates | P1234567 | Same number as another live candidate -> 'CAN-0002 is already this person (same identifier).'; no private right -> 'Recording an identifier needs the private personnel permission.' | |
| Position applied for | المنصب المتقدَّم له | Select | No | Active position | Sales executive | Archived position -> 'Choose an active reference.' | |
| Expected join date | تاريخ الانضمام المتوقع | Date | No | Valid date | 2026-11-01 | ||
| Candidate agrees to keep details (consent) | موافقة المرشح على الاحتفاظ بالبيانات | Checkbox | No | Stamps the consent date once, the first time it is ticked; unticking clears the date and the retention date | Off | ||
| Keep details until | الاحتفاظ بالبيانات حتى | Date | Conditional | Only with consent ticked | 2027-10-02 | Date without consent -> 'Record the candidate's consent before setting a retention date.' | |
| Note | ملاحظة | Text area | No | Max 500 |
Candidate dialogs (Reject / Withdraw)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Reason | السبب | Text area | Yes | Max 500 | Accepted another offer | Blank -> 'Say why.'; candidate with a live offer -> 'Withdraw offer OFR-0003 first.' |
Offer form
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Candidate | المرشح | Select | Yes | Not hired / rejected / withdrawn | CAN-0001 Layla Hassan | Rejected candidate -> 'A rejected candidate cannot receive an offer.' | |
| Position | المنصب | Select | Yes | Active position with an active job; choosing it fills the grade | Sales executive | Archived -> 'Choose an active reference.' | |
| Department | القسم | Read-only | No | Follows the position | From position | ||
| Grade | الدرجة | Select | No | Active grade; if the position has a grade it must be that grade | G5 | Other grade -> 'Choose the grade assigned to this position.' | |
| Reporting manager | المدير المباشر | Select | No | An employee who is working (not Draft or Terminated) | EMP-T001 | Terminated employee -> 'Choose a manager who is working.' | |
| Working calendar | تقويم العمل | Select | Yes | Active calendar | UAE 5-day week | ||
| Contract type | نوع العقد | Select | Yes | Active contract type; supplies the default probation | Limited | ||
| Employment type | نوع التوظيف | Select | Yes | Full time, Part time, Temporary, Project, Seasonal, Casual, Remote, Internship, Contractor | Full time | Full time | Other value (API) -> 'Choose a valid employment type.' |
| Start date | تاريخ المباشرة | Date | Yes | Not in the past while the offer is a draft; must still be today or later when hiring | 2026-11-01 | Yesterday -> 'The start date cannot be in the past.'; hire after it passed -> 'The offer's start date has passed. Withdraw it and make a new offer.' | |
| FTE | مكافئ الدوام الكامل | Decimal | Yes | Above 0 up to 1, max 4 decimals | 1 | 1.0000 | 1.5 (API) -> 'Check the highlighted fields.' with the field named |
| Probation (months) | فترة التجربة (أشهر) | Integer | No | 0-12; blank takes the contract type's probation; the end date is shown (calendar months) | Contract type's | 6 | 13 -> '0 to 12 months.' |
| Offer expires on | ينتهي العرض في | Date | No | On or before the start date; acceptance after it is refused | 2026-10-20 | After start -> 'An offer must expire on or before the start date.'; accept after expiry -> 'This offer has expired.' | |
| Note | ملاحظة | Text area | No | Max 500 |
Offer form > Pay
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Currency | العملة | Text | No | Three capital letters; default is the company currency | AED | AED | 'DIRHAM' -> 'Use a three-letter currency code.' |
| Earning | المستحق | Select | Yes (per line) | Active earning pay component, once per offer; max 30 lines | BASIC | Deduction component -> 'An offer proposes earnings only.'; repeated -> 'A component appears once.'; blank -> 'Choose an active pay component.' | |
| Monthly amount | المبلغ الشهري | Decimal | Yes (per line) | 0 to 1,000,000,000, at most two decimals; Total per month is the sum | 9000.00 | 9000.555 -> 'Use a positive amount with at most two decimals.'; -5 -> same message |
Offer dialogs (Reject / Decline / Withdraw)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Reason | السبب | Text area | Conditional | Required for Reject and Withdraw (max 500); optional note for Decline | Budget frozen | Reject blank -> 'Say why the offer is rejected.'; withdraw blank -> 'Say why the offer is withdrawn.' |
New hire > Hire details
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee number | رقم الموظف | Text | No | Max 30; starts with a letter, digit or underscore; upper-cased; blank = next number automatically | Assigned automatically | EMP-T020 | Number already used -> the hire is refused as a duplicate employee number |
| Work email | بريد العمل | Text | No | Max 254; one @, no spaces | layla.hassan@test.example | 'no-at-sign' -> 'Use a valid email address.' |
New hire > Onboarding checklist
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Checklist to run | القائمة التي ستُنفَّذ | Select | No | Active checklist; blank = the one for the contract type, else the company default, else none | Matching checklist | Standard onboarding | Archived (API) -> 'Choose an active onboarding checklist.' |
Pay change form
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee | الموظف | Select | Yes | Probation, Active, Notice or Suspended only; cannot be changed after saving | EMP-T010 | Draft or terminated employee -> 'Pay changes are for people who are working (on probation, active, on notice or suspended).' | |
| What is changing | ما الذي يتغير | Select | Yes | Salary, Allowance, Benefit, Loan or advance | Salary | Salary | |
| Effective from | ساري من | Date | Yes | Not before the join date; not more than 730 days ahead; a contract must cover it. Earlier than a frozen payroll period = retroactive | 2026-11-01 | Before joining -> 'A pay change cannot start before the employee joined.'; 3 years ahead -> 'A pay change cannot start more than two years ahead.'; no contract -> 'No contract covers 2026-11-01, so there is nothing to version.' | |
| Pay component / Benefit plan / Loan or advance | مكوّن الأجر / خطة المزايا / القرض أو السلفة | Select | Yes | Lists what is in force on the date with its current figure. Salary needs a line already on the contract; Allowance may add a new component; Loan = the employee's active loans | BASIC | Component not on contract (salary) -> 'This contract has no BASIC line to change. Use an allowance change to add a new pay component.'; deduction component -> 'A salary or allowance change is to an earning; use a benefit or loan change for deductions.' | |
| In force on that date | الساري في ذلك التاريخ | Read-only | No | Worked out by the server from the contract and earlier versions | |||
| New monthly amount / New instalment | المبلغ الشهري الجديد / القسط الجديد | Decimal | Yes (salary, allowance, loan) | 0 to 1,000,000,000, two decimals; zero allowed for salary/allowance, loan instalment must be above 0 and not above what is still owed; must differ from what is in force | 9900.00 | Same as now -> 'That is what is already in force from that date; there is nothing to change.'; loan 5000 on 4500.00 owed -> 'The instalment cannot be more than the 4500.00 still owed.'; 0 on loan -> 'The amount must be more than zero.' | |
| Employee's share / Employer's share | حصة الموظف / حصة صاحب العمل | Read-only | No | Benefit only: shown from the plan, never typed | |||
| End this benefit | إنهاء هذه الميزة | Checkbox | No | Benefit only: ends the enrolment (new shares 0); the employee must be enrolled on that date | Off | Not enrolled -> 'This employee is not enrolled in the plan on that date.' | |
| Reason | السبب | Text area | Yes (to submit) | Max 500; may be left blank on a draft | Annual review 2026 | Submit blank -> 'A reason is required before a pay change is submitted.' |
Pay change dialogs
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Reason (reject / withdraw / apply) | السبب | Text area | Conditional | Reject: required. Apply of a retroactive change: required (the request's own reason counts). Withdraw: optional | Reject blank -> 'Say why the change is rejected.'; retro apply blank -> 'Say why a retroactive change is being applied.' |
Apply pay change dialog
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| I understand this queues adjustments (acknowledge retro) | أُقرّ بأن هذا ينشئ تسويات | Checkbox | Conditional | Required when the date reaches a period payroll has frozen | Off | Not ticked -> 'This change starts in a period payroll has already frozen. Applying it does not rewrite that pay: it queues adjustments for the next open run. Acknowledge that to continue.' |
Benefit plan form
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code | الرمز | Text | Yes | 1-30; letter/digit/_ first; upper-cased; unique; frozen once any pay change used the plan | MED-GOLD | Duplicate -> 'A benefit plan with code MED-GOLD already exists.'; renaming a used plan -> 'A plan with history keeps its code; archive it and create a new one.' | |
| Name | الاسم | Text | Yes | 1-120 | Gold medical | ||
| Arabic name | الاسم بالعربية | Text | No | Max 120 | تأمين طبي ذهبي | ||
| Employee's monthly share | حصة الموظف الشهرية | Decimal | No | Two decimals, 0 to 1,000,000,000; needs a payroll mapping if above 0 | 0 | 150.00 | -1 -> 'Use a positive amount with at most two decimals.'; 150 with no component -> 'A share needs the pay component that carries it into payroll.' |
| Employer's monthly share | حصة صاحب العمل الشهرية | Decimal | No | Same as above | 0 | 300.00 | |
| Starts | يبدأ | Date | Yes | Enrolments before it are refused | 2026-01-01 | ||
| Ends | ينتهي | Date | No | Not before Starts | 2026-12-31 | Before start -> 'The plan cannot end before it starts.' | |
| Active (open to new enrolments) | نشطة (مفتوحة لاشتراكات جديدة) | Checkbox | No | Archived plans cannot be chosen on a pay change | On | ||
| Worker class | فئة العامل | Checkboxes | No | Worker categories of the contract (e.g. national, expatriate); none ticked = every class | Expatriate | Employee of another class -> 'Plan MED-GOLD is for expatriate staff; this employee's contract is national.' | |
| Minimum months of service | الحد الأدنى لأشهر الخدمة | Integer | No | 0-600; counted in calendar months from the join date to the effective date | 0 | 12 | Join 15 Mar 2026, effective 1 Sep 2026 -> 'Plan MED-GOLD needs 12 months of service by the effective date; this employee will have 6.' |
| Employee's share is carried by | تُحمَّل حصة الموظف على | Select | Conditional | Active component of kind Deduction | Earning component -> 'This share is carried by a deduction component.' | ||
| Employer's share is carried by | تُحمَّل حصة صاحب العمل على | Select | Conditional | Active component of kind Employer cost | Deduction component -> 'This share is carried by a employer cost component.' (wording as the code builds it) |
Start offboarding
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee | الموظف | Select | Yes | Active, Probation or Suspended only; one open separation per person | EMP-T010 | Already leaving -> 'This employee already has a separation in progress.'; Draft/Terminated -> 'Only somebody currently employed can be given notice.' | |
| Reason | السبب | Select | Yes | Resignation, Dismissal, Mutual agreement, End of contract, Probation not confirmed, Redundancy, Retirement, Death in service, Absconding, Transfer out of the company, Other | Resignation | Resignation | Unknown (API) -> 'Choose a valid reason: resignation, dismissal, ...' |
| Notice given on | تاريخ الإشعار | Date | No | Blank = today (Dubai) | Today | 2026-10-02 | |
| Last working day | آخر يوم عمل | Date | Yes | Not before the notice date and not before the join date | 2026-11-01 | Before notice -> 'The last day cannot be before the notice.'; blank -> 'Say which day is their last.'; before joining -> 'The last day cannot be before they joined.' | |
| Effective date | تاريخ السريان | Date | No | Not before the last day; blank = last day | Last day | 2026-11-01 | Before last day -> 'The termination cannot take effect before the last day.' |
| Notice required (days) | الإشعار المطلوب (أيام) | Integer | No | 0-365; only used when no offboarding checklist applies; otherwise the checklist wins and the field is locked | 0 | 30 | |
| Notes | ملاحظات | Text area | No | Max 500 | |||
| Why is the notice waived? (waiver request) | لماذا يُتنازل عن الإشعار؟ | Text area | Conditional | Only when notice served is less than required and the checklist allows waiver; a second person decides | Blank -> 'Say why the notice is waived.'; checklist forbids -> 'The checklist does not allow the notice to be waived.'; nothing short -> no waiver is recorded |
Termination record > Notice
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Notice paid in lieu | إشعار مدفوع بدلاً من الخدمة | Checkbox | No | Counts a short notice as satisfied | Off |
Termination record > Clearance dialog
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Decision (Cleared / Blocked / Not applicable / Request a waiver / Back to pending) | القرار | Radio | Yes | Only while the separation is in notice or cleared | Cleared | Draft record -> 'Clearance applies to a separation in notice; this one is draft.' | |
| What is outstanding / Why should this be waived / Note | ما المتبقي / لماذا يُتنازل عنه / ملاحظة | Text area | Conditional | Required for Blocked and Request a waiver; max 500 | Blocked blank -> 'Say what is outstanding.'; waiver blank -> 'Say why this clearance should be waived.' |
Termination record > Recovery dialog
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Decision | القرار | Radio | Yes | The asset has been returned (assets only) / Recover from final pay / Request a waiver | Return a loan -> 'Only an asset can be marked returned by HR.' (first words) | ||
| Condition on return | حالة الأصل عند الإعادة | Text | No | Max 60 | Good, minor scratches | ||
| Why should this be waived | لماذا يُتنازل عنه | Text area | Conditional | Required for a waiver request; max 500 | Blank -> 'Say why this should be waived.' |
Termination record > Leave freeze dialog
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Keep them on purpose / Cancel them too | إبقاؤها عن قصد / إلغاؤها أيضاً | Radio | Conditional | Needed when leave runs past the last day; without one the leave check stays blocked |
Termination record > Access cutoff dialog
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Date and Time | التاريخ والوقت | Date + time | Yes | Must be in the future (company clock); 'Use the checklist default' recomputes from the rule | 2026-11-01 18:00 | Past time -> 'Choose a time in the future; use Revoke now to cut access ...'; after revoke -> 'Access has already been revoked.' |
Termination record > Revoke access now / Terminate early / Cancel / Reinstate
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Reason | السبب | Text area | Conditional | Revoke: optional. Terminate before last day: required. Cancel: required. Reinstate: required; max 500 | Cancel blank -> 'Say why the separation is cancelled.'; reinstate blank -> 'Say why the employee is reinstated.'; early blank -> 'Say why they leave before their last day.' |
Place dispute hold
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee | الموظف | Select | Yes | Any employee in the company; fixed when opened from a termination | EMP-T010 | ||
| Kind | النوع | Select | Yes | Dispute, Legal, Investigation, Other | Dispute | Legal | Other (API) -> 'Choose dispute, legal, investigation or other.' |
| What the hold is for | سبب الحجز | Text area | Yes | Max 500 | Unreturned company vehicle under review | Blank -> 'Say what the hold is for.' |
Release dispute hold
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Why is the hold released? | لماذا يُرفع الحجز؟ | Text area | Yes | Max 500; a different person from whoever placed it | Dispute settled in writing | Blank -> 'Say why the hold is released.'; placer releasing -> 'A different person must release a hold you placed.' |
Onboarding checklist
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code | الرمز | Text | Yes | 1-30; upper-cased; unique | ONB-STD | ||
| Name / Arabic name | الاسم / الاسم بالعربية | Text | Name | Name 1-120, Arabic max 120 | Standard onboarding / التهيئة القياسية | Blank name -> 'Use the supported fields and valid values for this master.' | |
| Contract type | نوع العقد | Select | No | Active contract type; blank = company default | Limited | Archived -> 'Choose an active reference.' |
Onboarding checklist > Tasks
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Key | المفتاح | Text | Yes | 1-40, lower-case letter first then letters, digits, underscore; unique in the template; max 40 tasks | collect_documents | Repeated key -> 'Use the supported fields and valid values for this master.' (the schema says 'Each task needs its own key.') | |
| Title / Arabic title | العنوان / العنوان بالعربية | Text | Title | Title 1-200, Arabic max 200 | Collect passport copy / استلام نسخة الجواز | ||
| Owner | المسؤول | Select | Yes | HR, Line manager, IT, Finance, Administration, New joiner. Line manager / New joiner tasks are assigned to that person; others to nobody in particular | HR | IT | |
| Due (days) | الاستحقاق (أيام) | Integer | No | -60 to 365 days from the join date (negative = before the first day) | 0 | -3 | 400 -> 'Use the supported fields and valid values for this master.' |
| Required | إلزامية | Checkbox | No | An open required task is a warning that must be acknowledged at activation | On |
Onboarding task (employee record)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Waive reason / note | سبب الإعفاء / ملاحظة | Text area | Conditional | Waiving needs a note (max 500); only HR (hr.employee.manage) can waive or reopen; the assignee can only mark Done | Waive blank -> 'Say why this task is being waived.'; assignee waives -> 'Only HR can waive a task or reopen it.' |
Offboarding checklist
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code / Name / Arabic name / Status | الرمز / الاسم / الاسم بالعربية / الحالة | Text / Select | Code, Name | As every HR master. One active checklist per contract type, and one active company default | Second active default -> 'Another active checklist is already the company default.'; second for the same type -> 'Another active checklist already covers this contract type.' | ||
| Contract type | نوع العقد | Select | No | Active type; blank = company default | Limited | ||
| Notice days | أيام الإشعار | Integer | No | 0-365 | 0 | 30 | 400 -> 'Use the supported fields and valid values for this master.' |
| Notice can be waived | يجوز التنازل عن الإشعار | Checkbox | No | When off, no waiver can be requested | On | ||
| Must clear (departments) | مطلوب | Checkboxes | No | Line manager, HR, Finance, IT, Administration, Store, Fleet, Accommodation, PRO; each once; none ticked = all nine | All | ||
| Answers for it (owner) | المسؤول | Select per department | No | Short owner role (max 16); blank = the department itself | finance | ||
| Clearance due (days before the last day) | موعد الإخلاء (أيام قبل آخر يوم) | Integer | No | 0-90 | 0 | 3 | |
| Company assets that must come back | أصول الشركة المطلوب إعادتها | Checkboxes | No | Laptop, Mobile, SIM, Vehicle, Access card, Uniform, Tools, PPE, Other; none = every asset kind | |||
| Access cutoff rule | قاعدة إيقاف الدخول | Select | Yes | End of last day / Hour of last day / Immediate | End of last day | Hour of last day | |
| Cutoff hour (0 to 23) | ساعة الإيقاف (0 إلى 23) | Integer | No | 0-23; used by 'Hour of last day' | 18 | 17 | 24 -> 'Use the supported fields and valid values for this master.' |
| Frozen for payroll | يُجمّد لمسير الرواتب | Checkboxes | No | Leave snapshot, Recoveries | Both |
Time off
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Status chips | الحالة | Chips | No | All / Pending / Approved / Rejected / Cancelled, each with its count (counts follow the people you may see) | All | Pending | |
| Search / filters | بحث | Text | No | Search by employee number, name or leave type; filter by employee number, name, type, From, To, status | EMP-0007 |
Employees > Time off > Request leave
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee | الموظف | Select (employee) | Yes | Employees of this company; fixed (greyed) when opened from an employee record; the Send button stays disabled until chosen | An active employee | Employee of another company (API) -> 'Choose an employee of this company.' | |
| Leave type | نوع الإجازة | Select (active leave types) | Yes | Only active types are listed; the first one is pre-selected; types in hours or without half days change which time controls appear | First active type | Annual leave | Archived type (API) -> 'That leave type is archived.' |
| Which part of the day | أي جزء من اليوم | Select (whole day / morning / afternoon / hours) | Yes | Morning / afternoon only if the type allows half days; hours only if the type allows hours or is counted in hours; one-day only | Whole day | Morning | Hours on a type that does not allow them -> 'This leave type is not taken in hours.'; half day on a whole-day type -> 'This leave type is taken in whole days.'; bad value -> 'Choose the whole day, the morning, the afternoon or hours.' |
| From / To (dates) | من / إلى | Date | Yes | To not before From; at most 400 days in one request; employee needs an assignment covering the From date; the last day of a termination in progress caps To | Today | 15 Oct 2026 to 20 Oct 2026 (4 chargeable days on a Mon-Fri calendar) | To before From -> 'Leave cannot end before it starts.'; 500 days -> 'A single request may cover at most 400 days.'; no assignment -> 'This employee has no assignment covering that date.'; past a leaving employee's last day -> "This employee's last day is <date>. Leave cannot run past it." |
| From time / To time | من الساعة / إلى الساعة | Time (HH:MM) | Conditional | Required when 'hours' is chosen; both on the same day; within 00:00-24:00; charge = hours / hours-per-working-day for a day type (8 h day: 09:00-11:00 = 0.25 day) | 09:00 - 11:00 | Missing -> 'Give the times, for example 09:00 and 11:00.'; 'abc' -> 'Use a time as HH:MM.'; end not after start -> 'Leave must end after it starts.' | |
| Half day at the start / at the end | نصف يوم في البداية / في النهاية | Checkbox | No | Multi-day requests only: start at the middle of the first day and/or finish at the middle of the last; each half costs 0.5 day | Off | Half day at the end, 15-16 Oct = 1.5 days | Both halves on a one-day request -> 'A one-day request is the morning or the afternoon, not both halves.' |
| Reason | السبب | Text | No | Free text kept with the request; no length check in the code | Family event |
Leave balances
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Balance | الرصيد | Number (days or h) | - | Whole ledger sum (all years); red when negative; unit shown as days or h | 22 | ||
| Opening / Accrual / Used / Expired / Adjustments / Closing | الافتتاحي / الاستحقاق / المستخدم / المنتهي / التسويات / الختامي | Numbers | - | Current calendar year, 1 Jan to 31 Dec: Opening + Accrual - Used - Expired + Adjustments = Closing; Used is shown as a positive number | 10 + 25 - 12 - 3 + 2 = 22 | ||
| Pending | معلّق | Number | - | Units held by requests still awaiting a decision (memo, not in the balance); available to a new request = Balance - Pending | 0 | 2 |
Leave ledger
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Cutoff date | تاريخ الإقفال | Date | No | Defaults to the company's today | Today | 31 Dec 2026 | |
| From | من | Date | No | Defaults to 1 Jan of the cutoff year; cannot be after the cutoff | 1 Jan of cutoff year | 1 Jan 2026 | From after Cutoff -> 'The period cannot start after its cutoff.' |
| Leave type / Employee status / Employee | نوع الإجازة / حالة الموظف / الموظف | Filters | No | Narrow rows and the totals (totals ignore the search box); units are never added across days and hours | All | Annual leave / Active | |
| Reconciles | مطابق | Yes/No badge | - | Yes when the five parts add to Closing; 'Does not reconcile' is a defect to log | Yes | Yes |
Leave type record
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code | الرمز | Text | Yes | Up to 30 characters; unique per company | ANNUAL | Empty -> 'A leave type needs a code and a name.'; 31 chars -> 'That is too long: 30 characters for the code and 120 for the names.'; duplicate -> 'A leave type with that code exists.' | |
| Name | الاسم | Text | Yes | Up to 120 characters | Annual leave | Empty -> 'A leave type needs a code and a name.' | |
| Arabic name | الاسم بالعربية | Text | No | Up to 120 characters | إجازة سنوية | 121 chars -> 'That is too long: 30 characters for the code and 120 for the names.' | |
| Balance is counted in | يُحتسب الرصيد بـ | Select (Days / Hours) | Yes | Fixed once any request or ledger row uses the type | Days | Days | Change after use -> 'Balances or requests already use this type, so its unit cannot change.'; other value (API) -> 'A balance is counted in days or hours.' |
| Certificate needed after (days) | شهادة مطلوبة بعد (أيام) | Whole number 0-3650 | No | Stored and shown in self-service; HR's own Request leave does not enforce it | 0 | 2 | 3651 -> 'Enter a number between 0 and 3650.'; 'x' -> 'Enter a whole number.' |
| Minimum service (months) | الحد الأدنى للخدمة (أشهر) | Whole number 0-3650 | No | A request is refused when whole months from the join date to the first leave day are fewer | 0 | 6 | Joined 1 Jul 2026, request 15 Oct 2026 for a 6-month type -> 'Annual leave needs 6 months of service.' (type name in the message) |
| Paid leave | إجازة مدفوعة | Checkbox | No | Unpaid types make payroll queue a deduction when approved after the pay period froze | On | Off for Unpaid leave | |
| Deducts from a balance | تُخصم من الرصيد | Checkbox | No | Off = no balance check and no ledger row on approval (e.g. sick, unpaid) | On | On for Annual | |
| Allow half days (morning or afternoon) | السماح بنصف يوم (صباحاً أو مساءً) | Checkbox | No | Needed for morning / afternoon / half start or end | On | On | |
| Allow hours | السماح بالساعات | Checkbox | No | Needed for hourly requests on a day-counted type (hour-counted types always allow hours) | Off | On | |
| Count calendar days | احتساب الأيام التقويمية | Checkbox | No | On = weekends and holidays inside a request are charged too (a Thu-Tue request costs 6 days instead of 4) | Off | On for a hajj-type leave | |
| Active (open to new requests) | نشط (متاح لطلبات جديدة) | Checkbox | No | Off archives: not offered in new requests, history stays | On | On |
Accrual plan record
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Plan code | رمز الخطة | Text (upper-cased) | Yes | Up to 30 chars; unique per company (a new version keeps the code) | ANNUAL30 | Empty or 31 chars -> 'A plan needs a code of up to 30 characters.'; duplicate -> 'A plan with that code exists. Add a new version of it instead.' | |
| Name | الاسم | Text | Yes | Up to 120 characters | Annual leave 30 days | Empty -> 'A plan needs a name of up to 120 characters.' | |
| Leave type | نوع الإجازة | Select | Yes | One of this company's leave types | Annual leave | None chosen -> "Choose one of this company's leave types." | |
| How often it is earned | تكرار الاستحقاق | Select (each month / each year / a year released in monthly slices) | Yes | monthly: Rate each month; annual: Rate once a year; upfront: Rate is the whole year, posted as monthly slices | each month | each month | Other (API) -> 'Choose monthly, annual or upfront.' |
| Rate | المعدل | Number >= 0, up to 99999, 4 decimals | Yes | Units earned per period at FTE 1; 30 days a year = 2.5 monthly | 0 | 2.5 | -1 -> 'Must be at least 0.'; 100000 -> 'Must be at most 99999.'; 'abc' -> 'Enter a number.'; 5 decimals -> 'Use at most 4 decimal places.' |
| Maximum balance | الحد الأقصى للرصيد | Number >= 0 | No | 0 means no maximum; an accrual only lands up to the room left (balance 28.5 + 2.5 with cap 30 posts 1.5) | 0 | 30 | -5 -> 'Must be at least 0.' |
| Prorate by FTE | احتساب نسبي حسب الدوام | Checkbox | No | On: units = Rate x FTE (half up to 4 decimals); off: full Rate whatever the FTE | On | On: 2.5 x 0.5 = 1.25 | |
| Allow a negative balance | السماح برصيد سالب | Checkbox | No | Lets a request and its approval overdraw the balance | Off | Off | |
| Waiting period (months of service) | فترة الانتظار (أشهر الخدمة) | Whole number 0-600 | No | Employee skipped with 'still in the waiting period' until whole completed months of service reach it; months already missed are not back-paid | 0 | 3 | 601 -> 'Months must be between 0 and 600.'; 'x' -> 'Enter a whole number of months.' |
| Earn during probation | الاستحقاق أثناء فترة التجربة | Checkbox | No | Off: probation employees are skipped with 'on probation' | On | Off | |
| Contract types covered | أنواع العقود المشمولة | Multi-select | No | Empty = every contract type; others skipped with 'contract type not covered by this plan' | Every contract type | Permanent | Another company's type (API) -> "Choose this company's contract types."; not a list -> 'Send the contract types as a list.' |
| Countries covered (two-letter codes) | الدول المشمولة (رمزان) | Tags | No | Compared with the company's country; empty = every country | Every country | AE | 'UAE' -> 'Use two-letter country codes.' |
| Carryover at year end | الترحيل عند نهاية السنة | Select (unlimited / capped / none) | Yes | unlimited: all carried; capped: up to Carryover maximum; none: everything lapses | unlimited | capped | Other (API) -> 'Choose unlimited, capped or none.' |
| Carryover maximum | الحد الأقصى للترحيل | Number | Conditional | Must be above zero when carryover is capped | 0 | 5 | capped with 0 -> 'A capped carryover needs a maximum above zero.' |
| Carried leave lapses after (months) | تسقط الإجازة المرحّلة بعد (أشهر) | Whole number 0-600 | No | 0 = never; carried units get an expiry at the end of the month that many months after 31 Dec (3 -> 31 Mar) | 0 | 3 | 601 -> 'Months must be between 0 and 600.' |
| Each accrual lapses after (months) | يسقط كل استحقاق بعد (أشهر) | Whole number 0-600 | No | 0 = never; otherwise each posted accrual expires at the end of the month that many months after its date | 0 | 12 | -1 -> 'Months must be between 0 and 600.' |
| Legal source of these figures | المصدر القانوني لهذه الأرقام | Text | Yes (except a DEMO plan) | Up to 240 characters; required before approval; a DEMO plan gets a fixed 'NOT A LEGAL SOURCE' text | UAE Labour Law, Federal Decree-Law 33 of 2021, art. 29 (test text) | Over 240 -> 'The legal source is at most 240 characters.'; blank at approval -> 'Cite the legal source the figures come from.' | |
| This is a demonstration plan | هذه خطة تجريبية (أرقام وهمية) | Checkbox | No | Flags every posting DEMO; goes through the same review | Off | On | |
| Run automatically each period | التشغيل تلقائياً في كل فترة | Checkbox | No | Marks the plan for the scheduler | Off | Off |
Accrual plan > Add an expected case
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Describe the case | صف الحالة | Text up to 160 | Yes | Name of the reviewer's own worked example | Half-time, 7 months | Empty -> 'Describe the case, for example "Half-time, seven months".' | |
| FTE (0 to 1) | الدوام (0 إلى 1) | Number 0.0001-1 | Yes | Full-time = 1 | 1 | 0.5 | 1.5 -> 'Must be at most 1.'; 0 -> 'Must be at least 0.0001.' |
| Months of service | أشهر الخدمة | Whole number >= 0 | Yes | Tested against the waiting period | 0 | 7 | -1 -> 'Months of service cannot be negative.'; 'x' -> 'Enter whole months of service.' |
| On probation / Contract type / Country code | في فترة التجربة / نوع العقد / رمز الدولة | Checkbox / Select / Text | No | Contract and country left empty = that test is skipped for the case | Probation off | ||
| Expected for one period | المتوقع لفترة واحدة | Number >= 0 | Yes | The reviewer's own answer; for upfront plans the whole year | 0 | 1.25 | -1 -> 'Must be at least 0.' |
Accrual plan > Approve plan
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Review note (optional) | ملاحظة المراجعة (اختيارية) | Text up to 500 | No | Saved with the approval and the content hash | Checked against the labour law table |
Accrual plan > Put the plan in force
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| In force from | سارية من | Date | No | Defaults to the company's today; the earlier version ends the day before; must start after the previous version's start | Today | 1 Nov 2026 | Start not after version 1's start -> 'Version 1 starts on <date>; start this one after it.' |
Holidays
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Calendar / Year | التقويم / السنة | Select / Number | Yes | Holidays belong to one working calendar; list shows that year | First calendar / this year | Standard week, 2026 |
Holidays > Add holiday
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Date | التاريخ | Date | Yes | One holiday per calendar per date | 2 Dec 2026 | Empty -> 'Give the date.'; duplicate -> 'That date is already a holiday on this calendar.' | |
| Holiday name | اسم العطلة | Text | Yes | Up to 120 characters | UAE National Day | Empty or 121 chars -> 'Name the holiday (up to 120 characters).' | |
| Half day | نصف يوم | Checkbox | No | Half holiday charges 0.5 day instead of 0 when it falls inside a request | Off | On for the eve of a holiday |
Calendar preview
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Calendar / Leave type / From / To | التقويم / نوع الإجازة / من / إلى | Select / Select / Date / Date | Yes | Plus optional day part and times as in Request leave; refreshes as you choose | Standard week, Annual leave, 15-20 Oct 2026 | To before From -> 'Choose a valid range.' (screen) / 'Leave cannot end before it starts.' |
Accrual runs > Accrual
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Plan | الخطة | Select | Yes | Preview works for any non-retired plan; a real run only for an approved-and-in-force (effective or superseded) plan | ANNUAL30 v1 | Configured plan, real run -> 'This plan is not in force yet (configured). It goes into force after an independent review approves it.'; retired -> 'That plan is archived.'; outside its dates -> 'This plan version is not in force on <date>.' | |
| As of | بتاريخ | Date | Yes | Decides the period (monthly 2026-10; annual or upfront the year); employees who join after it are 'not yet joined' | Today | 31 Oct 2026 | |
| Employee (optional) | الموظف (اختياري) | Select | No | Limits the run to one person | Everybody the plan covers | EMP-0007 |
Accrual runs > Expiry
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| As of | بتاريخ | Date | Yes | Lapses what is left of grants whose expiry date is before this date, once each | Today | 1 Jul 2026 |
Accrual runs > Year end
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Leave year to close | سنة الإجازة المراد إغلاقها | Year | Yes | Calendar year; once per person, plan and year | Current year | 2026 |
Accrual runs > FTE change recompute
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee / FTE change takes effect | الموظف / يسري تغيّر الدوام من | Select / Date | Yes | Periods starting on or after the date are re-priced at the FTE then; a past date files a review for a second HR user | EMP-0007, 1 Aug 2026 |
Accrual runs > Review
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Why (kept with the review) | السبب (يُحفظ مع المراجعة) | Text | Yes | Required to apply or dismiss; the person who raised it cannot decide it | FTE cut approved in contract | Empty -> 'Say why you are applying or dismissing it.'; own review -> 'A different HR user decides a change that was raised by you.' |
Allocations > New request
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee | الموظف | Select | Yes | Employee of this company | EMP-0007 | None -> "Choose an employee of this company." | |
| Leave type | نوع الإجازة | Select | Yes | Active leave type | Annual leave | Archived -> 'That leave type is archived.' | |
| Kind | النوع | Select (Allocation grants leave / Adjustment corrects the balance) | Yes | Allocation is positive only | Adjustment | Allocation | Other -> 'Choose an allocation or an adjustment.' |
| Units (+ or -) | الوحدات | Number, 4 decimals | Yes | Not zero; negative only for an adjustment | 2 | 0 -> 'An allocation or adjustment of nothing changes nothing.'; -2 as allocation -> 'An allocation adds leave. Use an adjustment to take some away.' | |
| Takes effect on | يسري من | Date | No | Defaults to today | Today | 5 Oct 2026 | |
| Lapses on (optional) | يسقط في (اختياري) | Date | No | Allocations only, not before the effective date | 31 Dec 2026 | On an adjustment -> 'Only an allocation can lapse.'; before effective -> 'It cannot lapse before it takes effect.' | |
| Reason | السبب | Text up to 500 | Yes | Kept with the request and the ledger row | Worked the public holiday 2 Dec | Empty -> 'Say why the balance is changing.' |
Allocations > Approve / Reject / Withdraw
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Note | الملاحظة | Text up to 500 | Reject: Yes | Required to reject; optional to approve or withdraw | Not supported by an HR record | Reject without note -> 'Say why it was refused.' |
Attendance days > Generate absent days
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| From | من | Date | Yes | First day to create days for | 1 Oct 2026 | Empty -> 'Give the dates to generate.'; From after To -> 'The period cannot start after it ends.' (screen) | |
| To | إلى | Date | Yes | Cut to yesterday (never today or the future); at most 62 days at a time; only people you may see who were expected to work with a known schedule | 31 Oct 2026 | Before From (API) -> 'The range cannot end before it starts.'; 90 days -> 'Generate at most 62 days at a time.' |
Attendance days
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Filters From / To / Shift / Exception | من / إلى / الوردية / الاستثناء | Date / Select | No | Exception = late, early leave, short hours, absent, missed in/out, unapproved overtime, leave overlap, device duplicate | All | Late | |
| Clocked (h) / Breaks (h) / Net (h) | المسجل / الاستراحات / الصافي | Hours, 2 decimals (half up) | - | Net = Clocked - unpaid breaks + paid breaks taken punched-out; seconds to hours rounded half up to 2 places | 10.50 - 1.00 = 9.50 | ||
| Late (min) / Early (min) / Short (min) | التأخر / المبكر / النقص | Whole minutes | - | Late = minutes after shift start less grace in; Early = minutes before shift end less grace out; Short = scheduled less net, less late and early minutes, working days only, complete days only | 0 | 09:25 in, grace 10 -> Late 15 | |
| Day type | نوع اليوم | Badge (Working day / Rest day / Holiday / On leave) | - | From the roster, fixed shift assignment or working calendar and its holidays; approved leave | Working day | Rest day |
Attendance day record
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Approve day > Also approve the overtime found | اعتماد العمل الإضافي المكتشف أيضاً | Checkbox | No | Shown when the day has overtime; needs the right to decide overtime; where the policy or shift asks for approval and it is not ticked, overtime stays found and unpaid | Off | On | |
| Approve day > Note (optional) | ملاحظة (اختياري) | Text | No | Saved on the day | Checked with the manager | ||
| Correct the times > First in / Last out | أول دخول / آخر خروج | Date-time | Yes (one of the two) | HR only; must change at least one; Last out after First in; creates an approved correction with correction punches, originals stay | Current values | 09:00 / 18:00 | Unchanged -> 'Change at least one of the two times.'; none (API) -> 'Give the time that should be recorded.'; no time zone (API) -> 'Send the time as HH:MM or an ISO timestamp.' |
| Correct the times > Reason | السبب | Text up to 500 | Yes | Kept in the change log | Device offline, badge swiped on the other door | Empty -> 'Say why the day is being corrected.' |
Corrections > New correction
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee | الموظف | Select | Yes | Only people you may raise a correction for (HR with hr.attendance.manage; the employee for self; a manager for their team) | Yourself if you are an employee | EMP-0007 | None -> 'Choose the employee the correction is for.'; not allowed -> 'You cannot raise a correction for this employee.' |
| Work date | تاريخ العمل | Date | Yes | Not in the future; not before the join date; the day must not be locked by payroll; one open correction per day | 5 Oct 2026 | Empty -> 'Say which day is being corrected.'; tomorrow -> 'A correction is for a day that has happened.'; before joining -> 'That is before the employee joined.'; second one -> 'There is already a correction waiting for that day.'; locked -> 'Payroll has this day. Correct it in the next period.' | |
| Kind | النوع | Select (Missing punch in / Missing punch out / Wrong time / Missing session / Other) | Yes | Decides which times are mandatory | Other | Missing punch out | Other value (API) -> 'Choose what kind of correction this is.' |
| Time in | وقت الدخول | Time / date-time | Conditional | Required for Missing punch in and Missing session | 09:00 | Missing -> 'Say what time they came in.' ; 'A missing session needs both times.' | |
| Time out | وقت الخروج | Time / date-time | Conditional | Required for Missing punch out and Missing session; must be after Time in; not in the future | 18:00 | Missing -> 'Say what time they left.'; 08:00 with in 09:00 -> 'The exit must be after the entrance.'; future -> 'A correction cannot be in the future.'; none for Other/Wrong time -> 'Give the time that should be recorded.' | |
| Reason | السبب | Text up to 500 | Yes | Kept with the request | Forgot to swipe out | Empty -> 'Say why the day is being corrected.' |
Corrections > Decide
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Decision note (required to reject) | ملاحظة القرار (مطلوبة عند الرفض) | Text up to 500 | Reject: Yes | Optional on approve | Not supported by door log | Reject without note -> 'Say why the correction is rejected.' |
Overtime approvals
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| From / To | من / إلى | Date | No | Filters the work dates listed | 1 Oct 2026 to 31 Oct 2026 | From after To -> 'The period cannot start after it ends.' |
Overtime approvals > Approve overtime
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Hours to approve (per bucket) | الساعات المراد اعتمادها | Number per bucket (daily, weekly, rest day, holiday) | Yes (at least one above 0) | Cannot exceed what was found in that bucket; default = everything found; Total to approve is shown | Found hours | Daily 1.50, Weekly 2.00 of 4.00 found | Weekly 5 of 4.00 -> 'Only 4.00 hours of weekly overtime were found.'; all zero -> 'Approve some hours, or reject the overtime.'; negative -> 'Must be at least 0.' |
| Note (optional) | ملاحظة (اختياري) | Text up to 500 | No | Saved with the units | Month-end project |
Overtime approvals > Reject overtime
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Note | ملاحظة | Text | Yes | Reason for refusing payment | Not pre-approved by manager | Empty -> 'Say why the overtime is rejected.' |
Overtime approvals > Withdraw the approval
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Reason | السبب | Text | Yes | Only for approved items; issues a new units version, old units are superseded | Entered on the wrong day | Empty -> 'Say why the approval is withdrawn.' |
Timesheets > New timesheet
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| The week (a date in the week) | الأسبوع | Date | Yes | Any date in the week; the week runs from the company's week-start day (Monday by default); one sheet per person per week | Today | 7 Oct 2026 (week 5-11 Oct) | Second sheet -> 'That week already has a timesheet.' |
| Employee | الموظف | Select | Yes | Yourself, or anyone with hr.attendance.manage within scope | Yourself | EMP-0007 | None -> 'Choose the employee the timesheet is for.'; not allowed -> 'You cannot start a timesheet for this employee.' |
Timesheet record > Lines
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Date | التاريخ | Date | Yes | Inside the sheet's week | 6 Oct 2026 | 12 Oct on a 5-11 Oct sheet -> '2026-10-12 is outside the week of 2026-10-05.'; empty -> 'Every line needs a date.' | |
| Project reference / Task reference | مرجع المشروع / مرجع المهمة | Text up to 64 each | One of the two | Identifiers only (no rate); flagged 'Not known to Projects' when the Projects module does not know them, never refused | PRJ-ERP / T-12 | Both empty -> 'Every line names a project or a task.' | |
| Hours | الساعات | Number 0.01-24, 2 decimals | Yes | Per line; all lines of one day together at most 24; at most 100 lines per sheet | 8 | 0 -> 'Must be at least 0.01.'; 25 -> 'Must be at most 24.'; two lines 14 + 12 -> 'More than 24 hours on 2026-10-07.'; 101 lines -> 'A timesheet has at most 100 lines.' | |
| Note | ملاحظة | Text up to 300 | No | Per line | Design review |
Timesheet record
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Timesheet note | ملاحظة الكشف | Text up to 500 | No | Whole sheet | Public holiday worked |
Timesheet record > Reconciliation
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Tolerance / Variance | حد التسامح / الفرق | Hours | - | Variance = reported - attendance net hours of the week; flagged when |variance| is greater than the company tolerance (equal is not flagged); a flag never blocks submit or approve | Reported 44, attendance 40, tolerance 2 -> variance 4.00 flagged |
Timesheet record > Decision
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Decision note | ملاحظة القرار | Text up to 500 | Return: Yes | Optional to approve | Hours on 8 Oct look high | Return without note -> 'Say why the timesheet is returned.' |
Shifts > record
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code | الرمز | Text | Yes | Up to 30 chars; unique | DAY | Empty or 31 chars -> 'A shift needs a code of up to 30 characters.'; duplicate -> 'A shift with that code exists.' | |
| Name / Arabic name | الاسم / الاسم بالعربية | Text | Name: Yes | Name up to 120; Arabic name cut at 120 | Day shift / وردية نهارية | Empty name -> 'A shift needs a name of up to 120 characters.' | |
| Starts / Ends | البداية / النهاية | Time HH:MM | Yes | Ends at or before Starts means it crosses midnight (22:00-06:00) | 09:00 / 18:00 | '9am' -> 'Send the time as HH:MM.' | |
| Overnight (crosses midnight) | ليلية (تعبر منتصف الليل) | Select / derived | No | Worked out from the two times; a contradicting value is refused | Derived | Yes for 22:00-06:00 | 22:00-06:00 with 'No' -> 'The shift ends before it starts, so it crosses midnight.'; 09:00-18:00 with 'Yes' -> 'The shift ends after it starts, so it does not cross midnight.' |
| Single break figure (Break minutes) | رقم الاستراحة الواحدة | Whole minutes 0-1440 | No | Used only when the shift has no detailed breaks; unpaid | 0 | 60 | 1500 -> 'Must be between 0 and 1440.' |
| Grace in / Grace out (minutes) | سماح الدخول / سماح الخروج (دقائق) | Whole minutes 0-720 | No | Minutes forgiven before Late / Early leave count | 0 | 10 / 5 | 800 -> 'Must be between 0 and 720.' |
| Simple threshold: overtime after (hours) | الحد البسيط: عمل إضافي بعد (ساعات) | Number 0-24 | No | Used when no overtime policy is chosen; 0 = the shift's scheduled hours | 0 | 8 | 25 -> 'Must be at most 24.' |
| Overtime policy | سياسة العمل الإضافي | Select (policy code) | No | Only codes that exist | None - use the simple threshold | DEMO-OT | Unknown (API) -> 'There is no overtime policy with that code.' |
| Overtime needs approval | العمل الإضافي يحتاج اعتماداً | Checkbox | No | On: overtime stays found and unpaid until decided | On | On | |
| Longest session (hours) | أطول جلسة (ساعات) | Number 1-72 | No | A data-quality guard, not a working-time limit | 24 | 16 | 0.5 -> 'Must be at least 1.'; 80 -> 'Must be at most 72.' |
| Active (open to new assignments) | نشطة (متاحة لتعيينات جديدة) | Checkbox | No | Archived shifts cannot be assigned | On | On |
Shifts > Breaks
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Break kind | نوع الاستراحة | Select (Fixed / Window) | Yes | Fixed: length = Break to - Break from; Window: an allowance somewhere inside the window | Fixed | Window | Other -> 'A break is fixed or a window.' |
| Break from / Break to | بداية الاستراحة / نهاية الاستراحة | Time | Yes | Both needed; a break earlier in the clock than a night shift's start belongs to the next morning | 13:00 / 14:00 | Empty -> 'Send the time as HH:MM.' | |
| Allowance in minutes | المدة المسموحة بالدقائق | Whole minutes 1-1440 (window breaks) | Window: Yes | Cannot be longer than the window | 45 | Window 13:00-14:00 with 90 -> 'A break allowance cannot be longer than its window.' | |
| Paid break / Deducted automatically / Break name | استراحة مدفوعة / تُخصم تلقائياً / اسم الاستراحة | Checkbox / Checkbox / Text up to 80 | No | A paid break is never deducted; an unpaid automatic one comes off minus time already spent punched out in its window, and never more than the person was present | Unpaid, deducted | Lunch, unpaid, automatic |
Shifts > Assign employee
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee / From / Until (optional) | الموظف / من / حتى (اختياري) | Select / Date / Date | Employee, From: Yes | Fixed shift from a date; an earlier open assignment ends the day before; the same start date is replaced | EMP-0007, from 1 Nov 2026 | Until before From -> 'The assignment cannot end before it starts.'; no From -> 'Say from when the shift applies.'; archived shift -> "Choose one of this company's shifts." |
Shifts > Sample day
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Clock in / Clock out / Date of the day / Kind of day / Regular hours already worked this week / Swiped twice | وقت الدخول / وقت الخروج / تاريخ اليوم / نوع اليوم / الساعات العادية هذا الأسبوع / بصمة مرتين | Time / Time / Date / Select / Number / Checkbox | No | Calculator only: nothing saved; shows clocked - unpaid breaks + paid breaks = net, then overtime by bucket | 09:00 - 19:30, working day, 44 regular hours so far | Unknown policy (API) -> 'Unknown overtime policy.'; day kind other than working, rest, holiday -> 'A day is working, rest or holiday.' |
Rosters > record
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code / Name / Arabic name | الرمز / الاسم / الاسم بالعربية | Text | Code, Name: Yes | Code up to 30, unique; Name up to 120 | SHIFT3 / Three-day rotation | Empty -> 'A roster needs a code and a name.'; duplicate -> 'A roster with that code exists.' | |
| Kind | النوع | Select (Weekly / Rotating) | Yes | Weekly = 7 days Monday first; rotating = a cycle of days counted from an anchor date | Weekly | Rotating | Other -> 'A roster is weekly or rotating.' |
| Days in the cycle | عدد أيام الدورة | Whole number 2-366 | Rotating: Yes | Weekly is always 7 | 14 | 3 | 1 -> 'Must be between 2 and 366.' |
| Day 1 of the cycle falls on | اليوم 1 من الدورة يوافق | Date | Rotating: Yes | The anchor date | 1 Oct 2026 | Empty -> 'A rotation counts from an anchor date.' | |
| Days of the cycle | أيام الدورة | One shift (or blank rest day) per day | Yes | Exactly as many entries as the cycle length; each must be one of this company's shifts | Day 1 DAY, Day 2 NIGHT, Day 3 rest | Wrong count -> 'Give exactly 3 days: a shift for each, or blank for a rest day.'; unknown shift -> "A roster day names one of this company's shifts." |
Rosters > Assign employee
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee / From / Until / Phase offset (days) | الموظف / من / حتى / إزاحة الدورة (أيام) | Select / Date / Date / Number 0-365 | Employee, From: Yes | A person can have only one roster over a date; phase offset starts the person partway through the cycle | 0 | EMP-0007, from 1 Oct 2026, offset 1 | Overlap -> 'That person already has a roster over those dates.'; no From -> 'Say from when the roster applies.'; offset 400 -> 'Must be between 0 and 365.' |
Rosters > Schedule preview
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee / From / To | الموظف / من / إلى | Select / Date / Date | Yes | Reads a day the way attendance would: roster, then fixed shift, then working calendar, then leave; at most 62 days | EMP-0007, 1-14 Oct 2026 | Over 62 days -> 'Look at most 62 days at a time.'; end before start -> 'The range cannot end before it starts.' |
Working calendars > record
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code / Name / Arabic name | الرمز / الاسم / الاسم بالعربية | Text | Code, Name: Yes | Code 1-30 chars (letters, digits, . / - space), upper-cased; Name up to 120; Arabic up to 120 | STD40 / Standard 40-hour week | Empty code -> 'Use the supported fields and valid values for this master.' | |
| Timezone | المنطقة الزمنية | Text (IANA name, up to 64) | Yes | Must be a real time-zone name | Asia/Dubai | 'Dubai' -> 'Choose an IANA timezone.' (shown as 'Use the supported fields and valid values for this master.') | |
| Hours per week | ساعات الأسبوع | Number 0.01-168, 2 decimals | Yes | Hours per working day = hours per week / number of working weekdays (40 / 5 = 8); not checked against the weekday boxes | 40 | 0 or 169 or 3 decimals -> 'Use the supported fields and valid values for this master.' | |
| Working weekdays (Monday-Sunday boxes) | أيام العمل | 7 checkboxes | Yes (at least one) | Stored as 0=Monday ... 6=Sunday; leave is charged only on ticked days (unless the type counts calendar days) | Monday-Friday ticked | None ticked -> 'Use the supported fields and valid values for this master.' | |
| Active | نشط | Checkbox | No | Cannot be switched off while a current or future assignment uses it; code, hours and days cannot change once an assignment uses it | On | On | Archive while used -> 'This master is used by an active position or current/future assignment.'; structural change while used -> 'Create a new master for structural changes once this master has active assignments or positions.' |
Attendance exceptions
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| From / To | من / إلى | Date | No | Period of work dates | 1 Oct 2026 to 31 Oct 2026 | From after To -> 'The period cannot start after it ends.' | |
| Shift / Department / Status / Exception kind | الوردية / القسم / الحالة / نوع الاستثناء | Select | No | Narrow the population; footer figures follow the filters | All | Absent | |
| Also list days with no exceptions | عرض الأيام التي بلا استثناءات أيضاً | Checkbox | No | Off: only days with at least one exception | Off | On |
Attendance exceptions > footer
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Reconciliation: unique punches = 2 x sessions + unpaid + repeats | المطابقة | Equation | - | Punches, Hours (Clocked - unpaid + paid = Net; Regular + Overtime found = Net), Overtime (found = approved + waiting + declined), Payable units (Regular on approved days + Overtime approved) | 20 sessions, 3 unpaired, 2 repeats -> 45 unique punches |
Expense claim record
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee | الموظف | Select | Yes | An employee of this company; fixed once created | EMP-0002 Test Employee B | (API) none -> 'Choose whose claim this is.' | |
| Title | العنوان | Text | Yes | Create button disabled while empty | Dubai client visit Sep 2026 | (API) blank -> 'Give the claim a title.' | |
| Trip | الرحلة | Select | No | A trip of the same employee; its policy and advance then apply | Abu Dhabi workshop | Another employee's trip -> 'That trip belongs to somebody else.'; unknown -> 'That trip does not exist.' | |
| Currency | العملة | Text | No | Upper-cased; default for every line | AED | AED | |
| Reference | المرجع | Text | No | Stored as typed; no numbering sequence (claims are not numbered) |
Expense claim > Add an expense
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Category | الفئة | Select | Yes | Category of this company; its receipt, limit and project rules apply at Submit | TAXI | None -> 'Choose a category.' | |
| Date | التاريخ | Date | Yes | YYYY-MM-DD; age not checked (90-day staleness rule exists but is not used) | Today | 2026-09-14 | (API) '14/09/2026' -> 'Send the date as YYYY-MM-DD.' |
| Merchant | الجهة | Text | Conditional | Field setting 'Expense merchant': Required / Hidden (hidden: a merchant sent is refused) | Test Taxi LLC | ||
| What it was for | الغرض منه | Text | Yes (at Submit) | Business purpose; checked at Submit | Client meeting, Business Bay | Blank -> at Submit 'Check the highlighted lines.' with '<line>: Say what this was for.' | |
| Paid by | من دفع | Select | Yes | Employee / On the company card / Advance | Employee | (API) 'cash' -> 'Say who paid: employee, card or advance.' | |
| Card transaction | حركة البطاقة | Select | Conditional | Required when paid by card; only unclaimed statement lines are offered; one transaction per line | Card without a transaction -> 'A card line must name the card transaction it accounts for.'; already used -> 'That card transaction is already claimed on another line.' | ||
| Amount | المبلغ | Decimal | Yes | Not negative; 2 dp half-up; home amount = amount x FX rate (rate not on the screen, so 1) | 85.50 | -10 -> 'An expense cannot be negative.'; 'ten' -> 'Send the amount as a decimal string.' | |
| Distance (km) | المسافة (كم) | Decimal | No | With amount 0 the amount = km x the trip policy's mileage rate (no trip / policy = 0) | 120 (rate 0.50 -> 60.00) | ||
| Receipt reference | مرجع الإيصال | Text | Conditional | Needed when amount > category 'Receipt required above' (or always when that is 0). Same reference on another claim holds the claim. Field setting 'Receipt reference' | RCPT-TEST-0001 | Missing above the threshold -> at Submit '<line>: A receipt is required for this expense.' |
Expense claim > Add an expense (API)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| FX rate / Recoverable tax / Project / Cost centre / Note | سعر الصرف / الضريبة القابلة للاسترداد / المشروع / مركز التكلفة / ملاحظة | Decimal / ids / text | Conditional | Not on the HR line form. Project required when the category says so. Recoverable tax is summed for reading only | Project-required category without project -> '<line>: This category must be charged to a project.' |
Expense claim record > Let through
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Why it is let through | سبب السماح بالمرور | Text (prompt) | Yes | Held claims only; hr.expense.approve | Two taxis: outbound and return | Blank (API) -> 'Say why this is being let through.'; not held -> 'That claim is not held.' |
Expense claim record > Refuse
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Reason | سبب الرفض | Text (prompt) | Yes | Submitted claims only | Blank (API) -> 'Say why it is being refused.' |
Travel > New trip
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Employee | الموظف | Select | Yes | Employee of this company | None -> 'Choose who is travelling.' | ||
| Destination | الوجهة | Text | Yes | Riyadh | Blank -> 'A trip needs a destination and a purpose.' | ||
| Purpose | الغرض | Text | Yes | Supplier audit | Blank -> same message | ||
| Departs / Returns | المغادرة / العودة | Date | Yes | Return not before departure; days = both ends counted (same day = 1) | 2026-10-05 / 2026-10-08 (4 days) | Returns 2026-10-04 -> 'A trip cannot return before it leaves.' | |
| Travel policy | سياسة السفر | Select | No | Gives per diem, meal deduction, mileage rate and trip cap; not chosen automatically by country | GCC-STD | ||
| Estimated cost | التكلفة التقديرية | Decimal | No | 2 dp; not checked against anything | 3500 | ||
| Advance requested | السلفة المطلوبة | Decimal | No | 2 dp; paid only after approval; can be changed when paying | 1000 | Pay with 0 -> 'There is no advance to pay.' |
Travel > New trip (API)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Meals provided | الوجبات المقدمة | Whole number | No | Per diem = days x per diem - meals x meal deduction (not below 0); shown only in the create answer | 0 |
Expense categories > New category
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code | الرمز | Text | Yes | Unique in the company | TAXI | Blank -> 'A category needs a code and a name.'; duplicate -> | |
| Name / Arabic name | الاسم / الاسم بالعربية | Text | Yes / No | Taxi / تاكسي | Blank name -> 'A category needs a code and a name.' | ||
| Receipt required above | يُطلب الإيصال فوق | Decimal | No | Receipt needed above this amount; 0 = receipt always needed | 0 | 50 | |
| Limit per line | الحد لكل بند | Decimal | No | 0 = no limit; above it Submit is refused | 0 | 200 | Line 250 -> '<line>: Above the Taxi limit of 200.00.' |
| Needs a project | يتطلب مشروعًا | Yes/No | No | Lines must carry a project | No |
Expense categories > New category (API)
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Account / Ask tax recovery / Active | الحساب / طلب استرداد الضريبة / نشط | id / Yes-No | No | Account stored, nothing posts; Active default Yes |
Travel policies > New policy
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Code / Name | الرمز / الاسم | Text | Yes | Code unique | GCC-STD / GCC standard | Blank -> 'A policy needs a code and a name.' | |
| Currency | العملة | Text | No | Upper-cased | AED | ||
| Per diem | البدل اليومي | Decimal | No | Per day away | 300 | ||
| Meal deduction | خصم الوجبة | Decimal | No | Per meal provided | 50 | ||
| Mileage rate | سعر الكيلومتر | Decimal | No | Per km for mileage lines | 0.50 | ||
| Trip cap | حد الرحلة | Decimal | No | 0 = none. Code compares EACH LINE with it, not the trip total | 2000 | Line 2,500 -> '<line>: Above the trip cap of 2000.00.' |
Company cards > Load a statement
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Transactions (JSON) | الحركات (JSON) | JSON list | Yes | Each: external_id (required, unique - repeats skipped), posted_on, merchant, amount, currency (AED), employee_id | [{"external_id":"CC-TEST-1","posted_on":"2026-09-10","merchant":"Test Hotel","amount":"450.00"}] | [] -> 'Send the statement as a list of transactions.'; no external_id -> 'Every transaction needs the card provider's reference.' |
Talent (API) > vacancy decision
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Approver | المعتمد | Rule | - | Not the person who raised or submitted it | 'You cannot decide a vacancy you raised or submitted.' |
Talent (API) > application
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Applicant consent | موافقة المتقدم | Consent + purpose | Yes | Consent purpose in force, not dated in the future; email valid; vacancy open; a stage configured | 'Record the applicant's consent and its purpose before storing ...'; 'Applications are taken only while the vacancy is open.'; 'Use a valid email address.' |
Talent (API) > application attachment
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| CV / attachment | السيرة الذاتية / المرفق | File | No | PDF, PNG, JPEG or .docx; under 8 MB; not empty | 'Upload a valid PDF, PNG, JPEG or Word (.docx) file.'; 'Keep each attachment under 8 MB.' |
Talent (API) > review
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Ratings / Overall rating | التقييمات / التقييم العام | Scale levels | Yes | Every competency rated with a level of the template's scale | 'Rate every competency: <list>.'; 'Choose a level of the rating scale.'; 'Give the overall rating before submitting.' |
Talent (API) > goal
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Goal (metric / target, due date, description, weight) | الهدف | SMART goal | Yes | Agreed goals weigh at most the template total (100) | 'A SMART goal needs a due date.'; 'The agreed goals would weigh more than 100: only 20 is left.' |
Talent (API) > skill
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Certificate dates | تواريخ الشهادة | Date | Conditional | Issued not in the future; expiry after issue | 'A certificate cannot be dated in the future.'; 'The certificate expires before it was issued.' |
Talent (API) > session
| Field | Arabic label | Type | Required | Rules and limits | Default | Example | Refused when |
|---|---|---|---|---|---|---|---|
| Attendees | الحضور | Employee list | Yes | 1 to 200 working employees; only while scheduled | 'Choose between one and 200 employees.'; 'Registrations close once a session is held or cancelled.' |