Payroll proof pack
Monthly evidence for KH pilot sign-off (batches · attendance · punch flags)
Active market
Payroll workflow
- 1Calculate batch
- 2Submit for approval
- 3Approve (admin)
- 4Finalize → payslips
- 5Bank CSV → Paid
Profile approvals
Employees fill phone, emergency contact & bank in My Work, then submit. Owner / HR manager / payroll officer verify here (not under Payroll Approvals).
Showing this company only — employee and Owner must be the same workspace.
| Name | Phone | Emergency | Bank | Status |
|---|
Who can approve: Owner, HR manager, Payroll officer. Auditors can view only.
People
Employees
Browse team · open 360 · soft-deactivate without losing pay history
Employee 360
Pick someone in Directory and open 360 for identity, pay package, ESS profile, time, leave, and growth notes.
Hire someone
Full pay package on one screen — identity, time pay, unit rates, site
Import employees (CSV)
Preview first · then import. Uses same pay package fields as Hire (salary / hourly / stand-by + clinic rates + bank).
Download the CSV, fill rows, keep the header.
Market: —
Facilities
Clinic / branch sites under this tenant
| Code | Name | City | Staff | CCs |
|---|
Cost centers
Departments for payroll cost allocation
| Code | Name | Facility | Staff |
|---|
Trust
Income Passport
QR income proof for banks, landlords, and visa desks — no bank account or national ID on the page. Staff can open the same link in My Work after you issue.
Issue passport
Requires at least one finalized payslip for the employee
Issued passports
Active links · revoke if shared by mistake
| Employee | Purpose | Months | Expires | Views |
|---|
Payroll
Run payroll
Jurisdiction locked
Same package as Hire: time pay + unit rates × volumes this period. Attendance, unpaid leave, and late pro-rata apply on the server. Package gate blocks bad packages. This month so far is a live estimate (not a payslip).
Month-end
Dry-run checklist
Roster → packages → banks → attendance → leave → calculate → close
Pick year/month above, then run dry-run before Calculate.
This month so far
Live estimate from package + leave + attendance · same math as payslips · not final
Staff in this run
Tap to include · expand volumes when selected · active only
Run results
Preview shows package lines · Calculate opens Approvals when confidence is green
Ready when you are
Select staff, enter hours / unit volumes, then Preview (safe) or Calculate batch. Or open This month so far for a live estimate.
Month-end
Approvals
Close the month: Calculate → Submit → Approve → Finalize → Export
Batches this market
Select a batch to continue month-end
Pick a batch
After Calculate on Run payroll, open the batch here to submit, approve, finalize, and download bank files.
—
—
Delivery
Payslips
After finalize — open package PDF, chat share (WhatsApp / Telegram), same lines in My Work
Employees open the same package breakdown in My Work (/ui/ess.html) under Payslips — works offline after first open.
Attendance → payroll
Unpaid absences & OT auto-apply on calculate — no re-entry
This period
—
| Employee | Present | Unpaid abs | OT h |
|---|
Compliance Twin · KH
Employee PWA (install + offline payslips) · ESS demo: sokha@local.dev / Employee123!
Who’s here now
Phase C live board · open check-in, no check-out yet
| Employee | Site | Since | On site | Risk |
|---|
Today’s QR check-ins
Phase C · Wi‑Fi · offline · liveness · override
| Time | Employee | Site | Dir | Dist | Risk | Status |
|---|
Phase D · Face ID & turnstiles
Face templates · hardware gates · gov biometric stub
Enrolled faces
| Employee | Matches | Enrolled |
|---|
Access devices (turnstile)
| Code | Site | Dir | Active |
|---|
Hardware punch: POST /api/v1/tenants/:tid/access/turnstile/punch · headers X-Device-Code + X-Device-Secret · body {"badgeCode":"KH-001","direction":"in"} · Use Rotate secret after a leak or staff change.
Employee devices
First phone auto-trusts · new phones need approval
| Employee | Device | Status | Last seen |
|---|
Leave
Request leave
Approved unpaid leave auto-deducts in payroll
New request
Who · when · how it hits payroll
Leave requests
Trust
Audit trail
Who changed pay package, bank, or closed payroll — expandable detail
My password
Change the password for your login (e.g. tommy@riclabs.ca). This is separate from platform super-user.
Invite teammate
Admin only · email + role + temporary password
Team members
—
| Person | Role | Status | Actions |
|---|
You are signed in as —. Only Owner can manage this list.
Annual PIT pack (KH)
YTD withholdings vs year-end progressive tax · under/over paid
Employees
—
| Employee | Mo | YTD PIT | Annual tax | Balance |
|---|
Cambodia
NSSF & statutory
Assumed-wage bands · OR 0.8% · HC 2.6% ER · Pension 2%+2% · PIT · period pack
Single-line calculator
Preview NSSF bases + EE/ER before payroll
Breakdown
Period NSSF pack
Rollup from KH payroll lines · portal / accountant handoff