- Checking for potential notices using TDS Analytics
- Uploading salary data in Sheet JSON format
- Generating the Form 24Q TXT file via TDS Reports
- Getting ready to move into the FVU + e-filing flow
Before you begin, make sure you’ve:
- Generated a Sandbox
authorizationtoken using the Authenticate endpoint. - Identified the correct
tan,financial_year(for example,FY 2024-25),quarter(Q1–Q4), andform(24Qfor salary TDS).
1
Check for Potential Notice
Start by checking whether your Form 24Q return is likely to trigger any notices. Use the TDS Analytics – Potential Notices API to create a job for the given TAN, financial year, quarter, and form.This returns a
A successful response returns:
job_id and a json_url where you’ll later upload salary data in Sheet JSON format.cURL Request – Create Potential Notice Job
cURL Request – Create Potential Notice Job
job_id– the Potential Notice job identifierstatus– typicallycreatedorqueuedjson_url– a pre-signed S3 URL for uploading salary data in Sheet JSON format
job_id and json_url in the next steps.2
Provide data (upload Sheet JSON for Potential Notices)
Next, upload the data required to detect potential notices.The
After a successful upload, Sandbox will process the workbook asynchronously and update the Potential Notice job with the analysis results.
json_url returned in Step 1 expects a Sheet JSON payload that represents the Form 24Q workbook (Deductor details, Employee master, Salary details, Challans, and mappings).You generate this Sheet JSON in your backend and then upload it with a PUT request.The exact Sheet JSON structure for Form 24Q is documented in the TDS Sheet JSON / sample workbooks. Make sure your workbook name, sheet names, and columns match the specification for salary TDS.
cURL Request – Upload Sheet JSON to json_url
cURL Request – Upload Sheet JSON to json_url
3
Fetch Potential Notice details
Once the data is uploaded, poll the Potential Notice job to see whether any potential issues were identified.Use the Potential Notices GET endpoint with the
When processing is complete, you’ll see:
job_id from Step 1.cURL Request – Fetch Potential Notice Job
cURL Request – Fetch Potential Notice Job
status– for example,succeededorfailed- A link to a Potential Notice report (for example, an Excel or JSON report) summarising possible issues like missing challans, mismatches, or under-deductions
4
Generate TDS Report (create TXT job for Form 24Q)
After you’ve identified and understood potential issues, you can move on to preparing the TXT file using the TDS Reports – TXT API.This step creates a TXT generation job and returns a new
Notes:
job_id and json_url for uploading the final, corrected Form 24Q Sheet JSON workbook.cURL Request – Create TXT Generation Job
cURL Request – Create TXT Generation Job
- Omit
previous_receipt_numberfor an original (regular) return. - For a correction return, set
previous_receipt_numberto the earlier Form 24Q acknowledgement number.
job_id– the TXT generation job idjson_url– pre-signed S3 URL where you’ll upload the final quarter-wise Form 24Q Sheet JSON
5
Repeat the above steps after fixing issues
If the Potential Notice report (or later validation) indicates data problems, you should:
- Correct your source data (salary, challans, employee master, etc.) in your system.
- Regenerate the Sheet JSON workbook for Form 24Q.
- Re-upload the updated Sheet JSON to the appropriate
json_url. - If required, rerun the Potential Notice flow (Steps 1–3) until the report is clean.
6
Provide quarterly details (upload Sheet JSON for TXT)
Now upload the final, quarter-specific Form 24Q Sheet JSON workbook to the
Once the upload succeeds, Sandbox processes this workbook to generate the Form 24Q TXT file in the background.
json_url returned from the TXT job in Step 4.This workbook should contain all the data required for the Form 24Q return for the selected quarter:- Deductor details
- Employee master and PAN details
- Month-wise salary and TDS information
- Challan / book-entry details and mappings
cURL Request – Upload Sheet JSON for TXT
cURL Request – Upload Sheet JSON for TXT
7
Fetch TXT file
After uploading the final Sheet JSON, poll the TXT job to track TXT generation status.
When the job
cURL Request – Fetch TXT Job Status
cURL Request – Fetch TXT Job Status
status is succeeded, the response will include:- A URL to download the generated Form 24Q TXT file
8
File Form 24Q TDS Return (next steps)
With a clean Form 24Q TXT in hand, you’re ready to move to the actual filing workflow:
- Generate FVU using the TXT and CSI files with the TDS Compliance – FVU Generation APIs.
- E-file the TDS return via the TDS Compliance – E-File APIs.
- Download the filing receipts and, later, Form 16 certificates for employees.