DIN Verification API

Sections

Developer Documentation

Welcome to the Deepvue Developer Hub! 🎉

Here, you'll find all the tools and resources you need to dive deep into Deepvue.

Whether you're digging into detailed guides or exploring our docs, we've got your back.

Ready to dive in and start building awesome stuff? Let's do this! 💻 🚀

Was this section helpful?

What made this section unhelpful for you?

Introduction

Deepvue's API Infrastructure for Financial Integrations and Insights enables businesses to launch financial products 10X faster. We provide various API products across Identity Verification, Banking, Credit, and more to cater to business' specific needs.

The Deepvue APIs are well organised around REST. All the APIs have predictable resource-oriented URLs, accept query parameters, form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, error codes, and authentication.

Just getting started? Let's integrate step-by-step 💻

Lazy to write code?

Use your API Dashboard to get started with Deepvue — no code required.

Ready to integrate?

Get started with our postman collection - in no time. Here is the Link to Postman Collection.

Was this section helpful?

What made this section unhelpful for you?

Base URL

Production:

https://production.deepvue.tech

Language Box

API Keys

Use API keys to Authenticate API requests.

Deepvue authenticates your API requests using your account’s API keys. If a request doesn’t include a valid key, Deepvue returns an invalid request error. If a request includes a deleted or expired key, Deepvue returns an authentication error.

Use the Deepvue Dashboard to find keys. To access your API keys, navigate to credential section on the Dashboard.

Trial account secret keys have the prefix free_tier and live account secret keys have live as prefix and your organization id. Alternatively, you can use ask our chat support to help you navigating API integrations and even scheduling an API integration call or a product demo.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Keep your keys safe

Anyone can use your live mode API key to make any API call on behalf of your account. Keep your keys safe by following these best practices:

  1. Grant access only to those who need it.
  2. Don’t store keys in a version control system.
  3. Control access to keys with a password manager or secrets management service.
  4. Don’t embed a key where it could be exposed to an attacker, such as in a mobile application.

View the API request logs

To open the API request logs, click the API Logs on your deepvue dashboard, then select data range and products. Opening the logs redirects you to the main Deepvue Dashboard.

Was this section helpful?

What made this section unhelpful for you?

Authentication

Deepvue APIs require authentication for access. We support OAuth2 and client_id/client_secret based authentication methods. Please refer to the below Authorize section for more details.

You will need an Authorization token to access most of the Platform APIs. While APIs such as Aadhaar eKYC and Digilocker can be accessed using your client_id and client_secret.


Authorize

The Authorize API Endpoint allows developers to securely authenticate their applications using their API keys.

By providing the required client_id and client_secret, users can obtain the necessary access_token to access protected resources within the API. This process ensures secure communication between the application and the API, enabling seamless integration and data exchange.

  • Authorization Token will be valid for only 24 hours from the time of generating the token
  • After 24 hours, you need to refresh the token by using the Authorize API Endpoint.

You can find your client_id & client_secret on your dashboard under credentials tab. Your 'x-api-key' is the same as your client_secret.

Body Parameters

client_idstring Required

required CLIENT_ID provided to you

client_secretstring Required

required CLIENT_SECRET provided to you

Responses

200
Object

Response Attributes

access_tokenstring
token_typestring
expirystring
401
Object

Response Attributes

detailstring
403
Object

Response Attributes

detailstring
422
Object

Response Attributes

detailarray

Show child attributes

500
Object

Response Attributes

detailstring
Was this section helpful?

What made this section unhelpful for you?

POST

/v1/authorize

Select
1 2 3 curl --location 'https://production.deepvue.tech/v1/authorize' \ --form 'client_id="YOUR CLIENT_ID"' \ --form 'client_secret="YOUR CLIENT_SECRET"'

Response

{
  "access_token": "string",
  "token_type": "string",
  "expiry": "string"
}

Offline Aadhaar eKYC API

With these APIs, users can seamlessly integrate Offline Aadhaar ekyc processes into their applications, ensuring a secure and simplified user identification experience.

Offline Aadhaar KYC, or OKYC, is a legally compliant KYC method as per UIDAI guidelines. Your customers can provide their Aadhaar number and verify with an OTP sent to their Aadhaar-linked mobile number, to access a downloadable XML file with their Aadhaar details.

How does Offline Aadhaar Verification work?

Provide Consent: Customers agree or disagree to continue at the initial screen.

Share Aadhaar Number: Customers provide their Aadhaar number to proceed with the verification.

Verify with OTP: Verify with an OTP sent to their Aadhaar-linked mobile number by UIDAI, to access a downloadable XML file with their Aadhaar details in a share code manner.

Realtime liveness & face match for liveness detection: The Aadhaar Offline document has Name, Address, Photo, Gender, DOB. Optionally, the photo in the UIDAI Issued Aadhaar document can be matched with customers' live photo or a selfie in real time to ensure face match and liveness checks.

As per the compliances by UIDAI on sharing and storage of Aadhaar number is not allowed. Service Providers shall not share, publish or display either Share Code or XML file or its contents with anyone else. Any non-compliance of these actions shall invite actions under Sections 17 and 25 of The Aadhaar (Authentication) Regulation, 2016, Sections 4 and 6 of The Aadhaar (Sharing of Information) Regulation, 2016 and Sections 29(2), 29 (3), and 37 of The Aadhaar Act, 2016. Consent should be mandatorily stored at the company end to proceed with verification.

If you want to integrate Aadhaar eKYC in your web application or want to build your own customized workflow you can use our Aadhaar eKYC APIs as detailed below.

Embed offline eKYC Aadhaar flow to verify users on your application using a simple flow.

  • Initiate Session: This API allows the platform to initiate a session to get the captcha before passing the Aadhaar number of the customer.
  • Generate OTP: This API allows the platform to pass the Aadhaar number to generate OTP to the linked mobile number.
  • Verify OTP: This API allows the platform to pass the OTP to Deepvue.tech to fetch the customer's Aadhaar information from UIDAI.

If the customer or the platform wishes to restart the session, a new captcha can be generated using the Reload Captcha API.

Offline Aadhaar eKYC API - V2

We’re excited to introduce v2 of Deepvue’s Aadhaar eKYC APIs, bringing faster verifications, higher success rates, and improved integration capabilities.

What’s New in v2?

✅ No Captcha Required – A frictionless experience with reduced user input.

✅ Higher Success Rates – Enhanced backend optimizations for improved reliability.

✅ Improved Error Handling – Clear, customer-centric responses with detailed sub_code for seamless backend integration.

✅ Automated PDF Generation – Instant Aadhaar eKYC PDFs for easy record-keeping and compliance.

As per the compliances by UIDAI on sharing and storage of Aadhaar number is not allowed. Service Providers shall not share, publish or display either Share Code or XML file or its contents with anyone else. Any non-compliance of these actions shall invite actions under Sections 17 and 25 of The Aadhaar (Authentication) Regulation, 2016, Sections 4 and 6 of The Aadhaar (Sharing of Information) Regulation, 2016 and Sections 29(2), 29 (3), and 37 of The Aadhaar Act, 2016. Consent should be mandatorily stored at the company end to proceed with verification.

Digilocker API

Digilocker is an initiative under Digital India Program which aims to remove the dependency on physical documents and power the sharing of verified electronic documents across authorised agencies.

Benefits of Digilocker

  1. Documents can be shared online, accessed anytime, anywhere.
  2. Documents can be authenticated by the users, legally on a par with originals.
  3. It's simple to use and very convenient.
  4. Documents are issued directly by the registered issuers such as Income Tax Department, CBSE, Registrar Office, etc.

Product Flow

Initiate Session : This API creates a session in which DigiLocker journey can be completed with other APIs in the flow.

Get User Access Token : This API allows the platform to get user access token from Digilocker by passing the authorisation code generated from Digilocker.

Download e-Aadhar : This API allows the platform to download the Aadhaar XML from Digilocker.

Get Issued Files : This API allows the platform to fetch a list of issued documents from Digilocker.

Download File : This API allows the platform to download the file from Digilocker by passing the URI for a particular document.

KYC APIs

With these APIs, users can seamlessly integrate identity verification processes into their applications, ensuring compliance and enhancing security measures.

Document OCR

The Document OCR section allows developers to extract text from images and PDF files through optical character recognition (OCR) technology. By utilizing these API endpoint, developers can enable their applications to automatically process and extract text data from various document formats, enhancing efficiency and streamlining document management workflows.

Our systems use Modern & Latest OCR technology to scan the document images for field’s like full name, dob, address, etc. on the photo IDs and extract these fields as key-value pairs.

Mobile Number Intelligence

Find, verify, and fetch multiple data points associated with a mobile number, including the Full Name, KYC Details, UPI ID, IFSC code, Network Details, Digital Age, Employment Information, and more.

Document Forensics

Set of APIs that help with document forensic checks like template validation, image quality, photocopy, and spoof checks.

Face Forensics

APIs for facial recognition and liveliness verification in real time. The Face Match API employs advanced algorithms for reliable facial matching, crucial for secure access control and compliance. The Passive Liveness API enhances security by detecting and confirming the liveliness of faces during authentication, providing an additional layer of protection against impersonation and fraud.

Async APIs

Verify other Identity documents such as Driving License, Vehicle Registration Certificate etc. in real time for fast KYC checks. These are Asynchronous APIs which return a request ID and use a webhook mechanism to return the response back to your servers. You can then use this request ID and feed this into our GET API to consume the response.

GST APIs

Set of APIs that help with GST Registered business verification and onboarding.

GST Taxpayer

The GST Taxpayer APIs are provided by the GSTN for public usage. These APIs, together, mirror the GST Portal. Therefore, you can use these APIs to integrate GST compliance into your workflow itself.

Use the following workflow to access the GST Taxpayer APIs:

  1. The GST taxpayer is authenticated using OTP Verification.
  2. After successful authentication, the GST Taxpayer APIs can be accessed.
    1. Ledger APIs - Fetch the taxpayer's ledger like a) Cash ITC Balance, b) Cash Ledger, c) ITC Ledger.
    2. Returns APIs - Fetch the taxpayer's detailed summaries of GSTR -1 and GSTR -3B Returns

Generate Otp

First the taxpayer has to allow access to the GST Portal and enable it on his own GST Portal Account.

Follow the following steps to do the same:

  1. Login to your GST Account on https://gst.gov.in
  2. Click 'View Profile' on Dashboard
  3. In the 'Quick Links' section, go to Manage API Access
  4. Set 'Enable API Access Request' to Yes
  5. Set 'Duration' to 30days
  • Once the taxpayer has enabled API access onto GST Portal, the OTP verification can be carried out.
  • First, Generate One Time Password API is called.
  • This API takes in the gstin & username as per GST Portal. And then sends OTP to the phone number and email id of the GST Taxpayer.

OTP Message is as follows and OTP sent will be valid for 10 minutes.

OTP Message Sent to the Taxpayer

Dear taxpayer,

{{OTP}} is the OTP to verify your GST registration: {{GSTIN}}.

OTP is valid till {{hh:mm:ss IST}}. Do not share OTP with anyone.

Business Compliance

Taxpayer

Taxpayer APIs includes TAN Verification.

Taxpayer APIs help businesses verify their vendors, customers & employees using TAN. APIs also provide publicly available data such as name, address, and contact details that can be verified against physical documents.

ITR APIs

ITR APIs includes ITR Verification APIs including 26AS.

ITR APIs helps businesses download ITR information, such as ITR ID, Filing Year, Acknowledgement Number, ITR Form, Filing Date, ITR status, etc.

MCA APIs

Set of APIs that help fetch MCA's Director Master Data & Company Master Data.

Was this section helpful?

What made this section unhelpful for you?

CIN Verification API

The Cin section of the Developers API allows users to retrieve verification information related to a company's Corporate Identification Number (CIN). With this functionality, users can quickly access important details and validate the authenticity of a company based on its unique identification number. This section streamlines the process of verifying corporate entities for various business and compliance purposes.

Header Parameters

Authorizationstring

The authorization header containing the credentials required for accessing the Cin endpoint.

x-api-keystring

The unique API key provided for authentication and authorization purposes.

Query Parameters

id_numberstring

The identification number associated with the verification request for the Ministry of Corporate Affairs (MCA) Certificate of Incorporation Number (CIN).

Responses

200
Object
RESPONSE_CIN_SEARCH_SUCCCESSFUL

Response Attributes

timestampnumber
transaction_idstring
dataobject

Show child attributes

codenumber
200
Object
RESPONSE_LLPIN_SEARCH_SUCCCESSFUL

Response Attributes

timestampnumber
transaction_idstring
dataobject

Show child attributes

codenumber
200
Object
RESPONSE_CIN_NO_RECORDS_FOUND

Response Attributes

timestampnumber
transaction_idstring
messagestring
codenumber
400
Object

Response Attributes

detailstring
401
Object

Response Attributes

detailstring
403
Object

Response Attributes

detailstring
422
Object

Response Attributes

detailarray

Show child attributes

500
Object

Response Attributes

detailstring
Was this section helpful?

What made this section unhelpful for you?

GET

/v1/verification/mca/cin?id_number={{CIN Number}}

Select
1 2 3 curl --location --globoff 'https://production.deepvue.tech/v1/verification/mca/cin?id_number={{CIN%20Number}}' \ --header 'Authorization: Bearer ACCESS_TOKEN' \ --header 'x-api-key: API_KEY(a.k.a CLIENT_SECRET)' \

Response

{
  "timestamp": 1738236700074,
  "transaction_id": "ed0b4ef3-4768-47fa-99c4-4da7e2eea871",
  "data": {
    "company_master_data": {
      "company_category": "Company limited by shares",
      "email_id": "tataind@tata.com",
      "class_of_company": "Public",
      "date_of_last_agm": "25/06/2024",
      "registered_address": "TATA INDUSTRIES LTD BOMBAY HOUSE  24 HOMI   MODY  STREET MUMBAI Maharashtra India 400001",
      "registration_number": "004403",
      "paid_up_capital(rs)": "10795460200",
      "whether_listed_or_not": "Unlisted",
      "suspended_at_stock_exchange": "-",
      "cin": "U44003MH1945PLC004403",
      "company_subcategory": "Non-government company",
      "authorised_capital(rs)": "11600000000",
      "company_status(for_efiling)": "Active",
      "roc_code": "ROC Mumbai",
      "date_of_balance_sheet": "31/03/2024",
      "date_of_incorporation": "07/04/1945",
      "company_name": "TATA INDUSTRIES LIMITED",
      "active_compliance": "ACTIVE Compliant",
      "main_division_of_business_activity_to_be_carried_out_in_india": "",
      "previous_firm/_company_details,_if_applicable": "",
      "number_of_designated_partners": "",
      "total_obligation_of_contribution": "0",
      "description_of_main_division": "",
      "number_of_partners": "",
      "rd_region": "Western Region",
      "balance_sheets": [],
      "annual_returns": []
    },
    "charges": [],
    "directors/signatory_details": [
      {
        "end_date": "-",
        "din/pan": "00028428",
        "designation": "Director",
        "begin_date": "12/12/2016",
        "name": "FAROKH NARIMAN SUBEDAR"
      },
      {
        "end_date": "-",
        "din/pan": "05320597",
        "designation": "CFO",
        "begin_date": "26/06/2014",
        "name": "SRIRAM SETHURAMAN"
      },
      {
        "end_date": "-",
        "din/pan": "03129908",
        "designation": "Whole-time director",
        "begin_date": "01/07/2020",
        "name": "KANWAR RAMESHWAR SINGH JAMWAL"
      },
      {
        "end_date": "-",
        "din/pan": "07121802",
        "designation": "Director",
        "begin_date": "06/09/2018",
        "name": "AARTHI SUBRAMANIAN"
      },
      {
        "end_date": "-",
        "din/pan": "02230412",
        "designation": "Director",
        "begin_date": "02/06/2023",
        "name": "ERUCH NOSHIR KAPADIA"
      }
    ]
  },
  "code": 200
}

DIN Verification API

API allows users to retrieve verification information related to given DIN. By accessing this section, users can verify and validate DIN, providing crucial information for business operations and compliance purposes.

Header Parameters

Authorizationstring

A header parameter used for authorization purposes to access the requested resource.

x-api-keystring

A header parameter used to authenticate the API request with the provided API key.

Query Parameters

id_numberstring

A query parameter representing the unique identification number associated with the verification process.

Responses

200
Object
RESPONSE_DIN_SEARCH_SUCCESSFUL

Response Attributes

timestampnumber
transaction_idstring
dataobject

Show child attributes

codenumber
200
Object
RESPONSE_DIN_NO_RECORDS_FOUND

Response Attributes

timestampnumber
transaction_idstring
messagestring
codenumber
400
Object

Response Attributes

detailstring
401
Object

Response Attributes

detailstring
403
Object

Response Attributes

detailstring
422
Object

Response Attributes

detailarray

Show child attributes

500
Object

Response Attributes

detailstring
Was this section helpful?

What made this section unhelpful for you?

GET

/v1/verification/mca/din?id_number={{DIN Number}}

Select
1 2 3 curl --location --globoff 'https://production.deepvue.tech/v1/verification/mca/din?id_number={{DIN%20Number}}' \ --header 'Authorization: Bearer ACCESS_TOKEN' \ --header 'x-api-key: API_KEY(a.k.a CLIENT_SECRET)' \

Response

{
  "timestamp": 1738236706189,
  "transaction_id": "1e3f75a8-337f-4054-9b38-e8047c02b6ad",
  "data": {
    "director_data": {
      "din": "00000001",
      "name": "RATAN NAVAL TATA"
    },
    "company_data": [
      {
        "end_date": "-",
        "designation": "Director",
        "company_name": "RNT ASSOCIATES PRIVATE LIMITED",
        "begin_date": "05/03/2009",
        "cin/fcrn": "U74990MH2009PTC190764"
      },
      {
        "end_date": "-",
        "designation": "Director",
        "company_name": "TATA FOUNDATION",
        "begin_date": "21/02/2014",
        "cin/fcrn": "U85191MH2014NPL253500"
      },
      {
        "end_date": "-",
        "designation": "Director",
        "company_name": "RATAN TATA FOUNDATION",
        "begin_date": "06/07/2017",
        "cin/fcrn": "U74999MH2017NPL297009"
      },
      {
        "end_date": "09/10/2024",
        "designation": "Nominee Director",
        "company_name": "ADVANCED VETERINARY CARE FOUNDATION",
        "begin_date": "28/11/2022",
        "cin/fcrn": "U85320MH2018NPL311761"
      },
      {
        "end_date": "09/10/2024",
        "designation": "Director",
        "company_name": "ELECTRODRIVE POWERTRAIN SOLUTIONS PRIVATE LIMITED",
        "begin_date": "30/09/2019",
        "cin/fcrn": "U74999TZ2017PTC029256"
      },
      {
        "end_date": "09/10/2024",
        "designation": "Director",
        "company_name": "AVANTI FINANCE PRIVATE LIMITED",
        "begin_date": "01/08/2016",
        "cin/fcrn": "U65929KA2016PTC138355"
      },
      {
        "end_date": "26/03/2024",
        "designation": "Director",
        "company_name": "AVANTI MICROFINANCE PRIVATE LIMITED",
        "begin_date": "07/10/2016",
        "cin/fcrn": "U65929KA2016PTC138292"
      },
      {
        "end_date": "23/03/2009",
        "designation": "Director",
        "company_name": "TATA TELESERVICES (MAHARASHTRA) LIMITED",
        "begin_date": "11/08/2006",
        "cin/fcrn": "L64200MH1995PLC086354"
      },
      {
        "end_date": "28/12/2012",
        "designation": "Director",
        "company_name": "THE TATA POWER COMPANY LIMITED",
        "begin_date": "18/05/1989",
        "cin/fcrn": "L28920MH1919PLC000567"
      },
      {
        "end_date": "22/02/2017",
        "designation": "Additional Director",
        "company_name": "TATA SONS PRIVATE LIMITED",
        "begin_date": "24/10/2016",
        "cin/fcrn": "U99999MH1917PTC000478"
      },
      {
        "end_date": "22/02/2009",
        "designation": "Director",
        "company_name": "HINDUSTAN AERONAUTICS LIMITED",
        "begin_date": "23/02/2006",
        "cin/fcrn": "L35301KA1963GOI001622"
      },
      {
        "end_date": "10/08/2006",
        "designation": "Director",
        "company_name": "TATA TELESERVICES (MAHARASHTRA) LIMITED",
        "begin_date": "18/10/2005",
        "cin/fcrn": "L64200MH1995PLC086354"
      },
      {
        "end_date": "28/12/2012",
        "designation": "Director",
        "company_name": "THE INDIAN HOTELS COMPANY LIMITED",
        "begin_date": "09/01/1984",
        "cin/fcrn": "L74999MH1902PLC000183"
      },
      {
        "end_date": "26/09/2008",
        "designation": "Director",
        "company_name": "TATA AUTOCOMP SYSTEMS LIMITED",
        "begin_date": "29/05/1997",
        "cin/fcrn": "U30204PN1995PLC158999"
      },
      {
        "end_date": "28/12/2012",
        "designation": "Director",
        "company_name": "TATA INDUSTRIES LIMITED",
        "begin_date": "06/09/1981",
        "cin/fcrn": "U44003MH1945PLC004403"
      },
      {
        "end_date": "28/12/2012",
        "designation": "Nominee Director",
        "company_name": "TATA TELESERVICES LIMITED",
        "begin_date": "18/10/2005",
        "cin/fcrn": "U74899DL1995PLC066685"
      },
      {
        "end_date": "30/09/2019",
        "designation": "Additional Director",
        "company_name": "ELECTRODRIVE POWERTRAIN SOLUTIONS PRIVATE LIMITED",
        "begin_date": "26/03/2019",
        "cin/fcrn": "U74999TZ2017PTC029256"
      },
      {
        "end_date": "07/06/2013",
        "designation": "Director",
        "company_name": "ANTRIX CORPORATION LIMITED",
        "begin_date": "27/11/1992",
        "cin/fcrn": "U85110KA1992GOI013570"
      },
      {
        "end_date": "29/12/2012",
        "designation": "Director",
        "company_name": "TATA SONS PRIVATE LIMITED",
        "begin_date": "21/08/1974",
        "cin/fcrn": "U99999MH1917PTC000478"
      },
      {
        "end_date": "28/12/2012",
        "designation": "Director",
        "company_name": "TATA STEEL LIMITED",
        "begin_date": "17/08/1977",
        "cin/fcrn": "L27100MH1907PLC000260"
      },
      {
        "end_date": "28/12/2012",
        "designation": "Director",
        "company_name": "TATA CHEMICALS LIMITED",
        "begin_date": "11/04/1983",
        "cin/fcrn": "L24239MH1939PLC002893"
      },
      {
        "end_date": "28/12/2012",
        "designation": "Director",
        "company_name": "TATA CONSULTANCY SERVICES LIMITED",
        "begin_date": "05/05/2004",
        "cin/fcrn": "L22210MH1995PLC084781"
      },
      {
        "end_date": "07/02/2013",
        "designation": "Director",
        "company_name": "THE BOMBAY DYEING AND MANUFACTURING COMPANY LIMITED",
        "begin_date": "01/08/1979",
        "cin/fcrn": "L17120MH1879PLC000037"
      },
      {
        "end_date": "28/12/2012",
        "designation": "Director",
        "company_name": "TATA CONSUMER PRODUCTS LIMITED",
        "begin_date": "18/01/1991",
        "cin/fcrn": "L15491WB1962PLC031425"
      },
      {
        "end_date": "28/12/2012",
        "designation": "Director",
        "company_name": "TATA MOTORS LIMITED",
        "begin_date": "14/08/1981",
        "cin/fcrn": "L28920MH1945PLC004520"
      }
    ],
    "llp_data": [
      {
        "end_date": "-",
        "llp_name": "AVANTI CAPITAL ADVISORS LLP",
        "designation": "Designated Partner",
        "begin_date": "09/04/2017",
        "llpin/fllpin": "AAJ-1011"
      },
      {
        "end_date": "-",
        "llp_name": "RNT CAPITAL ADVISERS LLP",
        "designation": "Designated Partner",
        "begin_date": "12/04/2016",
        "llpin/fllpin": "AAG-1638"
      }
    ]
  },
  "code": 200
}

MSME APIs

Set of APIs that help with MSME Registered business verification and onboarding.

Financial Services

Suite that provides you whole array of APIs to serve multiple financial services and fetch data for an organisation or individual from various data sources in a streamlined manner.

Some of the key things that you can do here are:

  1. Fetch the Credit Report from any of our partner credit bureaus.
  2. Fetch customer's Customer Data Pull basis mobile number and name to simplify your onboarding.

EPFO

Real-time UAN Verification API to extract employment details of employees and verify EPFO details.

Bulk Validations

Set of APIs to perform bulk operations for different checks.