NotePayroll operations

Automating payroll inputs without losing control

Automate the collecting, checking and reshaping of payroll inputs. Keep approvals, exceptions and the final run with named people. The labour codes make timing and records stricter, not looser.

Published 25 Sep 2026 · law as at that dateReviewer · To be confirmed

9 min read
WhatsApp (opens in a new tab)

Key points

  • Most payroll errors start in the inputs: attendance, leave, joiners, leavers, variable pay and reimbursements, keyed by hand from many formats.
  • The Code on Wages, 2019 has been in force since 21 November 2025. Section 17 sets the payment deadlines; section 50 requires registers, records and wage slips.
  • Salary TDS now sits in section 392 of the Income-tax Act, 2025 (in force from 1 April 2026), so tax declarations are inputs too.
  • Automate the mechanical steps. Keep a person on approvals, exceptions and anything that changes someone's pay.

Where payroll actually goes wrong

Payroll engines are rarely the problem. The calculation is usually right for the data it is given. What goes wrong is the data: an attendance export for the wrong period, a leaver who was never flagged, an incentive sheet with one row pasted twice, a reimbursement approved in email but never keyed.

These inputs arrive from different people, in different formats, close to the cut-off. Someone re-keys or reshapes them under time pressure. That step is where most corrections, arrears and awkward conversations begin.

What the law now expects

As at 25 September 2026, three sets of rules shape the input process for an Indian employer.

  • Timing. The Code on Wages, 2019 came into force on 21 November 2025. Under section 17, where wages are paid monthly they must be paid before the end of the seventh day of the following month, and wages due to a person who is removed, dismissed, retrenched or who resigns must be paid within two working days. Late inputs now eat into a fixed window.
  • What counts as wages. Section 2(y) defines wages and adds back excluded payments (such as certain allowances) to the extent they exceed one-half of total remuneration. Input files therefore need pay heads classified consistently, not just totalled.
  • Deductions and records. Section 18 caps total deductions in a wage period at fifty per cent of wages. Section 50 requires employers to maintain registers and records and to issue wage slips in the prescribed form. The central rules under the Code were notified in 2026; state rules also apply where the state is the appropriate government.
  • Tax. The Income-tax Act, 2025 replaced the 1961 Act from 1 April 2026. Deduction of tax from salary is now under section 392 (formerly section 192). Employee declarations and proofs are payroll inputs with their own deadlines.

None of this changes the idea of automation. It raises the cost of late or wrong inputs, and it makes the record of who changed what more important.

A controlled input pipeline, step by step

  1. One door in. All inputs arrive through one intake point (a secure upload, a shared queue or a scheduled pull from the attendance system). Each file gets a reference, a period and an owner. Nothing is accepted by forwarded email alone.
  2. Validation rules. Checks run before a person touches the data. Typical rules: every employee code exists in the master; days worked do not exceed days in the period; leave balances do not go negative; joiners have the mandatory fields; one row per employee per pay head; totals match the sender's control total.
  3. Transformation. The validated data is reshaped into the payroll system's import layout. The mapping from source columns to pay heads is written down and versioned.
  4. Exception queue. Anything that fails a rule goes to a queue with the reason and an owner. It stays open until someone resolves it and records how. Silent fixes are not allowed.
  5. Approval before lock. A named approver reviews the exception list and the summary (headcount, gross by pay head, movement against last month) and approves the input set.
  6. Lock and log. The approved input set is locked. Any later change is a new version with its own approval. The run log records every file, rule result and approval.

What to keep with people

Automation should not decide anything that changes an employee's pay without an instruction. Keep these with named people:

  • Disputed attendance and regularisation requests.
  • Arrears, recoveries and one-off payments.
  • Full-and-final settlements, given the two-working-day deadline under section 17.
  • Any override of a validation rule.
  • The final approval of the payroll run and the bank file.

Controls and what each one prevents

ControlWhat it prevents
Control totals from each senderMissing or duplicated rows going unnoticed
Master-data matchPayments to codes that are not active employees
Versioned mappingA column moving in a template and landing in the wrong pay head
Exception queue with ownersProblems being fixed quietly and differently each month
Maker and checkerOne person both preparing and approving the same input
Lock with versioningLate changes that nobody approved

Personal data in the inputs

Payroll inputs carry personal data: names, bank details, attendance, sometimes health-related leave. Under the Digital Personal Data Protection Act, 2023, an employer may process personal data for employment purposes without consent (section 7(i)), but it remains responsible for that data even when a vendor does the processing (section 8(1)), and it may use a vendor only under a valid contract (section 8(2)). Pass only the fields each step needs. The companion note on data processors sets out the duties in more detail.

Where to start

Pick one input that causes the most rework, usually attendance or variable pay. Write down its rules. Automate the check before automating anything else. A check that catches errors early is worth more than a transformation that makes them faster.

Desk review pending

More notes

Was this page useful?

Sends only this page's address and your answer. No personal data is collected.

NextEnquiry

Want this applied to your process?
Send it over.

Send an enquiry