Voter ID (EPIC) Verification

1 endpoint · Core API

Voter ID cards, also termed Electors Photo Identity Cards (EPIC), are issued by the Election Commission of India to adult citizens. Many businesses and financial institutions need to verify customer names, ages, and addresses from Voter ID cards. The Voter ID Verification API facilitates obtaining necessary credentials from Voter IDs and conducting reliable verifications, streamlining the authentication process for various organizations.

Benefit Of Voter ID verification API: -

1. Efficient and reliable verification of customer information such as names, ages, and addresses

2. Streamlined authentication process for businesses and financial institutions

3. Enhanced security and compliance measures with accurate and reliable data verification

What you can do

Authenticate Voter IDs issued by the Election Commission of India through this API, ensuring reliability and accuracy in voter verification

POST

/api/v1/VoterID

#

Get VoterID details

docs.signcare.io/core/api/kyc-documents/voter-id-epic-verification/#post-api-v1-voterid

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
  • epicNo
    stringrequired
    Required. 10-character Electoral Photo Identity Card (EPIC) number: 3 uppercase letters followed by 7 digits (for example ABC1234567).
    length 10pattern ^[A-Z]{3}[0-9]{7}$default ABC1234567
Sample request body
{ "consent": "Y", "consent_text": "I hear by declare my consent agreement for fetching my information via SignCare API", "epicNo": "ABC1234567" }

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 Voter ID verification details.
    29 fields
    • acNo
      stringoptional
      Assembly constituency number.
      nullable
    • rlnName
      stringoptional
      Name of the relation (father/husband) in English.
      nullable
    • partNo
      stringoptional
      Part number in the electoral roll.
      nullable
    • nameV3
      stringoptional
      Voter's name in a regional language (variant 3).
      nullable
    • psLatLong
      stringoptional
      Latitude and longitude of the polling station.
      nullable
    • stCode
      stringoptional
      State code of the voter's registration.
      nullable
    • id
      stringoptional
      Unique identifier of the voter record.
      nullable
    • pin
      stringoptional
      PIN code of the voter's address.
      nullable
    • district
      stringoptional
      District name of the voter's registration.
      nullable
    • rlnNameV1
      stringoptional
      Relation's name in a regional language (variant 1).
      nullable
    • epicNo
      stringoptional
      Electoral Photo Identity Card (EPIC) number.
      nullable
    • state
      stringoptional
      State name of the voter's registration.
      nullable
    • slNoInPart
      stringoptional
      Serial number of the voter within the part.
      nullable
    • sectionNo
      stringoptional
      Section number in the electoral roll.
      nullable
    • lastUpdate
      stringoptional
      Date of the last update to the voter record.
      nullable
    • rlnNameV2
      stringoptional
      Relation's name in a regional language (variant 2).
      nullable
    • rlnNameV3
      stringoptional
      Relation's name in a regional language (variant 3).
      nullable
    • acName
      stringoptional
      Assembly constituency name.
      nullable
    • psName
      stringoptional
      Polling station name.
      nullable
    • houseNo
      stringoptional
      House number of the voter's address.
      nullable
    • rlnType
      stringoptional
      Relation type (e.g., Father, Husband).
      nullable
    • pcName
      stringoptional
      Parliamentary constituency name.
      nullable
    • name
      stringoptional
      Full name of the voter in English.
      nullable
    • dob
      stringoptional
      Date of birth of the voter.
      nullable
    • gender
      stringoptional
      Gender of the voter.
      nullable
    • age
      integer (int32)optional
      Age of the voter.
    • nameV2
      stringoptional
      Voter's name in a regional language (variant 2).
      nullable
    • nameV1
      stringoptional
      Voter's name in a regional language (variant 1).
      nullable
    • partName
      stringoptional
      Name of the part in the electoral roll.
      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": { "acNo": "string", "rlnName": "string", "partNo": "string", "nameV3": "string", "psLatLong": "string", "stCode": "string", "id": "string", "pin": "string", "district": "string", "rlnNameV1": "string", "epicNo": "string", "state": "string", "slNoInPart": "string", "sectionNo": "string", "lastUpdate": "string", "rlnNameV2": "string", "rlnNameV3": "string", "acName": "string", "psName": "string", "houseNo": "string", "rlnType": "string", "pcName": "string", "name": "string", "dob": "string", "gender": "string", "age": 0, "nameV2": "string", "nameV1": "string", "partName": "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/VoterID' \ -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", "epicNo": "ABC1234567" }'