- Ensure Form 24Q is filed for the given TAN, year, and quarter
- Trigger Form 16 generation via Sandbox TDS Compliance APIs
- Fetch and download the generated Form 16 certificates
Before you begin, make sure you’ve:
- Generated a Sandbox
authorizationtoken using the Authenticate endpoint. - Filed your Form 24Q TDS return for the relevant financial year and quarter (typically
Q4for Form 16). - TRACES credentials (username & password) for the employer TAN.
1
File Form 24Q TDS Return
Employers must finish filing their Form 24Q TDS return before generating Form 16. If this is already done via the File Form 24Q TDS Returns recipe, you can skip directly to Step 2.To programmatically confirm that a Form 24Q return has been filed (or is in progress), you can use the Search E-File TDS Return Jobs API for the given TAN, financial year, quarter, and form.
Look for a job with:
cURL Request – Search E-File TDS Return Jobs
cURL Request – Search E-File TDS Return Jobs
form=24Qquarter=Q4status=succeeded
2
Generate Form 16
Once the Form 24Q return is filed, you can initiate Form 16 generation using the Download Form 16 – Submit Job API.This API logs into TRACES using the employer’s credentials, validates challan & return details, and creates a job to generate Form 16 (Part A and Part B) for the selected TAN, quarter, financial year, and form.
A successful response returns a certificate job:
For Form 16, you must typically use
form = 24Q and quarter = Q4, since Form 16 is issued for the full financial year’s salary TDS.cURL Request – Submit Form 16 Download Job
cURL Request – Submit Form 16 Download Job
job_id– identifier for the Form 16 generation jobtan,financial_year,quarter,form– job contextstatus– typicallycreatedorqueuedinitiallyremember_me– whether credentials are stored for easier polling
- If
remember_meistrue, you can poll the job status without resending TRACES credentials on every request. - If
remember_meisfalse, you’ll need to pass credentials again while polling (as per the Form 16 Remember Credentials behaviour).
3
Fetch Form 16 Certificates
After submitting the Form 16 job, you need to check when the certificates are generated and ready to download.There are two useful APIs here:
When processing is complete, the job
The response includes a list of jobs with their
- Poll Job – to check the status of a specific Form 16 job
- Fetch Jobs – to list all jobs and their statuses for a TAN/period
3.1 Poll a specific Form 16 job
Use the Poll Job endpoint with thejob_id from Step 2:cURL Request – Poll Form 16 Job Status
cURL Request – Poll Form 16 Job Status
status will move to succeeded (or failed if there was an error such as invalid challan details or no Form 16 available for that period).3.2 Fetch all Form 16 jobs and download certificates
To get a list of all Form 16 download jobs (and, depending on contract, the corresponding download URLs), use the Fetch Jobs endpoint:cURL Request – Fetch Form 16 Jobs
cURL Request – Fetch Form 16 Jobs
status:status = “succeeded”– Form 16 certificates are generated and readystatus = “failed”– job failed (for example, wrong TRACES credentials or Form 16 not yet available)