Skip the EPFO ECR drama every month. Generate, upload, pay — tracked per period.
Generate the EPFO-format ECR text file from your monthly disbursed payroll in seconds — UAN, EPF wages, EPS wages, EDLI wages, NCP days and employer share, all 11 columns the EPFO Unified Portal expects. Mark each ECR uploaded, record the TRRN and challan, and never lose track of which month is paid.

The 15th-of-the-month EPF panic, every Indian school knows it
15 May 2026, 11:47 AM. The accountant at a Bahraich CBSE school is staring at the EPFO Unified Portal login screen. April salaries went out three days late because the music teacher's UAN had an extra space, the new PRT joined on the 18th and his EPF wages need to be pro-rated, and the principal added a one-time bonus that the accountant isn't sure counts as EPF wages or not. The deadline to upload the ECR text file and pay the challan is 15 May. Every minute past 11:59 PM tonight is interest at 12% per annum and damages under section 14B of the EPF Act 1952 — the kind of notice that lands on the chairman's desk three months later when nobody remembers what happened.
The accountant tries to export the ECR from his old payroll software. The file generates with the wrong delimiter. He opens it in Excel, fixes the columns by hand, saves as text, uploads to the portal — error: 'Member ID format invalid in row 47'. Row 47 is the substitute teacher who was on leave-without-pay for 18 days; her NCP days field is blank. He fixes it. Re-uploads. Different error. By 4 PM he has called the EPFO consultant on WhatsApp twice and the principal once.
This is not a software problem. This is a 'how every salary cycle ends in most Indian schools' problem. Inkwelly's Employee Payroll module includes a built-in ECR File Generator built for exactly this 4 PM.

How Inkwelly generates the ECR file
You don't see a 'configure ECR' screen — there isn't one. Configuration happens once when you set up employee payroll and tag every employee with their UAN. After that, the ECR file is one button.
Open Employee Payroll → ECR Files → click Generate ECR. Pick the pay period — only periods with at least one disbursed payroll run appear in the dropdown, because EPFO does not accept ECR uploads for months you haven't actually paid. The system pulls every PF contribution from disbursed payroll runs in that period, excludes any contribution already linked to a previous ECR file, and writes the EPFO-format pipe-delimited text file with all 11 columns: UAN, Member Name, Gross Wages, EPF Wages, EPS Wages, EDLI Wages, EPF Contribution (Employee), EPS Contribution (Employer), EPF Contribution (Employer), NCP Days, Refund of Advances.
Click Download ECR File. The text file is on your laptop. Sign in to the EPFO Unified Portal in another tab, upload the file under 'ECR Upload', generate the challan online, pay it via your school's bank net banking, copy the TRRN number EPFO returns.
Come back to Inkwelly. Click Mark as Uploaded — the file's status moves from GENERATED to UPLOADED so the rest of the office knows the portal step is done. Click Record Payment, paste the TRRN, the challan date, the amount EPFO actually deducted from the bank, the payment date — status moves to PAID, the period is locked.
Three buttons. One pay period. No leftover columns to clean up in Excel.
Every column the EPFO Unified Portal expects, computed from the disbursed run
- UAN — Universal Account Number, 12 digits, validated against the employee profile and surfaced for fix-up if missing or malformed
- Member Name — full name as registered with EPFO, pulled directly from the employee record
- Gross Wages — total earnings for the period (basic + DA + HRA + allowances + bonus components for that month)
- EPF Wages — wages on which 12% PF is calculated, capped at ₹15,000 unless your school has opted to contribute on full basic
- EPS Wages — wages eligible for the Employees' Pension Scheme contribution at 8.33% of capped basic, paid by the employer
- EDLI Wages — wages eligible for the Employee Deposit Linked Insurance scheme, capped at ₹15,000 per the EPF Act 1952
- EPF Contribution (Employee) — 12% of EPF Wages deducted from the teacher's salary, the line every payslip explains
- EPS Contribution (Employer) — 8.33% of EPS Wages, the school's share routed to the staff member's pension corpus
- EPF Contribution (Employer) — 3.67% of EPF Wages, the school's share routed to the provident fund proper
- NCP Days — Non-Contribution Period days, computed from the employee attendance register, never typed by hand
- Refund of Advances — refunded PF advances if the teacher returned an earlier withdrawal, surfaced when relevant
ECR generation in 4 screens




Three statuses, one source of truth
Every ECR file has exactly three states. GENERATED means the file was produced — the office has a downloadable text ready to upload. UPLOADED means somebody clicked 'Mark as Uploaded' after submitting on the EPFO Unified Portal — the office knows the portal step is done. PAID means the TRRN, challan number, challan date, amount and payment date are all on record — the period is closed.
The principal scrolls down the table once a month and sees a row of green badges. The chairman asks 'is April PF paid?' — the answer is on the screen, not in a WhatsApp scroll, not in 'let me ask the accountant tomorrow'.


Only periods with disbursed payroll runs are eligible
The dropdown does not let you generate an ECR for May if you haven't actually disbursed May salaries. This is intentional. EPFO does not accept ECR uploads for months you haven't paid — the contribution claim has nothing backing it. So Inkwelly hides those periods.
If the system says 'No periods available', the answer is upstream: open the pay period and disburse the payroll run. Once at least one run in that period is in DISBURSED state, the period appears in the ECR generator dropdown automatically. No 'enable EPFO submission for May' toggle, no checklist of preconditions — the workflow gates itself.
NCP days come from the attendance register, not your imagination
Non-Contribution Period days — the days an employee was on leave-without-pay or absent — are computed from your school's employee attendance records, not entered manually. If a substitute teacher took 4 days unpaid leave, NCP Days for that month is 4. If a PRT was on a 14-day medical leave that the school treated as paid, NCP Days is 0.
This matters because EPFO uses NCP Days to verify that EPF wages are pro-rated correctly. Mismatches trigger a section 14B notice three months later. The accountant's previous Excel sheet had a column called 'LWP' that nobody trusted and nobody updated; that ECR file always had NCP Days as 0 and quietly invited an audit. Inkwelly's NCP comes from the attendance the office already maintains every day — single source, no double entry.


The TRRN goes back into Inkwelly so the audit trail closes
When the EPFO challan is paid via the school's net banking, EPFO returns a TRRN — the Temporary Return Reference Number. The accountant has historically pasted this into a Word doc, emailed it to the chairman, and filed the printout in a binder. The next time anyone asks 'do we have proof April PF was paid?', the binder is in the storeroom and the email is buried under five months of WhatsApp screenshots.
In Inkwelly, the Record Payment dialog captures the challan number, challan date, amount, and payment date in one screen. Payment date is validated to be on or after the challan date — a small rule that catches the most common copy-paste mistake. Once recorded, the period is locked and the audit trail closes inside the same screen the office uses every month.
“If a school can't prove April's PF challan was paid without opening a binder, the binder is the system.”
When this saves a school's month
Case 1: New PRT joined mid-month. A new Primary Teacher joined on 18 April 2026. Her EPF wages need to be pro-rated for the 13 days she worked. In Excel, the accountant always rounded — sometimes up, sometimes down. EPFO's pro-rata formula (EPF wages × actual days / total days in month) is now computed from the joining date in her employee record and the pay period dates. NCP Days for the 17 days she didn't work appears in the file. EPFO accepts the upload first try.
Case 2: Music teacher's bonus. The principal asked the office to add a ₹2,000 special allowance for the music teacher in April only. In the salary structure, the component is tagged as 'Performance Bonus' with isPFApplicable=false — set once when the salary head was created. When the ECR generates, the ₹2,000 doesn't inflate his EPF wages, doesn't inflate his EPF contribution, doesn't show up in the EPS column. One bonus, four columns correctly handled, no manual fixup.
Case 3: F&F for a teacher who left in March. A TGT resigned end of March 2026. F&F was disbursed in the April payroll run. Her last contribution lands in the April ECR file alongside everyone else's, with the correct NCP Days and the right exit handling. The accountant doesn't have to remember she existed — the system carries her contribution forward, then her UAN drops off the May file because there's nothing left to pay.
Case 4: Audit by EPFO inspector. Three months after April, an EPFO inspector walks into the school office and asks for the April ECR file, the corresponding challan, the TRRN, and the date of payment. In Inkwelly: open ECR Files → April 2026 → all four facts on one screen, exportable as PDF for the inspector's records. No binder, no panic, no consultant call.
Day-to-day operations the ECR module covers
- Generate ECR for any disbursed pay period in any session — back-fill historical months when migrating from another payroll tool
- Re-generate after a payroll correction — the previous file moves to history, contributions auto-relink to the latest ECR, audit log keeps both versions
- Download as the EPFO-format pipe-delimited text file ready to upload to the EPFO Unified Portal directly
- Mark as Uploaded once the portal confirms receipt — keeps the office and the chairman aligned on status without WhatsApp updates
- Record TRRN, challan number, challan date, amount, and payment date in one Record Payment dialog — payment date validated against challan date
- Filter the dashboard by status (GENERATED, UPLOADED, PAID) to see what's pending action this week before the 15th
- View per-employee line items inside any ECR — UAN, EPF wages, EPS wages, employer share, NCP days for every member
- Export the ECR file or its summary as PDF for inspectors, chairman reports, or year-end audit folders
- Audit log captures who generated, who uploaded, who paid — visible to roles with payroll permission only
See ECR generation on a real Indian school
20-minute walkthrough — we'll generate the ECR for a sample April 2026 payroll, walk through the EPFO Unified Portal upload, and record the TRRN.
What the ECR generator does NOT do
Inkwelly does not log into the EPFO Unified Portal for you. The portal upload step — choosing 'ECR Upload', selecting the file, generating the challan online, paying via net banking — happens on EPFO's site directly. This is intentional. EPFO sessions require Aadhaar OTP, Establishment ID and password rotation; automating the portal would mean storing those secrets, which is a security and compliance risk under the DPDP Act 2023. The accountant takes the file from Inkwelly to EPFO, then brings the TRRN back. Two minutes total. No automation theatre.
The ECR file format follows the version published by EPFO at the time of release. If EPFO publishes a new column or changes the delimiter, Inkwelly ships the format update inside a What's New entry within the same week. Schools running on older, frozen versions of competitor ERPs have to wait for paid quarterly updates — not the bet you want to make on a section 14B notice timeline.
EDLI and admin-charge percentages (currently 0.5% and 0.5% respectively, as per EPF Act 1952 amendments) are pre-configured at the establishment level and editable by SUPER_ADMIN only. If your school has a custom EDLI exemption, contact us before generating — we configure it once, and every future ECR honours it.
The system does not produce the EPF challan PDF — that is generated on the EPFO Unified Portal after upload. Inkwelly stores the challan number and a reference inside the Record Payment row. Schools that want a local copy of the challan PDF should download it from EPFO and attach via the Inkwelly media library — accessible from the same Employee Payroll module.
किस मॉड्यूल का हिस्सा
1 moduleअक्सर पूछे गए सवाल
9 सवालWhat is an ECR file and why does EPFO require it every month?
ECR stands for Electronic Challan-cum-Return. It is a pipe-delimited text file that EPFO's Unified Portal accepts as a monthly statement of every employee's PF and EPS contributions for that pay period. Every establishment with 20 or more employees must upload one ECR per month before the 15th of the following month, generate a challan, and pay it. Late filings attract interest under section 7Q and damages under section 14B of the EPF Act 1952.
Does Inkwelly upload the ECR file to the EPFO Unified Portal automatically?
No, and intentionally so. The Unified Portal requires Aadhaar OTP, Establishment ID and password — automating these would force Inkwelly to store EPFO credentials, which is a DPDP Act 2023 compliance risk. Inkwelly generates the EPFO-format file in 30 seconds; the accountant uploads it on the portal in another 30 seconds and brings the TRRN back. The portal interaction stays with the school, where it belongs.
What happens if an employee's UAN is missing or invalid?
Generate ECR runs a pre-validation pass. Any employee with a missing or invalid UAN — must be 12 digits, must match an existing EPFO record format — is surfaced before the file is created. You cannot accidentally upload an ECR with a blank UAN row, which is the most common cause of EPFO 'invalid Member ID' rejections. Fix the UAN in the employee profile, regenerate, done.
Can we generate an ECR for a month we haven't disbursed yet?
No. The Generate ECR dropdown only shows pay periods that have at least one disbursed payroll run. EPFO does not accept ECRs for unpaid months — the contribution claim has nothing backing it. If the period you want is not in the dropdown, return to the payroll run, disburse it, and the period appears in the dropdown automatically.
What if we need to correct a payroll run after the ECR was generated but before payment?
Re-generate. The previous ECR file moves to file history, the underlying PF contributions auto-relink to the new ECR, and the new file shows the corrected numbers. If the previous file was already marked UPLOADED on the EPFO portal, you'll need to file a revised return on the portal as well — Inkwelly logs the regeneration in the audit trail so you can track which version was uploaded when.
Does the system handle NCP Days from leave-without-pay correctly?
Yes. NCP Days is computed from your employee attendance records — the number of days marked as leave-without-pay or absent in the pay period. If a teacher took 4 days unpaid leave in April, NCP Days for that employee in the April ECR is 4. The EPF wages are pro-rated by EPFO's standard formula. No manual entry, no Excel column, no double counting.
Is the ECR file format the same for CBSE, ICSE and state-board schools?
Yes. EPFO's ECR format is universal across all establishments registered under the EPF Act 1952 — it does not vary by board. CBSE, ICSE, ISC, IB, IGCSE, NIOS, UP Board, Maharashtra Board, Karnataka PUC and every other state-board school uploads the same 11-column file. Inkwelly produces this single format; the only thing that varies by school is the establishment ID, which is configured once during onboarding.
What does the Record Payment dialog actually capture?
Four fields: Challan Number (the TRRN issued by the EPFO Unified Portal after challan generation), Challan Date (the date EPFO issued the challan), Challan Amount (the amount EPFO actually charged, pre-filled with the total contribution but editable in case EPFO adjusted), and Payment Date (the date your school's bank actually paid — must be on or after the Challan Date). All four are mandatory. Once saved, the ECR file's status moves to PAID and the period is locked.
Where is ECR data stored, and is it compliant with the DPDP Act 2023?
All ECR data — UANs, employee names, wages, contributions, TRRNs, challan numbers — is stored on Inkwelly's servers in Mumbai, never leaves India, and is purgeable on request. UANs are treated as PII under the DPDP Act 2023 and are visible only to roles with payroll permission. The full audit trail captures who generated, downloaded, marked uploaded, and recorded payment for every ECR — sufficient evidence for any EPFO inspector visit.
आपको ये भी पसंद आ सकता है
2 लेखInkwelly आपके स्कूल पर — खुद देखें
30 मिनट का डेमो। आपके मौजूदा ERP को आपके साथ खोलकर, कॉल पर ही आपका डेटा Inkwelly में लोड करते हैं। कॉल ख़त्म होते-होते एक तय तारीख़ का गो-लाइव प्लान आपके हाथ में।