CURP Validator
ValidatorValidate Mexican CURP numbers and decode birth date, gender, and state of birth. Official check digit algorithm. Runs entirely in your browser.
CURP (Clave Única de Registro de Población) is Mexico's 18-character national identity code issued by RENAPO. It encodes name initials, birth date, gender, and state of birth — making it both a unique identifier and a biographical summary. It is required for virtually all government and many private-sector transactions in Mexico.
About this tool
About CURP Validator
This validator checks CURP (Clave Única de Registro de Población) numbers using the official RENAPO algorithm. Enter any 18-character CURP and the tool verifies the format, checks the state code against the official list, validates the check digit, and decodes all encoded components including birth date, gender, and state of birth.
The validator enforces the complete CURP structure: 4 name-derived characters, 6-digit birth date (YYMMDD), gender code (H/M), 2-letter state code, 3 internal consonants, 1 century marker, and 1 check digit. The check digit is verified using the official Mod-10 weighted sum algorithm with the CURP character alphabet (0–9 then A–Z with Ñ at position 24).
Use this validator to verify CURPs collected from users before processing them in backend systems, to debug why a CURP is failing validation, to check if a CURP from a government document is correctly formed, or to explore the CURP structure for educational purposes.
Instant validation with no network requests — all checks are done locally. The validator decodes each component of a valid CURP so you can see the birth date, gender, and state without any external lookup. Precise error messages distinguish format errors, invalid state codes, and wrong check digits.
Key Features
- Official check digit algorithm
- Full format validation (regex + structure)
- State code verification against all 33 codes
- Decodes birth date, gender, and state of birth
- Century detection (0–9 for 20th, A–Z for 21st century)
- 100% browser-based, no data sent
FAQ
CURP Validator — Frequently Asked Questions
Why does CURP validation fail for a seemingly correct number?
The most common cause is the check digit (position 18). A single typo in any of the first 17 characters will change the expected check digit. Other causes: using a lowercase letter (CURP is all uppercase), including spaces or hyphens, using an invalid state code, or having consonants in the wrong positions (positions 14–16 must be consonants, not vowels). This validator gives a specific error message for each failure mode.
What state codes are valid in a CURP?
Mexico has 31 states plus Ciudad de México (DF) and a special code NE for persons born outside Mexico. All 33 codes are: AS, BC, BS, CC, CL, CM, CS, CH, DF, DG, GT, GR, HG, JC, MC, MN, MS, NT, NL, OC, PL, QT, QR, SP, SL, SR, TC, TS, TL, VZ, YN, ZS, NE.
How does the CURP check digit work?
Each of the 17 characters maps to a numeric value using the CURP alphabet (0=0, ..., 9=9, A=10, ..., N=22, Ñ=24, O=25, ..., Z=36). Each value is multiplied by its position weight (18, 17, 16, ..., 2) and summed. The check digit = (10 − (sum mod 10)) mod 10, which always yields a single digit 0–9.
Can I verify my CURP with a real government database?
This tool performs the mathematical validation (format + check digit) entirely offline. To verify that a CURP is actually registered with RENAPO, visit the official RENAPO CURP consultation portal at gob.mx/curp. This tool cannot access that database.
Tips
- Paste the CURP in uppercase or lowercase — the validator normalises it automatically
- The validator tells you exactly what's wrong: format error, invalid state, or wrong check digit
- A CURP ending in the digit 0 is perfectly valid — it's a check digit, not a generation counter
- Position 17 (second-to-last) being a letter means the person was born in 2000 or later