ICSI Verification
1 endpoint · Core API
The Institute of Company Secretaries of India (ICSI), overseen by the Ministry of Corporate Affairs, is a leading professional organization in India. Authenticate the legitimacy of an ICSI membership number and member details via the ICSI verification API. It ensures swift validation of membership credentials, facilitating efficient verification processes. By integrating this API, organizations can streamline onboarding procedures and mitigate the risk of fraudulent activities.
What you can do
This API authenticates Membership Numbers of Company Secretaries of India based on either the Membership Number or Certificate of Practice (CP) Number, ensuring reliable verification of CS credentials
Get ICSI Verification details
docs.signcare.io/core/api/professional-bodies/icsi-verification/#post-api-v1-icsi-verify
Headers
- X-API-KEYstringrequiredYour secret API key for the environment you are calling (Stage and Live use different keys).
- X-API-APP-IDstringrequiredThe App ID issued together with the key.
- Content-Typestringrequiredapplication/json
Body parameters
application/json- consentstringrequiredRequired. The end user's consent to this verification. Send `Y`.minLength 1default Y
- consent_textstringrequiredRequired. The consent statement shown to the end user. Send the default text from the sample.minLength 1default I hear by declare my consent agreeme…
- request_idstringoptionalOptional. Your own id to correlate this call in your logs. A unique id is generated if you leave it out.nullable
- membershipNostringrequiredGets or sets the ICSI membership number to verify. Must start with 'A' or 'F' followed by digits.minLength 5maxLength 7pattern ^(A|F)\d{4,6}$default A4567
- cpNostringoptionalGets or sets the optional Certificate of Practice number.nullable
Sample request body
{
"consent": "Y",
"consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API",
"membershipNo": "A4567"
}
Responses
200OK
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataobjectoptionalResponse model containing ICSI membership verification details.
12 fields
- organizationstringoptionalGets or sets the organization the member is associated with.nullabledefault COCHIN MINERALS & RUTILE LTD.
- citystringoptionalGets or sets the city of the member.nullabledefault KOCHI
- designationstringoptionalGets or sets the designation of the member.nullabledefault CHIEF GEN MANAGER(FIN)&CO SECY
- benevolentMemberstringoptionalGets or sets the benevolent member status.nullable
- phonestringoptionalGets or sets the phone number of the member.nullable
- membershipNumberstringoptionalGets or sets the ICSI membership number.nullabledefault A4567
- cpNumberstringoptionalGets or sets the Certificate of Practice number.nullabledefault 0
- addressstringoptionalGets or sets the address of the member.nullabledefault P.B. NO.73,,VIII / 224,MARKET ROAD,K…
- mobilestringoptionalGets or sets the mobile number of the member.nullabledefault 9447021114
- emailstringoptionalGets or sets the email address of the member.nullabledefault SKUMARPAI@GMAIL.COM
- memberNamestringoptionalGets or sets the full name of the member.nullabledefault CS P SURESHKUMAR
- memberImagestringoptionalGets or sets the Base64-encoded image of the member.nullabledefault /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgG…
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- isBillablebooleanoptionalWhether this request was charged: true if it was, false if not. Errors always show false. Flows that finish later (ITR Fetch, SHCIL eStamp, DigiLocker, eSign) show false here, because the charge is made when the result is ready. eSign charges each signer when they complete signing. DigiLocker deducts the credit when the link is created and refunds it automatically if the link expires before the user completes it.
Example
{
"success": false,
"statusCode": 200,
"message": "XXXXX",
"data": {
"organization": "COCHIN MINERALS & RUTILE LTD.",
"city": "KOCHI",
"designation": "CHIEF GEN MANAGER(FIN)&CO SECY",
"benevolentMember": null,
"phone": null,
"membershipNumber": "A4567",
"cpNumber": "0",
"address": "P.B. NO.73,,VIII / 224,MARKET ROAD,Kerala,,KOCHI,683101",
"mobile": "9447021114",
"email": "SKUMARPAI@GMAIL.COM",
"memberName": "CS P SURESHKUMAR",
"memberImage": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgK..."
},
"messages": [
"string"
],
"request_id": "string",
"isBillable": false
}
400Bad Request
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 400
Example
{
"data": {},
"messages": [
"string"
],
"request_id": "string",
"success": false,
"message": "XXXXX",
"isBillable": false,
"statusCode": 400
}
401Unauthorized
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 401
Example
{
"data": {},
"messages": [
"string"
],
"request_id": "string",
"success": false,
"message": "XXXXX",
"isBillable": false,
"statusCode": 401
}
500Internal Server Error
- dataobjectoptionalNo description.
- messagesarray<string>optionalNo description.nullable
- request_idstringoptionalNo description.nullable
- successbooleanoptionalNo description.default false
- messagestringoptionalNo description.nullabledefault XXXXX
- isBillablebooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 500
Example
{
"data": {},
"messages": [
"string"
],
"request_id": "string",
"success": false,
"message": "XXXXX",
"isBillable": false,
"statusCode": 500
}
Code samplescurl · Node.js · Python
Stage: uat-ext.signcare.io
curl -X POST 'https://uat-ext.signcare.io/api/v1/icsi/verify' \
-H 'X-API-KEY: YOUR_API_KEY' \
-H 'X-API-APP-ID: YOUR_APP_ID' \
-H 'Content-Type: application/json' \
-d '{
"consent": "Y",
"consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API",
"membershipNo": "A4567"
}'