Tu usuario toma tres fotos. Tú corres siete verificaciones que se encadenan solas: INE, QR, rostro, Lista Nominal, CURP-RFC y CSF —directo de las fuentes oficiales.
El fraude en renta de autos casi siempre es suplantación: una identidad prestada o una credencial ajena. Así se arma la verificación completa: cada ola usa la respuesta de la anterior. Las llamadas las disparas tú y OrigoID responde en milisegundos; los cruces entre respuestas son un if en tu backend.
addressNormalized.OCR INEINE QRFace Matchif en tu backend — ambas respuestas ya están en tus manos.tu códigoFace MatchValidar CURPLista NominalSAT CSFif en tu backend.tu códigoEl envelope te dice exactamente qué falló —FACE_MISMATCH si el rostro no es el de la credencial, IMAGE_UNREADABLE si la foto salió borrosa, un reverso que no cuadra con el frente— y vuelves a pedir solo esa foto o ese dato. El resto del flujo no se repite, y el conductor legítimo pasa sin fricción.
Envías la imagen de la INE; recibes los datos ya estructurados y el domicilio geocodificado en el mismo envelope que todos los endpoints. Aprendes el contrato una vez y sirve para cada paso del flujo.
status, type, data— en INE, QR, facial, Lista Nominal, CURP y CSF.const res = await fetch("https://api.origoid.com/mex/id/v1/voter-id-extractions", { method: "POST", headers: { "x-api-key": process.env.ORIGOID_API_KEY, "content-type": "application/json", }, body: JSON.stringify({ front: ineFrontBase64 }), }); const result = await res.json();
import os, requests res = requests.post( "https://api.origoid.com/mex/id/v1/voter-id-extractions", headers={ "x-api-key": os.environ["ORIGOID_API_KEY"], "content-type": "application/json", }, json={"front": ine_front_base64}, timeout=30, ) result = res.json()
curl -X POST https://api.origoid.com/mex/id/v1/voter-id-extractions \ -H "x-api-key: $ORIGOID_API_KEY" \ -H "content-type: application/json" \ -d '{"front": "<base64 de la INE (JPG o PNG)>"}'
{
"status": "OK",
"type": "SUCCESS",
"data": {
"documentType": "INE",
"personalInfo": { "givenNames": "ANA SOFIA", "curp": "GOSA880718MNLNLN07", … },
"addressNormalized": {
"geocodingStatus": "VERIFIED",
"street": "Avenida Lago Alberto", "zipCode": "11320",
"municipality": "Miguel Hidalgo", "state": "Ciudad de México"
}
},
"billable": true
}
Rentar un auto pone en juego una identidad completa y un activo caro. La verificación tiene que ser real, rápida y no dejar rastro de los datos de tu cliente.
Tu usuario toma tres fotos: el frente y el reverso de su INE, y una selfie. Con eso corres el OCR con dirección normalizada y geocodificada, la lectura del reverso, las comparaciones faciales, la Lista Nominal y el cruce de CURP y RFC contra RENAPO y SAT — cada respuesta alimenta la siguiente llamada.
Es la suma de capas: los datos que leyó el OCR se cruzan contra los extraídos del reverso —dos lecturas independientes que deben coincidir—; el rostro extraído del frente se compara contra el del reverso; y la Lista Nominal confirma que la credencial existe y está vigente en el padrón del INE. Una credencial alterada falla en alguna de esas capas.
Está en nuestro roadmap, sin fecha comprometida aún. Hoy verificamos la identidad del conductor —INE, QR, rostro, CURP, RFC—, que es la capa que previene la mayoría del fraude por suplantación en renta de autos.
El envelope te dice exactamente qué falló —FACE_MISMATCH, IMAGE_UNREADABLE, un reverso que no cuadra con el frente— y vuelves a pedir solo esa foto o ese dato. El resto del flujo no se repite.
No. Cada consulta se valida, se responde y se descarta: no hay base de datos de consultas ni rastro en logs.
Prueba el flujo completo en producción con créditos de cortesía. El acceso se habilita tras una breve validación de tu empresa.