How Frappe HR India payroll handles PF, ESI and TDS in one payroll run
The India Payroll app extends Frappe HR, the open-source HRMS that runs on ERPNext, so an Indian employer can calculate statutory deductions and employer contributions inside the same payroll run that pays salaries. It covers Provident Fund, ESI, professional tax, the labour welfare fund and TDS, which means you need it when your employees sit across more than one state or when your payroll cannot be split across spreadsheets and a separate tax tool without reconciliation risk. Teams that only pay a flat salary with no statutory deductions have less reason to adopt it.
The statutory rules behind these deductions are not fixed in software. Contribution rates, wage ceilings, professional tax slabs by state, labour welfare fund schedules and TDS treatment all change, and each state sets its own professional tax and labour welfare fund rules. Before you configure anything, confirm the current rules with your payroll adviser or chartered accountant and check the official sources they point you to. Ask them to sign off the salary components and their formulas, not just the final net pay, because a wrong ceiling or slab shows up in every payslip until someone catches it.
Plan the configuration as a dependency chain: salary components feed the salary structure, the structure feeds the employee assignment, and the tax regime selector and declarations feed the TDS computation. Assign ownership for each piece, and test a sample of employees from each state in a non-production site before the first live run. Agree with your advisers which filings you will prepare from ERPNext and which you will export to your filing portals, and confirm the file formats you need from the current official sources before go-live.
Which statutory components the India Payroll app covers
Indian statutory payroll combines five separate obligations, each with its own trigger, contribution base and state or threshold rules. Setting them up as separate components in Frappe HR, rather than as one blended deduction, lets each one be checked, reported and corrected on its own.
Provident Fund (PF)
PF is a retirement savings contribution that most establishments with a qualifying headcount must run for eligible employees. Both employer and employee contribute, and the wage base used for the calculation is a common point of error, so confirm which earnings components count toward it and how the statutory wage ceiling is applied for your workforce. Confirm eligibility rules with your legal or payroll adviser before configuring the component.
Employee State Insurance (ESI)
ESI provides medical and cash benefits and is tied to a wage threshold, so employees above the limit fall outside it. Employer and employee contributions both apply to eligible staff, and an employee who crosses the threshold mid-year raises a transition question that the payroll setup must handle. Confirm the current threshold and which pay heads form the contribution base before the first run.
Professional tax
Professional tax is a state-level levy on employment income, so the rate slabs, the deduction frequency and the registration requirements differ by state. Every state where you employ people needs its own slab configuration, and remote or transferred staff can move the liability to another state. Confirm each state's current slabs and the employer registration it requires.
Labour welfare fund (LWF)
The labour welfare fund is a small contribution levied by some states, with its own contribution amounts and deduction periods that vary by state. It is easy to miss because it is not present in every state and some states set it on a different cycle from monthly payroll. List the states where you have employees and confirm which apply, how often they deduct, and whether the employer share is separately payable.
Tax deducted at source (TDS)
TDS is income tax withheld from salary each month against the employee's expected annual liability under the applicable regime. It depends on the tax regime an employee selects, their declared exemptions and proofs, and the slabs in force for the financial year. Confirm the regime selection process, the proof collection calendar, and who files the quarterly returns and certificates for your organization.
Configuration choices for statutory deductions
Each employee elects an income tax regime, so the setup has to carry that election per employee. In Frappe HR, the regime determines which tax slab set applies to the person, and the link runs through the employee's salary structure assignment. Confirm the regime options and the current slab tables with your tax adviser and the India Payroll documentation before you configure them.
- Separate slab sets: Build each regime as its own set of slabs with an effective date, so a change for one employee does not alter the calculation for anyone else.
- Recorded election: Store the regime the employee chose and the date it took effect, and keep the supporting declaration with the proofs your team reviewed.
- Mid-year switches: Decide in advance how a change during the financial year is handled, including whether tax already deducted is recalculated on the next slip.
- Slip impact: A regime change alters the income tax line and the taxable base for TDS. PF, ESI and professional tax lines generally do not depend on the regime, which you should confirm against your own design.
- Ownership: Agree who maintains the slab tables each budget year, since tax, HR and platform teams often hold different parts of the setup.
Check by testing one sample employee under each regime and comparing the slip with a manual calculation before the first live payroll run.
Professional tax and the labour welfare fund are set by state, so the payroll must apply the rule for the state that governs the employee. Which location counts (the work location, the establishment or the employee's home state) is a legal question to settle with your compliance team before you configure anything. Frappe HR then applies the state's slabs and frequency through the salary components you define.
- State slab tables: Each state sets its own professional tax slabs and deduction frequency. Load them with effective dates and record the official source you used for each state.
- Welfare fund schedules: Labour welfare fund contributions follow state-specific frequencies, so one monthly component may be wrong for some states. Confirm the schedule for every state where you have staff.
- Governing location: For employees who work across states, document which location drives the rule and apply that rule consistently.
- Slip impact: A transfer to another state changes both lines from its effective date, so the deduction in one month can differ noticeably from the month before.
- Coverage gaps: An employee in a state you have not configured receives no deduction. Add a check at payroll entry that flags any employee whose state has no active slab.
Check by confirming the current state tables and welfare fund calendar with your filings, then running a transfer scenario between two states before go-live.
PF and ESI apply under rules that test an employee's pay against a statutory threshold and, in some cases, test the size of the establishment. Some PF coverage decisions are also employee elections. These tests change over time, so the setup should hold thresholds and headcount rules as dated values, not as fixed amounts buried in formulas. Confirm the current thresholds and test dates with your payroll or compliance owner.
- Pay thresholds: Eligibility for ESI and some PF calculations depends on gross pay against a limit set in the rules. Store the limit with its effective date and change it through a dated update.
- Headcount test: Whether an establishment is covered can depend on its headcount on a specific date. Decide which date your rule uses and make the setup reflect it.
- Employee elections: Where PF coverage is a voluntary choice, record the election on the employee record and reflect it in the component formulas.
- Slip impact: When an employee crosses a threshold, the PF or ESI line appears or disappears on the next slip, and the employer share changes with it.
- Separate shares: Keep employee and employer contributions as separate components so accounting entries and statutory returns can be matched line by line.
Check by testing one employee just below and one just above each threshold, and confirm the headcount date rule with your compliance lead before the next payroll cycle.
The salary structure is where statutory choices become calculations. You can encode the choices in two ways: separate structures for each statutory profile, or fewer structures with conditional formulas that check the employee's state, regime or thresholds. Separate structures are easier to review and audit, but they multiply as the workforce changes. Conditional formulas keep the count low, but they are harder to read and test. Pick the approach your payroll reviewers can check with confidence.
- Structures by profile: Group staff who share a statutory profile, such as PF-covered, ESI-covered or neither, so each structure is simple to review.
- Conditional components: Where you use formulas, document each condition and test it against sample employees at the boundaries.
- Dated assignments: Structure assignments carry effective dates. When a regime or threshold status changes, create a new assignment from the change date and leave the earlier assignment unchanged.
- Change control: Every structure edit affects future slips. Record who approved it and keep the previous version so you can explain past payslips.
- Dry runs: Run a payroll dry run for each structure before attaching it to live employees.
Check by listing every structure and the statutory choice it encodes, then confirming each one against your written payroll policy before it is used for a live payroll.
Which statutory setting fits which employee group
This table compares the main India payroll settings (regime selection, PF, ESI, professional tax and labour welfare fund) against the employee groups they usually fit. Read each row as a question to settle with your payroll adviser before the first salary slip is generated. The main takeaway is that statutory applicability is decided by employee type, location and wage level, so each setting should be confirmed per group rather than copied from the last payroll cycle.
| Setting | Typical employee group | What it changes in the salary slip | What to confirm with the payroll adviser |
|---|---|---|---|
| Tax regime selector | Employees who may choose between old and new income tax regimes | Changes which tax slabs and exemptions the TDS computation applies | Which regime applies by default, and how employee declarations are collected and locked |
| PF applicability | Employees whose basic pay falls within the scope of the Provident Fund rules | Adds PF employee and employer deductions or contributions to the slip when the setting is on | Which pay components count as PF wages, and whether any employee is exempt or opted out |
| ESI applicability | Employees whose gross wages fall within the ESI coverage limits for the establishment | Adds ESI employee and employer contributions when the employee is covered | Current wage ceiling, coverage status per employee, and when coverage starts or stops |
| Professional tax by state | Employees working in states that levy professional tax | Deducts the state's professional tax amount for the matching salary slip month | The state slab, the deduction months, and the work location recorded for each employee |
| Labour welfare fund by state | Employees in states that operate a labour welfare fund | Adds the state welfare fund contribution in the months the state prescribes | The state contribution schedule, the employer and employee shares, and the due dates |
| Employees on contract or part-time terms | Staff whose engagement differs from regular employment | May shift PF, ESI or professional tax applicability depending on the contract and wage terms | Whether the engagement is employment for statutory purposes and which components apply |
| Employees at a new state work location | Staff transferred or hired into a different state | Switches professional tax and welfare fund settings for the new state from the effective date | Effective date of the change and whether prior months need a correction |
How to set up India payroll in Frappe HR step by step
This sequence takes a company from a bare ERPNext and Frappe HR install to a tested Indian payroll, where PF, ESI, professional tax, labour welfare fund and TDS are calculated from configured components and reconciled against the salary slips.
Confirm matching ERPNext, HRMS and India Payroll versions
Your administrator checks that the India Payroll app is installed on the same major version of ERPNext and Frappe HR (HRMS) that runs your site, and that the Frappe version is one still listed as supported on the Frappe supported versions page. Mismatched majors are the most common reason India-specific fields and components fail to appear. Confirm the exact compatibility pairs with the app's documentation and your vendor before installing. The step is done when the installed app list on the site shows all three apps on compatible versions and a test site loads the Payroll Settings screen without errors.
Set company and employee statutory identifiers
Your HR lead enters the company's statutory registration numbers, such as the PF establishment code, ESI employer code and state professional tax registration, on the Company record. Then each Employee record gets its own identifiers, including the PF UAN, ESI number, PAN and the state of work, which later decide which professional tax and labour welfare fund rules apply. Ask your payroll adviser which identifiers each statutory filing requires, because field names and mandatory rules depend on the app version. The step is done when a sample employee from each state shows the correct identifiers and the company record passes a save without validation messages.
Configure PF and ESI salary components
Create earning and deduction salary components for basic pay, dearness allowance and other PF-relevant earnings, then create the employee provident fund and ESI deduction components with their formulas and employer contribution rules. Attach the statutory flags so the calculation uses the wage ceilings and contribution bases set by current law. Build one salary structure per pay group, assign the statutory components to it, and check the formulas against the rates in your current notifications before going live. The step is done when a test salary structure assignment for an employee above and below the ESI wage limit produces the expected PF and ESI lines on a draft salary slip.
Set state professional tax and labour welfare fund
Enter the professional tax slabs and the labour welfare fund rules for each state where you have employees, using the effective dates from each state notification. Professional tax often depends on the employee's state and monthly gross, and labour welfare fund is often charged on a half-yearly or periodic schedule, so confirm the frequency for each state with a local adviser. Map each employee's work state to the right rule set. The step is done when employees in two different states show different professional tax deductions on draft slips, and the labour welfare fund line appears only in months where the state rule requires it.
Assign the tax regime and income tax slabs
Set the default income tax regime for each employee through the tax regime selector, then link the income tax slabs for the financial year through the salary structure assignment. Employees usually declare their regime and exemptions at the start of the year, so your payroll team should record the declaration status before the first payroll run. Confirm with your tax adviser which slabs and surcharge rules apply for the year. The step is done when a test employee under the old regime and another under the new regime show different tax computations on the same gross pay, and both are linked to the correct slab set.
Configure TDS and the employee tax exemption flow
Enable TDS calculation on the payroll, set the monthly tax projection method, and configure the exemption declaration and proof collection so that declared investments and allowances reduce taxable income. Decide with your tax adviser how arrears, bonuses and mid-year joiners are treated in the projection, since these change the monthly TDS amount. The step is done when a test employee with a declared exemption shows lower monthly TDS on the draft slip than the same employee without it, and the tax computation report reflects the same figure.
Run a test payroll for a sample group
Create a Payroll Entry for a small test group covering each state, each regime and at least one employee above and one below the ESI ceiling. Generate the salary slips, review every statutory line, and compare net pay manually against a calculation done outside the system for two or three employees. Correct any formula or master data issue, then regenerate the slips. Do not submit the test entries to live accounts. The step is done when the test slips match the manual calculation within rounding and no statutory line is missing or duplicated.
Reconcile salary slips with statutory reports
Submit the final payroll for the test period in a sandbox, then run the statutory reports for PF, ESI, professional tax, labour welfare fund and TDS. Reconcile the totals in each report against the sum of the matching deduction lines on the salary slips and the accounting entries posted to ERPNext. Any difference must be traced to a specific employee or component before go-live. Keep a written reconciliation sheet and have the payroll owner sign it off. The step is done when every statutory total ties to the slips and the journal entries, and the sign-off record is saved with the configuration version used.
How the tax regime selector and TDS work in practice
The tax regime an employee is on decides which TDS computation runs for them every month, so the selector is the first setting to verify before any salary slip is generated. In practice, each employee's chosen regime determines which slabs, deductions and exemptions feed the projected annual taxable income, and the monthly TDS is the remaining tax spread across the pay periods left in the financial year. Confirm with your tax adviser which regimes and slab sets currently apply for each employee category, and check the slab configuration in your India Payroll setup against the official tax notifications before you rely on any figure.
Declarations and proofs are what move the calculation away from the default. Investment declarations, house rent allowance details, home loan interest, and other claims enter as declared amounts, and the proofs submitted later either confirm them or trigger an adjustment in the payroll cycle where verification happens. Decide early who collects proofs, what cut-off dates apply, and how rejected proofs are reversed, because a late proof can change the tax for several months at once. Ask your adviser which exemptions are available under each regime, since claims that are valid under one regime are often not available under the other.
When an employee switches regime mid-year, the safest approach is to treat the change as an event that needs its own review rather than a quiet edit to the structure. Check how the system recalculates tax already deducted in earlier months, how the remaining months are spread, and whether the employee's declared figures still apply under the new regime. Before filing, reconcile the TDS deducted per month against the amounts in your payroll reports, and confirm the return format, challan details and the filing portal requirements with your tax adviser and the official filing portal, because both the rules and the file formats can change between financial years.
Security and access controls for statutory payroll data
Statutory payroll data in Frappe HR combines salary figures with identifiers such as PAN, UAN and ESI numbers, so access has to be decided by role before the first salary slip is generated. The cards below cover who can see that data, how structures and slips are protected, how changes to statutory settings are traced, how backups are handled and how payroll admins are separated from approvers.
Field-level visibility for PAN, UAN and ESI
PAN, UAN and ESI numbers sit on the employee record and flow into salary slips and statutory exports, so anyone who can open the employee record may see them. Decide which roles can read these identifiers and which can only see masked or partial values in reports. Test the setup with a non-payroll HR user and with a manager, then confirm that print formats and exported files do not expose fields the user cannot open on screen. Ask your implementer to document each field's permission path.
Role permissions on salary structures
Salary structures and their components define the formulas that calculate PF, ESI, professional tax and TDS for every employee assigned to them. Restrict create, write and submit rights on Salary Structure and Salary Component to a small payroll group, and keep read access separate. Review who holds the Payroll Manager role, because a single user with both structure editing and slip approval can change a deduction and approve the result without a second check.
Controls on salary slips
Salary slips hold the computed PF, ESI, professional tax and TDS amounts for each month, so they are the record auditors and employees will compare against statutory returns. Limit who can edit a draft slip, and decide whether submitted slips can be amended only through a cancel and reissue path. Confirm that employees see only their own slips, and that payslip emails and downloads follow the same rule.
Audit trail for statutory settings changes
Changes to PF and ESI rates, professional tax slabs by state, labour welfare fund amounts and the tax regime selector alter every slip that follows. Frappe records version history on most documents, so confirm that version tracking is enabled on these settings and on tax slab records. Require a written reason for each change in your change log, and review the history before each payroll run.
Backups of payroll data
Payroll data needs its own recovery plan because a corrupted month can affect PF challans, TDS certificates and bank files. Schedule database backups that include the Frappe site files, and test a restore to a separate site before relying on it. Ask whether backups are encrypted, where they are stored, who can download them and how long they are kept. Restores should be rehearsed with payroll staff so they know which submitted slips to check after recovery.
Separation between payroll admins and approvers
The person who prepares a payroll entry should not be the person who approves the salary slips and the bank payout. Map a payroll admin role for setup and processing, and a separate approver role for review and submission. Keep system administrators who can change permissions out of the approval chain, and record who holds each role in your access register. Review the mapping when staff change roles or leave the payroll team.
Questions buyers ask before hiring help with India payroll
What drives the implementation effort and cost for Indian statutory payroll?
The biggest drivers are headcount, the number of states where employees work, how many distinct salary structures you run, the volume and quality of historical payroll data, and any custom pay rules that go beyond the standard components. Each state adds its own professional tax and labour welfare fund rules to configure and test, so a multi-state workforce takes more setup than a single-state one. Structures multiply the testing, because each one needs its own earnings, deductions and PF, ESI and TDS treatment checked. Historical data drives the migration work, since opening balances for leave, loans and tax-to-date must be reconciled before a live run. Ask any partner to break the quote down by these drivers.
How long does it take to reach a tested payroll run?
The timeline depends on the same drivers as cost, plus how quickly your payroll and tax team can confirm rules and sign off test results. The sequence usually runs from requirements and rule confirmation, through configuration of components, structures and tax slabs, to parallel test runs against your existing payroll. Each parallel run should be compared line by line with your current output before you trust the setup. Ask for a written schedule with named client review points, since delays most often come from waiting on rule confirmation or data corrections rather than from the build itself.
What does the work need from our payroll and tax team?
It needs people who can state the rules and check the results. Your payroll lead should confirm PF, ESI, professional tax and labour welfare fund rules for each state where you have staff, along with the salary components and their taxable treatment. Your tax team should confirm the regime choice options employees will use, the TDS deduction approach, the declaration and proof process, and the filing calendar. Someone must also own the sign-off on parallel runs and the historical data extract. Ask the implementation partner to list these named responsibilities in the written scope so gaps are visible before work starts.
Can an internal team set up Indian payroll on its own?
An internal team with Frappe and ERPNext experience and a clear payroll rulebook can do it, but the effort is concentrated in testing and rule interpretation rather than in clicking through configuration. The risks are wrong state rules, incorrect tax computation for employees who change regime or join mid-year, and missed filing deadlines. Teams that build in-house should plan for a parallel run, an independent review of the calculations, and ongoing ownership of statutory changes. If your team lacks any of those skills, a fixed-scope engagement can cover the build and hand over documented runs.
What recurring work follows each statutory change?
Each change to PF, ESI, professional tax, labour welfare fund or income tax rules needs a review of the affected components, slabs and formulas, followed by testing before the next payroll run. State professional tax and labour welfare fund rules can change at different times, so the review cycle should cover every state where you operate. Recurring work also includes updating the Frappe HR app when new releases arrive, rechecking custom scripts for compatibility, and refreshing exemption and filing templates each financial year. Ask whether support is covered by a retainer or billed per change, and what the response expectations are written to be.
How is a fixed-scope quote built for India payroll?
A fixed-scope quote starts from a written list of what is in and out: the states, the employee groups, the salary structures, the tax regime handling, the statutory returns covered, the historical data to migrate, and the number of parallel test runs. Each item becomes a deliverable with an acceptance check, and the quote states what the client must provide, such as rule confirmations and data extracts. Ask for the quote to list one-time build work separately from any recurring support, and to name what would trigger a scope change. A quote follows from the written scope, so a vague scope will produce a vague number.
Which parts of Indian payroll does the open-source app cover and which need checking?
The India Payroll app for Frappe HR provides the building blocks for PF, ESI, professional tax and labour welfare fund calculations and a regime selector for income tax, but you should confirm each rule against current statutory guidance and your own employee profile. Check the app version against the Frappe and ERPNext versions you run, since supported releases change over time. Also confirm how TDS filing files are produced and submitted in your environment, because filing formats and portals are outside the software itself. Treat the app as a starting point that your payroll and tax team validates.
What DeployOpen confirms and delivers on this scope
DeployOpen plans, configures and tests the India Payroll setup inside your own infrastructure, whether that is your cloud account, a data center or an isolated network. The work covers the Provident Fund, ESI, professional tax and labour welfare fund configuration for each state where you employ staff, the tax regime selection and the TDS computation settings, all validated against salary slips you approve before any live payroll run. DeployOpen also prepares the evidence a reviewer will ask for: a configuration record, test payroll runs with expected outputs, role and permission settings for the people who can edit components, and a change log for every statutory update applied after go-live.
DeployOpen does not give statutory opinions, file returns or certify compliance. Whether a contribution rate, wage ceiling, exemption or state slab is correct for your establishment is a question for your tax adviser, labour counsel or payroll compliance lead, and the filing itself stays with your own team or your filing provider. An independent auditor decides whether your controls are adequate. Before the build starts, confirm in writing who signs off each rule set, which statutory source the configuration follows, and who is responsible for updating rates when a notification changes. Those answers determine how much of the test evidence will be usable in an audit.
How DeployOpen scopes and supports Frappe HR India payroll
DeployOpen plans, configures, tests and hands over Indian statutory payroll in Frappe HR on ERPNext, inside infrastructure you control. Each engagement starts from a written scope that names the states, statutory components, tax regime rules and filing outputs your payroll must produce.
How we scope
- Map each employee group to its PF, ESI, professional tax and labour welfare fund obligations by state and establishment.
- Record which tax regime choices employees can make, and who approves and evidences each declaration in the written scope.
- Agree in writing which TDS outputs, challans and reports are produced in Frappe HR and which are prepared by your payroll or tax team.
How we build
- Configure salary components, formulas and structures for PF, ESI and professional tax, then test each rule against sample salary slips.
- Set up income tax slabs by effective date and link them through structure assignments so mid-year changes do not break calculations.
- Validate accounting entries and bank payout files in a staging copy of your ERPNext site before any live payroll run.
How we hand over
- Document each statutory rule, its configuration location and the owner responsible for updating it when rates or state rules change.
- Provide test cases and a reconciliation checklist that your payroll and finance staff can rerun for each pay cycle.
- Walk your team through correction procedures, including how to rerun a payroll entry and what to verify before filing.
How we support
- Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
- Ongoing support, upgrades and continuous testing are available as a retainer, so statutory changes can be applied on a planned cycle.
- Confirm with your payroll adviser or the relevant authorities which rate and filing changes apply to your establishments before each change is released.

