# Payroll & salary structures

Prepare salary structures, process payroll, review approvals and maintain salary slips.

Category: People
Guide: https://avkul.in/docs/guides/module-hr/
Guided sample demo: https://avkul.in/docs/demo/module-hr/
Snapshot: 11 October 2026

## Features

- Salary structures
- Payroll processing
- Approval
- Mark paid
- Salary slips
- PDF generation

## Access and setup

Intended access: Assigned account with the required permissions
- An assigned school account with the required permissions.
- The academic, student or staff setup used by this workflow.

Permission keys: payroll:view, payroll:create, payroll:update, payroll:delete, payroll:manage

## Workflow

1. Create the applicable salary structure.
2. Process payroll for the selected period.
3. Review calculations and approve the run.
4. Record payment status and review salary slips.

## Fields and controls

- name (string, declared required)
- staffId (string, optional)
- basic (number, declared required)
- componentsJson (SalaryComponentDto[], optional)
- ctc (number, optional)
- effectiveFrom (string, optional)
- isActive (boolean, optional)
- month (number, declared required)
- year (number, declared required)
- applyLossOfPay (boolean, optional)
- paidDays (number, optional)
- loanRecovery (number, optional)
- tax (number, optional)

## Current limits

- Marking payroll paid records an administrative state; this feature does not by itself transfer money to a bank.

## Actual application access

- https://avkul.in/en/school/payroll

## API reference

- GET /api/v1/hr/salary-structures — List Structures; payroll:view
- POST /api/v1/hr/salary-structures — Create Structure; payroll:create
- PATCH /api/v1/hr/salary-structures/:id — Update Structure; payroll:update
- DELETE /api/v1/hr/salary-structures/:id — Remove Structure; payroll:delete
- GET /api/v1/hr/payrolls — List Payrolls; payroll:view
- GET /api/v1/hr/payrolls/:id — Get Payroll; payroll:view
- POST /api/v1/hr/payrolls/process — Process Payroll; payroll:manage
- POST /api/v1/hr/payrolls/:id/approve — Approve Payroll; payroll:manage
- POST /api/v1/hr/payrolls/:id/mark-paid — Mark Paid; payroll:manage
- GET /api/v1/hr/salary-slips — List Slips; payroll:view
- PATCH /api/v1/hr/salary-slips/:id — Update Slip; payroll:update
- POST /api/v1/hr/salary-slips/:id/generate-pdf — Generate Slip Pdf; payroll:view

## Demo access

No login is required for the guided sample demo. Its fictional records and actions stay in this browser tab; they do not modify ERP records or send messages/payments. An assigned account is required for the actual ERP links.

Source inventory checked on 11 October 2026. This source inventory is not a certification of every external provider or device flow.
