تخطَّ إلى المحتوى

Professional Tax

هذا المحتوى غير متوفر بلغتك بعد.

Professional Tax (PT) is a state-level tax levied on employment income in India. India Payroll automates PT deduction on every Salary Slip update based on the employee’s Employment State and Gross Pay.

Statutory reference: Article 276 of the Constitution limits PT to ₹2,500 per person per year.


  1. Go to Payroll Settings → India Payroll tab.
  2. Check Enable Professional Tax Deduction.
  3. Save.

Enabling Professional Tax Deduction

Once enabled, the Professional Tax salary component is automatically injected into (or removed from) each Salary Slip’s deductions table when the slip is saved.


The apply_professional_tax method runs via apply_regional_deductions hook:

Salary Slip (before_save)
├─ enable_professional_tax in Payroll Settings? → NO → skip
├─ salary_structure set? → NO → skip
├─ employment_state from SSA → not in PT states? → skip
├─ frequency = monthly?
│ └─ _compute_pt_monthly(gross_pay, state_config, month, gender)
└─ frequency = half-yearly?
└─ _compute_pt_half_yearly(doc, state_config)
└─ cumulative gross across submitted slips in period
− already deducted PT = this month's PT

The computed amount replaces any existing Professional Tax row.


PT is determined by the Employment State set on the Salary Structure Assignment (not the Employee master’s state field). This allows an employee transferred mid-year to have the correct PT rule applied per assignment.

To set it:

  1. Open the Salary Structure Assignment for the employee.
  2. Set Employment State.

Validation: When PT is enabled, saving a Salary Structure Assignment without an Employment State throws an error, preventing silent mis-deduction.

Employment State in Salary Structure Assignment


These states deduct PT every month based on gross pay slabs.

StateSlab (Gross ≤)PT Amount (₹/month)
Andhra Pradesh15,0000
20,000150
Above 20,000200
Assam10,0000
15,000150
25,000180
Above 25,000208
Bihar25,0000
Above 25,000200
Gujarat5,9990
8,99980
11,999150
Above 11,999200
Jharkhand25,0000
Above 25,000100
Karnataka25,0000
41,666150
Above 41,666200
Madhya Pradesh18,7500
25,000125
33,333167
Above 33,333208
Maharashtra7,5000
10,000175
Above 10,000200 (₹300 in February)
Meghalaya4,1660
6,25016
Above 37,500208
Odisha13,3040
25,000125
41,666167
Above 41,666208
Sikkim20,0000
30,000125
40,000150
Above 40,000200
Telangana15,0000
20,000150
Above 20,000200
Tripura7,5000
15,000150
Above 15,000208
West Bengal8,5000
10,00090
15,000110
25,000130
40,000150
Above 40,000200

These states compute PT on a cumulative basis across each half-year period (Apr–Sep or Oct–Mar). The full slab amount is charged in the first month of the period, and nothing more until the next period.

StatePeriodSlab (Cumulative Gross ≤)PT Amount (₹/half-year)
Tamil NaduApr–Sep / Oct–Mar21,0000
30,000135
45,000315
60,000690
75,0001,025
Above 75,0001,250
KeralaApr–Sep / Oct–Mar11,9990
17,999120
29,999180
44,999480
59,999720
74,9991,080
99,9991,440
Above 99,9991,560

Maharashtra employees earning above ₹10,000/month pay ₹300 in February instead of the usual ₹200. This ensures the annual total equals the constitutional cap of ₹2,500:

11 months × ₹200 + February × ₹300 = ₹2,500

This is handled automatically by the hook, no configuration required.

Women earning ≤ ₹10,000/month are fully exempt from Professional Tax in Maharashtra. The hook reads the gender field from the Employee master and sets PT to ₹0 automatically.

Half-Yearly Incremental Logic (Kerala, Tamil Nadu)

Section titled “Half-Yearly Incremental Logic (Kerala, Tamil Nadu)”

For half-yearly states, the hook:

  1. Sums gross_pay from all submitted salary slips in the current half-year period (excluding the current unsaved slip).
  2. Adds the current slip’s gross pay → cumulative figure.
  3. Applies the state slab to the cumulative → total PT due for the period.
  4. Subtracts PT already deducted in prior slips of the same period.
  5. Charges the remainder (minimum ₹0) on the current slip.

Result: PT is front-loaded in the first month of the period, and zero in subsequent months once the slab amount is paid.