xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField Sales & SFACRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
Auto DMSConsumer Goods DMSSales Force Automation (SFA) FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Finance & Accounting/TDS returns: computing, validating and filing the quarterly statement
HOW-TO · Last reviewed

TDS returns: computing, validating and filing the quarterly statement

A TDS Return is the record for one quarterly withholding statement of one company: the non-salary TDS return, the TCS return or the salary TDS return for a financial-year quarter. It sits at the end of the withholding cycle described in TDS & TCS. Bills, invoices, payments and payroll record the deductions, deposit challans pay them, and the TDS Return gathers the quarter's deductions and challans into the statement you upload on the government portal. After filing, the same record produces the deductee certificates.

Overview

xMatix does not calculate tax on the return. Compute Return copies what the withholding register already recorded for the quarter into two sets of child rows: one challan row per paid deposit challan and one deductee row per deduction, each linked to the challan that paid it. Validate Return runs a pre-file checklist over those rows. Export e-Return File turns the computed return into the caret-delimited statement text that the government's return-preparation and validation utilities accept. You file on the portal, then Mark Filed records the acknowledgment number and filing date and locks the return against recomputing. Generate Certificates then builds the certificate register from the filed return.

Every return moves through the same statuses: Draft → Computed → Validated → Filed.

When to use it

  • Once a quarter, for each company that deducts or collects tax, after the quarter's deposit challans are paid and their CIN details are recorded.
  • When a filed statement has to be corrected — through Create Correction, never by editing the filed return.
  • At year end, the Q4 salary return also carries the per-employee annual salary computation that the salary certificate is built from.

How xMatix handles it

Which form, which data. The Form Code decides where the return reads from:

Form CodeStatementReads fromCertificate it produces
140Resident non-salary TDSTDS rows in the withholding registerOne non-salary TDS certificate (Form 131) per deductee
143TCSTCS rows in the withholding registerOne TCS certificate (Form 27D) per collectee
138Salary TDSPosted payroll runs with a TDS deduction, and the paid TDS payroll statutory challansForm 16 register rows, from the Q4 return only
144Non-resident—Can be selected, but Compute Return refuses it

Which deductions belong to the quarter. Quarter 1 is April–June, 2 is July–September, 3 is October–December and 4 is January–March of the financial year that starts in Fy Start Year (2026 means FY 2026-27). A non-salary or TCS return takes the company's withholding rows of that nature dated inside the quarter, leaves out reversed rows and rows with no tax (except nil-deduction certificate rows, which are reported), and includes any deduction that was moved into this quarter from an already-filed one. A salary return takes posted payroll rows with TDS whose payroll period ends inside the quarter.

Which challans count. Only challans with the status Deposited or Verified become challan rows. A deduction allocated to a challan that is still Draft, or not allocated at all, becomes a deductee row with no challan — validation reports it as undeposited.

Due date. A new return gets the statutory due date for its quarter: 31 July (Q1), 31 October (Q2), 31 January (Q3) and 31 May (Q4), the last two in the following calendar year. A due date you type yourself is kept as long as it falls on or after the end of the quarter, so an official extension survives recomputing.

How challan rows are built

A challan row is the return's copy of one paid deposit challan. It holds the bank's challan identification details (CIN) and amounts that the statement quotes, plus how much of the deposit this return uses. Compute Return deletes the return's challan rows and builds them again each time it runs:

  • Non-salary and TCS returns. The return gets one row for each Deposited or Verified challan that pays at least one of the quarter's deductions. Rows are numbered from 1 in order of deposit date, then challan number, and named after the return with -CD1, -CD2 and so on. Each row copies the challan's BSR Code, deposit date (as Tender Date), Challan Serial, Payment Code, Tax Amount, Interest Amount and Total Amount. These are the challan's full amounts, even when the challan also pays deductions that are reported in another return.
  • Salary returns. The return gets one row for each TDS payroll statutory challan marked Paid for a payroll period whose deductions are in the quarter. Tender Date is the challan's Pay Date. Tax Amount and Total Amount are both the challan's Amount, and Interest Amount and Payment Code stay empty. If the challan has no Challan Serial, the first ten characters of its Challan Number are used instead.
  • Utilized Amount is the sum of the tax deposited on the deductee rows that point to this row. On a non-salary return, each deduction counts what was allocated to its challan. On a salary return, each employee row in a period counts its full TDS against that period's challan. If a period has two Paid challans, every employee row of that period goes to the first one, and the second row stays at zero.

In the e-return file, each challan row becomes a challan record carrying its row number. Each deductee record cites that number to show which challan paid it. On the Overview tab, the Challan column of Deductees by challan shows the same link as CD followed by the row number and payment code.

The rows are not on any app menu. To open one, go to the deposit challan's Used In Returns tab and select the row in the Challan Row column. That tab also lists each return's status, the row's tender date, Tax Amount and Utilized Amount. The challan's Utilisation tile adds them up. See TDS challans.

How deductee rows are built

A deductee row is the return's copy of one deduction (or, on a TCS return, one collection). It holds what the statement reports about the deductee: PAN, name and type, section and payment code, payment date, amount paid, tax deducted and deposited, rate and any remarks code, plus the challan row that paid it. Compute Return deletes the return's deductee rows and builds them again each time it runs:

  • Non-salary and TCS returns. The return gets one row for each of the quarter's deductions in the TDS Transactions register, in order of deduction date. Rows are named after the return with -DD1, -DD2 and so on. Section, payment code, payment date (the deduction's document date), amount paid, tax, rate, remarks code and PAN come from the deduction as it was posted. Party Name and Deductee Type come from the party's account as it stands when you compute. A lower or nil deduction certificate's number is copied in when the deduction applied one.
  • Reversals in the same quarter. A vendor credit that reverses withheld tax does not get a row of its own, because the statement has no negative rows. It reduces the latest deductions of the same party and section in the quarter instead, never below zero. A deduction reversed in full that was never deposited disappears from the return. A reversal whose bill was reported in an earlier quarter has nothing to reduce here: that earlier quarter needs a correction statement.
  • Salary returns. The return gets one row per employee for each posted payroll period with TDS whose period ends in the quarter, in order of period end date and then employee name. Party Name and PAN are the employee's at compute time, Deductee Type is always Individual, the section is 392 for periods ending on or after 1 April 2026 (192 before), Payment Date is the period end date and Amount Paid is the period's gross earnings. Payment code, rate and the party account stay empty.
  • Challan link and Tax Deposited. On a non-salary or TCS return, the row links to the challan row of the challan its deduction is allocated to, and Tax Deposited is the allocated amount. The link is made only when that challan is Deposited or Verified. On a salary return, the row links to the period's paid payroll challan, and Tax Deposited is the employee's full TDS. A row with no challan has Tax Deposited zero.

Where you see them. On the return's Overview tab, open Deductees by challan. It lists every row with party, PAN, challan (CD with the row number and payment code, or Not on a challan), section, payment date and the three amounts, and shows Tax Deposited in red when it is below the tax deducted. Use the search box (name, party, PAN or section) or the Challan column filter to narrow the list. The Deposit coverage tile and the Show Deductees button on the Deductees Not On A Challan finding both jump to the rows that have no challan. Select a row's Name to open its record page, which has a Deductee panel and a Deduction panel. The rows are not on any app menu.

Who reads them. The e-return file writes one deductee record per row in sequence order, citing its challan row's number. Validation checks the rows. Certificates are grouped from the rows of the Filed return, and the year-end reconciliation compares Filed rows with the books. Once the return is Filed, these all read the rows exactly as stored.

How annual salary rows are built

A Q4 salary return also carries the statement's annual salary details (Annexure II): one TDS Return Salary Detail row per employee, with that employee's salary and tax computation for the whole financial year. Returns for quarters 1–3, and non-salary and TCS returns, have none. Compute Return deletes the rows and builds them again each time it runs on a Q4 salary return:

  • Who gets a row. Every employee with a posted payroll run detail for the company whose payroll period ends in the financial year, with gross earnings or TDS above zero. Employees with no tax deducted get a row too, and so do employees who left before January and have no Q4 deductee row. Rows are numbered in employee name order and named after the return with -SD1, -SD2 and so on. Employee Name and PAN are the employee's at compute time.
  • Figures from payroll. Gross Salary is the sum of the year's gross earnings and TDS Deducted the sum of the year's TDS, both from posted payroll runs. TDS Deposited is the part of that TDS whose payroll period has a TDS payroll statutory challan marked Paid.
  • Regime. Old when the employee's Employee record for this company has Tax Regime set to Old, otherwise New. If the employee has more than one Employee record for the company and any of them says Old, Old is used.
  • The tax computation. xMatix runs the same income-tax calculation that payroll uses, with the year's Tax Regime Rules, Salary Tax Slabs and Tax Surcharge Slabs for that regime, the general age band, and the employee's Verified or Approved tax declarations for the year (see Income tax in payroll). The only income it uses is the Gross Salary. It fills Exempt Allowances, Section 16 Deductions, Other Income, Gross Total Income, Chapter VI-A Deductions, Taxable Income, Tax on Income, Rebate (87A), Surcharge, Cess and Total Tax Liability. Shortfall / Excess is Total Tax Liability minus TDS Deducted.
  • No rule tables, no computation. When the year has no active Tax Regime Rule for the regime, the row is still written with the payroll figures, but every computed field stays empty. Validation then warns Annexure Not Computed.

Because the computation only knows the Gross Salary and the declarations, some lines are always the same:

  • Exempt Allowances and Other Income are always zero. Section 10 exemptions, house-property income or loss and other-sources income are not passed in.
  • Section 16 Deductions is the standard deduction from the Tax Regime Rule only. Professional tax and entertainment allowance are not deducted, even under the Old regime.
  • The senior-citizen slabs never apply, because no date of birth is held for employees.
  • Total Tax Liability is the final figure after the rebate's and surcharge's marginal relief and rounding. The rows do not store those reliefs, so Tax on Income − Rebate (87A) + Surcharge + Cess can differ from it.

Where you see them. The rows are not on the return's Related tab or any app menu. The Overview tab only shows the findings about them. To see them, an administrator adds TDS Return Salary Details to an app (see Configuration). The record page has three tabs: Employee, Income and Tax.

Who reads them. The e-return file writes one salary detail record per row, in sequence order, after the deductee records. Validation checks them, and Form 16 generation creates one certificate per row (see TDS certificates). These read the rows exactly as stored, so a hand edit goes into the file until the next compute replaces it.

Prerequisites

  • The company account carries its TAN. Without it the scheduled job does not treat the company as a deductor, and validation fails the return.
  • The quarter's deductions are posted on bills, invoices, payments or payroll — see TDS & TCS.
  • The quarter's deposit challans are posted (status Deposited or Verified) and carry the BSR code, deposit date and challan serial. For the salary return, the payroll TDS challans are marked Paid.
  • Deductee PANs are recorded on the vendor, customer or employee records, and ideally verified (see Step 3).
  • Your security profile allows the TDS Return actions you need (see Permissions).

Procedure

Step 1 — Find or create the quarter's return

  1. Open the Finance Setup app and, under Withholding Tax (TDS), open TDS Returns. The All TDS Returns view lists every return; Open Returns lists those not yet Filed.
  2. If the monthly compliance job runs in your organisation, the Draft returns for Forms 140, 143 and 138 already exist for each company with a TAN. They are labelled like Form 140 · FY 2026-27 Q2.
  3. To create one yourself, select New and fill Name, Form Code, Fy Start Year and Quarter. Return Type defaults to Regular and Status to Draft; leave them. Save.
  4. Open the saved return and check that the company is set (Partner Account Id on the Filing & Validation tab). Compute Return cannot run without it.

The record page opens on the Overview tab, which shows readiness, deposit coverage and filing tiles, the checklist findings and the deductees grouped by challan. Return, Totals, Filing & Validation, Related and Attachment tabs hold the rest.

Step 2 — Compute the return

  1. On the return, select Compute Return and confirm.
  2. xMatix removes any earlier challan and deductee rows and rebuilds them from the register, then fills Deductee Count, Challan Count, Total Tax Deducted, Total Tax Deposited and Computed On. If Tan is empty it is copied from the company account.
  3. The status becomes Computed and any earlier validation result is cleared.

You can compute as often as you like until the return is Filed. Recompute after posting a late bill, depositing a challan or correcting a party's name, deductee type or an employee's PAN. A vendor's or customer's PAN is different: see the PAN problem below.

Step 3 — Bring PAN verification results in (optional)

Import PAN Verification reads the bulk PAN verification result file downloaded from the department's portal. For each line that carries a PAN and a verdict, it stamps every vendor, customer and employee record with that PAN as Verified, Invalid or Name Mismatch. Lines it cannot read are counted and skipped. The action has no file dialog of its own on the shipped page: it expects the file's content to be supplied with the action, so it is normally run by an integration or automation. Run without a file, it stops with a message that the file content is needed.

Step 4 — Validate the return

  1. Select Validate Return. It runs only on a Computed or Validated return.
  2. Read the result on the Overview tab checklist, or in Validation Status and Validation Results.
  3. Validation Status is Pass (no findings), Warnings (only warnings) or Fail (at least one error). The status becomes Validated only when there is no error; with errors it stays Computed.
  4. Fix each finding at its source — the party record, the challan, the payroll run — then compute and validate again. The checks are listed under Business rules.

Step 5 — Export the e-return file

  1. Select Export e-Return File. It works on a Computed, Validated or Filed return.
  2. xMatix renders the statement — a file header line, a batch header line, then the challan and deductee records (and, on a Q4 salary return, the annual salary detail records). Amounts are plain decimals and dates are written day-month-year.
  3. Where file storage is available, the file is also saved on the return's Attachment tab. Exporting again adds a new version of the same file rather than a duplicate.
  4. Run the file through the government's validation utility and upload it on the portal. xMatix does not upload it for you.

Step 6 — Record the filing

  1. After the portal accepts the statement, select Mark Filed.
  2. In the dialog, enter Ack Number (required) and Filed On. If you leave Filed On empty, today's date is used.
  3. Confirm. xMatix stamps the acknowledgment and date, computes Late Fee if the filing date is after Due Date, and sets the status to Filed.

Mark Filed accepts a Computed return as well as a Validated one, so it does not force a passing validation. Make validating part of your own filing routine.

Step 7 — Generate and issue certificates

  1. On the Filed return, select Generate Certificates and confirm.
  2. xMatix creates one certificate per deductee and writes the certificate number back onto each underlying deduction, so the register, the certificate and the deduction all cite the same number.
  3. For a salary return, run it on the Q4 return of the year: the salary certificate is annual and xMatix refuses to generate it from Q1–Q3.
  4. You can regenerate while the certificates are Draft — the Draft set is replaced. Once any certificate is marked Issued, the register for that return is locked.

Reviewing, issuing and filing the certificates is covered in TDS certificates.

Step 8 — Correct a filed return

  1. On the Filed return, select Create Correction and confirm.
  2. xMatix creates a new Draft return with Return Type Correction, Original Return Id pointing to the filed one, the same form, company, quarter, TAN and due date, and a name ending in -C1 (then -C2, …). The original stays Filed and unchanged.
  3. Fix the source data, then compute, validate, export and mark the correction filed exactly as in Steps 2–6.

Fields

FieldWhat it meansNotes
NameThe return's identifierRequired. The compliance job names returns by form, financial year, quarter and company.
Form CodeWhich quarterly statement this is138, 140, 143 or 144. Decides the source data and the certificate kind. Any other value is refused on save.
Fy Start YearThe calendar year in which the financial year starts2026 means FY 2026-27.
QuarterQuarter of the financial year1 (Apr–Jun) to 4 (Jan–Mar). Other values are refused on save.
TanThe deducting company's TANCopied from the company account by the compliance job or by Compute Return when empty. Must be four letters, five digits and a letter.
Return TypeRegular or correction statementRegular (default) or Correction. A Correction must have Original Return Id.
Original Return IdThe filed return a correction amendsSet by Create Correction.
StatusWhere the return is in its lifeDraft, Computed, Validated, Filed. Set by the actions — do not change it by hand.
Deductee CountNumber of deductee rowsSet by Compute Return.
Challan CountNumber of challan rowsSet by Compute Return.
Total Tax DeductedTax on all deductee rowsSet by Compute Return. Also the cap for the late fee.
Total Tax DepositedPart of that tax covered by paid challansSet by Compute Return. Lower than Total Tax Deducted means something is undeposited.
Late FeeLate-filing feeSet by Mark Filed: ₹200 per day after the due date, capped at Total Tax Deducted. Zero when filed on or before the due date.
Due DateStatutory filing due dateDefaulted from the quarter; a later date you enter is kept.
Computed OnWhen the return was last computedSet by Compute Return.
Filed OnDate the return was filed on the portalEntered in Mark Filed.
Ack NumberThe portal's acknowledgment for the filingRequired by Mark Filed.
Validation StatusOutcome of the last validationPass, Warnings or Fail. Cleared by Compute Return.
Validation ResultsThe individual findings of the last validationEach finding has a code, severity, message and count.
Partner Account IdThe deducting companyRequired by Compute Return. Shown on the Filing & Validation tab.
LabelDisplay nameDefaults to Name when left empty.

Challan row fields. A challan row's record page has two panels, Challan Row and CIN & Amounts. Every value is written by Compute Return.

FieldWhat it meansNotes
NameThe row's identifierThe return name followed by -CD and the sequence.
Tds Return IdThe return the row belongs to
Tds Challan IdThe deposit challan the row copiesNon-salary and TCS returns only.
SequenceRow number within the return1, 2, 3… in order of deposit date. The deductee records in the e-return file cite it.
Payment CodePayment code of the deposited deductionsEmpty on salary returns.
Payroll Statutory ChallanThe payroll TDS challan the row copiesSalary returns only. Never set together with Tds Challan Id.
Bsr CodeThe bank's BSR codePart of the CIN. If it is missing, validation reports Missing CIN.
Tender DateThe date the tax was paidThe challan's deposit date, or the payroll challan's Pay Date. Part of the CIN.
Challan SerialThe bank's challan serial numberPart of the CIN.
Tax AmountThe challan's taxThe full challan amount.
Interest AmountInterest paid with the challanEmpty on salary returns.
Total AmountTotal paid with the challanCopied from the challan.
Utilized AmountTax deposited by this return's deductee rows that cite this rowMust not exceed Tax Amount. Above it, validation reports Challan Over-Utilised.

Deductee row fields. A deductee row's record page has two panels, Deductee and Deduction. Every value is written by Compute Return.

FieldWhat it meansNotes
NameThe row's identifierThe return name followed by -DD and the sequence.
Tds Return IdThe return the row belongs to
Return Challan IdThe challan row that paid this deductionEmpty means not deposited; validation reports it as an error.
Tds Transaction IdThe deduction in the TDS Transactions registerNon-salary and TCS returns only.
SequenceRow number within the returnDeduction date order (salary: period end, then employee name).
Party Account IdThe vendor or customerEmpty on salary returns.
Party NameThe deductee's nameTaken from the account or employee at compute time.
Party PanThe deductee's PANNon-salary and TCS: the PAN on the deduction when it was posted. Salary: the employee's PAN at compute time.
Deductee TypeStatutory classificationIndividual, HUF, Company, Firm / LLP, AOP / BOI, Local Authority, Government, Trust. Salary rows are always Individual.
Payment CodeThe section's payment codeEmpty on salary returns.
Section CodeThe section deducted underSalary: 392, or 192 for periods ending before 1 April 2026.
Payment DateDate of payment or creditThe deduction's document date, or the payroll period end date.
Amount PaidAmount paid or creditedNet of reversals in the same quarter. Salary: gross earnings for the period.
Tax DeductedTax deducted or collectedNet of reversals in the same quarter.
Tax DepositedTax covered by the paying challanThe allocated amount, or the full salary TDS when the period's challan is Paid. Zero with no challan.
RateWithholding rate appliedPercentage. Empty on salary returns.
Remarks CodeStatutory remarkA — Lower deduction (s.395), B — Nil deduction (s.395), C — Higher rate (PAN missing), or empty.
Ldc Certificate NumberLower or nil deduction certificate numberExpected with remarks A or B; missing, validation warns.

Annual salary row fields (Q4 salary returns). A TDS Return Salary Detail record page has three tabs. Every value is written by Compute Return.

FieldWhat it meansNotes
NameThe row's identifierThe return name followed by -SD and the sequence.
TDS ReturnThe Q4 salary return the row belongs to
SequenceRow number within the returnEmployee name order.
EmployeeThe employee
Employee NameThe employee's nameAs it stood at compute time. Form 16 uses it as the party name.
PANThe employee's PANAs it stood at compute time. Form 16 matches the employee's deductee rows on it, or on the name when it is empty.
RegimeTax regime of the computationOld or New. New unless the Employee record says Old.
Gross SalaryGross earnings for the yearSum of the posted payroll runs for the financial year.
Exempt Allowances (s.10)Section 10 exemptions allowedAlways zero; exemptions are not passed to the computation.
Section 16 DeductionsDeductions from salaryThe standard deduction from the Tax Regime Rule.
Other IncomeHouse-property and other-sources incomeAlways zero.
Gross Total IncomeSalary income after exemptions and section 16, plus other income
Chapter VI-A DeductionsDeductions allowed from Verified or Approved declarationsAfter section ceilings; zero under the New regime except the sections that regime allows.
Taxable IncomeGross Total Income less Chapter VI-ARounded to the rule's rounding unit.
Tax on IncomeTax from the slabs
Rebate (87A)Rebate allowedBefore any rebate marginal relief.
SurchargeSurchargeBefore any surcharge marginal relief.
CessHealth and education cess
Total Tax LiabilityNet tax for the yearAfter reliefs and rounding. Empty when the year's rule tables are missing.
TDS DeductedTDS deducted through payroll in the year
TDS DepositedThe part of TDS Deducted covered by Paid payroll challansCounted per payroll period.
Shortfall / ExcessTotal Tax Liability minus TDS DeductedPositive means under-deducted (validation warns Short Deduction); negative means over-deducted.

Business rules

Save checks. Form Code must be 138, 140, 143 or 144; Quarter must be 1–4; Return Type must be Regular or Correction, and a Correction must reference its original; Tan, when filled, must be four letters, five digits and a letter; Status must be one of the four statuses.

Action guards.

  • Compute Return is refused on a Filed return ("create a Correction statement instead"), on Form 144, and when the company, financial year or quarter is missing.
  • Validate Return needs a Computed or Validated return.
  • Export e-Return File needs a Computed, Validated or Filed return.
  • Mark Filed needs a Computed or Validated return and an acknowledgment number.
  • Create Correction and Generate Certificates need a Filed return.

The pre-file checklist. Validate Return reports each rule with the number of rows affected:

CheckSeverityWhat it means
Invalid TANErrorThe TAN is missing or malformed. Set it on the company account.
Missing Or Malformed PANErrorA deductee row has no PAN or a PAN not shaped like five letters, four digits and a letter.
Invalid PANErrorThe imported verification result marked the PAN Invalid or name-mismatched. A Verified stamp on any record with the same PAN clears it.
Unverified PANWarningA well-formed PAN with no verification result.
PAN Coverage Too LowErrorFewer than 85% of deductee rows carry a valid PAN.
Deductees Not On A ChallanErrorA deductee row with tax has no paid challan. Post the challan, then recompute.
Challan Over-UtilisedErrorDeposits mapped to a challan row exceed its tax amount.
Missing CINErrorA challan row lacks the BSR code, tender date or challan serial.
Short DepositWarningA deductee row was deposited for less than the tax deducted.
Negative AmountsErrorA row with a negative amount paid or tax.
Missing LDC NumberWarningA row deducted under a lower or nil deduction certificate has no certificate number.
Missing Annexure (Q4 salary only)ErrorThe Q4 salary return has deductee rows but no annual salary rows.
Annexure Not Computed (Q4 salary only)WarningAn annual salary row has no Total Tax Liability, because the year's Tax Regime Rule for that regime is missing.
Short Deduction (Q4 salary only)WarningAn employee's TDS for the year is below the computed liability (positive Shortfall / Excess).

Late fee. ₹200 for every day from the day after the due date up to and including the filing date, never more than the return's total tax deducted.

What a Filed return protects. Recomputing is refused, and certificate generation and the year-end books-versus-returns reconciliation read only Filed returns. The save checks do not lock a Filed return's other fields, and the record can still be edited or deleted by a user whose profile allows it. Keep edit and delete rights narrow (see Permissions).

Salary returns. The Q4 salary return also builds one annual row per employee paid in the year, with gross salary, exemptions, deductions, taxable income, tax, rebate, surcharge, cess, TDS deducted and deposited, and the shortfall or excess, computed under the employee's chosen tax regime.

Example

A company deducts TDS on contractor and rent bills. For Q2 of FY 2026-27 (July–September):

  1. On 1 October the compliance job creates the Draft return Form 140 · FY 2026-27 Q2, with due date 31 October 2026.
  2. The September challans are posted with their CIN details on 7 October. On 10 October the accountant selects Compute Return: 42 deductee rows, 6 challan rows, Total Tax Deducted ₹3,18,400, Total Tax Deposited ₹3,18,400.
  3. Validate Return gives Warnings: three PANs have never been verified. The accountant runs the bulk PAN verification on the portal, the result is imported, and a second validation gives Pass. Status: Validated.
  4. Export e-Return File produces the statement text, which passes the government's validation utility and is uploaded on 24 October.
  5. Mark Filed with the acknowledgment number and Filed On 24 October: Late Fee ₹0, status Filed.
  6. Generate Certificates creates 18 certificates — one per deductee — which are issued to the vendors.

Had the return been filed on 3 November, Mark Filed would have recorded a late fee of ₹600 (three days).

Training

Practice exercise

In a sandbox company that has a TAN, one posted bill with TDS dated in the current quarter, and that bill's deduction on a posted deposit challan with full CIN details:

  1. Create a TDS Return for Form 140 and the current financial year and quarter, and check the company on the Filing & Validation tab.
  2. Compute it. Expected: status Computed, Deductee Count at least 1, Total Tax Deposited equal to Total Tax Deducted.
  3. Validate it. Expected: Pass or Warnings, status Validated.
  4. Post a second bill with TDS in the same quarter but do not deposit it, then compute and validate again. Expected: Fail with the undeposited-deduction error; status stays Computed, and Total Tax Deposited is below Total Tax Deducted.
  5. Export the e-return file. Expected: the statement text, and a file on the Attachment tab where storage is available.

Quick reference

  • One return per company, form and quarter — the job creates the Draft ones.
  • Post challans and record their CIN before computing.
  • Compute freely until Filed; it always rebuilds from the register.
  • Computing clears the last validation — validate again afterwards.
  • Errors keep the return Computed; warnings still let it reach Validated.
  • Mark Filed needs the acknowledgment number and computes the late fee.
  • Certificates come from a Filed return; salary certificates only from Q4.
  • Fix a filed return with Create Correction, never by editing it.

Permissions

Each button is a server action that a security profile grants separately: Compute Return, Validate Return, Export e-Return File, Mark Filed, Create Correction, Generate Certificates and Import PAN Verification, plus New, Edit and Delete for the record itself. The shipped standard-user and system-administrator profiles include all of them. A user whose profile lacks an action cannot run it; a user without access to the Finance Setup app or the TDS Return list does not reach the returns at all. If a button is missing for someone, start with why a user can't see something.

Challan rows have their own rights on the TDS Return Challan entity: the shipped standard-user, sales-executive and system-administrator profiles all grant Edit and Delete, and the standard-user and system-administrator profiles also grant New. Their Print Challan button opens an empty dialog in the shipped setup.

Annual salary rows (TDS Return Salary Detail) carry employee salary and PAN data. The shipped standard-user, sales-executive and system-administrator profiles grant full access to them. Before you add them to an app, narrow those rights so only payroll and TDS owners can read and edit them.

Because a Filed return and its challan rows are not locked against generic editing or deletion, give Edit and Delete only to the people who own TDS compliance. See security profiles.

Configuration

  • Company TAN. Set on each company account. It is what makes a company a deductor for the compliance job and what every return quotes.
  • Deductee PAN and type. Set on vendors, customers and employees. Missing or invalid PANs fail validation.
  • Monthly compliance job. The Provision TDS/TCS compliance job (Finance category) drafts the month's deposit challans and creates the Draft Form 140, 143 and 138 returns for every company with a TAN for the quarter that month belongs to. It runs for the previous calendar month unless a month and year are given, can be started manually, and never creates a second Regular return for the same company, form and quarter. It runs on a schedule only when your organisation has a schedule set up for it.
  • Due dates. Statutory dates are defaulted. To record an official extension, enter the extended date in Due Date before marking the return filed.
  • Record page. The shipped view puts the TDS Overview widget on the first tab. On a copied or custom layout, add it from the Studio toolbox under Entity Components → TDS Overview; it works only on TDS Return and TDS Challan layouts. See design a form layout.
  • Salary returns depend on payroll: posted payroll runs, TDS payroll statutory challans marked Paid, and, for the Q4 annual rows, the year's tax regime and slab rules, each employee's Tax Regime on the Employee record, and Verified or Approved tax declarations — see Income tax in payroll.
  • Showing the annual salary rows. They are in no shipped app. To review them, add TDS Return Salary Details to an app through Setup → Design Studio → Apps → Manage Items (see create an entity), after narrowing the profile rights described under Permissions.
  • Reconciliation. Year-end books-versus-returns checks and their fixes, including moving a deposited but unreported deduction into the next open return, run from the TDS Reconciliation page — see TDS reconciliation.

Common problems

"A Filed return cannot be recomputed"

The return is Filed. Use Create Correction and compute the correction instead.

"Return needs a company"

The return has no company. Open it, set Partner Account Id on the Filing & Validation tab, save and compute again.

Compute Return refuses a Form 144 return

The non-resident form can be stored but not computed. Use Form 140, 143 or 138.

"Compute the return before validating it" or "before exporting the e-return file"

The return is still Draft. Run Compute Return first.

"Only a Computed/Validated return can be marked Filed"

The return is Draft or already Filed. Compute it first; a Filed return cannot be filed again.

"Recording a filing needs the portal acknowledgment number"

Enter Ack Number in the Mark Filed dialog.

Validation says deductions are not deposited, but I paid the challan

Only Deposited or Verified challans count. Post the challan with its deposit date, make sure the deduction is allocated to it, then recompute and validate.

"Certificates are generated from a Filed return" or "Form 16 is an annual certificate"

Mark the return Filed first. For salary, generate certificates from the Q4 return of the year.

"Certificates for this return have already been issued"

At least one certificate is Issued, so the register is locked and cannot be regenerated.

The Q4 salary return has annual rows with no tax computed

Validation warns Annexure Not Computed. There is no active Tax Regime Rule for the employee's regime whose Financial Year is the return's year written as 2026-27, either shared (no Partner Account) or for this company. Add or activate the rule, with its Salary Tax Slabs and Tax Surcharge Slabs, then compute the return again.

Validation reports Missing Annexure

The Q4 salary return has deductee rows but no annual salary rows. Rows come from posted payroll runs of the company, so check that the year's payroll runs are posted and that the return's company and Fy Start Year are right, then compute again.

Validation reports Short Deduction

The employee's computed tax for the year is higher than the TDS payroll deducted. Open the employee's annual salary row and compare Total Tax Liability with TDS Deducted. The annual row uses the declarations and rule tables as they stand when you compute, so declarations verified after the last payroll run or rule tables changed during the year can open a gap. So can the computation limits described under the next problems. The warning does not block filing.

The annual salary row shows the wrong regime

The row uses the Tax Regime on the employee's Employee record for the return's company, and New when it is empty. Correct the Employee record and compute the Q4 return again. If the employee has two Employee records for the company and either says Old, the row uses Old.

Exempt Allowances, Other Income or professional tax are missing from the annual salary row

The annual computation is built only from the year's gross salary and the employee's Verified or Approved declarations. Section 10 exemptions, house-property and other-sources income, professional tax and entertainment allowance are not passed in, so those amounts stay zero and Section 16 Deductions holds only the standard deduction. Taxable income and tax can therefore be higher than the employee's own computation. Check the figures before you file the Q4 return.

Validation reports Missing CIN

At least one challan row has no BSR code, tender date or challan serial. Those values are copied from the challan when the return is computed. Record them on the deposit challan, or on the TDS payroll statutory challan for a salary return, then compute and validate again. The standard statutory challan form has no BSR Code or Challan Serial field, so an administrator adds them first (see Statutory challans). Typing them into the challan row lets that row pass, but the next compute replaces them with the challan's empty values.

Validation reports Challan Over-Utilised

The deductee rows that point to a challan row deposit more tax than the row's Tax Amount. On a salary return, this means the period's employee TDS adds up to more than the payroll challan's Amount. Correct the challan amount or the payroll run, then recompute. On a non-salary return, check the challan's Deductions tab for allocations that add up to more than its tax.

A challan I posted does not appear on the return

A non-salary challan becomes a challan row only when it is Deposited or Verified and pays at least one deduction reported in this quarter. A salary challan becomes a row only when it is a TDS payroll statutory challan, is marked Paid, and belongs to a payroll period whose deductions are in the quarter. Check the challan's status and its deductions, then recompute.

Validation reports a missing or invalid PAN after I corrected the vendor

On a non-salary or TCS return, each deductee row carries the PAN that was recorded on the deduction when the bill, invoice or payment was posted. Correcting the PAN on the vendor or customer fixes future deductions, but recomputing does not change rows for deductions already posted. Open the deduction in the TDS Transactions register (Finance Setup app), correct its Party PAN on the record page, then compute and validate again. A deduction posted while the PAN was missing was also taken at the higher rate with remarks C; correcting the PAN does not change that tax. Salary rows read the employee's PAN when you compute, so for them correcting the employee record and recomputing is enough.

A deduction I reversed still shows, or a deduction is missing from the return

A reversal in the same quarter reduces the latest deductions of the same party and section and does not get a row of its own. If it reverses a deduction in full that was never deposited, that row disappears. If the deduction had already been deposited, its row stays, with the reduced tax and the deposited amount, and validation does not flag a short deposit. A reversal whose bill was reported in an earlier quarter reduces nothing in this return: file a correction statement for that quarter.

The Deductees Without PAN or Unmapped Deductions view lists every row

The shipped deductee row views of those names carry no filter, so they show all rows. Use the Deductees by challan tab on the return's Overview instead: its Challan filter's Not on a challan option lists the unmapped rows, and the PAN column shows which rows have none.

"The TDS posted on it is reported in the Filed return …"

You changed a bill's TDS override, and its deduction is reported on a deductee row of a Filed return. Re-posting would change a filed statement, so nothing is posted. Correct the quarter through Create Correction instead. If the deduction is already on a challan, a similar message asks you to take it off the challan first.

Common questions

Does xMatix file the TDS return on the portal?

No. xMatix computes the statement, checks it and exports the e-return file. You validate that file with the government's utility and upload it on the portal yourself. Afterwards, Mark Filed records the acknowledgment number and filing date on the return and computes any late fee. From that point the return is locked against recomputing, and certificates can be generated from it.

Why is Total Tax Deposited lower than Total Tax Deducted?

Some deductions are not linked to a paid challan. Either the deduction was never allocated to a challan, or its challan is still Draft. Only Deposited and Verified challans are reported. Prepare and post the missing challans, record their CIN, then compute again. Validation lists the affected rows as undeposited deductions until this is fixed.

Can I change figures on the return directly?

Don't. The return reports what the withholding register and challans recorded, and every compute rebuilds the rows from them, so manual changes are overwritten. Correct the bill, payment, deduction, party or challan instead, then recompute. For a filed return, use Create Correction.

A user whose profile has the Edit right can still change a deductee row's fields in place. The e-return file writes the edited row, but its batch header keeps the return's Total Tax Deducted and Total Tax Deposited, which only Compute Return sets, so the file no longer adds up. After the return is Filed, an edited row keeps the edit, and certificates and the reconciliation read it.

Can I edit or delete a challan row?

You can, but you shouldn't. A user whose profile has the Edit right can change a challan row's fields in place on its record page. Validation and the e-return export read the stored rows, so a hand edit changes what the statement says until the next compute, which rebuilds every row from the challans. After the return is Filed, an edited row keeps the edit. Make the change on the deposit challan or payroll challan and recompute. If the return is already filed, use Correct Challan on the challan and then file a correction statement. The challan rows of a correction are rebuilt from the corrected challan.

Can I edit the annual salary rows of a Q4 salary return?

Only by hand, and it is not recommended. The rows are reached through an app an administrator has added TDS Return Salary Details to, and a user whose profile has the Edit right can change the fields there. The e-return file and Form 16 read the stored row, so the edit is used until the next compute rebuilds every row from payroll and the tax rules. To change a figure for good, fix the payroll run, the employee's regime, the declarations or the rule tables, and compute again. A Filed return cannot be recomputed, so use a correction statement for the Q4 return instead.

Why does the reconciliation show a challan as used twice after a correction?

The year-end reconciliation and the challan's Utilisation tile add up Utilized Amount across every Filed return that has a row for the challan. Filing a correction leaves the original return Filed, so the original and the correction both count the same deposit. Keep this in mind when you read the utilisation figures for a quarter that has a filed correction.

What happens to deductions posted after the return was filed?

Recomputing a Filed return is refused, so the filed statement does not change. Report a late deduction through a correction statement, or use the reconciliation page's move-to-next-return fix to report it in the next open quarter.