Home / Blogs & Insights / Odoo Payroll India 2026: PF, ESI, PT & TDS Setup Guide

Odoo Payroll India 2026: PF, ESI, PT & TDS Setup Guide

Odoo payroll compliance setup for PF ESI Professional Tax and TDS in India

Table of Contents

Payroll compliance India is not a single rule. It is five separate statutory obligations, each with its own registration, rates, deadlines, and penalties. Miss one, and government notices follow. Two major changes in 2026 have made correct setup more critical than ever: the Labour Code 50% wage rule (November 2025) and the Income Tax Act 2025, which replaced Form 24Q with Form 138 from April 1, 2026.

The good news is that Odoo 18 and Odoo 19's Indian payroll localization handles all five components EPF, ESI, Professional Tax, TDS, and LWF natively. This guide covers PF ESI compliance India configuration inside Odoo, statutory compliance payroll India deadlines, and the reports you need to file every month.

Key Takeaways

  1. Odoo 18/19 covers all 5 statutory payroll components natively
  2. Labour Code 2026: basic salary must be at least 50% of CTC
  3. Form 24Q is now Form 138 from April 1, 2026
  4. Monthly deadlines: TDS 7th, EPF 15th, ESI 21st
  5. All statutory reports export directly from Odoo Reporting

What Changed in Indian Payroll Compliance in 2026

Two regulatory changes took effect in 2025 and 2026 that directly affect every Indian payroll configuration. If your Odoo setup predates these changes, action is required before your next payroll run.

Labour Code 2026: the 50% Wage Rule

The four Labour Codes were implemented in November 2025, consolidating 29 older laws. The critical payroll impact is the 50% wage rule: basic salary plus dearness allowance must now be at least 50% of total CTC. This is mandatory, not optional.

Many businesses previously kept basic at 20 to 30% of CTC to minimise PF liability. This structure now triggers retrospective PF dues, interest, and penalties during EPFO inspections. If you are also using automated actions in Odoo 18 to trigger payroll workflows, verify those actions use the updated salary structure.

External Reference

The Ministry of Labour and Employment published the Labour Codes gazette notification. Check the official Labour Codes portal for the applicable implementation date in your state.

Income Tax Act 2025: Form 138 Replaces Form 24Q

From April 1, 2026, the Income Tax Act 2025 is in force. TDS on salary now falls under Section 392(1), not Section 192. The quarterly TDS return is now Form 138, not Form 24Q. The annual employee TDS certificate is now Form 130, not Form 16.

Critical Alert, Form 138 TDS Return India 2026

Filing Q1 FY 2026-27 (due July 2026) using old form numbers will fail portal validation. Verify your Odoo version reflects IT Act 2025 terminology before your first quarterly filing. The Income Tax India portal has official Form 138 filing guidance.

India's Statutory Payroll Framework: the 5 Components

Statutory compliance payroll India covers five separate obligations under different central and state laws. While PF builds long-term retirement savings for employees, ESI covers short-term medical and sickness benefits both are mandatory under separate central laws. PF ESI compliance India alone accounts for two of the five components; Professional Tax, TDS, and LWF add three more layers.

ComponentEmployee %Employer %ThresholdDeadlinePenalty (late)
EPF (PF)12% of basic12% + 1% admin₹15,000 cap15th monthly12%/yr + ₹3L max
ESI0.75% of gross3.25% of gross≤₹21,000/mo21st monthly₹5,000+
TDS (salary)Per income slabN/AAll salaried7th monthly1.5%/month
Professional Tax₹0 to ₹208/moN/AVaries by stateMonthly/half-yearlyVaries
LWFVariesVariesState-specificJune & DecVaries
Official Sources

Contribution rates are governed by the EPFO Act for PF, and the ESIC wage ceiling notification for ESI. Verify current thresholds on official portals as these are revised periodically.

Setting Up Odoo Indian Payroll Localization (Step-by-Step)

The Odoo 18 payroll module India localization handles all five statutory components once correctly configured. Follow this sequence exactly, because each step activates features used in the next. Before you begin, ensure employees are set up: see our guide on how to create an employee and assign them to a department, and manage users in Odoo so your payroll team has correct permissions.

1
Install the India Payroll Module

Go to Apps, search for India Payroll, and install. The module activates India-specific salary structures, employee statutory fields (UAN, ESIC number, PAN), and the Indian Payroll Settings section in Configuration. Since Indian payroll localization is generally used with Enterprise features, businesses evaluating deployment options should also compare Odoo Community vs Enterprise before implementation.

Odoo India Payroll module installation screen
Odoo Apps screen showing the India Payroll module installation.
2
Enter Employer Registration IDs

Go to Payroll → Configuration → Settings → Indian Payroll. Enter your EPF Employer ID, ESIC Employer Code (10-digit), and PT registration esic.gov.in before this step if not already done.

Indian Payroll settings with EPF and ESIC employer fields
Indian Payroll settings screen showing EPF Employer ID and ESIC Employer Code fields.
Note

If these fields are left blank, EPF, ESI, and PT deductions will not appear in employee payslips.

3
Choose the PF Calculation Method

Odoo offers two options: Cap at ₹15,000 basic (max ₹1,800/month) or calculate on actual basic (higher retirement savings). Most businesses use the cap; IT firms often choose actual as an employee benefit. Also add bank account details at this stage, see our guide on adding a bank account in the Odoo 18 employee app.

PF calculation method settings in Odoo India Payroll
PF calculation settings showing capped and actual basic salary options.
4
Configure Salary Structure for the 50% Wage Rule

Go to Payroll → Configuration → Salary Structures. Set basic salary as a formula equal to minimum 50% of CTC. HRA is typically 40 to 50% of basic (50% for metro cities). Special allowance makes up the remainder. Have your CA review and sign off before the first payroll run.

Odoo salary structure configuration for the 50 percent wage rule
Salary structure configured to comply with the 50% wage rule.

Configuring PF (Provident Fund) in Odoo

Once the localization is installed, the Odoo salary rules PF ESI India setup is largely automatic. Here is what to verify and where to act.

PF Salary Rules in Odoo

The India Payroll module creates two salary rules automatically: employee 12% of basic, and employer 13% total. Go to Payroll → Configuration → Salary Structures → India: Regular Pay to verify both rules are active. For how the Payroll module fits within the broader Odoo ecosystem, see key Odoo modules and how they connect. The module architecture applies across industries even though that post uses a manufacturing context.

UAN Number in Employee Records

The UAN number Odoo employee India field is in the employee profile under Private Information → UAN. The UAN is a 12-digit EPFO identifier assigned to each employee for life. Without a UAN, Odoo cannot generate the ECR file. For new hires, collect the UAN or generate one via the EPFO Unified Portal before their first payslip.

Generating and Exporting the EPF ECR File

After confirming the monthly payslip batch, go to Payroll → Reporting → EPF Report. Odoo generates the ECR (Electronic Challan cum Return) file in XLSX format. The EPF ECR file Odoo India export contains a UAN-wise breakdown of contributions. Upload to the EPFO Unified Portal by the 15th of every month.

Configuring ESI in Odoo

The ESI salary limit India 2026 is ₹21,000 gross per month. Employees earning above this amount are excluded from ESI. Odoo automatically applies this threshold, so when an employee's gross salary in their contract exceeds ₹21,000, the ESI salary rules return zero deduction on the next payslip.

The ESI threshold 2026 India payroll calculation uses 0.75% employee + 3.25% employer. ESI contribution periods run half-yearly: April to September and October to March. Refer to esic.gov.in for the official wage ceiling notification.

Important: Salary Increases Mid-Year

If an employee's increment pushes gross salary above ₹21,000, update the contract before the next payroll run. Continuing to deduct ESI after the ceiling creates an overpayment that is difficult to recover from ESIC.

To generate the ESI challan, go to Payroll → Reporting → ESI Report. Download the XLSX and upload to the ESIC portal by the 21st of every month.

Professional Tax in Odoo: State-Wise Slab Setup

Professional Tax India payroll is a state-level tax with a maximum of ₹2,500 per year. Delhi, Haryana, and Rajasthan do not levy PT. Odoo reads the employee's state from their contract and automatically applies the correct slab. Enter your PT registration number in Payroll → Configuration → Settings → Indian Payroll. You can set filing date reminders using automated actions in Odoo 18.

PT State-Wise Slab Table (FY 2026-27)

StateMonthly Salary RangePT per Month
MaharashtraUp to ₹7,500Nil
Maharashtra₹7,501 to ₹10,000₹175
MaharashtraAbove ₹10,000₹200 (Feb: ₹300)
KarnatakaUp to ₹25,000Nil
Karnataka₹25,001 to ₹41,666₹150
KarnatakaAbove ₹41,667₹200
Tamil NaduUp to ₹3,500Nil
Tamil Nadu₹3,501 to ₹7,500₹22.50 to ₹52.50
Tamil NaduAbove ₹7,500₹208.33
West BengalUp to ₹10,000Nil
West Bengal₹10,001 to ₹25,000₹110 to ₹130
West BengalAbove ₹25,000₹200
Andhra PradeshUp to ₹15,000Nil
Andhra PradeshAbove ₹20,000₹200
Delhi / Haryana / RajasthanAll salary levelsNo PT applicable

Karnataka Professional Tax: Additional Surcharge and Compliance Considerations

Karnataka Professional Tax rates are revised periodically through state budget notifications, making annual review essential. Businesses should validate PT slabs at the beginning of every financial year to ensure payroll deductions remain compliant. In Odoo, reviewing salary rules and testing payroll calculations each April helps prevent under-deduction and audit issues.

Best Practice

Create an annual compliance checklist in Odoo Activities or Automated Actions to review Karnataka PT slabs every April. This prevents outdated deductions and employee reconciliation issues during audits.

Maharashtra Professional Tax: Understanding the February ₹300 Anomaly

Maharashtra follows a unique Professional Tax structure where employees earning above the prescribed threshold pay ₹200 per month for most of the year, but ₹300 in February. This additional deduction ensures the annual Professional Tax contribution reaches the statutory ceiling of ₹2,500. Payroll teams migrating from legacy systems should verify that this February adjustment is correctly configured in Odoo.

Common Migration Issue

Companies migrating from Tally, Excel, or custom payroll software often forget the Maharashtra February adjustment. Always compare total annual PT deducted per employee against the ₹2,500 statutory limit during migration validation.

Handling Multi-State Payroll in Odoo

For companies with employees across states, Odoo manages PT automatically. An employee in Maharashtra pays ₹200/month, a colleague in Karnataka pays under a different slab, and an employee in Delhi pays nothing, all handled in a single payroll run. If an employee relocates between states, update the contract state field and Odoo applies the new slab from the next payslip.

TDS on Salary in Odoo: Old vs New Regime + Form 138

TDS on salary India section 192 2026 is now Section 392(1) under the Income Tax Act 2025. Odoo calculates TDS by projecting each employee's annual taxable income from their contract CTC, declared exemptions (80C, HRA, 80D), and chosen tax regime. The annual projected tax is divided equally across the remaining months of the FY and deducted monthly. Businesses that also deduct tax on vendor payments or collect tax on sales can review our detailed guide on Odoo India TDS and TCS compliance for broader Indian withholding tax scenarios.

From April 2026, the new tax regime is the default. Employees who want old-regime deductions must submit a signed declaration. Collect declarations from all employees every April and store them against the employee contract in Odoo. The Income Tax India portal has official regime comparison and declaration forms.

Form 138 TDS Return India 2026: Critical Update

Form 24Q is now Form 138 effective April 1, 2026. Form 16 is now Form 130. TDS falls under Section 392(1), not Section 192. Q1 FY 2026-27 return is due July 2026. Filing with old form numbers will fail validation. Verify the TDS Report in Odoo shows "Form 138" before your first quarterly filing.

Labour Welfare Fund (LWF) in Odoo

The labour welfare fund India applies in approximately 16 states. Delhi, Haryana, and Rajasthan do not levy LWF. Most states follow a semi-annual schedule with contributions due in June and December.

Enter your LWF establishment number in Payroll → Configuration → Settings → Indian Payroll and set state-wise contribution amounts. Verify LWF applicability for every state where you have employees at setup.

Statutory Reports in Odoo: Generate, Export, and File

After confirming each monthly payslip batch, all statutory reports are available directly from the Payroll module, formatted for direct portal upload. The Odoo EPF report India and Odoo ESI report India are the two you will run every month without exception. You can also track payroll-related expenses directly from your accounting workflow after payroll journals are posted.

ReportOdoo PathFormatPortalFrequency
EPF ECR filePayroll → Reporting → EPF ReportXLSXEPFO PortalMonthly, by 15th
ESI challanPayroll → Reporting → ESI ReportXLSXESIC portalMonthly, by 21st
LWF reportPayroll → Reporting → LWF ReportXLSXState LWF boardPer state schedule
TDS return (Form 138)Payroll → Reporting → TDS ReportXLSX/PDFTRACES portalQuarterly
Form 130 (employee TDS cert.)Per employee from payslipPDFDistribute to employeesAnnual, June 15
Salary RegisterPayroll → Reporting → Salary RegisterXLSXInternal / auditorsMonthly

India Payroll Compliance Calendar + Penalty Table (2026)

Missing a statutory deadline does not produce an immediate penalty it produces silently accumulating interest and penalties that most businesses discover only during an inspection or audit.

Compliance Deadline Calendar

ObligationDeadlinePortal
TDS on salary deposit7th of following monthIncome tax portal
EPF contribution deposit15th of following monthEPFO portal
ESI contribution deposit21st of following monthESIC portal
Form 138 (quarterly TDS return)31 days after quarter endTRACES portal
Form 130 (employee TDS certificate)June 15 each yearIssue to employees
Professional TaxMonthly or half-yearlyState Commercial Tax Dept
LWF contributionJune and DecemberState LWF board

ESI PF TDS Penalty India: What a 30-Day Delay Actually Costs

LawPenalty Rate30-Day Delay on ₹10L Payroll
EPF (late deposit)12%/yr + up to ₹3L₹10,000 interest + ₹3L notice
TDS (late deposit)1.5%/month from deduction₹15,000
TDS (late return filing)₹200/day under Section 234E₹6,000 for 30 days
ESI (late payment)12%/yr simple interestApprox. ₹10,000
EPF (non-compliance)Up to ₹5,000/day (court)Potentially unlimited

Review payroll liabilities regularly so delayed PF, ESI, or TDS payments do not create hidden statutory exposure in your books.

Need Help Setting Up Payroll Compliance in Odoo?

Ensure PF, ESI, Professional Tax, TDS, and Labour Welfare Fund are configured correctly in Odoo. Our certified Odoo experts help Indian businesses implement compliant payroll workflows, automate statutory reports, and avoid costly penalties.

5 Payroll Compliance India Mistakes That Trigger Government Notices

Mistake 01
Salary Structure Where Basic is Below 50% of CTC

Many companies kept basic at 20 to 30% of CTC to minimise PF liability. Under the 50% wage rule Labour Code India 2026, this triggers retrospective dues, interest, and penalties for the entire non-compliant period during EPFO inspections.

Odoo fix: Redesign your salary structure so basic equals a minimum of 50% of CTC. Use a formula in the salary structure type. Get CA sign-off before the next payroll run.
Mistake 02
ESI Deducted After Employee Crosses ₹21,000 Gross

When an employee's salary increment pushes gross above ₹21,000, ESI must stop from the next contribution period. Continuing to deduct creates an overpayment that is difficult to recover from ESIC.

Odoo fix: Update the employee's contract with the new gross salary. Odoo re-evaluates ESI eligibility automatically from the next payslip. Review ESI applicability after every increment cycle.
Mistake 03
TDS Calculated Without Collecting Regime Declarations

From April 2026, the new tax regime is the default. Employees who want old-regime deductions such as 80C, HRA, and 80D but have not submitted a declaration will have TDS calculated incorrectly all year, creating a large adjustment in the final months.

Odoo fix: Collect signed regime declarations every April. Store the declaration in the employee contract notes in Odoo. Set a recurring April reminder for your payroll team.
Mistake 04
Delayed EPF Deposits

EPF deposits delayed past the 15th attract 12% per annum interest plus penalties of up to ₹3 lakh. These accumulate silently. Most businesses discover the full exposure only when an inspection triggers a demand notice.

Odoo fix: Run payroll by the last day of the month. Export the EPF report the same day. Set a calendar reminder for the 12th. Never defer statutory deposits to manage short-term cash flow.
Mistake 05
Using Form 24Q After April 2026

From April 1, 2026, Form 24Q is replaced by Form 138. Configurations not updated to the new form numbers will fail portal validation when filing Q1 FY 2026-27 (due July 2026).

Odoo fix: Open Payroll → Reporting → TDS Report and verify it shows "Form 138," not "Form 24Q." If the old form number appears, contact your implementation partner for the IT Act 2025 update.

Need certified Odoo implementation support?

Get help reviewing salary rules, statutory reports, and India-specific payroll workflows before go-live.

Request Odoo Payroll Support

Odoo Payroll and Accounting Integration

The strongest argument for running payroll inside Odoo rather than a standalone tool is the accounting integration. When a payslip batch is confirmed in Odoo, the system automatically creates journal entries: debiting salary expense accounts and crediting EPF payable, ESI payable, TDS payable, PT payable, and salary payable. Businesses already managing GST compliance in Odoo should ensure payroll journals align with their accounting and tax setup; our guide on Odoo India GST, e-Invoicing, and e-Way Bill explains how Indian tax processes integrate across finance operations.

For businesses with project-based billing, Odoo's analytic accounts tag each payslip line to the correct department or project automatically. Compared to Greytip, Keka, or HROne, where salary journal entries must be entered manually into accounting each month, Odoo payroll automation India eliminates this bottleneck entirely. See our guides on financial statement analysis, purchase order processing in Odoo, and tracking expenses in Odoo.

Frequently Asked Questions

Does Odoo support Indian payroll compliance with PF, ESI, and PT?

+

Yes. Odoo Enterprise's Indian payroll localization covers all five statutory components natively: EPF (12% + 12%), ESI (0.75% + 3.25%), state-based Professional Tax slabs, TDS on salary under both old and new tax regimes, and Labour Welfare Fund. All statutory reports export directly from Odoo for portal upload.

What is the PF contribution rate in India 2026?

+

12% of basic salary from both employee and employer. Employers also pay 1% administrative charges, making total employer outflow 13%. PF is calculated on basic up to ₹15,000 by default.

What is the ESI salary ceiling in India 2026?

+

₹21,000 gross per month. Employees earning above this threshold are excluded from ESI. When an employee's salary crosses this ceiling during the year, ESI deductions must stop from the beginning of the next contribution period, April or October.

How to configure PF in Odoo for Indian employees?

+

Install the India Payroll localization, enter your EPF Employer ID in Payroll → Configuration → Settings → Indian Payroll, choose the PF cap method (₹15,000 or actual basic), add the UAN to each employee record, verify salary rule lines for 12% employee and 13% employer, then generate the ECR file from Payroll → Reporting → EPF Report after each monthly payrun.

What are the payroll compliance deadlines in India?

+

TDS deposit: 7th of each month. EPF deposit: 15th. ESI deposit: 21st. Form 138 (quarterly TDS return): 31 days after quarter end. Form 130 (employee TDS certificate): June 15 annually. Professional Tax and LWF deadlines vary by state.

What is Form 138 for TDS in India 2026?

+

Form 138 replaced Form 24Q under the Income Tax Act 2025 effective April 1, 2026. It is the quarterly TDS return for salary deductions filed on the income tax portal via TRACES. The annual employee certificate was simultaneously renamed from Form 16 to Form 130. Filing with old form numbers will fail portal validation from Q1 FY 2026-27 onward.

What is the 50% wage rule under Labour Code India?

+

Under the Labour Codes implemented in November 2025, basic salary plus dearness allowance must be at least 50% of total CTC. This increases EPF and gratuity contributions significantly. Non-compliance triggers retrospective dues, interest, and penalties during EPFO inspections.

How to set up professional tax in Odoo for multiple states?

+

Enter your state-issued PT registration number in Payroll → Configuration → Settings → Indian Payroll. Odoo reads each employee's state from their contract and automatically applies the correct PT slab. For employees in PT-exempt states like Delhi, Haryana, and Rajasthan, no additional configuration is needed.

What is the ECR file for EPF in India?

+

The ECR (Electronic Challan cum Return) is EPFO's prescribed format for monthly PF contribution uploads. In Odoo, generate it from Payroll → Reporting → EPF Report. The XLSX file contains a UAN-wise breakdown of contributions ready for upload to the EPFO Unified Portal by the 15th of each month.

What is a UAN number and where is it in Odoo?

+

The UAN (Universal Account Number) is a 12-digit EPFO identifier assigned to each employee for life. In Odoo, it is stored in the employee profile under the Private Information tab. It is mandatory. Without a UAN, Odoo cannot generate the ECR file for that employee.

How long does it take to set up Odoo payroll for India?

+

Initial configuration takes 1 to 3 days depending on employee count and states covered. Salary structure design and CA review add 2 to 5 days. Most businesses complete full go-live within 2 weeks. For a faster setup, consider working with an experienced Odoo implementation team.

Ready to Configure Odoo Payroll for India?

Get your PF, ESI, PT, TDS, and LWF set up correctly the first time with expert Odoo implementation support.

ABOUT THE AUTHOR

aaron jone

Aaron Jone is an Odoo expert with 12 years of experience in enterprise software. At SDLC Corp, he helps companies improve efficiency by customizing and deploying Odoo solutions that align with core business needs. Aaron focuses on streamlining workflows, integrating systems, and building tools that support real-time visibility and better control across operations.
PLAN YOUR SOLUTION

More Insights
You Might Find Useful

Explore expert perspectives, practical strategies, and real-world solutions related to this topic.

"AI customer support comparison"

Agentforce vs Traditional Customer Support

Traditional customer support runs on human agents, queues, scripts, and

Bitcoin casino software support evaluation with SLA incident response wallet monitoring and escalation structure

How to Evaluate Technical Support From Bitcoin Casino Software Providers Before You Sign

Technical support is not a secondary service in a bitcoin

Let’s Talk About Your Product

Get expert guidance on scope, architecture, timelines, and delivery approach so you can move forward with confidence.

What happens next?