> ## Documentation Index
> Fetch the complete documentation index at: https://www.cashfree.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Voter ID Verification

> Use Cashfree Voter ID verification to validate EPIC numbers against India's electoral records and fetch voter and constituency details in real time.

Voter ID verification enables businesses to instantly validate the authenticity of an individual's **voter ID (EPIC)** number directly against India's official electoral records. This allows businesses to fetch complete voter details, including assembly and parliamentary constituency information.

This solution is a strong alternative to Aadhaar verification, helping reduce drop-offs in onboarding flows where Aadhaar is unavailable or insufficient.

## Verification process

You can verify Voter IDs through two primary methods:

* **Merchant dashboard**: Verify Voter IDs using manual entry or document upload.
  * Manual verification: Enter EPIC number to validate against electoral records
  * Smart OCR: Upload Voter ID card images for automatic data extraction and verification
* **REST API**: Integrate verification directly into your applications.

<Tabs>
  <Tab title="Dashboard verification">
    Use the Merchant Dashboard to verify Voter ID details:

    ### Manual verification

    1. Log in to the [Merchant Dashboard](https://merchant.cashfree.com/auth/login).
    2. Navigate to **Secure ID** > **Other Official Documents** > **Voter ID**.
    3. Enter the voter ID (EPIC) number and click **Verify**.
    4. Review the returned voter details including constituency and holder information.

    **Batch verification**:

    1. Select **Upload File** under the Voter ID section.
    2. Upload CSV containing multiple EPIC numbers.
    3. Retrieve verification results in bulk format.

    ### Smart OCR verification

    1. Navigate to **Smart OCR** > **Voter ID Verification**.
    2. Upload a scanned Voter ID card (front side) or high-quality image.
    3. Smart OCR automatically detects and extracts key information.

    **Extracted fields**:

    * Voter ID number (EPIC number)
    * Full name of the cardholder
    * Gender and date of birth or age
    * Father's/mother's/husband's name
    * Complete address details
    * Assembly constituency and state
    * Issuing authority and signature details
    * QR code data (newer formats)

    <Frame caption="Voter ID verification process">
      <img src="https://mintcdn.com/cashfreepayments-d00050e9/U88ywhbOWgpVBjhM/static/secure-id/ovd/voter-id.gif?s=1ecd2eb10d1d3745a81bdf4b160ff214" width="1912" height="1080" data-path="static/secure-id/ovd/voter-id.gif" />
    </Frame>

    All verified Voter IDs appear in your dashboard with comprehensive details including name, address, and constituency information.
  </Tab>

  <Tab title="API verification">
    Integrate Voter ID verification programmatically using the REST API:

    1. **Trigger the verification request** using the [Voter ID Verification API](/api-reference/vrs/v2/voter-id/verify-voter-id).
    2. **Pass the EPIC number** and optional name parameter in the request payload.
    3. **Receive verification results** with complete voter details, constituency information, and validation status.

    **Endpoint**: `POST /verification/voter-id`

    <Accordion title="Request format">
      ```json theme={"dark"}
      {
        "verification_id": "ABC00123",
        "epic_number": "UAI4574761",
        "name": "John Doe"
      }
      ```
    </Accordion>

    <Accordion title="Response format">
      ```json theme={"dark"}
      {
        "reference_id": 1358,
        "verification_id": "ABC00123",
        "status": "VALID",
        "epic_number": "UAI4574761",
        "name": "HARSHIT PRAJAPATI",
        "name_in_regional_lang": "हर्षित",
        "age": "23",
        "relation_type": "FTHR",
        "relation_name": "RAJ PRAJAPATI",
        "father_name": "RAJ PRAJAPATI",
        "dob": "2000-12-07",
        "gender": "Male",
        "address": "GOVT JUNIOR COLLEGE SIRWAR",
        "split_address": {
          "district": ["INDORE"],
          "state": ["Madhya Pradesh"],
          "city": ["SANER"],
          "pincode": "560034",
          "country": ["IN", "IND", "INDIA"],
          "address_line": "GOVT JUNIOR COLLEGE SIRWAR"
        },
        "state": "Madhya Pradesh",
        "assembly_constituency_number": "211",
        "assembly_constituency": "SANER",
        "parliamentary_constituency_number": "25",
        "parliamentary_constituency": "INDORE"
      }
      ```
    </Accordion>

    <Accordion title="Error responses">
      ```json theme={"dark"}
      {
        "type": "invalid_request_error",
        "code": "verification_failed",
        "message": "Invalid EPIC number format",
        "details": [
          {
            "field": "epic_number",
            "issue": "EPIC number not found in records"
          }
        ]
      }
      ```
    </Accordion>
  </Tab>
</Tabs>

<Note>
  Integrate the [Voter ID Verification API](/api-reference/vrs/v2/voter-id/verify-voter-id) into your application to automatically verify voter ID numbers within your signup or onboarding flow.
</Note>

<snippet>snippets/related-topics-loader.mdx</snippet>

<div class="hidden" data-table-of-contents="bottom">
  <p class="mt-4 font-medium flex items-center gap-2 related-docs-heading">
    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="w-4 h-4">
      <path d="M3 4h7a2 2 0 0 1 2 2v13a2 2 0 0 0-2-2H3z" />

      <path d="M21 4h-7a2 2 0 0 0-2 2v13a2 2 0 0 1 2-2h7z" />
    </svg>

    <span>Related topics</span>
  </p>

  <ul>
    <li><a href="/docs/api-reference/vrs/v2/voter-id/verify-voter-id">Voter ID Verification API</a></li>
    <li><a href="/docs/api-reference/vrs/v2/smart-ocr/smart-ocr">Smart OCR API</a></li>
    <li><a href="/docs/secure-id/ovd/overview">OVD Overview</a></li>
    <li><a href="/docs/secure-id/kyc-stack/verify-aadhaar">Aadhaar Verification</a></li>
  </ul>
</div>
