> ## Documentation Index
> Fetch the complete documentation index at: https://help.pragmachartered.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Run a client's monthly payroll

> Keep the employee list, compute and finalise each month's payslips, record salary TDS deposits, and export the quarter's working papers.

![Client Payroll tab showing the employee list with the View filter and Add employee button highlighted](https://help.pragmachartered.com/images/compliance/payroll-employees.png)

Open **Clients**, select the client, then choose **Compliance** › **Payroll**. Owners see the tab for every client; Managers and Preparers see it only for clients they are assigned to. Connector admins and Client portal seats do not see it. Owners (any client) and Managers (assigned clients) can finalise a month, reopen it, and send payslips. Preparers can do everything else: maintain employees, start, recompute and discard a draft month, and record pay dates and challans.

Payroll produces working papers and upload files for your team. Pragma does not file or deposit anything on the client's behalf. If the client is archived, the tab shows **This client is archived: its payroll is read-only.** and none of the actions below are available.

## Keep the employee list

Each monthly payroll is computed from these records. When a month is computed, payroll saves a copy of each employee's record. A finalised month keeps that copy even if the record is changed later.

**1. Find or add the employee**

With **View** set to **Employees**, search by **Name, code or PAN** and use **Show** (**Current**, **Left** or **All**) to narrow the list. Select a row to open that employee, or select **Add employee** for a new one.

**2. Complete the record**

Fill in the **Identity**, **Monthly salary (₹)**, **Provident fund** and **Income tax** sections (see the table below), then select **Add employee** or **Save employee**. If the save is refused, the reason appears at the foot of the form. The **History** list on an existing employee shows who changed which fields and when.

**3. Record a leaver, or delete a mistake**

When someone leaves, enter **Date of leaving** (their last working day) rather than deleting them; the leaving month is their final settlement. **Delete…** › **Delete employee** is only for a record entered by mistake. Someone who has already been paid in a month's payroll cannot be deleted.

| Field | What to enter or check |
| - | - |
| **Name** | Required, up to 120 characters. |
| **Employee code** | Optional. The client's own staff code, up to 30 characters, and unique within the client. |
| **PAN** | Optional but important: without a PAN, TDS is deducted at no less than 20%. It must be an individual's PAN (the fourth letter is P) and must not belong to another employee of the client. |
| **UAN** / **ESI IP number** | 12 and 10 digits. These are needed for the EPFO ECR and the ESIC upload. Each must be unique within the client. |
| **Date of birth**, **Date of joining** | Required. The employee must have been at least 14 years old on the joining date. |
| **Date of leaving** | Optional. It cannot be before the joining date. |
| **State of work** | Required. Professional tax and labour welfare fund follow the place of work. If the client has a GST registration, its state is selected by default. |
| **WhatsApp number** | Optional. This is the number used when you select **Send payslips…** for a finalised month. |
| **Monthly salary (₹)** | **Basic**, **Dearness allowance (DA)**, **House rent allowance (HRA)**, **Special allowance** and **Conveyance and other excluded allowances**. The total must be more than zero. |
| **Provident fund** | **EPF member**, then **EPS (pension) member**, **PF wages**, **Higher pension (joint option)**, **Deferred pension: EPS continues to 60** and **Voluntary PF (%)**. Higher pension needs EPS membership and **Actual wages (joint option)**. |
| **Tax regime** | **New regime (default)** or **Old regime (opted out)**. Choose the old regime only if the employee has told the client to use it. |
| **Record a tax declaration** | Tick it to enter the year's declared amounts, such as salary paid outside Pragma and the TDS on it, and perquisites. Investment and rent fields appear only under the old regime. A declaration for another year is ignored. |

## Run a month

![Monthly payroll view with the Month filter, Start a month, Finalise and Export controls highlighted](https://help.pragmachartered.com/images/compliance/payroll-month.png)

**1. Start the month**

Set **View** to **Monthly payroll** and select **Start a month**. Choose the **Wage month**, then select **Compute payslips**. Start months in order: each month's TDS builds on the months before it. You cannot start a month while an earlier month of the same financial year is still a draft, or after a later month already has a payroll.

**2. Enter this month's inputs**

Select an employee's row to open their payslip. Under **This month's inputs**, enter **Loss of pay (days)** and use **Add a line** for **Arrears, one-off earnings and recoveries**. For an **Earning**, tick **PF wages**, **ESI wages** and **Taxable** as they apply. For PF arrears, enter the wage month under **Arrear of**. Only override **Professional tax (by hand)**, **TDS (by hand)** or the LWF shares when the computed amount is wrong; leave them blank otherwise. Select **Save and recompute**.

**3. Clear warnings and blockers**

If an employee's record or the client's EPF, ESI, professional tax or LWF registration changed after computation, the draft is marked out of date. Select **Recompute** before finalising. Rows marked **to resolve** block finalising; open each one and fix the listed issues. Also check the warnings for employees left out of the ECR because they have no UAN, or out of the ESIC upload because they have no IP number, and the warning that the client has no TAN.

**4. Finalise the month**

An Owner or assigned Manager selects **Finalise…** › **Finalise month**. The month is then locked, and the payslips, statutory files and salary TDS return are prepared from it as it stands.

**5. Export files and send payslips**

From **Export**, you can download the **Payroll register (CSV)** or **Payroll register (Excel)** at any time. **EPFO ECR (text)**, **EPFO arrear ECR (text, one per month)**, **ESIC monthly contribution (.xls)**, **Professional tax by state (CSV)**, **Labour welfare fund by state (CSV)** and **Payslips (print or save as PDF)** become available after the month is finalised. ECR files also need **EPF registered** on the client's profile, and the ESIC file needs **ESI registered**. On a finalised month, **Send payslips…** sends each employee's payslip from the firm's WhatsApp number to employees whose record has a WhatsApp number. A payslip already sent for that finalisation is not sent again. The result shows how many were queued and who was skipped.

To change a finalised month, an Owner or assigned Manager selects **Reopen…**, enters a **Reason for reopening** of 3 to 500 characters, and confirms with **Reopen month**. The reason is kept on the audit trail. To throw away a draft and every input entered on it, select **Discard…** › **Discard draft**.

## Record pay dates and salary challans

Set **View** to **Salary TDS return**, choose the **Quarter**, and set **Show** to **Months and deposits**. Each finalised month is listed with its TDS, pay date and challan.

**1. Record the pay date**

Select the month's row. Under **Salary paid and tax deducted on**, enter a date between the first day of the wage month and the end of the following month. This date decides which quarter's return reports the month. If no pay date is recorded, the month's last day is used.

**2. Link the challan**

Under **Challan that deposited the TDS**, choose a salary challan from that quarter. Choose **Not deposited yet** if the tax has not been deposited. A challan that does not have enough tax free cannot take the month. If the challan is not recorded yet, select **Record a new salary challan**; for the challan fields, see [Prepare a client's TDS return](https://help.pragmachartered.com/compliance/tds.md). Select **Save**. **Clear** removes the recorded pay date and challan.

You can only record pay dates and challans when the client has a TAN on its profile. Without one, the month panel is read-only and **Record salary challan** is hidden.

## Export the quarter's working papers

With **View** set to **Salary TDS return**, **Show** has three options. **Annexure I rows** lists each employee's TDS for each finalised month. **Months and deposits** lists each month's pay date and challan. **Salary challans** lists the quarter's challans; use **Record salary challan** to add one. Only finalised months are included. Notices list months that are still drafts or have no payroll, months not yet linked to a challan, and months reported in a different quarter because of their pay date. **Export** downloads **Annexure I**, the **Challan annexure** and, in the fourth quarter only, **Annexure II**, as CSV or Excel. These are working papers for your team's filing; Pragma does not file the return.

## If an action is refused

The error is shown above the payroll table or in the open panel. Read it before trying again.

* **This client is archived, so its payroll is read-only. Restore the client to change employees or runs.**
* **…is still a draft. Finalise it first: each month's TDS builds on the months before it.** Finalise the earlier month first.
* **A later month (…) already has a payroll in this financial year.** Work back from the latest month: discard it if it is a draft, or reopen it if it is finalised.
* **…already has a payroll. Open it from the month list.** Use **Month** instead of starting the month again.
* **No employee is on the rolls in….** Add employees, or check their joining and leaving dates.
* **Pragma has no verified income-tax rates for the financial year of…** Salary TDS cannot be computed for that month.
* **This draft is out of date…** Select **Recompute**, check the payslips, then finalise.
* **This payroll cannot be finalised yet:…** Fix the listed issues on the payslips marked **to resolve**.
* **…is finalised and cannot be changed. Reopen it with a reason first.**
* **…has a pay date or salary challan recorded…** Select **Clear** under **Months and deposits** before reopening the month.
* **This employee was paid in the … payroll, so the record cannot be deleted. Record a leaving date instead.**
* **Someone else changed this item while you were editing it…** Reload before finalising again.
* **…is still a draft. Finalise it before recording its pay date and challan…**
* **No tax was deducted in …'s payroll, so there is nothing for a challan to deposit. Record the pay date alone.**
* **That challan is a 26Q or 27Q challan for non-salary deductions…**, **Salary paid on that date is reported in…** or **The challan deposited ₹… of tax, but these deductions need ₹….** Pick a different salary challan, or correct the challan's amounts.
* **Your role does not allow this action. Ask a firm owner or manager.** Finalising, reopening and sending payslips are limited to Owners and assigned Managers.
* An employee field such as **PAN**, **UAN** or **Date of joining** is named with the reason, for example that the value is already used by another employee. Correct the field and save again.

> [card] Still stuck?
>
> [Open a case](https://app.pragmachartered.com/support) from **Help & support** in Pragma, or [book a walkthrough](https://help.pragmachartered.com/support/book-a-walkthrough.md) and the team will show you around on a call. Can't sign in? [Contact support](https://app.pragmachartered.com/contact-support).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.