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.

POST

/api/v1/ca-membership/verify

#

Get CA Membership Verification details

docs.signcare.io/core/api/professional-bodies/ca-membership-verification/#post-api-v1-ca-membership-verify

Headers

  • X-API-KEY
    stringrequired
    Your secret API key for the environment you are calling (Stage and Live use different keys).
  • X-API-APP-ID
    stringrequired
    The App ID issued together with the key.
  • Content-Type
    stringrequired
    application/json

Body parameters

application/json
  • consent
    stringrequired
    Required. The end user's consent to this verification. Send `Y`.
    minLength 1default Y
  • consent_text
    stringrequired
    Required. 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_id
    stringoptional
    Optional. Your own id to correlate this call in your logs. A unique id is generated if you leave it out.
    nullable
  • membershipNo
    stringrequired
    Gets or sets the CA membership number to verify.
    minLength 5maxLength 6pattern ^\d{5,6}$default 235XXX
  • contactDetails
    booleanoptional
    Gets or sets a value indicating whether to include contact details in the response.
Sample request body
{ "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API", "membershipNo": "235XXX" }

Responses

200OK
  • success
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 200
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • data
    objectoptional
    Response model containing the verified CA membership details.
    10 fields
    • name
      stringoptional
      Gets or sets the name of the CA member.
      nullable
    • address
      stringoptional
      Gets or sets the registered address of the CA member.
      nullable
    • gender
      stringoptional
      Gets or sets the gender of the CA member.
      nullable
    • associateYear
      stringoptional
      Gets or sets the year the member became an Associate of ICAI.
      nullable
    • qualification
      stringoptional
      Gets or sets the qualification details of the CA member.
      nullable
    • copStatus
      stringoptional
      Gets or sets the Certificate of Practice (COP) status.
      nullable
    • fellowYear
      stringoptional
      Gets or sets the year the member became a Fellow of ICAI.
      nullable
    • memberStatus
      stringoptional
      Gets or sets the current membership status.
      nullable
    • mobileNo
      stringoptional
      Gets or sets the registered mobile number of the CA member.
      nullable
    • email
      stringoptional
      Gets or sets the registered email address of the CA member.
      nullable
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • isBillable
    booleanoptional
    Whether 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": { "name": "string", "address": "string", "gender": "string", "associateYear": "string", "qualification": "string", "copStatus": "string", "fellowYear": "string", "memberStatus": "string", "mobileNo": "string", "email": "string" }, "messages": [ "string" ], "request_id": "string", "isBillable": false }
400Bad Request
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 400
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 400 }
401Unauthorized
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No description.
    default 401
Example
{ "data": {}, "messages": [ "string" ], "request_id": "string", "success": false, "message": "XXXXX", "isBillable": false, "statusCode": 401 }
500Internal Server Error
  • data
    objectoptional
    No description.
  • messages
    array<string>optional
    No description.
    nullable
  • request_id
    stringoptional
    No description.
    nullable
  • success
    booleanoptional
    No description.
    default false
  • message
    stringoptional
    No description.
    nullabledefault XXXXX
  • isBillable
    booleanoptional
    No description.
  • statusCode
    integer (int32)optional
    No 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/ca-membership/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": "235XXX" }'