Form 138 TDS Return File Validator

Check your quarterly salary TDS statement (Form 138, earlier Form 24Q) text file before you run it through the official FVU: every error and warning, line by line and field by field, with how to fix it.

Your file never leaves your computerIt is read and checked inside this browser tab. Nothing is uploaded, sent or saved, so employee PANs, names and TDS amounts stay with you. Close the tab or press Clear and it is gone.
Dates of payment and deduction are checked against this quarter.

This checks the file before the official File Validation Utility (FVU), using the Income Tax Department's published Form 138 file format (Q1 to Q3); the rules are listed further down this page. It cannot see the CSI challan file, TRACES or PAN records, so it cannot confirm that a challan exists, that the TAN name matches, or that a PAN belongs to the person. You still have to run the official FVU with the CSI file, and its result is the final word.

HivePayroll builds the Form 138 file from your payroll and runs the official FVU for you. Free up to 10 employees.Start free

Free tool · Income-tax Act 2025 · Form 138

Check your Form 138 TDS return file before the FVU, and fix every problem in one go instead of one rejection at a time.

Select the quarterly salary TDS text file (the input file you would run through the official File Validation Utility). The validator checks every record against the Income Tax Department’s published Form 138 file format and tells you the line, the field, the value it found and how to fix each problem.

4record types in a Q1 to Q3 file: FH, BH, CD and DD
^the caret that separates fields; fields minus one carets per record
1002the Form 138 section code for salary to non-government employees (was 92B)
0 bytesof your file sent anywhere: it is checked in your browser
Your file never leaves your computer. A TDS statement holds employee PANs, names, salaries and tax, so the validator reads the file inside your browser tab and checks it there. Nothing is uploaded, sent to HivePayroll or saved, and it is gone when you close the tab.

How to use the Form 138 file validator

  1. Select your Form 138 .txt file, or drag it onto the box. It is the caret-separated text file your TDS or payroll software generates for the FVU, not the .fvu file the FVU produces. No file to hand? Press “Try the sample” to see how the results look.
  2. Check the quarter. The validator reads the tax year and quarter from the batch header. If you pick one yourself, it checks the payment and deduction dates against your choice and tells you if the file says otherwise.
  3. Read the summary. TAN, deductor, quarter, challans, deductee records, tax deducted and deposited, and the number of errors and warnings.
  4. Fix the errors, then review the warnings. Each finding gives the line, the record, the field number and official field name, the value found, what was expected and how to fix it. Open a challan to see its deductee rows with the problem fields highlighted, or download the CSV report.
  5. Run the official FVU. Once this page shows no errors, validate the file with Protean’s FVU and the CSI file for your TAN, then upload the .fvu file on the e-filing portal.

What is Form 138?

Form 138 is the quarterly statement of tax deducted at source from salary. It replaced Form 24Q from tax year 2026-27 (payments from 1 April 2026), when the Income-tax Act, 2025 and the Income-tax Rules, 2026 came into force. It reports TDS deducted under section 392 (salary) and, for specified banks, under section 393(1) for specified senior citizens, and is furnished under section 397(3)(b) read with Rule 219. Salary paid up to 31 March 2026, including Q4 of 2025-26, is still reported in Form 24Q.

Quarter Period Due date Tax year 2026-27
Q1 April to June 31 July 31 July 2026
Q2 July to September 31 October 31 October 2026
Q3 October to December 31 January 31 January 2027
Q4 January to March 31 May after the tax year 31 May 2027

Annexure I (deductee-wise details) is filed every quarter; Annexure II (salary details) and Annexure III are filed only with Q4. Late filing attracts a fee under section 427, and a statement once submitted can only be changed through a correction statement (Income Tax Department, Form 138 FAQs).

The Form 138 file, record by record

The statement is a plain ASCII text file. Every line is one record, every record ends with CR LF, and fields are separated by a caret (^). Empty fields are still there, as two carets with nothing between them, so a record always has the same number of carets. A Q1 to Q3 file has four kinds of record, in this order:

Record Fields How many What it holds
FH File header 18 One, on line 1 File type SL1, upload type R, creation date, TAN, number of batches, the software that made the file
BH Batch header 72 One per statement Form number 138, tax year and quarter, deductor name, address, PAN, deductor category, responsible person, number of challans and their total
CD Challan detail 30 One per challan Tax, interest, fee and penalty, total deposited, BSR code, challan number and date, minor head, interest and others allocation, totals of its deductee rows
DD Deductee detail 45 One per employee per challan, right after its CD PAN, name, section code, date and amount paid, tax deducted and deposited, dates of deduction and deposit, remark

A deductee line for a fictional employee paid ₹62,000 in July with ₹3,100 deducted looks like this (most of the 45 fields are empty by design):

4^DD^1^1^1^O^^ABCPE1001F^RIYA MENON^^^^^^1002^^^Y^31072026^62000.00^^^^3100.00^3100.00^^31072026^^07082026^^^^^^^^^^^^^^^^

What changed from the 24Q file: the form number is 138 and “financial year” became “tax year”; section codes are 4 digits (1001, 1002, 1003, 1032) instead of 92A, 92B, 92C; the challan has tax, interest, fee and penalty only (surcharge and cess are folded into tax); in the deductee record the deductee record number now comes before the challan reference; contact numbers carry a country code; and the only deduction remarks are A (lower deduction certificate under section 395(1)) and C (higher rate for want of PAN). The format update of July 2026, checked by FVU 1.2, added Interest Allocation and Others Allocation to every challan record and requires each date of payment to fall within the quarter.

Q1 to Q3 only. Q4 adds the salary details of Annexure II and uses a separate file format, which Protean lists as “expected to be released soon” as of October 2026. This validator checks Q1 to Q3 files. If you give it a Q4 file it applies the Q1 to Q3 rules to the FH, BH, CD and DD records and says so.

Rules we check

An ERROR means the file breaks a rule in the Income Tax Department’s published format. A WARNING means something is unusual, or a rule that is not stated in the published format (marked “not confirmed by the published format” in the results).

Check Type Source
File not empty; ASCII only (no byte-order mark, accented letters, curly quotes or tabs) Error Form 138 (24Q) Q1 to Q3 file format, general note 1
Records end with CR LF (0D 0A), including the last one Warning File format, general note 2. Flagged as a warning because many tools read LF too; fix it anyway
Line 1 is the FH record; one FH; FH, then BH, then each CD followed by its DD records; no blank lines; record types FH, BH, CD, DD in capitals Error File format: one file header per file, CD field 21 totals its “underlying” deductee records, DD field 5 points to its challan, general note 3 (block letters); record order as in Protean’s earlier 24Q format
More than one batch header Warning The 24Q format required exactly one batch; the 138 format only says FH field 9 counts the batches
Line numbers run 1, 2, 3 with no gaps Error File format, field 1 of every record (“running sequence number for each line”)
Carets per record = fields − 1 (FH 17, BH 71, CD 29, DD 44) Error File format, general note 9 and the record tables
Mandatory fields filled; “not applicable” fields and fillers empty; data type and size (integer, character, ddmmyyyy date that is real and not in the future) Error File format, record tables and general note 7
Amounts with exactly two decimals; challan amounts and the batch total in whole rupees written with .00 Error File format, general note 4 and BH field 47, CD fields 8 to 12, 24, 25
Constants: file type SL1, upload type R, uploader type D, form 138, period Q1 to Q4, NIL indicator N/Y, mode of payment C/B, mode O, deposited Y/N Error File format, FH, BH, CD and DD remarks
TAN AAAA99999A and PAN AAAAA9999A in capitals; deductor PAN or PANNOTREQD; employee PAN or PANAPPLIED, PANINVALID, PANNOTAVBL Error File format, FH 8, BH 13, 15, 59 and DD 8
PAN whose 4th letter is not a holder type (P, C, H, F and so on) Warning Not in the format; the official FVU 1.1 rejected such PANs in HivePayroll’s own runs
Tax year 202627 or later; assessment year one year later and at least 202728 Error File format, BH fields 16 and 17
State codes (Annexure 1 and 5), deductor category (Annexure 4), ministry code (Annexure 3) and when each is required or must be empty; PIN 6 digits; email format; at least one email; GSTIN format; AIN for government book entry Error File format, BH fields 26 to 28, 32, 40 to 42, 54, 57, 58, 68, 69 and Annexures 1, 3, 4, 5
Token number of the previous statement: 15 digits when field 52 is Y, empty when N Error File format, BH fields 9 and 52
Salary detail count (BH 49) empty Warning The format says no value, but the official FVU 1.1 rejected an empty count with T-FV-2127 in HivePayroll’s runs; 0 is accepted
Salary detail gross total income (BH 50) not empty, even 0.00 Error File format (“no value”); the FVU reports T-FV-2090
FH number of batches = BH records; BH challan count = CD records; BH batch total = sum of CD field 12 Error File format, FH 9, BH 4 and 47
Challan record numbers 1, 2, 3; batch numbers match the BH; each DD’s challan reference = its CD’s record number Error File format, CD 3, 4 and DD 3, 5
CD deductee count = DD lines under that challan Error File format, CD field 5; the per-challan reading was accepted by the official FVU 1.1 in HivePayroll’s runs (a count equal to the whole file’s DD lines is a warning, as the wording is ambiguous)
CD 12 = tax + interest + fee + penalty; CD 12 at least the deductees’ tax deposited + interest and others allocation (+ fee for a bank challan); CD 21 and 22 = sums of DD 25 and 24; interest allocation = CD 9, others allocation = CD 11 Error File format, CD fields 12, 21, 22, 24, 25; Key features of RPU and FVU 1.2
NIL challan: no mode, no BSR code, dated the last day of the quarter; bank challan: mode, 7-digit BSR code, date on or after 1 April of the previous year; minor head 200, 400 or 100 Error File format, CD fields 13, 15, 19, 23 and Annexure 7
Section code 1001, 1002, 1003 or 1032 Error File format, Annexure 2
Date of payment within the quarter and tax year; date of deduction not before the quarter; amount paid more than 0.00; tax deducted = tax deposited Error File format, DD fields 19, 20, 24, 25, 27; Key features of FVU 1.2
Dates of deduction and deposit present when tax is more than 0.00 Error File format, DD fields 27 and 29
Remark A or C only; C only with PANAPPLIED, PANINVALID or PANNOTAVBL and at least 20% deducted; A with a PAN and a 10 or 15 character certificate number Error File format, DD fields 32, 33 and Annexure 6
Same PAN twice under one challan; deductee record numbers not 1, 2, 3 under each challan; deposit before deduction or on a date other than the challan’s; deduction after the quarter; challan tax not fully claimed; deposited flag that disagrees with the amount; FH and BH TAN differ; spaces around values; no remark C for a missing PAN Warning Not confirmed by the published format; flagged because they usually mean a mistake

The Form 138 Q1 to Q3 workbook Protean publishes as version 1.2 (file dated 22 July 2026; its title row reads Version 1.1) is the basis for every error above. Where HivePayroll’s own runs of the official FVU differed from the workbook, we say so in the table. A few points in the workbook are unclear and are treated as warnings: its example of 16 fields in the file header (the table lists 18), “DECIMAL 7” as the type of the date of deposit (treated as a ddmmyyyy date), and “fees allocation” next to “value as provided in field no. 11” for Others Allocation.

Common FVU errors in Form 138 files, and the fixes

T-FV-4009

Invalid employee PAN. The PAN is not 5 letters, 4 digits and a letter in capitals, or it is a made-up PAN. Correct it from the employee’s PAN card, or use PANAPPLIED, PANINVALID or PANNOTAVBL (with remark C and tax at the higher rate). The validator shows these as errors on DD field 8.
T-FV-2235

Invalid PAN of the responsible person. BH field 59 must be a valid PAN in capitals. Lower-case letters are enough to trigger it.
T-FV-2127

Invalid count of salary detail record. The official FVU 1.1 wanted 0 in BH field 49 for Q1 to Q3, although the format says “no value”. Put 0 there.
T-FV-2090

Gross total income as per salary details should be provided only for Form 138 Q4. BH field 50 must stay empty in Q1 to Q3: not even 0.00.
Allocations

Interest Allocation and Others Allocation missing. Added to the challan record in the July 2026 format update with FVU 1.2. Files from software built for the first Form 138 format leave CD fields 24 and 25 empty; give 0.00 or the challan’s interest and penalty.
Dates

Date of payment outside the quarter. From FVU 1.2 every deductee’s date of payment must fall within the quarter and tax year of the statement. Move late or early payments to the statement for their own quarter.
T-FV-1041

CSI file is mandatory for verification of non-nil challans. Download the CSI file for your TAN from the e-filing portal (e-Pay Tax, Challan Status Inquiry) for the period covering your challan dates, and give it to the FVU. A CSI for another TAN also ends in this error. This page cannot check the CSI.
T-FV-3173

TAN and TAN name do not match the CSI file. The deductor name must match the name registered against the TAN. Only the FVU with the CSI can check this.
T-FV-6381

At least one deductee record is required. If your file has deductee records, this usually follows another batch-level error such as an invalid PAN: fix the errors listed above it and it goes away. It appears in the FVU’s err.html report.

Codes and meanings are as reported by the official FVU in HivePayroll’s own test runs and in published FVU error lists. The FVU’s wording can change between versions.

Frequently asked questions

Is my Form 138 file uploaded or stored anywhere?

No. The validator reads the file inside your browser and checks it there. It is not uploaded to HivePayroll or anyone else, and it is not saved in your browser. The CSV report and the sample file are also created on your computer. When you close the tab or press Clear, the data is gone.

Does this replace the official FVU?

No. It checks the file before you run the File Validation Utility, so you can fix every format problem in one pass. The official FVU from Protean, run with the CSI file for your TAN, is still required to produce the .fvu file you upload, and it has the final word. A file with no errors here can still fail the FVU, for example if a challan is not in the CSI file or the TAN name does not match.

What is the difference between Form 24Q and Form 138?

Form 138 replaced Form 24Q for salary paid from 1 April 2026 (tax year 2026-27) under the Income-tax Act, 2025. The file keeps the FH, BH, CD and DD records and the caret format, but the record layouts changed: form number 138, tax year in place of financial year, 4-digit section codes such as 1002 in place of 92B, four challan buckets (tax, interest, fee, penalty), country codes for contact numbers, and remarks A and C only. Salary paid up to 31 March 2026 is still reported in Form 24Q.

What are the due dates for Form 138?

31 July for Q1 (April to June), 31 October for Q2 (July to September), 31 January for Q3 (October to December) and 31 May after the end of the tax year for Q4 (January to March). For tax year 2026-27 the Q2 statement is due on 31 October 2026.

Can I check a Q4 Form 138 file?

Only partly. Q4 adds the salary details of Annexure II in a separate file format, which Protean had not published as of October 2026. The validator applies the Q1 to Q3 rules to the FH, BH, CD and DD records of a Q4 file and tells you that the salary detail records are not checked.

If the validator finds no errors, will my statement be accepted?

Not necessarily. It checks the file against the published format and common FVU rejections, but it cannot see bank challan records, the CSI file, TRACES or the PAN database. Run the official FVU with the CSI file; after you upload, TRACES processes the statement and may still raise defaults, such as a PAN that does not belong to the employee or a short payment.

HivePayroll builds the Form 138 file from your payroll and runs the official FVU for you: free up to 10 employeesTDS worked out in every payroll run, challans mapped to employees, and the quarterly statement generated and validated from the same data. Questions? Email support@hivepayroll.co.in.

Start freeBook a demo

Based on the Income Tax Department’s file format for Form 138 (24Q) Q1 to Q3 and Protean’s key features of RPU and FVU version 1.2, both as published in July 2026, the Department’s Form 138 FAQs, and HivePayroll’s own runs of the official FVU, as of 3 October 2026. A checking aid, not legal advice.