Payroll Module
Phase 7 HR module on the frozen platform. Manages payroll profiles (base salary / frequency) and pay runs with draft → approve → pay lifecycle. Hard-depends on Employees. Soft-depends on Accounting for optional journal posting and Mark paid Paid-from cash/bank deduction.
Guides
| Audience | Document |
|---|---|
| Operators / workspace users | payroll.md |
| Engineers | payroll.md |
| Production / ops | payroll.md · 1.4.0 paid-from readiness |
| Tenant API | ../api/tenant-v1-payroll.md |
Capabilities
- One payroll profile per employee (base salary, currency, pay frequency)
- Pay runs for a period; auto-generate lines from active employees’ profiles
- Line fields: gross, adjustments, net, working/unpaid-leave/absent/present, late breakdown,
daily_rate,days_counted - Working-day basis setting (
work_week|calendar_month) under Settings → Attendance - Soft inputs from Leave Management (unpaid approved leave) and Attendance (unexcused absences / late ladder)
- Pay-run CSV register export
- Lifecycle: draft → approved → paid
- Optional post to Accounting: creates a draft journal (expense debit / liability credit) when Accounting is entitled
- Soft delete / restore / force delete (draft-only delete for pay runs)
- Module licensing (
module:payroll) + Spatie permissions — free Marketplace opt-in - Hard dependency on
employees; optional dependency onaccounting
Permissions
payroll.view · view_own · create · update · delete · restore · force.delete · approve · pay · post
Catalog: slug payroll, category hr, sort_order = 40, free opt-in, version 1.5.1.
Explicitly deferred
- Tax engines / filings / statutory deductions
- Bank file export / direct deposit
- Multi-currency payroll
- Benefits and garnishments