> ## Documentation Index
> Fetch the complete documentation index at: https://developer.sandbox.co.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Get certificate job status with a deductor token

> Check a Form 131 or Form 133 certificate job with a deductor token. Retrieve PDF ZIP URLs when the job succeeds.

Use the same certificate type as the create request and its returned `job_id`. The `Authorization` header requires a deductor access token for the same TAN.

Continue polling while `data.status` is `in_progress`. A `succeeded` job includes `data.certificate_pdf_zip_urls`. A `failed` job still returns HTTP `200`, with the reason in `data.message`.

If token expiry causes HTTP `403`, [refresh the deductor session](https://developer.sandbox.co.in/api-reference/tds/compliance/traces/endpoints/refresh.md) and retry with the same `job_id`. If the refresh token is rejected, [authenticate again](https://developer.sandbox.co.in/api-reference/tds/compliance/traces/endpoints/authenticate.md).

See [Generate certificates with a deductor token](https://developer.sandbox.co.in/recipes/tds/certificates/generate-with-deductor-token.md) for the complete cURL workflow.


## OpenAPI

````yaml api-reference/tds/compliance/openapi.json GET /tds/compliance/traces/deductor/certificates/{certificate_type}/status
openapi: 3.1.0
info:
  title: compliance
  description: >-
    Tax Deducted at Source (TDS) is an indirect method of collecting Income Tax.
    TDS is based on the principle of “Pay as you earn” which is beneficial for
    both the Government and the taxpayer. It is where a person making a payment
    of specified nature is liable to deduct tax at a prescribed rate. This
    ensures continuous revenue for the Government by way of Tax Deducted at the
    Source.


    The Payer making a payment is also responsible to deposit TDS with the
    Income Tax Department within a specified date and file a TDS Return. Once
    filed, the deposited amount will be shown in the Payee's Form 26AS which
    they can then use to claim tax credits when filing ITR.


    However, staying TDS compliant can be a hassle for businesses, as they are
    required to :


    1. Deduct TDS from payments that are liable for TDS Deduction at an
    appropriate rate.
        
    2. Deposit TDS to Government before the due date.
        
    3. File TDS Returns on a Quarterly basis.
        
    4. Issue a TDS Certificate by the deductor to the deductee.
        

    Organizations deducting TDS have to remain compliant with each of the steps.
    Failure to do so results in TDS Penalties by Authorities. Sandbox provides
    TDS Compliance APIs to help you automate end-to-end TDS compliance.
  version: 1.0.0
servers:
  - url: https://test-api.sandbox.co.in
    description: test
  - url: https://api.sandbox.co.in
    description: prod
security: []
tags:
  - name: TDS Compliance Check
  - name: Download CSI
  - name: FVU Generation
  - name: TDS
  - name: TDS Certificate
  - name: TRACES Credentials
  - name: E-File TDS Return
paths:
  /tds/compliance/traces/deductor/certificates/{certificate_type}/status:
    get:
      tags:
        - TDS Certificate
      summary: Get certificate job status
      description: >-
        Get the current status of a certificate job using its job_id and
        certificate type. The response has status in_progress while the
        certificates are being prepared. A succeeded job includes signed URLs
        for the PDF ZIP files. A failed job includes a message describing the
        failure. Refresh your deductor access token if it expires, then repeat
        the request with the same job_id.
      operationId: GetVanillaCertificateJobStatus
      parameters:
        - name: certificate_type
          in: path
          description: >-
            Certificate type. Use 131 for TDS on non-salary payments or 133 for
            TCS.
          required: true
          example: '131'
          schema:
            type: string
            enum:
              - '131'
              - '133'
        - name: job_id
          in: query
          description: Unique identifier returned when the certificate job was created.
          required: true
          schema:
            type: string
          examples:
            Certificates are being prepared:
              summary: Certificates are being prepared
              value: 4d882797-f968-474e-b05b-85cb5eba3d9a
            Certificates are ready:
              summary: Certificates are ready
              value: 4d882797-f968-474e-b05b-85cb5eba3d9a
            Certificate generation failed:
              summary: Certificate generation failed
              value: 4d882797-f968-474e-b05b-85cb5eba3d9a
            Job was not found:
              summary: Job was not found
              value: 00000000-0000-4000-8000-000000000000
            Deductor access token is missing:
              summary: Deductor access token is missing
              value: 4d882797-f968-474e-b05b-85cb5eba3d9a
        - name: Authorization
          in: header
          description: >-
            Deductor access token returned by [Authenticate a TRACES
            deductor](https://developer.sandbox.co.in/api-reference/tds/compliance/traces/endpoints/authenticate).
            The token identifies the deductor TAN.
          required: true
          example: '{{deductor_access_token}}'
          schema:
            type: string
        - name: x-api-key
          in: header
          description: Sandbox API key.
          required: true
          example: '{{api_key}}'
          schema:
            type: string
      responses:
        '200':
          description: Certificate job status and available download URLs.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  timestamp:
                    type: integer
                  data:
                    type: object
                    properties:
                      '@entity':
                        type: string
                        description: Certificate job entity type.
                      job_id:
                        type: string
                        description: Unique identifier for the certificate job.
                      tan:
                        type: string
                        description: Tax Deduction and Collection Account Number (TAN).
                      tax_year:
                        type: string
                        description: >-
                          Tax year for the certificate job, in TY YYYY-YY
                          format.
                      quarter:
                        type: string
                        enum:
                          - Q1
                          - Q2
                          - Q3
                          - Q4
                        description: Quarter of the tax year.
                      created_at:
                        type: integer
                        description: Job creation time as a Unix timestamp in milliseconds.
                      updated_at:
                        type: integer
                        description: >-
                          Last job update time as a Unix timestamp in
                          milliseconds, when available.
                      status:
                        type: string
                        enum:
                          - created
                          - queued
                          - in_progress
                          - succeeded
                          - failed
                        description: Current status of the certificate job.
                      message:
                        type: string
                        description: Reason the job failed, when available.
                      certificate_pdf_zip_urls:
                        type: array
                        description: >-
                          Signed URLs for the certificate ZIP files, available
                          after the job succeeds.
                        items:
                          type: string
                          format: uri
                    required:
                      - '@entity'
                      - job_id
                      - tan
                      - tax_year
                      - quarter
                      - status
                  transaction_id:
                    type: string
                required:
                  - code
                  - timestamp
                  - data
                  - transaction_id
              examples:
                Certificates are being prepared:
                  summary: Certificates are being prepared
                  value:
                    code: 200
                    timestamp: 1792479600000
                    data:
                      '@entity': in.co.sandbox.tds.compliance.certificate.job
                      job_id: 4d882797-f968-474e-b05b-85cb5eba3d9a
                      tan: AHMA12345A
                      tax_year: TY 2026-27
                      quarter: Q1
                      created_at: 1792479600000
                      updated_at: 1792479600000
                      status: in_progress
                    transaction_id: 171f4869-bcd6-4f7d-905a-b1186b907857
                Certificates are ready:
                  summary: Certificates are ready
                  value:
                    code: 200
                    timestamp: 1792479600000
                    data:
                      '@entity': in.co.sandbox.tds.compliance.certificate.job
                      job_id: 4d882797-f968-474e-b05b-85cb5eba3d9a
                      tan: AHMA12345A
                      tax_year: TY 2026-27
                      quarter: Q1
                      created_at: 1792479600000
                      updated_at: 1792479600000
                      status: succeeded
                      certificate_pdf_zip_urls:
                        - >-
                          https://example-bucket.s3.ap-south-1.amazonaws.com/workspace-id/job-id/certificates.zip?X-Amz-Expires=86400&X-Amz-Signature=example
                    transaction_id: 171f4869-bcd6-4f7d-905a-b1186b907857
                Certificate generation failed:
                  summary: Certificate generation failed
                  value:
                    code: 200
                    timestamp: 1792479600000
                    data:
                      '@entity': in.co.sandbox.tds.compliance.certificate.job
                      job_id: 4d882797-f968-474e-b05b-85cb5eba3d9a
                      tan: AHMA12345A
                      tax_year: TY 2026-27
                      quarter: Q1
                      created_at: 1792479600000
                      updated_at: 1792479600000
                      status: failed
                      message: Failed to generate certificate PDFs
                    transaction_id: 171f4869-bcd6-4f7d-905a-b1186b907857
          headers: {}
        '400':
          description: >-
            Required request parameters are missing, or the certificate type is
            not supported.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  timestamp:
                    type: integer
                  message:
                    type: string
                  transaction_id:
                    type: string
                required:
                  - code
                  - timestamp
                  - message
                  - transaction_id
          headers: {}
        '401':
          description: The deductor access token is missing.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  timestamp:
                    type: integer
                  message:
                    type: string
                  transaction_id:
                    type: string
                required:
                  - code
                  - timestamp
                  - message
                  - transaction_id
              examples:
                Deductor access token is missing:
                  summary: Deductor access token is missing
                  value:
                    code: 401
                    timestamp: 1792479600000
                    message: Unauthorized
                    transaction_id: 171f4869-bcd6-4f7d-905a-b1186b907857
          headers: {}
        '403':
          description: >-
            The deductor access token has expired, or the API key or deductor
            token does not permit this request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  timestamp:
                    type: integer
                  message:
                    type: string
                  transaction_id:
                    type: string
                required:
                  - code
                  - timestamp
                  - message
                  - transaction_id
          headers: {}
        '500':
          description: The request could not be completed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  timestamp:
                    type: integer
                  message:
                    type: string
                  transaction_id:
                    type: string
                required:
                  - code
                  - timestamp
                  - message
                  - transaction_id
          headers: {}
        '503':
          description: TRACES is temporarily unavailable.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  timestamp:
                    type: integer
                  message:
                    type: string
                  transaction_id:
                    type: string
                required:
                  - code
                  - timestamp
                  - message
                  - transaction_id
          headers: {}
        '521':
          description: >-
            No certificate job matches the supplied job_id and certificate type
            for this deductor.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  timestamp:
                    type: integer
                  message:
                    type: string
                  transaction_id:
                    type: string
                required:
                  - code
                  - timestamp
                  - message
                  - transaction_id
              examples:
                Job was not found:
                  summary: Job was not found
                  value:
                    code: 521
                    timestamp: 1792479600000
                    message: Data not found
                    transaction_id: 171f4869-bcd6-4f7d-905a-b1186b907857
          headers: {}
      deprecated: false
      security: []

````

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