CA Membership Verification
1 endpoint · Core API
What is it?
The Institute of Chartered Accountants of India (ICAI) is the nation's premier accounting body, overseen by the Ministry of Corporate Affairs. As the regulatory authority for Chartered Accountants (CAs), it governs the profession's standards and practices.
ICAI Verification API authenticates CA membership numbers, offering crucial member details swiftly and accurately. Its seamless integration into digital platforms ensures efficient onboarding and verification processes, safeguarding against fraudulent activities. Additionally, many institutions recommend utilizing online ICAI verification APIs to ensure the legitimacy of accountants.
Benefits
- Confirms the legitimacy of Chartered Accountants
- Reduces risk of fraud or misrepresentation
- Enables fast digital onboarding and KYC
- Supports financial compliance workflows
What you can do
This API validates membership numbers of Chartered Accountants issued by the Institute of Chartered Accountants of India, ensuring accurate authentication of CA credentials.
Get CA Membership Verification details
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 CA membership number to verify.minLength 5maxLength 6pattern ^\d{5,6}$default 235XXX
- contactDetailsbooleanoptionalGets or sets a value indicating whether to include contact details in the response.
Sample request body
Responses
200OK
- successbooleanoptionalNo description.
- statusCodeinteger (int32)optionalNo description.default 200
- messagestringoptionalNo description.nullabledefault XXXXX
- dataobjectoptionalResponse model containing the verified CA membership details.
10 fields
- namestringoptionalGets or sets the name of the CA member.nullable
- addressstringoptionalGets or sets the registered address of the CA member.nullable
- genderstringoptionalGets or sets the gender of the CA member.nullable
- associateYearstringoptionalGets or sets the year the member became an Associate of ICAI.nullable
- qualificationstringoptionalGets or sets the qualification details of the CA member.nullable
- copStatusstringoptionalGets or sets the Certificate of Practice (COP) status.nullable
- fellowYearstringoptionalGets or sets the year the member became a Fellow of ICAI.nullable
- memberStatusstringoptionalGets or sets the current membership status.nullable
- mobileNostringoptionalGets or sets the registered mobile number of the CA member.nullable
- emailstringoptionalGets or sets the registered email address of the CA member.nullable
- 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.
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
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
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