Skip to main content

Permission matrix

This page lists every permission seeded into a workspace and shows which of the six default roles holds it. Use it as the reference when configuring custom roles or auditing access.

How the matrix is enforced

  • Workspace-scoped. Roles and their permission grants live per workspace (per companyId). Every seeded workspace gets its own copy of the six default roles, and every tenant query is scoped to the workspace by a tenant guard, so a permission grant in one workspace never leaks into another. The platform operator manages workspaces from a separate /operator console that does not use this matrix at all.
  • Grants, not hard-coding. A user's effective permissions are the union of the grants on every role assigned to them. Endpoints are protected with a permissions decorator, and the guard checks that the caller actually holds the required permission — there is no implicit Super Admin bypass. Super Admin can do everything only because it is seeded with the full permission set.
  • Editable. The matrix below is the seeded default. Admins with roles.manage can add or remove any grant on any role (system roles included) from the access-control screen, so a live workspace may differ from what is shown here.
Country packs affect which permissions matter

Payroll, tax, and statutory rules follow the workspace's country pack, so some financial permissions only do something under certain packs. For example tax.configure / tax.certificates drive income-tax handling for a pack that has income tax (such as the Pakistan pack), but carry no tax logic under a pack with no income tax (such as the UAE pack). The permission still exists everywhere; the behaviour behind it is pack-dependent.

Legend: SA = Super Admin, HRM = HR Manager, HRO = HR Officer, ACC = Accountant, DH = Department Head, EMP = Employee.

Company

PermissionDescriptionSAHRMHROACCDHEMP
company.viewView company profile and settings
company.updateUpdate company profile
company.settingsManage workspace settings (also gates badge evaluation, manual awards, and address-verification admin actions)

Employees

PermissionDescriptionSAHRMHROACCDHEMP
employees.view_allView all employee records
employees.view_teamView team (department) employees
employees.view_ownView own employee profile
employees.createCreate new employees
employees.updateUpdate employee records
employees.deleteDelete employees
employees.importBulk-import employees
employees.confirmConfirm an employee after probation (auto-issues confirmation letter + sends the confirmed email)

Documents

PermissionDescriptionSAHRMHROACCDHEMP
documents.view_allView all employee documents
documents.view_ownView own documents
documents.uploadUpload documents
documents.verifyVerify documents

Contracts

PermissionDescriptionSAHRMHROACCDHEMP
contracts.viewView employment contracts
contracts.createCreate employment contracts
contracts.updateUpdate contracts (witness data, signed-copy upload)
Employee agreement portal bypasses the matrix

The employment-agreement portal endpoints (GET /api/contracts/portal/my-contract and POST /api/contracts/portal/my-contract/accept) do not require any of the permissions above. They authorize solely on the authenticated user being linked to an employee record, so an employee can only ever read or accept their own contract regardless of role.

Attendance

PermissionDescriptionSAHRMHROACCDHEMP
attendance.view_allView all attendance records
attendance.view_teamView team (department) attendance
attendance.view_ownView own attendance
attendance.markMark or edit attendance
attendance.bulk_markBulk-mark attendance
attendance.regularize_approveApprove regularization requests
attendance.regularize_requestRequest regularization
attendance.overtime_approveApprove overtime
attendance.manageManage attendance settings and shifts
attendance.geo_manageManage geo attendance locations and assignments

Field Visits

PermissionDescriptionSAHRMHROACCDHEMP
field_visits.viewView field visits, the map, clients and settings
field_visits.manageManage clients and pins, enrol field staff, settings, close/cancel visits

Leave

PermissionDescriptionSAHRMHROACCDHEMP
leave.view_allView all leave applications
leave.view_teamView team (department) leave records
leave.view_ownView own leave balance and history
leave.applyApply for leave
leave.approveApprove or reject leave applications
leave.configureConfigure leave policies
leave.allocateAllocate leave balances

Payroll

PermissionDescriptionSAHRMHROACCDHEMP
payroll.viewView payroll runs and entries
payroll.processProcess monthly payroll
payroll.approveApprove a payroll run
payroll.lockLock (finalize) a payroll run
payroll.salary_view_allView all employees' salaries
payroll.salary_view_ownView own salary
payroll.salary_assignAssign salaries / structures, adjustments, increments
payroll.configureConfigure payroll (components, structures)
payroll.manageDisburse, finalize, mark-paid, salary-history import
payroll.adjustment_deleteHard-delete a payroll adjustment (irreversible)

Salary slips

PermissionDescriptionSAHRMHROACCDHEMP
salary_slips.generateGenerate salary slips for a payroll run
salary_slips.view_allView all employees' salary slips
salary_slips.view_ownView own salary slips
salary_slips.emailEmail salary slips

Cheques

PermissionDescriptionSAHRMHROACCDHEMP
cheques.manageCreate and update cheques
cheques.printPrint cheques

Tax

Tax handling is driven by the workspace's country pack (see the note at the top).

PermissionDescriptionSAHRMHROACCDHEMP
tax.configureConfigure tax (slabs / rates for the active pack)
tax.certificatesManage and generate tax certificates
tax.view_ownView own tax details and certificate

Loans

PermissionDescriptionSAHRMHROACCDHEMP
loans.view_allView all loan records
loans.view_ownView own loans and installment schedule
loans.applyApply for a loan
loans.approveApprove or reject loan applications
loans.configureConfigure loan types

Holidays

PermissionDescriptionSAHRMHROACCDHEMP
holidays.manageCreate and delete holidays
holidays.viewView the holiday calendar

Announcements

PermissionDescriptionSAHRMHROACCDHEMP
announcements.manageCreate, update, and delete announcements
announcements.viewView announcements

Dashboard

PermissionDescriptionSAHRMHROACCDHEMP
dashboard.adminAdmin dashboard
dashboard.personalPersonal dashboard

Reports

PermissionDescriptionSAHRMHROACCDHEMP
reports.allView all reports
reports.departmentView department reports
reports.ownView own reports

Audit

PermissionDescriptionSAHRMHROACCDHEMP
audit.viewView audit logs

Roles & users

PermissionDescriptionSAHRMHROACCDHEMP
roles.manageCreate, update, and delete roles and their permissions
users.manageCreate, update, and deactivate user accounts and role assignments
users.impersonateSign in as another user
users.manage_2faReset a member's two-factor authentication

HR letters

PermissionDescriptionSAHRMHROACCDHEMP
hr_letters.manageGenerate, manage, and delete HR letters
hr_letters.view_ownView own HR letters
hr_letters.manage_requestsHandle employee letter requests
hr_letters.requestRequest an HR letter

Email templates

PermissionDescriptionSAHRMHROACCDHEMP
email_templates.manageManage email templates

Print

PermissionDescriptionSAHRMHROACCDHEMP
print.salary_slipsPrint / download salary slip PDFs
print.attendancePrint attendance
print.payroll_sheetPrint the payroll sheet
print.chequesPrint cheques
print.tax_certificatesPrint tax certificates
print.reportsPrint reports
print.contractsPrint contracts

Biometric devices

PermissionDescriptionSAHRMHROACCDHEMP
biometric.viewView devices, users, punches, sync history, command log
biometric.manageRegister devices, sync, bind users, push time, restart, rotate comm key

System backups

Backups cover the database and uploaded assets and are not workspace-scoped, so the grant is seeded to Super Admin only.

PermissionDescriptionSAHRMHROACCDHEMP
system_backup.viewView system backups
system_backup.manageCreate, restore, and manage system backups

SMS & mobile verification

PermissionDescriptionSAHRMHROACCDHEMP
sms.manageManage SMS providers
mobile_verification.manageManage mobile-number verifications

Appraisals

PermissionDescriptionSAHRMHROACCDHEMP
appraisals.configureManage appraisal settings (cadence, scale, toggles, auto-flow gate)
appraisals.manageBuild templates, run cycles, roll out, finalise, download PDFs, view all
appraisals.reviewAccess the manager review queue and submit reviews for direct reports
appraisals.view_ownView own appraisals and submit own self review

Assets

PermissionDescriptionSAHRMHROACCDHEMP
assets.manageFull CRUD on assets and categories; issue and return assets
assets.view_allRead all workspace assets and assignment history
assets.view_ownView own assigned assets and personal history

Offboarding

PermissionDescriptionSAHRMHROACCDHEMP
offboarding.manageInitiate separations, manage clearance, run final settlement
offboarding.viewRead separations, settlement preview, refresh live clearance

Onboarding

PermissionDescriptionSAHRMHROACCDHEMP
onboarding.manageEdit pipelines and tasks, assign owners, run system actions
onboarding.viewRead pipelines and tasks

Expense claims

PermissionDescriptionSAHRMHROACCDHEMP
expenses.submit_ownCreate and edit own claims, upload receipts, track status
expenses.approve_teamManager queue — approve / reject direct reports' claims
expenses.manageConfigure categories and HR/finance final-approve any claim
expenses.view_allRead all claims across the workspace

Recruitment / ATS

Recruitment permissions are seeded to Super Admin only by default. Grant them to HR roles (or a custom role) from the access-control screen when you roll the module out.

PermissionDescriptionSAHRMHROACCDHEMP
recruitment.manageManage jobs, postings, candidates, applications, interviews, offers, convert to employee
recruitment.interviewSubmit interview feedback (participant gate enforced in the service)
recruitment.viewRead openings, candidates, applications (no edits)

Performance tracking

PermissionDescriptionSAHRMHROACCDHEMP
performance.manageConfigure the performance module (settings, scorecard profiles, any task); override daily-report AI verdicts; triage AI-flagged reviews and void scores; link integration identities
performance.reviewAssign and grade tasks. Team-scoped on its own: reaches only the holder's direct reports; combined with performance.manage or performance.view_all it becomes company-wide. Recurring task schedules always require the company-wide combination
performance.view_allView all employees' performance scores
performance.view_ownView own tasks and score, submit daily reports

Performance integrations (GitHub / WHMCS)

The /admin/integrations surface is plan-gated on the performance feature. Connection plumbing and merit governance are split:

ActionPermissionSAHRMHROACCDHEMP
Connections: save credentials, choose repos, test, poll, AI-provider CRUDcompany.settings
Merit governance: identities list/link/unlink, flagged-review triage, score voidperformance.manage

Self-service (view_own / *_own) endpoints

The employee portal reads a user's own data through the view_own / *_own permissions (for example employees.view_own, attendance.view_own, leave.view_own, payroll.salary_view_own, salary_slips.view_own, loans.view_own, hr_letters.view_own, assets.view_own, expenses.submit_own, performance.view_own). These are granted to every default role, and the endpoints resolve the employee from the JWT — so a user can only ever reach their own records. The employment-agreement portal endpoints (see the Contracts note above) bypass the matrix entirely and authorize on the linked employee record.


Summary by role

The six default roles are seeded per workspace with these grant counts (out of 112 total permissions). Super Admin holds all of them.

RoleDefault permissions
Super Admin112
HR Manager92
Accountant50
HR Officer50
Department Head33
Employee23
info

This matrix reflects the default grants at workspace creation. Admins with roles.manage can change any role's permissions at any time; users must re-login to pick up a changed grant. See Custom roles and Default roles for more.