The Electronic Challan cum Return is the monthly PF filing. One plain-text file, eleven fields per member, separated by #~#, uploaded to the EPFO employer portal by the 15th. This guide covers the exact file format, a sample you can download, the Excel-to-text conversion, the portal walkthrough and the errors that cause rejections.
The Electronic Challan cum Return (ECR) is both things its name says: it reports what each member earned and contributed, and it produces the challan you pay. File it and pay it and your PF compliance for the month is complete — there is no separate monthly return alongside it.
Who must file: every establishment covered by the Employees Provident Funds and Miscellaneous Provisions Act, 1952 — broadly, any establishment in a scheduled industry employing 20 or more persons, plus establishments that have taken voluntary coverage. Coverage, once it attaches, does not lapse merely because headcount later falls below 20.
ECR 2.0 replaced ECR 1.0 and cut the return from 25 fields to 11. The two changes that matter in practice: the file is now entirely UAN-based, so a member without a UAN simply cannot be uploaded, and gross wages became a reported field, so EPFO can see the gap between what you paid and what you treated as PF wages.
A NIL return is still a return. If you paid no wages in a month, file a NIL ECR rather than skipping the month. Silence looks like default, and the establishment still owes the minimum administrative charge.
Both sides contribute 12% of PF wages. The difference is where the money lands: the employee share goes entirely to provident fund, while the employer share is split between the pension fund and the provident fund.
All of it to A/c 1 (provident fund). Nothing goes to pension from the employee side.
To A/c 10 (EPS), computed on EPS wages capped at Rs 15,000 — a maximum of Rs 1,250 a month.
The balance of the employer 12%, to A/c 1. For a member outside EPS the full 12% lands here.
Field order is fixed. Every line in the file carries all eleven, in this sequence, separated by #~#.
| # | Field | Type | What goes in it |
|---|---|---|---|
| 1 | UAN | 12 digits | Universal Account Number. Must be active and Aadhaar-seeded. Members without a UAN cannot be uploaded at all — generate the UAN first. |
| 2 | Member Name | Text | Exactly as it appears in EPFO records, not as it appears on your payslip. A mismatch is the single most common rejection. |
| 3 | Gross Wages | Whole rupees | Total wages paid for the month. ECR 2.0 added this field; ECR 1.0 did not carry it. |
| 4 | EPF Wages | Whole rupees | Wages on which PF is computed. Statutory ceiling is Rs 15,000 — you may contribute on more, but never report EPF wages above gross wages. |
| 5 | EPS Wages | Whole rupees | Wages for the pension scheme, capped at Rs 15,000. Enter 0 for members outside EPS. Cannot exceed EPF wages. |
| 6 | EDLI Wages | Whole rupees | Same as EPF wages, capped at Rs 15,000. Unlike EPS wages, EDLI wages continue even for members excluded from the pension scheme. |
| 7 | EPF Contribution (EE) | Whole rupees | Employee share — 12% of EPF wages (10% for the reduced-rate classes listed below). |
| 8 | EPS Contribution (ER) | Whole rupees | 8.33% of EPS wages, so a maximum of Rs 1,250 a month. Enter 0 where EPS wages are 0. |
| 9 | EPF-EPS Difference (ER) | Whole rupees | Field 7 minus field 8. This is the employer share that lands in the PF account rather than the pension fund. |
| 10 | NCP Days | Whole number | Non-Contributory Period days — loss-of-pay days in the wage month. Enter 0 for a member with no unpaid absence. |
| 11 | Refund of Advances | Whole rupees | Repayment of an advance previously drawn. Enter 0 when there is nothing to refund, which is the normal case. |
Six members covering the cases you will actually meet: two at the wage ceiling, one below it, one with six loss-of-pay days, one excluded from EPS on joining, and one past 58.
100234567890#~#RAJESH KUMAR#~#28000#~#15000#~#15000#~#15000#~#1800#~#1250#~#550#~#0#~#0 100234567891#~#PRIYA SHARMA#~#18500#~#15000#~#15000#~#15000#~#1800#~#1250#~#550#~#0#~#0 100234567892#~#MOHAMMED ARIF#~#12000#~#12000#~#12000#~#12000#~#1440#~#1000#~#440#~#0#~#0 100234567893#~#S LAKSHMI#~#11200#~#11200#~#11200#~#11200#~#1344#~#933#~#411#~#6#~#0 100234567894#~#ANIL VERMA#~#35000#~#15000#~#0#~#15000#~#1800#~#0#~#1800#~#0#~#0 100234567895#~#K GOVINDAN#~#22000#~#15000#~#0#~#15000#~#1800#~#0#~#1800#~#0#~#0
S Lakshmi has six loss-of-pay days, so her wages fell to Rs 11,200 for the month. PF is computed on the wages actually paid: 12% of 11,200 is Rs 1,344, the pension share is 8.33% of 11,200 or Rs 933, and the difference of Rs 411 goes to provident fund. NCP Days carries 6 — that field is what protects her pensionable service record.
Lines 5 and 6 both show EPS wages of 0 for different reasons: Anil Verma joined after 01-09-2014 above the ceiling, K Govindan has crossed 58. In both cases the employer 12% of Rs 1,800 sits entirely in field 9.
| A/c 1 — EPF | Rs 15,535 |
| A/c 2 — EPF admin | Rs 500 |
| A/c 10 — EPS | Rs 4,433 |
| A/c 21 — EDLI | Rs 416 |
| A/c 22 — EDLI admin | Rs 0 |
| Total remittance | Rs 20,884 |
Total EPF wages are Rs 83,200, so A/c 2 at 0.50% computes to Rs 416 — but the Rs 500 monthly minimum applies, and Rs 500 is what you pay.
Get any of these wrong and the upload is rejected, usually with a message that does not name the real problem.
Hash, tilde, hash. No spaces before or after. A single stray space breaks the line.
Not .csv, not .xlsx, not Rich Text. Save from Notepad with encoding set to UTF-8.
ECR 2.0 carries member lines only. Wage month, contribution rate and salary disbursal date are entered on the portal screen, not in the file. ECR 1.0 had a header line; that format is retired.
No decimals, no thousand separators, no currency symbol. Round each amount to the nearest rupee before writing it out.
No blank line between members, and no trailing blank line at the end of the file.
ECR 2.0 is entirely UAN-based. Anyone without a UAN has to be onboarded first.
EPFO accepts only the text file, but nobody prepares payroll in Notepad. Keep the workbook as your working copy and generate the .txt from it every month — when a row is rejected you fix the worksheet and regenerate, never the text file by hand.
=A2&"#~#"&B2&"#~#"&C2&"#~#"&D2&"#~#"&E2&"#~#"&F2&"#~#"&G2&"#~#"&H2&"#~#"&I2&"#~#"&J2&"#~#"&K2
One caution: if a member name contains a stray leading or trailing space, the concatenation carries it into the file. Run TRIM over the name column before you generate.
From closing payroll to filing the payment receipt.
Lock the month. Every later correction means an arrear ECR, a second challan and an awkward reconciliation, so settle loss-of-pay days, arrears and new joiners before you export.
New members need a UAN and a Date of Joining. Anyone who left must have a Date of Exit marked online — if you leave the exit unmarked the member keeps showing up in your ECR and in EPFO's follow-up notices.
Export UAN, member name, gross wages, EPF wages, EPS wages, EDLI wages, the three contribution amounts, NCP days and refund of advances. Verify that employee 12% equals EPS 8.33% plus the difference for every row.
Concatenate the 11 columns with the #~# delimiter, paste the result into Notepad, and save it as ECR_MMYYYY.txt in UTF-8. The formula is in the section below.
Go to unifiedportal-emp.epfindia.gov.in, sign in with your establishment ID and password, and confirm the establishment name on the banner before you do anything else — multi-code employers upload to the wrong code more often than they admit.
Choose ECR Upload. Select the wage month, the salary disbursal date, the rate of contribution (12% or 10%) and file type ECR, then attach the .txt file.
The portal parses the file and either accepts it or returns an error file. Download the error file, fix the offending rows in your worksheet, regenerate the .txt and upload again. Do not patch the text file by hand — the worksheet stays the source of truth.
Check member count, total EPF wages and each contribution total against your payroll register. Confirm, and the portal issues a Temporary Return Reference Number.
Enter A/c 2 (EPF administration) and A/c 22 (EDLI administration). A/c 2 is 0.50% of total EPF wages subject to a minimum of Rs 500 a month; A/c 22 has been nil since 01-04-2017, so enter 0.
Generate the challan, click Pay, choose your bank and complete the net-banking transaction. Download the Transaction Confirmation Receipt and the acknowledgement, and file both with the month's payroll records.
The ECR fills three of these from your file. Two — the administration charges — you enter on the challan screen yourself, which is exactly why they are the ones people get wrong.
| Head | Name | Rate | Notes |
|---|---|---|---|
| A/c 1 | EPF Contribution | Employee 12% + employer difference | The employee share plus the part of the employer share that does not go to pension. |
| A/c 2 | EPF Administration Charges | 0.50% of EPF wages | Minimum Rs 500 per month. A non-functional establishment with no contributing member pays a minimum of Rs 75. |
| A/c 10 | Pension Fund (EPS) | 8.33% of EPS wages | Capped at Rs 1,250 per member per month because EPS wages are capped at Rs 15,000. |
| A/c 21 | EDLI Contribution | 0.50% of EDLI wages | The employer-funded life insurance cover. Employees contribute nothing to EDLI. |
| A/c 22 | EDLI Administration Charges | Nil | Waived with effect from 01-04-2017. Enter 0 — do not leave the field untouched. |
Teaching samples, not a substitute for your own payroll data. Open the text file in Notepad and the worksheet in Excel side by side — the relationship between them is the whole trick.
Six members, 11 fields, #~# delimited — open it in Notepad to see exactly what the portal expects.
epf-ecr-sample.txtThe same six members as editable columns. Replace the rows with your payroll and run the concatenation formula.
epf-ecr-worksheet.csvField-by-field notes, file rules, the Excel formula, challan heads and the worked totals for both EPF and ESI.
README-india-payroll-filing.txtEight failures that account for most of the wasted afternoons.
The file uploads and then fails validation with an unhelpful message. Build the delimiter with a formula rather than typing it, and check the first line in Notepad before uploading.
Excel silently keeps 1249.50 even when the cell displays 1250. Wrap every amount in ROUND(x,0) in the worksheet, not just in the display format.
Pull names from the portal member list rather than from your HR master. Initials, expanded surnames and married names are the usual culprits.
A member who first joined EPF after 01-09-2014 on wages above Rs 15,000, or who has crossed 58, is out of EPS. EPS wages and EPS contribution are 0, and the whole employer 12% goes to A/c 1.
NCP days feed pensionable service. Leaving them at 0 while reporting reduced wages produces a mismatch that surfaces years later, when the member claims pension.
Mark the Date of Exit online in the month the person leaves. An unmarked exit blocks the member from transferring or withdrawing and keeps inflating your return.
The Rs 500 monthly minimum overrides the percentage. A small establishment with Rs 83,200 of EPF wages computes Rs 416 but must pay Rs 500.
A TRRN with no payment is not a filed return. Interest and damages run from the due date regardless of how far you got in the workflow.
12% per annum on the arrears, running from the due date to the date the money actually reaches EPFO. There is no waiver and no discretion here — it is a statutory charge.
Since 15 June 2024 a flat 1% of the arrear per month or part of a month, replacing the old 5% to 25% per annum slabs. The cap remains 100% of the arrears, so a long-running default eventually doubles the liability.
EPFO launched VISHWAS 2026 on 29 June 2026, a one-time scheme open for six months, letting employers settle disputed or pending Section 14B damages at reduced rates. Applications go through the employer portal with DSC or e-Sign. Two conditions bind: all Section 7Q interest must be cleared before applying, and you undertake not to pursue the dispute further. Cases involving fraud or falsified records, and damages already fully recovered, are excluded. If you are carrying an old 14B notice, this window is worth taking advice on before it closes.
The 15th of the month following the wage month. The five-day grace period that employers remember was withdrawn in 2016, so the 15th is a hard deadline. Payment and return go together — uploading the ECR without paying the challan does not count as filing.
Exactly #~# — hash, tilde, hash — between each of the 11 fields, with no spaces around it. The file is plain text saved with a .txt extension, one member per line, and it carries no header row in ECR 2.0.
No. The portal accepts only the plain-text ECR file. Excel is where you prepare and check the data; the last step is always to concatenate the 11 columns with #~# and paste the result into a .txt file. Keep the workbook — it is what you will edit when a row is rejected.
Members who first joined the EPF scheme on or after 01-09-2014 with EPF wages above Rs 15,000, and members who have attained 58 years of age. For them EPS wages and EPS contribution are reported as 0, and the entire employer contribution of 12% goes into A/c 1.
For establishments with fewer than 20 employees, establishments declared sick by the BIFR, establishments with accumulated losses equal to or exceeding their net worth, and the notified industries — jute, beedi, brick, coir other than the spinning sector, and guar gum factories. Everyone else contributes at 12%.
Interest under Section 7Q at 12% per annum on the arrears, plus damages under Section 14B. Since 15 June 2024 damages are a flat 1% of the arrear per month or part of a month — replacing the old 5% to 25% slab scale — subject to the statutory cap of 100% of the arrears.
A/c 2 is 0.50% of total EPF wages subject to a minimum of Rs 500 per month. An establishment that is non-functional and has no contributing member pays a minimum of Rs 75. EDLI administration charges under A/c 22 have been nil since 01-04-2017.
The Temporary Return Reference Number issued when your uploaded ECR passes validation. It identifies the return until the challan against it is paid, at which point the payment is confirmed and the return is complete. An unpaid TRRN lapses.
A filed ECR cannot be revised. Under-reported wages or contributions are settled through an arrear ECR for the affected wage month, which generates its own challan and attracts interest and damages from the original due date. Over-reporting is harder to reverse and usually needs the regional office, which is the reason to reconcile before you upload rather than after.
No. The monthly Forms 5, 10 and 12A and the annual Forms 3A and 6A were dispensed with once ECR became the return. Form 2 nomination, Form 11 declaration and Form 5A ownership return remain, and joiners and exits are now recorded against the UAN on the portal.
Laabam.One computes EPF, EPS and EDLI per employee as payroll runs, handles the ceiling, EPS exclusions and NCP days, and exports the ECR 2.0 text file ready to upload — with the challan totals reconciled before you leave the screen.
Start Free Trial