---
title: "INE+CURP webhook | Veriff.com"
slug: "inecurp-webhook"
description: "Learn how to set up the INE+CURP webhook in the Veriff Customer Portal for efficient data verification after registry checks in Mexico."
updated: 2025-11-14T11:26:12Z
published: 2025-11-14T11:26:12Z
---

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

# INE+CURP webhook

> [!WARNING]
> This webhook is part of the [**legacy**INE and CURP verification](/v1/docs/combined-inecurp-database-verification-guide) solution. If you are interested in Mexican database verification solutions, see the documentation of the [INE Database Verification](/v1/docs/ine-database-verification) and [CURP Database Verification](/v1/docs/curp-database-verification) solutions.

The INE+CURP webhook passes data after the combined checks in the [**Mexican Electoral Registry (Instituto National Electoral) and the Population Registry (Clave Única de Registro de Población)**](/v1/docs/combined-inecurp-database-verification-guide) have been completed.

The payload is sent to `Webhook INE CURP registry URL`, which you need to set up in the Veriff Customer Portal.

→*See Webhooks Guide > [Set up webhooks](https://veriff-dev-documentation.document360.io/docs/webhooks-guide#set-up-webhooks) sub-section for detailed overview of the setup process*

---

## When is INE + CURP webhook sent?

The INE + CURP webhook is sent after the verification session is done and after the registry checks have been completed.

---

## Prerequisites

1. Make sure you **have access to the Veriff Customer Portal**
  1. If you do not, see the Getting Started → [Sign up](https://devdocs.veriff.com/docs/signing-up) and [Log in](https://devdocs.veriff.com/docs/logging-in) articles
2. Set up webhook URL(s) **on your side**and have them at hand
  1. Make sure they **match** the [Webhook URL](https://devdocs.veriff.com/docs/webhooks-guide#webhook-url-requirements) requirements
  2. Make sure your system is **able to handle** [Webhooks receipt, delivery and resending](https://devdocs.veriff.com/docs/webhooks-guide#webhook-delivery-receipt-and-resending) requirements
  3. Check the [Webhooks headers and payload](https://devdocs.veriff.com/docs/webhooks-guide#webhooks-headers-and-payload) section for info
3. Secure your communication, check the [HMAC Authentication and Endpoint Security](https://devdocs.veriff.com/docs/hmac-authentication-and-endpoint-security) article
4. Make sure your system is **able to handle** the [Backwards compatible changes](https://devdocs.veriff.com/docs/backwards-compatible-changes)

5.Proceed to [/v1/docs/inecurp-webhook#inecurp-webhook-setup](/v1/docs/inecurp-webhook#inecurp-webhook-setup)

---

## INE+CURP webhook setup

1. Log in to the **Veriff Customer Portal**
2. Navigate to the **Integrations** page via the top menu and open the integration used for the registries check
3. On the integration's page, select the **Settings** tab
4. Under the title **Integration settings** you see a list of webhooks
5. Fill in the `Webhook INE CURP registry URL`

→*See Webhooks Guide > [Set up webhooks](https://veriff-dev-documentation.document360.io/docs/webhooks-guide#set-up-webhooks) sub-section for detailed overview of the setup process*

---

## Additional notes

> [!NOTE]
> The `data.details.ine` field returns either `ifeIdentifier` or `ineIdentifier`. **Both are not present** at the same time.

`ifeIdentifeir` and `ineIdentifier` both represent person's identification number. `ife` is a legacy name, it was changed to `ine`.

---

## Sample request

```json
{
  "eventType": "combined-ine-curp-registry",
  "sessionId": "f04bdb47-d3be-4b28-b028-a652feb060b5",
  "vendorData":  "1234567812345678",
  "endUserId": "a1b2c35d-e8f7-6d5e-3cd2-a1b2c35db3d4",
  "attemptId": "e30122d1-740b-4764-853f-470374a7abf4",
  "version": "1.0.0",
  "data": {      
      "status": "found",
      "code": 200,
      "details": {
          "ine": {
              "active": true,
              "status": "La credencial esta vigente",
              "comments": [
                  "CIC 000000000\r\nClave de elector ...",
                  "Fecha de actualización de la información: ...",
                  "Fecha de consulta: 11 de agosto del 2023",
                  "Tus datos se encuentran en el Padrón Electoral,..."
              ],
              "information": "CIC 000000000\r\nClave de elector š... ",
              "ifeIdentifier": "",
              "ineIdentifier": "000000000"
          },
          "curp": {
              "curp": "ABCD000000HVZRGS00",
              "names": "JUAN",
              "gender": "HOMBRE",
              "regionCode": "VZ",
              "statusCurp": "RCN",
              "descriptionStatusCurp": "Registro de cambio no afectando a curp",
              "birthRegion": "Veracruz",
              "dateOfBirth": "06/04/1991",
              "nationality": "MEX",
              "firstSurname": "JUAREZ",
              "secondSurname": "PEREZ",
              "documentEvidence": 1,
              "docEvidenceData": {
                  "book": "",
                  "sheet": "",
                  "volume": "",
                  "actNumber": "00123",
                  "registryCity": "",
                  "regionRegistry": "30",
                  "registrationYear": "1991",
                  "registryCityCode": "125",
                  "registryRegionCode": "VZ"
              },
          }
      }
   }
}
```

## Full forms of the CURP data status acronyms

The field `statusCurp` returns acronyms, which mean the following:

- **For active CURP**: AN (Alta Normal), AH (Alta con Homonimia), CRA CU (CURP Reactivada), RCN (Registro de Cambio no Afectando a CURP), RCC (Registro de Cambio Afectando a CURP)
- **For inactive CURP**: BD (Baja por Defuncion), BDA (Baja por Duplicidad), BCC (Baja por Cambio en CURP), BCN (Baja no Afectando a CURP)

---

## Request properties explained

*Required field

- `eventType`: `string`* CURP registry check name
- `sessionId`: `string`* UUID for the session where this check was executed
- `vendorData`: `string | null`* The unique identifier that you created for your end-user. `null` if not specified
- `endUserId`: `string | null`* The `UUID` that you created for your end-user. `null` if not specified
- `attemptId`: `string`* UUID v4 which identifies session attempt
- `version`: `string`* Version number of the check
- `data`: `object | null`* Array of data objects
  - `status`: `string`* Status of the data, one of `found`, `not found`
  - `code`: `number`* An integer number of the HTTP status code. See the [Common HTTP status codes table](/v1/docs/common-http-status-codes) for more info
  - `details`: `object`* Details connected to the specific check against the registry
    - **`ine`: `object`* Details about the INE/IFE identification number**

      - `active`: `boolean` Indication of if the INE identification number is active (`true`) or inactive (`false`)
      - `status`: `string` Explanation of the `data.status` value
      - `information`: `string` Extra information about the INE identification number
      - `comments`: `array` Comments regarding the status of the identification
      - `ifeIdentifier`: `string | null` INE identification number. When this is returned, the `ineIdentifier` is not present.
      - `ineIdentifier`: `string | null` IFE identification number. When this is returned, the `ifeIdentifier` is not present.
    - **`curp`: `object`* Details about the CURP identification number**

      - `curp`: `string` CURP identification number
      - `names`: `string` Name
      - `gender`: `string` Gender, one of `HOMBRE`, `MUJER`
      - `regionCode`: `string` Region code
      - `statusCurp`: `string | null` Curp data status acronym, one of `AN`, `AH`, `CRA CU`, `RCN`, `RCC`, `BD`,` BDA`, `BCC`, `BCN`
      - `descriptionStatusCurp`: `string` Explanation of the `details.curp.statusCurp` value
      - `birthRegion`: `string` Birth region
      - `dateOfBirth`: `string` Date of birth, represented as DD/MM/YYYY,
      - `nationality`: `string` Nationality
      - `firstSurname`: `string` First surname
      - `secondSurname`: `string` Last surname
      - `documentEvidence`: `number` Document evidence
      - `docEvidenceData`: `object` Details about the document evidence data
        - `book`: `string` Book
        - `sheet`: `string` Sheet
        - `volume`: `string` Volume
        - `actNumber`: `string` Act number
        - `registryCity`: `string` Registry city
        - `regionRegistry`: `string` Region registry
        - `registrationYear`: `string` Registration year
        - `registryCityCode`: `string` Registry city code
        - `registryRegionCode`: `string` Registry region code

---

## Changelog

| Date | Description |
| --- | --- |
| Nov 14, 2025 | Legacy note added |
| Mar 12, 2025 | Documentation published |

## Related

- [Webhooks Guide](/webhooks-guide.md)
- [Combined INE+CURP database verification guide](/combined-inecurp-database-verification-guide.md)
