India eKYB
Earlier in our docs is an overview of our Know Your Business here. Now, this page is focused specifically on eKYB in India (IN). eKYB in IN leverages India's source of truth to validate the legitimacy of businesses, including their tax ID, business name, business address, and directors.
Note on UBO SupportUBO (Ultimate Beneficial Owner) verification is not currently supported for India, as this information is not openly available from the source of truth. Only Directors are supported at this time. UBO support will be added in a future release.
Integration
User input flow

Module Configuration
Module configuration gives various options to specify different KYB criteria you would like to check (eg. Business name, Business Address, and Business taxID).
Direct API Approach
All module configurations and user data can be forwarded directly in the request for performing a KYB search. This will override existing configuration and data collected about the user.
API AuthenticationAll endpoints require authentication headers to be specified as stated in Incode API Documentation.
POST /omni/externalVerification/ekyb
This endpoint performs a KYB check for the business specified. Note: Endpoint can have empty body and in that case information will be pulled from module configuration and session details.
- plugins: must be ["ekyb"]: (mandatory)
- businessName: (mandatory) String. Registered name of the business.
- country: (mandatory) String. Two-letter Alpha-2 country code. Must be
IN. - taxId: (mandatory) String. Indian business identifier. See supported tax ID types below. Input is not case-sensitive — it will be automatically converted to uppercase before processing.
- street: (optional) String. Street name of the business.
- houseNo: (optional) String. Building or house number on the street.
- addressLine2: (optional) String. Additional address information.
- city: (optional) String. City of the business address.
- state: (optional) String. State of the business address.
- postalCode: (optional) String. 6-digit Indian postal code (e.g.
302017). - directors: (optional) Array of strings. Full legal name(s) of directors to check against the list of persons associated with the business.
Note: The country parameter is used to limit business validation to that specific region. We will only validate a business established in the country selected in the eKYB request.
Business Tax IDs Supported in INThe following tax ID types are accepted. Input is not case-sensitive and will be automatically converted to uppercase.
Tax ID Type Format Applicable To CIN (Corporate Identification Number) 1 letter + 5 digits + 2 letters + 4 digits + 3 letters + 6 digits Private Limited Companies, Public Limited Companies, One Person Companies (OPCs), Section 8 Companies LLPIN (Limited Liability Partnership Identification Number) 3 letters + hyphen + 4 digits Limited Liability Partnerships (LLPs) UDYAM (MSME Registration Number) UDYAM+ hyphen + 2 letters + hyphen + 2 digits + hyphen + 7 digitsMSMEs (Micro, Small, and Medium Enterprises), including sole proprietorships, partnerships, LLPs, and companies
{
"plugins": ["ekyb"],
"country": "IN",
"taxId": "U72900KA2024PTC123456",
"businessName": "AARAV TECHNOLOGIES PRIVATE LIMITED",
"street": "MG Road",
"houseNo": "42",
"addressLine2": "",
"city": "BENGALURU",
"state": "KARNATAKA",
"postalCode": "560001",
"directors": ["RAJESH KUMAR"]
}Response
All module configurations and user data can be forwarded directly in the request for performing an eKYB search. This will override existing configuration and data collected about the user.
API AuthenticationAll endpoints require authentication headers to be specified as stated in Incode API Documentation.
"kyb": [
{ "key": "name", "sub_label": "Verified" },
{ "key": "tin", "sub_label": "Verified" },
{ "key": "address_verification", "sub_label": "Verified" },
{ "key": "registrationStatus", "sub_label": "Active" },
{
"key": "entityType",
"entityType": {
"entityType": "PRIVATE COMPANY LIMITED BY SHARES NON-GOVERNMENT COMPANY"
}
},
{
"key": "directors_name_match",
"sub_label": "Verified",
"directorsName_input": "RAJESH KUMAR"
},
{
"key": "directors_name_match",
"sub_label": "Unverified",
"directorsName_input": "ROHAN GUPTA"
}
]| Incode API Key | Status | Definition |
|---|---|---|
| name | Verified, Approximate Match, Unverified | Submitted business name is verified, approximate match, or unverified against the business name associated with the business Tax ID in the source of truth. |
| tin | Verified, Unverified | Submitted Tax ID (CIN, LLPIN, or UDYAM number) is found or not found in the source of truth. |
| address_verification | Verified, Approximate Match, Unverified | Submitted address is verified, approximate match, or unverified against the registered address associated with the business Tax ID in the source of truth. |
| registrationStatus | Active, Inactive, Unknown | Active: the business registration status is active or amalgamated. Inactive: the business is struck off or under process of striking off. Unknown: the registration status is not available. |
| entityType | Legal entity type of the business | Displays the legal entity type of the company as returned from the source of truth (e.g. PRIVATE COMPANY LIMITED BY SHARES NON-GOVERNMENT COMPANY). If not available, "Unknown" is displayed. |
| directors_name_match | Verified, Approximate Match, Unverified | Submitted director name is matched against directors associated with the business Tax ID in the source of truth. Only persons with the role of Director are checked. One entry is returned per submitted director name, distinguishable via directorsName_input. |
Learning more about Approximate Match: Approximate Match is generated through Incode's proprietary fuzzy matching algorithm. If approximate match is returned, the algorithm has identified a similar match with the string submitted in relation to the string stored in the source of truth for a particular field. Approximate Match is returned when exact matches are not possible due to misspellings, typographical errors, or slight variations in input data.
KYB error responses
Please refer to error response to see conventional HTTP response codes to indicate the success or failure of an API request.
Custom 400 error messages if taxId is missing or invalid:
message: BadRequestException: Invalid taxId.
Custom 400 error message if country is missing or empty:
message: Country field is either not correct or available.
Single Session Dashboard Results
They are available on Single Session view under the Business tab.
