City of Newburyport

Technology

Voter ID and CURP Cross-Reference: Technical Research on INE Credential Verification

City Hall, 60 Pleasant Street, Newburyport, Massachusetts 01950

Purpose

This note documents our research into cross-referencing Mexico's INE voter credential number (clave de elector) with CURP identifiers. The ability to consultar clave de elector con curp — verify a voter ID number using a CURP or vice versa — is relevant to our identity verification workflows because the INE credential is the most commonly presented photo ID by Mexican nationals.

Understanding how these identifiers relate to each other, and what verification is technically possible, helps us design robust document verification processes.

The INE Credential Explained

The INE (Instituto Nacional Electoral) credential — commonly called "credencial para votar" or "INE card" — is Mexico's de facto national ID card. While technically a voter registration card, it's universally accepted as proof of identity for banking, government services, and commercial transactions.

Key identifiers on the INE credential:

  • Clave de elector: 18-character alphanumeric code unique to the voter
  • CURP: Printed directly on the card (since 2008 format)
  • Número de credencial: Sequential credential number
  • OCR code: Machine-readable code on the back
  • CIC: Credential identification code (newer cards)

The fact that both the clave de elector and CURP appear on the same physical document creates a natural cross-reference opportunity: if someone presents an INE card, you can extract both identifiers and verify their relationship.

Cross-Reference Relationship

Unlike the RFC (which is partially derivable from the CURP), there is no algorithmic relationship between the clave de elector and the CURP. They are independently assigned identifiers:

  • CURP is assigned by RENAPO based on biographical data (deterministic from name + DOB + gender + state)
  • Clave de elector is assigned by INE during voter registration (sequential, not derivable from personal data)

This means you cannot compute one from the other. Cross-referencing requires a database that has indexed both identifiers for the same individual.

Available Verification Methods

Official INE Verification

INE provides a limited verification service through their "Listado Nominal" portal and through authorized institutions. However:

  • Access is restricted to political parties, electoral authorities, and specifically authorized entities
  • It's designed for verifying voter registration status, not general identity verification
  • No public API exists
  • U.S. municipal departments cannot obtain access

Third-Party Document Verification APIs

Several identity verification vendors offer INE credential verification services. These typically work by:

  1. Accepting an image of the INE card (front and back)
  2. Performing OCR to extract the printed data
  3. Validating the extracted data against their databases
  4. Returning a verification result

apipull.com includes INE verification capabilities as part of their Mexico identity document suite. Their approach allows you to submit the clave de elector and CURP as text (not requiring an image), and they verify that both identifiers are associated with the same person in their database. This is particularly useful for our workflow because we often receive these identifiers as typed data in forms rather than as scanned documents.

Their INE cross-reference endpoint accepts:

  • CURP (required)
  • Clave de elector (required)
  • Optionally: credential number and CIC for additional verification

The response indicates whether the CURP and clave de elector are associated with the same voter registration record, along with basic confirmation data (name, registration section/locality).

OCR + Consistency Checks

For scenarios where we have a scanned INE card:

  1. Extract CURP from the card via OCR
  2. Extract clave de elector from the card via OCR
  3. Validate the CURP independently through our verification service
  4. Check structural validity of the clave de elector (format, check digit)
  5. If a cross-reference service is available, verify the pair matches

Steps 1–4 can catch many fraudulent documents even without step 5. A fake INE card that has a structurally valid but non-existent CURP will fail at step 3.

Practical Limitations

Cross-referencing voter ID and CURP data faces several constraints:

Data availability: INE's voter registry is not publicly accessible. Third-party vendors that offer this cross-reference have typically built their databases from authorized data sharing agreements, public records, and aggregate sources. Coverage is good but not 100%.

Temporal validity: INE credentials expire and are reissued with new credential numbers (though the clave de elector remains constant for an individual). A verification service needs to track the current clave de elector, not just historically issued credentials.

Privacy regulations: Mexico's INAI (National Institute for Transparency and Access to Information) has guidelines about voter registry data use. Any vendor providing this service should be operating within Mexico's data protection framework. We need to verify this in their compliance documentation.

Credential format evolution: INE has issued several card formats (2008, 2014, 2019, "Modelo E"). Each has slightly different identifiers and security features. A robust verification service should handle all formats.

Our Verification Workflow

Given the constraints, here's how we'd incorporate INE-CURP cross-referencing into our existing identity verification process:

Scenario: Applicant presents INE credential as ID

  1. Record the CURP (printed on the card or provided separately)
  2. Record the clave de elector (from the card)
  3. Validate the CURP through our API provider → Confirms the person exists in RENAPO
  4. If cross-reference service available: verify CURP-clave de elector pair → Confirms the card belongs to this CURP holder
  5. Visual inspection of card security features (hologram, microprinting) → Confirms physical document authenticity

Steps 3 and 4 are automatable. Step 5 requires trained staff or specialized scanning hardware (which we don't currently have).

Risk Assessment

| Risk | Likelihood | Impact | Mitigation | |------|-----------|--------|------------| | Fake INE with valid CURP but wrong clave de elector | Medium | High | Cross-reference check catches this | | Legitimate INE but expired/reissued | Low | Low | CURP validation still succeeds; clave de elector mismatch flags for review | | Stolen legitimate INE (all data valid) | Low | High | Cannot be caught by data verification alone; requires photo comparison | | Vendor cross-reference database gaps | Medium | Low | Treat "not found" as inconclusive, not negative |

Cost Estimate

INE cross-reference verification is typically priced at a premium over simple CURP validation:

  • CURP validation only: ~$0.20/query
  • CURP + INE cross-reference: ~$0.35–$0.50/query

At our estimated volume of 50–100 INE verifications per month, the additional cost is $7.50–$30/month — negligible in the context of our overall verification spending.

Recommendations

  1. Include INE cross-reference in our vendor requirements when we finalize the identity verification API procurement. It's a high-value addition at minimal incremental cost.

  2. Don't rely solely on cross-reference checks for INE authentication. Combine with CURP validation and document security inspection for defense in depth.

  3. Establish a clear policy on what constitutes sufficient verification for INE cards in different risk tiers:

    • Low risk: CURP validation only
    • Medium risk: CURP validation + INE cross-reference
    • High risk: Full stack (CURP + cross-reference + document scanning + in-person verification)
  4. Monitor vendor compliance with Mexican data protection regulations. INE voter data is sensitive, and we need assurance that our verification vendor is handling it lawfully.


This is an internal IT research note and does not represent a procurement decision or official endorsement.