# Company ITR And Gross Revenue Details By PAN Number API

GET COMPANY ITR FILING DETAILS AND GROSS TURNOVER BY PAN NUMBER

## **Description**

This API provides instant access to the latest details of Income Tax Return (ITR) filings and the gross revenue of a company based on the provided business PAN number. It's especially useful for conducting real-time analysis of company/vendor credit risks for lending, onboarding, and compliance purposes.

![](https://uploads.developerhub.io/prod/4WY6/0ra75bfxlp4gnyo0pz6e21q5arolt5czgeiwf1xam5bnjb6e5aveftigpu0vigyz.png)

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link
      href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap"
      rel="stylesheet"
    />
    <style>
      * {
        padding: 0;
        margin: 0;
        box-sizing: border-box;
      }

      html {
        font-family: "Poppins", sans-serif;
      }

      .container {
        width: 100%;
        max-width: 705px;
        max-height: 115px;
        padding: 20px 25px;
        border-radius: 8px;
        background-color: #024ef3;
        color: white;
        display: flex;
        justify-content: space-between;
        align-items: center;
        position: relative;
        overflow: auto;
      }

      .content {
        display: flex;
        height: 100%;
        flex: 1 1 0%;
        flex-direction: column;
        justify-content: space-between;
        align-items: flex-start;
        z-index: 10;
        gap: 8px;
        margin-right: 25px;
      }

      .content > p:nth-child(1) {
        font-weight: 500;
        font-size: 16px;
        font-weight: 600;
        letter-spacing: 0.65px;
      }

      .content > p:nth-child(2) {
        font-size: 11px;
        letter-spacing: 0.5px;
      }

      .buttons {
        width: fit-content;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 14px;
        z-index: 10;
        font-size: 10px;
        font-weight: 500;
        text-align: center;
      }

      .buttons > a:nth-child(1) {
        border-radius: 8px;
        border: 2px solid #fbff3f;
        color: #fbff3f;
        display: inline-flex;
        padding: 7px 25px;
        transition-property: all;
        transition-timing-function: ease;
        transition-duration: 250ms;
        cursor: pointer;
        text-decoration: none;
      }

      .buttons > a:nth-child(2):hover,
      .buttons > a:nth-child(1):hover {
        transform: scale(1.025);
      }

      .buttons > a:nth-child(2) {
        border-radius: 8px;
        background-color: #fbff3f;
        transition-property: all;
        color: black;
        transition-timing-function: ease;
        border: 2px solid #fbff3f;
        transition-duration: 250ms;
        padding: 7px 25px;
        font-weight: 500;
        cursor: pointer;
        text-decoration: none;
      }

      .buttons > a:nth-child(2):hover {
        background-color: #eff140;
        border-color: #eff140;
      }

      .ellipse,
      .ellipse-lg {
        position: absolute;
        right: 0;
        top: 0;
        opacity: 0.75;
        display: none;
        height: 100%;
      }

      .ellipse-lg {
        display: block;
      }

      @media only screen and (max-width: 705px) {
        .container {
          max-height: 125px;
          height: 125px;
          flex-direction: column;
          padding: 9px 18px;
        }

        .buttons {
          width: 100%;
          justify-content: flex-start;
          gap: 20px;
          border-radius: 8px;
          font-size: 12px;
        }

        .content {
          width: 100%;
          gap: 4px;
          margin: 0;
          margin-bottom: 10px;
          justify-content: center;
        }

        .content > p:nth-child(1) {
          font-size: 16px;
        }

        .ellipse {
          display: block;
        }

        .ellipse-lg {
          display: none;
        }
      }

      @media only screen and (max-width: 400px) {
        .content {
          margin-bottom: 4px;
          gap: 1px;
          justify-content: flex-start;
        }

        .content > p:nth-child(1) {
          font-size: 15px;
        }

        .buttons > a:nth-child(1),
        .buttons > a:nth-child(2) {
          padding: 8px 12px;
        }
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="content">
        <p>Get Free Trial</p>
        <p>
          Create a free account Or “Talk to Us” for price information and other queries.
        </p>
      </div>
      <div class="buttons">
        <a href="https://chat.attestr.com/" target="_blank">Talk to us</a>
        <a href="https://docs.attestr.com/attestr-docs/attestr-self-signup" target="_blank">Create free account</p>
      </div>

      <svg
        width="375"
        height="128"
        viewBox="0 0 375 128"
        fill="none"
        xmlns="http://www.w3.org/2000/svg"
        class="ellipse-lg"
      >
        <g clip-path="url(#clip0_7806_3204)">
          <circle cx="189" cy="83" r="189" fill="#175EF9" />
          <circle cx="189" cy="82" r="143" fill="#1F64FB" />
          <circle cx="189" cy="82" r="97" fill="#175EF9" />
          <circle cx="189" cy="82" r="51" fill="#125AF8" />
        </g>
        <defs>
          <clipPath id="clip0_7806_3204">
            <rect
              width="378"
              height="378"
              fill="white"
              transform="translate(0 -106)"
            />
          </clipPath>
        </defs>
      </svg>

      <svg
        xmlns="http://www.w3.org/2000/svg"
        width="164"
        height="127"
        class="ellipse"
        viewBox="0 0 164 127"
        fill="none"
      >
        <g clip-path="url(#clip0_7806_3205)">
          <circle cx="114.776" cy="64.7759" r="114.776" fill="#175EF9" />
          <circle cx="114.776" cy="64.1682" r="86.841" fill="#1F64FB" />
          <circle cx="114.776" cy="64.1688" r="58.9061" fill="#175EF9" />
          <circle cx="114.776" cy="64.1685" r="30.9713" fill="#125AF8" />
        </g>
        <defs>
          <clipPath id="clip0_7806_3205">
            <rect
              width="229.552"
              height="229.552"
              fill="white"
              transform="translate(0 -50)"
            />
          </clipPath>
        </defs>
      </svg>
    </div>
  </body>
</html>

> **The legacy data processing model is being formally deprecated.**
>
> In order to ensure continued compliance with the Digital Personal Data Protection Act, 2023 (DPDP Act), we are implementing DPDP V3 (Consent-Driven Processing). Under this framework, clients are required to obtain explicit, informed, and verifiable consent from the data principal prior to accessing, processing, viewing, or storing any personal data through the platform. This regulatory transition may require modifications to existing configurations and workflows. Clients are advised to review and update their implementations to ensure ongoing compliance with applicable data protection obligations. Further information regarding this transition can be enquired here. [Learn more about this change here.](https://chat.attestr.com/)

> **Supported ITR Types**
>
> Please be aware that this functionality is exclusively available for businesses (Companies and MSMEs) that submit income tax returns (ITR) using one of the following forms: ITR-3, ITR-4, ITR-5, and ITR-6. Individuals, HUFs, or other entities using ITR-1, ITR-2, or ITR-7 are not compatible.

## **API Details**

### **Request**

| **Type** | **URL** | Current / LTS Version | **Min Version** | **Max Version** |
| ---- | ---- | ---- | ---- | ---- |
| POST | https://api.attestr.com/api/{version}/public/corpx/itr | v2 | v2 |  |

#### **Request Body Parameters**

| **Type** | **Name** | **Description** | **Optional (default)** | **Min Version** | **Max Version** |
| ---- | ---- | ---- | ---- | ---- | ---- |
| String | pan | Business PAN Number | Required | v2 |  |
| Date | birthOrIncorporatedDate | Date of incorporation of the company in DD/MM/YYYY format | Required | v2 |  |
| String | name | Registered legal name as per PAN | Required | v2 |  |

> **Important Note**
>
> If in case you don't have the company incorporation date and registered legal name information for a given company PAN number, consider using our [Comprehensive PAN Verification API](https://docs.attestr.com/attestr-docs/comprehensive-pan-verification-api) to retrieve the same and pass the values to this API to fetch ITR and gross revenue details.

#### **Request Header Parameters**

| **Type** | **Name** | **Value / Description** | **Optional** | **Min Version** | **Max Version** |
| ---- | ---- | ---- | ---- | ---- | ---- |
| String | Content-Type | application/json | Required | v2 |  |
| String | Authorization | Basic `{authToken}` | Required | v2 |  |

> **Info**
>
> If you do not have the authentication token, please refer to [Register App](https://docs.attestr.com/attestr-docs/attestr-register-app) to generate one.

#### **Sample Request**

```json
{
    "pan": "AAXXX3063A",
    "birthOrIncorporatedDate": "26/11/2011",
    "name": "Acme Solutions Private Limited"
}
```

### **Response**

HTTP status code 200

| **Key** | **Description** | **Type** | **Min Version** | **Max Version** |
| ---- | ---- | ---- | ---- | ---- |
| valid | True &#124; false indicating if the provided PAN details are a valid registered business. | Boolean | v2 |  |
| panStatus | Status of the provided PAN details. Possible values are as follows. **VALID_DETAILS_MATCHED** Provided details match. **VALID_DETAILS_NOT_MATCHED** Provided details do not match **INVALID** Provided PAN does not exist **MAX_LIMIT_EXCEEDED** Maximum daily attempts exceeded for the provided PAN | String | v2 |  |
| fy | Previous financial year for which the ITR details are furnished in this API response | String | v2 |  |
| itrFiled | Whether ITR has been filed in the indicated financial year. Only ITR - 3,4,5,6 types are supported. | Boolean | v2 |  |
| itrType | Type of the ITR filed in the financial year indicated. Possible values are as follows. ITR_3_5_6 : For ITR-3, ITR-5, ITR-6 ITR_4 : For ITR-4 | String | v2 |  |
| grossTurnover | Gross turnover of the company in the indicated financial year | String | v2 |  |
| grossTurnoverFormatted | Indian currency formatted representation of the gross turnover. | String | v2 |  |
| exportTurnover | Export turnover of the company in the indicated financial year, if any. | String | v2 |  |
| exportTurnoverFormatted | Indian currency formatted representation of the export turnover. | String | v2 |  |
| message | Message if the provided PAN details are invalid or details are not available | String | v2 |  |

#### **Sample Response**

Sample successful response for valid PAN details

```json
{
    "valid": true,
    "message": null,
    "panStatus": "VALID_DETAILS_MATCHED",
    "fy": "2022-23",
    "itrFiled": true,
    "itrType": "ITR_3_5_6",
    "grossTurnover": "19243457",
    "grossTurnoverFormatted": "₹1,92,43,457.00",
    "exportTurnover": "78320",
    "exportTurnoverFormatted": "₹78,320.00"
}
```

Sample response for invalid PAN number

```json
{
    "valid": false,
    "message": "Provided PAN details are invalid / not active",
    "panStatus": "INVALID"
}
```

Sample response for a particular PAN number daily limit exceeded

```json
{
    "valid": false,
    "message": "Max attempts exceeded for the provided PAN",
    "panStatus": "MAX_LIMIT_EXCEEDED"
}
```

Sample response for Individual / Unsupported ITR Type

```json
{
   "valid": false,
   "message": "ITR not filed or unsupported ITR type (ITR-1, ITR-2 or ITR-7)",
   "panStatus": "VALID_DETAILS_MATCHED"
}
```

### **Error Response**

| **Parameter** | **Type** | **Description** |
| ---- | ---- | ---- |
| code | Number | Unique error codes for different errors. Always available. |
| message | String | Error message describing the error. Always Available. |
| details | String | Detail error message. Available only for certain types of errors. |

#### **Error Codes**

| **HTTP Status** | **Error Code** | **Error Message** |
| ---- | ---- | ---- |
| 400 | 4001 | Malformed data or missing required parameter values |
| 400 | 4005 | Operation could not be performed due to low credits balance |
| 401 | 4016 | Invalid client authorization |
| 403 | 4031 | Unauthorized access |
| 403 | 4035 | Requested service is not provisioned for your account |
| 403 | 4039 | Client's IP address is not whitelisted |
| 403 | 4035 | Requested service is not provisioned for your account |
| 429 | 4291 | Maximum account rate limit exceeded |
| 429 | 4292 | Maximum API rate limit exceeded |
| 429 | 4293 | Maximum account daily limit exceeded |
| 429 | 4294 | Maximum API daily limit exceeded |
| 500 | 5001 | Request could not be processed |

#### **Sample Error Response**

```json
{
  "code": 4001,
  "message": "Malformed data or missing required parameter values"
}
```

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link
      href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap"
      rel="stylesheet"
    />
    <style>
      * {
        padding: 0;
        margin: 0;
        box-sizing: border-box;
      }

      html {
        font-family: "Poppins", sans-serif;
      }

      .container {
        width: 100%;
        max-width: 705px;
        max-height: 115px;
        padding: 20px 25px;
        border-radius: 8px;
        background-color: #024ef3;
        color: white;
        display: flex;
        justify-content: space-between;
        align-items: center;
        position: relative;
        overflow: auto;
      }

      .content {
        display: flex;
        height: 100%;
        flex: 1 1 0%;
        flex-direction: column;
        justify-content: space-between;
        align-items: flex-start;
        z-index: 10;
        gap: 8px;
        margin-right: 25px;
      }

      .content > p:nth-child(1) {
        font-weight: 500;
        font-size: 16px;
        font-weight: 600;
        letter-spacing: 0.65px;
      }

      .content > p:nth-child(2) {
        font-size: 11px;
        letter-spacing: 0.5px;
      }

      .buttons {
        width: fit-content;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 14px;
        z-index: 10;
        font-size: 10px;
        font-weight: 500;
        text-align: center;
      }

      .buttons > a:nth-child(1) {
        border-radius: 8px;
        border: 2px solid #fbff3f;
        color: #fbff3f;
        display: inline-flex;
        padding: 7px 25px;
        transition-property: all;
        transition-timing-function: ease;
        transition-duration: 250ms;
        cursor: pointer;
        text-decoration: none;
      }

      .buttons > a:nth-child(2):hover,
      .buttons > a:nth-child(1):hover {
        transform: scale(1.025);
      }

      .buttons > a:nth-child(2) {
        border-radius: 8px;
        background-color: #fbff3f;
        transition-property: all;
        color: black;
        transition-timing-function: ease;
        border: 2px solid #fbff3f;
        transition-duration: 250ms;
        padding: 7px 25px;
        font-weight: 500;
        cursor: pointer;
        text-decoration: none;
      }

      .buttons > a:nth-child(2):hover {
        background-color: #eff140;
        border-color: #eff140;
      }

      .ellipse,
      .ellipse-lg {
        position: absolute;
        right: 0;
        top: 0;
        opacity: 0.75;
        display: none;
        height: 100%;
      }

      .ellipse-lg {
        display: block;
      }

      @media only screen and (max-width: 705px) {
        .container {
          max-height: 125px;
          height: 125px;
          flex-direction: column;
          padding: 9px 18px;
        }

        .buttons {
          width: 100%;
          justify-content: flex-start;
          gap: 20px;
          border-radius: 8px;
          font-size: 12px;
        }

        .content {
          width: 100%;
          gap: 4px;
          margin: 0;
          margin-bottom: 10px;
          justify-content: center;
        }

        .content > p:nth-child(1) {
          font-size: 16px;
        }

        .ellipse {
          display: block;
        }

        .ellipse-lg {
          display: none;
        }
      }

      @media only screen and (max-width: 400px) {
        .content {
          margin-bottom: 4px;
          gap: 1px;
          justify-content: flex-start;
        }

        .content > p:nth-child(1) {
          font-size: 15px;
        }

        .buttons > a:nth-child(1),
        .buttons > a:nth-child(2) {
          padding: 8px 12px;
        }
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="content">
        <p>Get Free Trial</p>
        <p>
          Create a free account Or “Talk to Us” for price information and other queries.
        </p>
      </div>
      <div class="buttons">
        <a href="https://chat.attestr.com/" target="_blank">Talk to us</a>
        <a href="https://docs.attestr.com/attestr-docs/attestr-self-signup" target="_blank">Create free account</p>
      </div>

      <svg
        width="375"
        height="128"
        viewBox="0 0 375 128"
        fill="none"
        xmlns="http://www.w3.org/2000/svg"
        class="ellipse-lg"
      >
        <g clip-path="url(#clip0_7806_3204)">
          <circle cx="189" cy="83" r="189" fill="#175EF9" />
          <circle cx="189" cy="82" r="143" fill="#1F64FB" />
          <circle cx="189" cy="82" r="97" fill="#175EF9" />
          <circle cx="189" cy="82" r="51" fill="#125AF8" />
        </g>
        <defs>
          <clipPath id="clip0_7806_3204">
            <rect
              width="378"
              height="378"
              fill="white"
              transform="translate(0 -106)"
            />
          </clipPath>
        </defs>
      </svg>

      <svg
        xmlns="http://www.w3.org/2000/svg"
        width="164"
        height="127"
        class="ellipse"
        viewBox="0 0 164 127"
        fill="none"
      >
        <g clip-path="url(#clip0_7806_3205)">
          <circle cx="114.776" cy="64.7759" r="114.776" fill="#175EF9" />
          <circle cx="114.776" cy="64.1682" r="86.841" fill="#1F64FB" />
          <circle cx="114.776" cy="64.1688" r="58.9061" fill="#175EF9" />
          <circle cx="114.776" cy="64.1685" r="30.9713" fill="#125AF8" />
        </g>
        <defs>
          <clipPath id="clip0_7806_3205">
            <rect
              width="229.552"
              height="229.552"
              fill="white"
              transform="translate(0 -50)"
            />
          </clipPath>
        </defs>
      </svg>
    </div>
  </body>
</html>

---

[All pages in this documentation](https://docs.attestr.com/llms.txt)
