General reference · eKYB Reference / eKYB Prefill Coverage

India

eKYB Prefill in India leverages India's source of truth to automatically retrieve and populate business information based on a company's tax identifier (CIN or GSTIN), including the business name, entity type, registration status, registration date, credit rating, PAN details, and GST registrations, without requiring manual input from the user.

Source

Country Source Description
India IN_KYB_PREFILL Returns matching Indian business details from India's source of truth for pre-fill.

Direct API approach

For general integration notes and shared response semantics, see the eKYB Prefill API Reference.

All module configurations and user data can be forwarded directly in the request for performing a Prefill lookup. This overrides existing configuration and data collected about the user.

Endpoint

POST /omni/externalVerification/ekyb-prefill

Request parameters

Parameter Required Description
plugins Mandatory String array. Must be ["ekyb-prefill"]. Specifies the Prefill flow.
source Mandatory String. Must be IN_KYB_PREFILL. Identifies the Prefill source.
country Mandatory String. Two-letter Alpha-2 country code. Must be IN.
taxId Mandatory String. CIN or GSTIN. See Tax ID formats for details.
businessName Optional String. Registered business name, used to verify the match against the source of truth.
address Optional String. Business address, used to verify the match against the source of truth.

Tax ID formats

India supports two business identifier formats as search input. Requests with an invalid format return a 400 error.

Entity Type Format
CIN (Corporate Identification Number) 21 alphanumeric characters — company-type entities only (e.g. U12345MH2020PTC123456)
GSTIN (Goods and Services Tax Identification Number) 15 alphanumeric characters

Routing logic: if taxId is exactly 21 characters, it is treated as a CIN. Otherwise, if it matches the 15-character GSTIN format, it is treated as a GSTIN. Any other length or format returns a 400 error.

Note

PAN (Permanent Account Number) is a valid Indian tax identifier but is not usable as search input — it does not return results. PAN is still returned as a field within the response (panNumber/panName) when available.

India does not have a separate VAT distinct from GST — the GSTIN serves as both. Not every entity has a GSTIN, since registration is turnover-threshold dependent. Proprietorships (sole proprietors) have no CIN at all — only a GSTIN and PAN.

Sample request

{
    "plugins": ["ekyb-prefill"],
    "source": "IN_KYB_PREFILL",
    "country": "IN",
    "taxId": "U12345MH2020PTC123456",
    "businessName": "",
    "address": "123 Sample Road, Mumbai, MH 123 456"
}

Sample response

The Prefill response returns business data retrieved directly from the source of truth. Passthrough fields are returned as-is from the source, without fuzzy matching or verification scoring. Match fields (nameMatch, addressMatch) are only returned when the corresponding input (businessName, address) was submitted. Field availability varies significantly by entity type — see the notes under each example below.

Example 1 — public company (CIN-based)

{
    "kyb-prefill": [
        {
            "tin": "U12345MH2020PTC123456",
            "vatNo": "14AAAAA0000A1Z1",
            "allGSTINs": [
                { "gstin": "14AAAAA0000A1Z1", "status": "Active" },
                { "gstin": "32AAAAA0000A1Z2", "status": "Active" },
                { "gstin": "02AAAAA0000A1Z3", "status": "Cancelled" }
            ],
            "panNumber": "AAAAA0000A",
            "panName": "SAMPLE INDUSTRIES LIMITED",
            "leiNumber": "5493000000000000AB12",
            "name": "SAMPLE INDUSTRIES LIMITED",
            "nameMatch": "Verified",
            "address": "1ST FLOOR SAMPLE TOWER 100 EXAMPLE ROAD NA MUMBAI Maharashtra India 400001",
            "entityType": "Public",
            "registrationStatus": "Active",
            "registrationDate": "1990-01-15T00:00:00Z",
            "creditRating": "C",
            "creditRatingDescription": "Moderate Risk",
            "industryDesc": "Manufacture of fuels, oils, and related chemical products.",
            "activityDesc": "The company is engaged in the business of manufacturing, refining, and distribution of industrial products.",
            "turnover": { "currency": "INR", "value": 5000000000000 },
            "websites": ["www.sampleindustries.example"],
            "shareholders": [
                { "name": "Public", "percentSharesHeld": 49.52 },
                { "name": "Example Commercials LLP", "percentSharesHeld": 11.12 }
            ],
            "directors": [
                { "name": "ANANYA SAMPLE RAO", "positionName": "Whole-time director" },
                { "name": "ROHAN SAMPLE MEHTA", "positionName": "Director" }
            ]
        }
    ]
}

(ultimateParent/immediateParent omitted — this entity sits at the top of its own group.)

Example 2 — sole proprietorship (GSTIN/PAN-based, no CIN)

{
    "kyb-prefill": [
        {
            "vatNo": "27BBBBB1111B1Z1",
            "allGSTINs": [
                { "gstin": "27BBBBB1111B1Z1", "status": "Active" }
            ],
            "panNumber": "BBBBB1111B",
            "panName": "SAMPLE PROPRIETOR NAME",
            "name": "Sample Engineering Works",
            "nameMatch": "Verified",
            "address": "Plot 12, Sample Industrial Estate, Sample Road, Pune - 411000, Maharashtra, India",
            "entityType": "Proprietorship",
            "registrationStatus": "Active",
            "creditRating": "C",
            "creditRatingDescription": "Moderate Risk",
            "industryDesc": "Manufacture of fabricated metal products.",
            "activityDesc": "The entity is engaged in the business of manufacturing metal components and providing related services.",
            "otherAddresses": [
                { "type": "PAN Address", "otherAddress": "Flat 5, Sample Apartments, Sample Nagar, Pune - 411001, Maharashtra, INDIA" }
            ]
        }
    ]
}

Info

Field availability differs across entity types and is not consistent even within the same type. tin (CIN), leiNumber, registrationDate, turnover, shareholders, directors, ultimateParent, and immediateParent are generally not available for proprietorships, since these entities have no company registration or share structure. city and postalCode are not consistently present for any entity type and should be treated as optional.

Response fields

Key Value Description
tin CIN Corporate Identification Number. May not be available for all entities (e.g. proprietorships have no CIN).
vatNo GSTIN The active GSTIN. India has no separate VAT — this field holds the GSTIN. If the input taxId was a GSTIN, that value is echoed back; otherwise the first active GSTIN on record is returned.
allGSTINs Array of {gstin, state, status} All GSTINs on record for the business. May not be available for all entities. Some entities hold multiple GSTINs (one per state of operation).
panNumber PAN The business's (or, for proprietorships, the owner's) Permanent Account Number.
panName Name The legal name associated with the PAN. May reflect the individual owner's name for proprietorships.
leiNumber LEI Legal Entity Identifier, if available.
name Business name The registered legal name of the business as returned from the source of truth.
nameMatch Verified, Approximate Match, Unverified Match result comparing the submitted businessName against the registered name. Only returned when businessName is submitted.
address Address The registered business address as returned from the source of truth.
addressMatch Verified, Approximate Match, Unverified Match result comparing the submitted address against the registered address. Only returned when address is submitted.
city City The city associated with the registered business address, when available.
postalCode Postal code The postal code associated with the registered business address, when available.
entityType Entity type The legal entity type of the business (e.g. Public, Proprietorship). Defaults to "Unknown" when not available.
registrationStatus Active, Expired, Unknown, Not Found Current registration status of the business. Defaults to "Unknown" when not available.
registrationDate Date The date the business was registered. May not be available for all entities.
creditRating Rating value (e.g. A, C) The business's credit rating, as returned from the source of truth. Defaults to "Unknown" when not available.
creditRatingDescription Description (e.g. Moderate Risk) Human-readable description of the credit rating. Defaults to "Unknown" when not available.
industryDesc Industry description Description of the business's main activity. Defaults to "Unknown" when not available.
activityDesc Activity description Description of the business's principal activity. Defaults to "Unknown" when not available.
turnover {currency, value} object The business's latest reported turnover figure. May not be available for all entities.
websites Array of strings Websites associated with the business, if available.
otherAddresses Array of {type, otherAddress} Addresses associated with the business other than the main registered address, if any.
shareholders Array of {name, percentSharesHeld} Shareholder information, if available.
directors Array of {name, positionName} Directors associated with the business, if available.
ultimateParent {name, country, registrationNumber} The business's ultimate parent company, if the business is a subsidiary.
immediateParent {name, country, registrationNumber} The business's immediate parent company, if the business is a subsidiary.

Error responses

For standard HTTP response codes, see the API Error Response page. India Prefill returns the following country-specific 400 errors.

taxId is not a valid 21-character CIN or a valid 15-character GSTIN:

{
    "status": 400,
    "error": "Bad Request",
    "message": "taxId must be a valid CIN (21 characters) or GSTIN (15 characters)",
    "path": "/omni/externalVerification/ekyb-prefill"
}

Any mandatory field (plugins, source, country, or taxId) is missing:

{
    "status": 400,
    "error": "Bad Request",
    "message": "must not be blank",
    "path": "/omni/externalVerification/ekyb-prefill"
}

Single Session Dashboard results

Prefill results are available on the Business tab in single Session view.

Was this page helpful?