Extraction + Validation

Mexico's ID card, read and validated

Upload front and back of the ID card. We OCR every field, read the MRZ on the back, and validate against INE's current voter registry (Lista Nominal Vigente) — in seconds.

Front + back
MRZ parsing
Lista Nominal Vigente
CURP/RFC cross-check

How it works

One flow. Front, back, done.

Step 1

Upload the front

Photo or PDF of the front side. Any reasonable angle and low light work fine.

Step 2

Upload the back

We capture the MRZ and issuance data. Without the back, there's no certainty.

Step 3

OCR + validation

We extract each field, cross-check against official sources, and return a verdict.

What we extract

Every relevant field from the card, ready to use.

Name
GARCÍA HERNÁNDEZ MARÍA F.
CURP
GAHM900315MDFRRR05
Date of birth
1990-03-15
Sex
M
Address
AV. REVOLUCIÓN 1234, CDMX
Section
1247
Validity
2031
MRZ
IDMEX1247901503GAHM…

What we validate

Not just OCR. We confirm the card is authentic and consistent.

Official validation

Lista Nominal Vigente

We cross-check extracted data against INE's Lista Nominal Vigente — the registry of currently active voter ID cards. If the card has been revoked, replaced, or is no longer current, you know in seconds.

Active credentialCIC + OCR matchedReal-time result
· LISTA NOMINAL VIGENTE · VALIDADO POR SINGULA · LISTA NOMINAL VIGENTE · VALIDADO POR SINGULA
Lista nominal
VIGENTE

Internal consistency

Front-side data matches the MRZ code on the back.

Validity and format

Card model detected, validity confirmed, structure valid.

Tampering signals

We detect edited, cropped, or reprinted cards.

Cross-source validation

CURP, RFC, and official records validated in the same flow.

ine-verify.sh
curl -X POST https://api.singula.mx/v1/ine/verify \
  -H "Authorization: Bearer sk_live_..." \
  -F "front=@ine_frente.jpg" \
  -F "back=@ine_reverso.jpg" \
  -F "customer_id=cus_lzk9m4ab3f"

→ { "status": "processing", "webhook": true }

// Webhook:
{
  "document_type": "ine_g",
  "extracted": {
    "name":     "GARCÍA HERNÁNDEZ MARÍA FERNANDA",
    "curp":     "GAHM900315MDFRRR05",
    "dob":      "1990-03-15",
    "sex":      "M",
    "address":  "AV. REVOLUCIÓN 1234, CDMX",
    "section":  "1247",
    "validity": 2031,
    "mrz":      "IDMEX1247901503GAHM..."
  },
  "validation": {
    "internal_consistency":  true,
    "mrz_match":             true,
    "tampering_signals":     "none",
    "lista_nominal_vigente": "active",
    "curp_renapo":           "valid"
  },
  "confidence": 0.992
}

Front + back

We process both sides. That's the only way you get the MRZ and full data.

Models D, E, F, G, H

Compatible with every current INE model and legacy IFE cards.

Fraud detection

Alteration signals, reprints, and digital composites.

CURP/RFC cross-check

We validate extracted data against RENAPO and SAT in the same flow.

Async webhook

We deliver the result to your backend. No polling, no waiting.

Ready for KYC

Combines natively with biometrics, liveness and e-signature.

Official identity, frictionless

No contracts. Free sandbox. Production ready.

Talk to sales