Running payroll in India is mostly a compliance exercise. The salary maths is simple, but every payslip has to carry the right PF, ESI, Professional Tax and income tax, and those rules differ by state, wage level and employee. ERPNext handles this with Frappe HR plus a companion called the India Payroll app.

This guide explains what that app covers, how each statutory item is set up, and where payroll goes wrong in practice. It is a map of the moving parts, not a replacement for a proper implementation.

Rates and limits change. Treat the figures here as a guide and confirm current values with the EPFO and ESIC websites, your state labour department, or your compliance consultant. The feature descriptions come from the India Payroll documentation and project page, read on 5 October 2026.

What You Need Installed

Core ERPNext and Frappe HR give you salary components, salary structures, salary slips and Payroll Entry. The Indian statutory layer is a separate app, India Payroll, which plugs in its own calculations and reports. If you only have Frappe HR, you will not get PF, ESI or Professional Tax logic by default.

The broader process, from attendance and leave through Payroll Entry to the bank payment, is drawn in our payroll processing flow. This post focuses on the statutory part.

Provident Fund (PF)

  • Employee contribution: 12% of PF wage, capped at the wage ceiling. Voluntary PF can be added as a fixed amount or a percentage.
  • Employer contribution: 12%, split between the pension scheme (EPS, about 8.33%) and EPF (about 3.67%), with EDLI and admin charges calculated on top.
  • Wage ceiling: raised from ₹15,000 to ₹25,000 from 17 September 2026. See what to check in ERPNext after the change.
  • Report: an EPF register formatted for the EPFO ECR upload.

The common mistake is the definition of PF wage. It is usually Basic plus DA, not gross. If your salary structure marks the wrong components as PF-eligible, every slip will be off by the same pattern.

Employee State Insurance (ESI)

ESI applies to employees whose monthly gross is within the ESI wage limit, reported as ₹21,000. The reported rates are 0.75% from the employee and 3.25% from the employer. The documentation notes that coverage is decided on the full monthly gross, so an employee who crosses the limit drops out of ESI for the period.

That is a different test from the PF ceiling. An employee can be inside PF and outside ESI, so do not assume the two switch on and off together. The app produces ESI returns in the format needed for filing.

Professional Tax (PT)

Professional Tax is a state tax, which is why it causes most of the setup errors. In India Payroll:

  1. Turn the feature on in Payroll Settings, on the India Payroll tab, using the option to enable Professional Tax deduction.
  2. Set the Employment State on each employee's Salary Structure Assignment. This is the field the calculation reads, not the state on the Employee master. It lets PT follow an employee who moves to a branch in another state.
  3. Create or update salary slips. A Professional Tax row appears in the deductions table, based on the employee's state, gross pay and the state's pay frequency.

Some states collect monthly and others half-yearly, and the documentation gives examples of both. Maharashtra, for instance, has a lower slab for women earning up to a set amount and a higher amount in February to reach the annual cap. Because slabs are revised from time to time, have a payroll specialist check the states you operate in. A Professional Tax Register report lists what was deducted for each employee.

Labour Welfare Fund (LWF)

LWF contributions are state-specific, with different amounts and different frequencies: monthly, half-yearly or annual. India Payroll applies the state rules and gives you an LWF filing report. If you operate in several states, this is another reason to keep Employment State accurate.

Income Tax and TDS

For tax deducted at source, the app supports both the old and new regime slabs, surcharge with marginal relief, and a regime comparator that lets an employee see which regime leaves them better off. Payroll then spreads the tax across the year using the slab you assign and the declarations the employee submits.

Two practical points. First, update your Income Tax Slab records whenever the rules change after a budget. Second, get employees to submit their declarations early in the year, because a late declaration means a bigger deduction in the remaining months.

Reports You Will Use Every Month

Statutory itemWhere it shows upWhat you do with it
PFSalary slip deductions, EPF registerCheck, then upload the ECR file to EPFO
ESISalary slip deductions, ESI returnFile and pay through the ESIC portal
Professional TaxSalary slip deductions, PT RegisterRemit to each state as per its schedule
LWFSalary slip, state LWF reportFile per state frequency
TDSSalary slip, tax slab and declarationsDeposit and report as per income tax rules

Where Payroll Setups Go Wrong

  • Wrong PF-eligible components. Mark only the components that form PF wage.
  • Employment State left blank or wrong. Professional Tax and LWF both depend on it.
  • Not testing special cases. Mid-month joiners, leavers, loss-of-pay days and a month where a rule changes all behave differently from a standard slip.
  • Skipping the review step. Payroll Entry lets HR review and regenerate slips before approval. Use it, especially in the first few cycles.
  • Forgetting to update after rule changes. The app and your slab records both need updating when the rules move. The recent PF ceiling change is a live example.

A Sensible Go-Live Order

  1. Clean the employee master: PAN, UAN, ESIC number, state, joining date.
  2. Build salary structures and mark PF, ESI and tax-eligible components correctly.
  3. Assign structures with the right Employment State.
  4. Run payroll in ERPNext in parallel with your current method for two or three cycles.
  5. Reconcile every difference, then switch over.

We do this as part of an ERPNext HR rollout. See the full scope on our statutory compliance and payroll sections, or the end-to-end flow in the statutory compliance diagram.

Frequently Asked Questions

Core ERPNext with Frappe HR handles salary structures, salary slips and payroll entries. The Indian statutory layer (PF, ESI, Professional Tax, Labour Welfare Fund and tax regime logic) comes from the India Payroll app, which is a separate extension you install alongside Frappe HR.

On the Salary Structure Assignment, in the Employment State field, not on the Employee master. This lets Professional Tax follow an employee correctly when they are transferred to a branch in another state.

Yes. The India Payroll app produces an EPF register formatted for the EPFO ECR upload. Always compare the register against your salary slips before you upload it.

Yes. The app supports old and new regime slabs, surcharge with marginal relief, and a regime comparator that lets an employee compare the two. Tax slabs change with each budget, so update the Income Tax Slab records when the rules change.

It depends on how many salary structures you have, how many states you operate in, and how clean your employee data is. We scope it after reviewing your current payroll, and we recommend running ERPNext in parallel with your existing process for two or three cycles before switching over.

The monthly PF wage ceiling was raised from ₹15,000 to ₹25,000 from 17 September 2026. We cover what to check in ERPNext in a separate post, linked below.

Need Indian Payroll Set Up in ERPNext?

We configure salary structures and statutory settings for your states, test them against manual calculations, and run parallel cycles before go-live.