# Validación completa de INE (V1, asíncrona) Fuente: /ine-validation/complete-validation-async/ Este endpoint hace **exactamente las mismas validaciones** que la [Validación completa de INE (V1)](/ine-validation/complete-validation/), pero **sin dejarte esperando la respuesta**: recibe las imágenes, responde de inmediato con un identificador y procesa la validación en segundo plano. > **No soporta validación de QR** > > Esta versión asíncrona no acepta `qr_validation`. Si necesitas validar los códigos QR del reverso, usa > la [Validación completa de INE (V2)](/ine-validation/complete-validation-v2/), que sí la soporta (aunque > solo existe en su versión síncrona por ahora). Es la opción recomendada cuando la validación se dispara desde una petición web, ya que el proceso completo (OCR, comparación facial, lista nominal y RENAPO) puede tardar más de lo que tu servidor o tu navegador están dispuestos a esperar. **Método:** POST #### **Endpoint** ``` https://api.verificamex.com/identity/v1/validations/basic/async ``` ### **Cómo funciona** 1. Envías las imágenes y la URL de tu webhook. 2. La API responde 202 Accepted con un `uuid` y el estatus `pending`. 3. Cuando el proceso termina, Verificamex envía el resultado completo a tu webhook. 4. En cualquier momento puedes consultar el avance con el `uuid`. > **Nota** > > Recuerda que debes tener un token válido para realizar la solicitud. > Puedes obtener un token siguiendo los pasos descritos en la sección [Generar tokens](/authentication/generate-tokens/). ### **Encabezados de la Solicitud** Para realizar la solicitud es necesario incluir los siguientes encabezados: | Encabezado | Valor | Descripción | | - | - | - | | Accept | `application/json` | Tipo de contenido de la solicitud. | | Authorization | `Bearer {tu_token}` | Token generado para autenticar al usuario. | > **Consejo** > > Las imágenes deben ser codificadas en **formato base64** para poder ser enviadas en el cuerpo de la solicitud. ### **Cuerpo de la Solicitud** El cuerpo de la solicitud debe contener los siguientes parámetros: | Parámetro | Tipo | Requerido | Descripción | | - | - | - | - | | `ine_front` | `String` | Sí | Imágen de la parte frontal del INE codificada en base64. | | `ine_back` | `String` | Sí | Imágen de la parte reversa del INE codificada en base64. | | model | `String` | Sí | Modelo de la INE a validar (es posible dejarlo con valor `"D"` para que el sistema lo determine automáticamente). | | webhook | `String` | Sí | URL a la que se enviará el resultado cuando la validación termine. | | selfie | `String` | No | Imágen de la selfie del usuario codificada en base64. Si la envías, se realiza además la comparación facial. | | `signed_urls` | `Boolean` | No | Si es `true`, las imágenes y los PDFs del resultado se entregan como URLs firmadas en lugar de base64. Por defecto `false`. | #### **Ejemplo de cuerpo de la solicitud** ```json { "ine_front": "data:image/png;base64,iVBORw0KGgoAAAANS....", "ine_back": "data:image/png;base64,iVBORw0KGgoAAAANS....", "selfie": "data:image/png;base64,iVBORw0KGgoAAAANS....", "model": "D", "webhook": "https://tu-servidor.com/webhooks/validacion-ine", "signed_urls": true } ``` > **Respuestas más ligeras con signed\_urls** > > Con `signed_urls` en `true`, el resultado no incluye las imágenes ni los reportes en base64: en su lugar > recibes URLs firmadas con **una hora de vigencia**. Esto reduce de forma importante el tamaño del webhook y > de la consulta de detalle. Descarga los archivos antes de que expire el enlace. ### Respuesta del Endpoint **status 202** ```json { "status": "pending", "uuid": "870c7eee-3604-4995-aa98-bc8fa6aa1112", "created_at": "2026-07-27T10:55:00-06:00" } ``` **status 401** ```json { "message": "Unauthorized" } ``` **status 403** Ocurre cuando ya no tienes tokens disponibles. ```json { "message": "Las transacciones del usuario se han terminado" } ``` **status 422** Ocurre si falta algún parámetro, si el webhook no es una URL válida o si alguna imagen no está en un formato soportado (JPG, PNG o WEBP). ```json { "message": "The given data was invalid.", "errors": { "webhook": [ "The webhook field is required." ] } } ``` > **Precaución** > > El 202 **no significa que la validación haya sido exitosa**, únicamente que > fue recibida y encolada. El resultado real llega en el webhook o consultando el detalle. ### **Estatus de la validación** | Estatus | Descripción | | - | - | | pending | La validación fue recibida y está en espera de ser procesada. | | processing | La validación se está procesando. | | completed | La validación terminó. | | failed | La validación no pudo completarse (por ejemplo, no se pudo leer la credencial). | ### **Resultado en tu webhook** Cuando la validación llega a `completed` o `failed`, Verificamex hace una petición POST a la URL que enviaste en `webhook` con este cuerpo: ```json { "uuid": "870c7eee-3604-4995-aa98-bc8fa6aa1112", "status": "completed", "created_at": "2026-07-27T10:55:00-06:00", "updated_at": "2026-07-27T10:56:12-06:00", "result": { "data": { "object": "ine_validations", "status": true, "message": "...", "dataOcr": { }, "documentInformation": { } }, "meta": { "include": [], "custom": [] } } } ``` El contenido de `result` es el mismo que devuelve la [Validación completa de INE (V1)](/ine-validation/complete-validation/) síncrona; consulta esa página para ver la estructura completa con todos sus campos. > **Nota** > > Para conocer las recomendaciones generales sobre recepción y seguridad de webhooks, revisa > [Uso de Webhooks en Verificamex](/webhooks/using-webhooks-in-verificamex/). ### **Consultar el avance** No es obligatorio esperar al webhook: puedes consultar el estatus y el resultado en cualquier momento con el `uuid` que te devolvió este endpoint, en [Mostrar validación completa de INE](/ine-validation/show-complete-validation/). También puedes ver todas tus validaciones, con los tokens cobrados por cada una, en [Listar validaciones completas de INE](/ine-validation/complete-validation-list/).