# CURP Validation

The CURP Validation module validates a person's CURP (Clave Única de Registro de Población), a personal identification number issued in Mexico, against Mexico's RENAPO registry. It accepts a CURP extracted via OCR, entered manually, or generated from personal data when the user doesn't know it.

## Integrations

:white_check_mark: Web | :white_check_mark: iOS | :white_check_mark: Android

## How It Works

When CURP Validation runs, it queries RENAPO through Incode's configured third-party providers (typically FIMPE and/or CECOBAN). If the CURP is present in the OCR output from a prior ID Capture step, the module uses that value automatically and can validate without additional input from the user. If no CURP is available from OCR, the user is prompted to enter it manually. If the user does not know their CURP, the module can generate one from name, birthdate, sex, and birth state data provided by the user.

Your Incode Representative can configure providers for you. A primary provider and an optional fallback provider can be specified; the fallback is triggered if the primary times out or returns an error. Your Incode Representative can also configure per-provider timeout and daily request rate limits.

## Use CURP Validation

For instructions on implementing and configuring CURP Validation on each supported platform, use the following pages:

- [CURP Validation (Dashboard)](https://developer.incode.com/docs/curp-validation-dashboard)
- [CURP Validation (iOS)](https://developer.incode.com/docs/curp-validation-ios)
- [CURP Validation (Android)](https://developer.incode.com/docs/curp-validation-android)
- [CURP Validation (Web SDK)](https://developer.incode.com/docs/curp-validation-web-sdk)

To view the end user experience screens and customization options for this module, see [Curp: Design and UX](https://developer.incode.com/docs/curp-design).
