> ## 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.

# Generate OTP

> generate otp to download csi file



## OpenAPI

````yaml api-reference/tds/compliance/openapi.json POST /tds/compliance/csi/otp
openapi: 3.0.1
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
  - url: https://api.sandbox.co.in
security: []
paths:
  /tds/compliance/csi/otp:
    post:
      tags:
        - Download CSI
      summary: Generate OTP
      parameters:
        - name: authorization
          in: header
          description: JWT access token
          required: true
          example: '{{access_token}}'
          schema:
            type: string
        - name: x-api-key
          in: header
          description: API key for identification
          required: true
          example: '{{api_key}}'
          schema:
            type: string
        - name: x-api-version
          in: header
          description: ''
          required: false
          example: ''
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                '@entity':
                  type: string
                  enum:
                    - in.co.sandbox.tds.compliance.deductors.otp.request
                tan:
                  description: >-
                    TAN of deductor/collector. Regular Expression:
                    [A-Z]{4}[0-9]{5}[A-Z]{1}
                  pattern: '[A-Z]{4}[0-9]{5}[A-Z]{1}'
                  type: string
                mobile_number:
                  description: 'Mobile Number to send the OTP. Pattern: [1-9]{1}[0-9]{9}'
                  pattern: '[1-9]{1}[0-9]{9}'
                  type: string
                from:
                  description: >-
                    Date from which challan details are to be fetched. Value in
                    EPOCH timestamp
                  type: integer
                to:
                  description: >-
                    Date till which challan details are to be fetched. Value in
                    EPOCH timestamp
                  type: integer
                consent:
                  description: >-
                    Consent of the end-user to get their information. Possible
                    values: Y or y
                  type: string
                reason:
                  description: 'Indicate the purpose. Min length: 20 characters'
                  type: string
              required:
                - '@entity'
                - tan
                - mobile_number
                - from
                - to
                - consent
                - reason
            examples:
              200 - Success:
                value:
                  '@entity': in.co.sandbox.tds.compliance.deductors.otp.request
                  tan: AHMA09719B
                  mobile_number: '1234567890'
                  from: 1722450600000
                  to: 1730313000000
                  consent: 'Y'
                  reason: TDS Return
                summary: 200 - Success
              200 Invalid TAN:
                value:
                  '@entity': in.co.sandbox.tds.compliance.deductors.otp.request
                  tan: AABC23456D
                  mobile_number: '1234567890'
                  from: 1722450600000
                  to: 1730313000000
                  consent: 'Y'
                  reason: TDS Return
                summary: 200 Invalid TAN
              200 OTP already generated:
                value:
                  '@entity': in.co.sandbox.tds.compliance.deductors.otp.request
                  tan: PDES03028E
                  mobile_number: '1234567890'
                  from: 1722450600000
                  to: 1730313000000
                  consent: 'Y'
                  reason: TDS Return
                summary: 200 OTP already generated
              422 - Unprocessable Entity:
                value:
                  '@entity': in.co.sandbox.tds.compliance.deductors.otp.request
                  tan: DABC2345DD
                  mobile_number: '1234567890'
                  from: 1722450600000
                  to: 1730313000000
                  consent: 'Y'
                  reason: TDS Return
                summary: 422 - Unprocessable Entity
      responses:
        '200':
          description: 200 - OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  timestamp:
                    type: integer
                  transaction_id:
                    type: string
                  data:
                    type: object
                    properties:
                      '@entity':
                        type: string
                      tan:
                        type: string
                      mobile_number:
                        type: string
                      from:
                        type: integer
                      to:
                        type: integer
                      reference_id:
                        type: string
                      message:
                        type: string
                  code:
                    type: integer
              examples:
                200 - Success:
                  summary: 200 - Success
                  value:
                    timestamp: 1731669661517
                    transaction_id: 166148b8-25e3-4ef2-b052-5a27098ebb0e
                    data:
                      '@entity': in.co.sandbox.tds.compliance.deductors.otp.response
                      tan: AHMA09719B
                      mobile_number: '1234567890'
                      from: 1722450600000
                      to: 1730313000000
                      reference_id: FOS005981930273
                      message: OTP sent successfully
                    code: 200
                200 Invalid TAN:
                  summary: 200 Invalid TAN
                  value:
                    code: 200
                    timestamp: 1763362637000
                    transaction_id: e2b9145f-69d5-4bbe-a6de-be6fc08b426f
                    data:
                      '@entity': in.co.sandbox.tds.compliance.deductors.csi.response
                      message: Invalid TAN
                200 OTP already generated:
                  summary: 200 OTP already generated
                  value:
                    code: 200
                    timestamp: 1763362637000
                    transaction_id: e2b9145f-69d5-4bbe-a6de-be6fc08b426f
                    data:
                      '@entity': in.co.sandbox.tds.compliance.deductors.csi.response
                      message: OTP generated for this TAN, please try after 30 seconds
          headers: {}
        '422':
          description: 422 - Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  timestamp:
                    type: integer
                  transaction_id:
                    type: string
                  message:
                    type: string
              examples:
                422 - Unprocessable Entity:
                  summary: 422 - Unprocessable Entity
                  value:
                    code: 422
                    timestamp: 1763362637000
                    transaction_id: e2b9145f-69d5-4bbe-a6de-be6fc08b426f
                    message: Invalid TAN pattern
          headers: {}
      deprecated: false
      security: []

````