Back to India Payroll Compliance
ESIC Employer Filing

How to File ESI Return — Monthly Contribution Step by Step

ESI filing is one excel upload a month: six columns, one row per insured person, saved in the old .xls format and submitted on the ESIC employer portal by the 15th. This guide covers the exact template, a sample you can download, the reason codes, the portal walkthrough and the mistakes that get uploads bounced.

Due Date
15th Monthly
Contribution
0.75% + 3.25%
Wage Ceiling
Rs 21,000
Portal
esic.gov.in

Who files, and on what

The Employees State Insurance Act, 1948 covers factories and notified establishments employing 10 or more persons — 20 in a few states for certain classes of establishment. Coverage attaches to the establishment; the monthly contribution then covers every employee drawing gross wages up to Rs 21,000 a month, or Rs 25,000 where the employee has a disability.

The return is the contribution. There is no separate ESI return document to prepare. You upload the monthly contribution against your employer code, the portal computes the liability, you pay the challan, and the month is closed.

Contribution periods run in halves. 1 April to 30 September, and 1 October to 31 March. Each maps to a benefit period six months later — 1 January to 30 June, and 1 July to 31 December — which is what an employee draws sickness and other cash benefits against. This is the reason coverage cannot be switched off mid-period: an employee whose wages cross Rs 21,000 in, say, July continues to contribute on the higher wages until 30 September.

Wages here means gross. Basic, dearness allowance, house rent, conveyance, overtime, incentive and most other regular payments are ESI wages. Contributions are computed on that gross figure, not on a capped Rs 21,000 — the ceiling decides whether an employee is covered, not how much is paid on.

Working out the contribution

0.75%

Employee share

Deducted from the employee's wages. Rounded up to the next rupee, per employee, not on the total.

3.25%

Employer share

Paid by the establishment on top of wages. Also rounded up to the next rupee.

Worked example — the four paid employees in the sample file

EmployeeDaysGross wagesEmployee 0.75%Employer 3.25%
Rajesh Kumar3118,500139602
Priya Sharma2615,200114494
Mohammed Arif126,80051221
Latha Devi315,0000163
Total45,5003041,480
Challan total: Rs 1,784. Note Latha Devi — Rs 5,000 over 31 days averages Rs 161.29 a day, at or below the Rs 176 daily-wage threshold, so her employee share is nil while the employer still pays Rs 163. She stays fully covered for benefits.

Rules worth committing to memory

  • Rounding is up, to the next whole rupee, and it is done per employee before totalling — not on the grand total.
  • An employee whose average daily wage is Rs 176 or less pays no employee share; the employer share is unaffected.
  • Crossing Rs 21,000 mid-period does not end coverage. Contribution continues on the actual higher wages until the contribution period ends.
  • An employee already above the ceiling on 1 April or 1 October is out of coverage for that whole period.
  • Wages paid for a day of authorised leave are ESI wages. Wages for a period of strike, or a payment on termination, generally are not — check before you include them.
  • Contributions are on gross wages actually paid, so a month with loss of pay reduces both shares.

The MC excel template — all six columns

Column order is fixed and the header wording comes from the official template. Do not add a serial number column, a department column, or anything else you find useful — the parser reads by position.

ColHeaderWhat goes in it
AIP Number (10 Digits)The employee insurance number allotted by ESIC. Exactly ten digits — not the temporary identity number, and not the employer code.
BIP Name (Only Alphabets and Space)As registered with ESIC. Dots, hyphens, digits and double spaces are rejected, so an initial goes in as a bare letter.
CNo of Days for which wages paid/payable during the monthWhole number. A fraction is rounded up to the next integer. This is paid days, not calendar days — an employee who worked a full 31-day month shows 31.
DTotal Monthly WagesGross wages for the month as defined by the Act, not basic pay and not the ESI-capped figure. Contribution is worked out from this.
EReason Code for Zero workings daysNumeric only. Enter 0 for everyone who was actually paid; a non-zero code only where days and wages are both zero.
FLast Working DayDD/MM/YYYY or DD-MM-YYYY. Fill it only when the person has genuinely left, retired, died, gone out of coverage, been retrenched, or the unit is in a non-implemented area. Otherwise leave it blank.

Sample monthly contribution sheet

Seven rows covering the situations that actually come up. Shown here as plain text so the structure is visible; download the file and open it in Excel to work with it.

IP Number,IP Name,No of Days,Total Monthly Wages,Reason Code,Last Working Day
3100234567,RAJESH KUMAR,31,18500,0,
3100234568,PRIYA SHARMA,26,15200,0,
3100234569,MOHAMMED ARIF,12,6800,0,12/07/2026
3100234570,LATHA DEVI,31,5000,0,
3100234571,SURESH BABU,0,0,1,
3100234572,ANJALI NAIR,0,0,2,30/06/2026
3100234573,VIKRAM SINGH,0,0,4,30/06/2026

Rows 1 to 4 — paid employees

Days and wages filled, reason code 0, last working day blank. Row 3 is a mid-month exit: twelve days paid, wages for those days, reason code still 0 because days are not zero, and the last working day recorded in column F.

Rows 5 to 7 — zero-day cases

Days and wages both zero, so a reason code is mandatory. Row 5 was on leave all month and stays on the rolls. Row 6 left at the end of the previous month. Row 7 went out of coverage at the start of the contribution period.

What is NOT here

No serial numbers, no totals row, no blank spacer rows, no employees without an IP number. Anything extra in the sheet is read as data and fails the upload.

Reason codes for zero working days

Column E takes a number, never a word. It is required only where both days and wages are zero; everyone who was paid carries 0.

Check the live list before you file. The authoritative codes ship inside the Instructions and Reason Codes sheet of the MC template you download from the ESIC portal, and ESIC has revised them from time to time. The codes below are the ones in common use.
CodeMeaningWhen to use it
0Not applicable — wages were paidThe normal case. Every working employee carries 0.
1On leaveAbsent for the whole month with no wages paid.
2Left servicePair it with the last working day in column F.
3RetiredAlso needs the last working day.
4Out of coverageWages crossed Rs 21,000 at the start of a contribution period.
5ExpiredDeath of the insured person. Last working day required.
6Non-implemented areaThe employee moved to a location where the scheme is not implemented.
7Suspension of workWork suspended at the establishment for the month.
8Strike or lockoutNo wages payable for the period of the dispute.

Codes 2, 3, 4, 5 and 6 all describe someone leaving the covered population, so each of them needs the last working day in column F. Codes 1, 7 and 8 describe a temporary interruption — leave the last working day blank.

File rules the portal enforces

The ESIC upload is unusually strict about the mechanics of the workbook, and its error messages rarely name the real cause.

Use the official MC template

Download the sample MC template from the employer portal each filing season and paste your data into it. ESIC has changed the sheet before, and a stale copy fails without saying why.

Save as Excel 97-2003 (.xls)

The portal rejects .xlsx and .csv. In Excel: File, Save As, then pick Excel 97-2003 Workbook from the file type list.

Every column formatted as Text

Including the date column. Numbers stored as numbers pick up formatting Excel considers cosmetic and the upload considers fatal.

Paste values only — no formulas

Copy your payroll output, then Paste Special and choose Values. A live formula anywhere in the sheet will break the parse.

No extra rows, columns or sheets

Nothing below the last employee, nothing to the right of column F. Stray formatting from a deleted row counts as data.

Total wages must match your payroll

Add column D before you upload and reconcile it against the ESI-eligible gross in your payroll register. Fixing it afterwards means a supplementary challan.

Filing the monthly contribution — step by step

From the covered-employee list to the stamped challan.

1

Reconcile your covered employee list

Every employee drawing gross wages up to Rs 21,000 a month is covered — Rs 25,000 where the employee has a disability. Register new joiners on the portal and get their IP numbers before the filing window, because an unregistered employee cannot be included.

2

Download the IP list from the portal

Under the employer login, pull the list of insured persons attached to your code. Copy the IP numbers and names from this list rather than from your HR master — the names must match ESIC records exactly.

3

Fill the six-column MC template

Days paid, gross wages, reason code and, where applicable, last working day. Paste values only, format everything as Text, and keep the columns in ESIC order.

4

Save it as .xls and check the totals

Save as Excel 97-2003 Workbook. Total column D and reconcile it against payroll. Confirm that every row with zero days carries a reason code and every leaver carries a last working day.

5

Log in at esic.gov.in and open Monthly Contribution

Employer login, then File Monthly Contribution. Select the contribution month. Confirm the establishment code on screen before you attach anything.

6

Upload the excel and let it validate

Choose the file and submit. The portal parses it and reports errors row by row. Correct them in the workbook, save again as .xls and re-upload — do not try to edit the uploaded copy.

7

Preview the computed contribution

The portal calculates the employee share at 0.75% and the employer share at 3.25% and shows the totals. Check them against your payroll before you submit; after submission a correction means a supplementary challan.

8

Submit and note the challan number

Submit the contribution. The system generates a challan with its own number — record it, because you will need it to trace the payment.

9

Pay online

Click Pay Online and continue to the payment gateway. Complete the transaction through net banking and wait for the confirmation to return to the ESIC portal rather than closing the tab.

10

Download the paid challan and file it

Take the stamped challan and the contribution history print for the month. These are what an ESIC inspection asks for, and they are far easier to save now than to retrieve a year later.

Why ESI uploads get rejected

Eight failures that account for most of the wasted afternoons.

File saved as .xlsx

The most common rejection of all. Save As, then Excel 97-2003 Workbook (.xls). Excel will warn about compatibility — accept it.

Numbers stored as text warnings, or the reverse

Select the data range, then Data, Text to Columns, Delimited, Finish. This normalises the cells without changing the values.

Formulas left in the sheet

Select all, copy, then Paste Special, Values, over the same range. VLOOKUPs pointing at your payroll workbook are the usual survivors.

IP name has a dot or an initial with punctuation

Column B accepts alphabets and single spaces only. Write S KUMAR, not S. Kumar. Take the spelling from the portal IP list.

Zero days with no reason code

Any row with zero days and zero wages needs a numeric reason code in column E. Zero-day rows also draw scrutiny when they repeat month after month for the same person, so use the code that is actually true.

Last working day filled for a current employee

Column F must be blank unless the person has left, retired, died, gone out of coverage or been retrenched. Filling it for an active employee ends their coverage.

Employee dropped mid-period after a raise

If wages cross Rs 21,000 in the middle of a contribution period, contribution continues on the higher wages until the period ends — 30 September or 31 March. You cannot stop in the month of the increment.

Contribution paid but return never submitted

Payment and filing are separate actions. A paid challan without a submitted contribution leaves the month unfiled.

If you miss the 15th

Interest — Regulation 31A

Simple interest at 12% per annum for every day of default or delay, from the due date until the contribution is actually paid.

Damages — Regulation 31C

5% to 25% per annum of the outstanding contribution, graded by how long the default has run, and capped at the amount of contribution in default. Section 85 prosecution remains available for persistent failure, and deducting the employee share without depositing it is treated far more seriously than simply paying late.

ESI filing — frequently asked questions

What is the due date for ESI monthly contribution?

The 15th of the month following the wage month. Both the contribution filing and the payment must be completed by that date — filing the excel and leaving the challan unpaid does not discharge the obligation.

What is the ESI contribution rate?

The employee contributes 0.75% of gross wages and the employer 3.25%, a combined 4%. These rates have applied since 1 July 2019. Both shares are rounded up to the next rupee.

What is the ESI wage ceiling?

Rs 21,000 a month in gross wages, and Rs 25,000 for an employee with a disability. An employee earning above the ceiling at the start of a contribution period is outside the scheme for that period.

What file format does the ESIC portal accept?

An Excel workbook in the older Excel 97-2003 format with a .xls extension, laid out on the official MC template — six columns, every cell formatted as Text, values only with no formulas. The portal rejects .xlsx and .csv.

What are the six columns in the ESIC MC template?

IP Number (10 digits), IP Name (alphabets and spaces only), Number of days for which wages were paid or are payable during the month, Total monthly wages, Reason code for zero working days, and Last working day in DD/MM/YYYY or DD-MM-YYYY format.

Does an employee earning very low wages still pay the employee share?

No. An employee whose average daily wage is Rs 176 or less is exempt from the employee contribution, but the employer still pays its 3.25% on those wages. The employee remains fully covered for benefits.

What are the ESI contribution and benefit periods?

Two contribution periods run 1 April to 30 September and 1 October to 31 March. Each has a corresponding benefit period six months later — 1 January to 30 June, and 1 July to 31 December. This is why coverage cannot be switched off mid-period.

Do I still file the half-yearly ESI return?

The separate half-yearly Return of Contributions has been dispensed with. The contribution-period record is built from the six monthly contributions you file online, which is another reason a missed month is conspicuous.

What if I miss an employee in a month I have already filed?

File a supplementary challan for that wage month covering the omitted employees or the omitted wages. Interest and damages run from the original due date, not from the date you discovered the omission.

What is the penalty for late ESI payment?

Simple interest at 12% per annum under Regulation 31A for each day of delay, plus damages under Regulation 31C ranging from 5% to 25% per annum depending on how long the payment has been outstanding. Damages cannot exceed the contribution amount in default. Persistent default can also attract prosecution under Section 85.

Let payroll produce the ESI sheet

Laabam.One tracks who is covered, applies the ceiling and the daily-wage exemption, handles mid-period crossings, and exports the monthly contribution sheet with days, wages and reason codes already filled — reconciled to the payroll register before you upload.

Start Free Trial