Axon Toolbox

Free telecom & identity tools

Free tool

Mexico CURP Generator & Validator

Generate valid test CURPs (Clave Única de Registro de Población) from a name, date of birth, sex and state of birth — or paste a CURP to check its date, sex, state and RENAPO check digit.

CURP Generator

Type an exact name to compute its real CURP, or generate random test identities. The date, sex and state are set from your inputs; the homoclave and check digit are filled in to produce a structurally valid code.

Flag of Mexico

Mexico · 18 characters

Optional

Born 2005

1 – 31

1 – 100

CURP Validator

Paste an 18-character CURP to check the date of birth, sex, state of birth and RENAPO check digit.

Every CURP this tool produces is synthetic test data only. Whether built from a name you typed or a randomly generated identity, it is not issued by RENAPO, is not registered against any person, and does not belong to any real resident of Mexico. Use it on your own test systems only — never to complete a real application, verification or KYC check.

How a CURP is structured

A CURP is 18 characters, and — unlike a purely numeric ID number — most of them come from the person's own name. Taking PEGJ 850615 H DF RMN 09 (Juan Pérez Gómez, born 15 June 1985) as an example:

The segments of an 18-character Mexican CURP
DigitsSegmentMeaning
PEGJName initialsP + E from Pérez (1st letter, 1st internal vowel), G from Gómez, J from Juan.
850615YYMMDDDate of birth — 15 June 1985. As with most two-digit-year codes, the century is inferred from context.
HSexH for Hombre (male), M for Mujer (female).
DFState of birthRENAPO's 2-letter entity code — DF for Ciudad de México here, or NE for someone born abroad.
RMNInternal consonantsFirst internal consonant of the paternal surname, maternal surname and given name.
0HomoclaveAssigned by RENAPO to distinguish two people who would otherwise share an identical code — not derivable from the name.
9Check digitRENAPO's own modulo-10 checksum over the preceding seventeen characters.

Because the name, date of birth, sex and state are all encoded directly, a CURP is largely self-describing — which is why a real validator checks the date and the checksum rather than just counting characters.

Why generate test CURPs?

Any system that accepts a CURP needs realistic data to test against — banking and mobile-money onboarding, telecom and SIM registration, KYC and AML checks, government service portals, and the validation rules behind all of them.

Using a real person's CURP in a test environment is a privacy risk under Mexico's data-protection law (LFPDPPP). Synthetic CURPs that are structurally valid let you exercise the same code paths — format checks, date parsing, sex and state derivation, checksum validation — without any real personal information ever entering your test systems.

Frequently asked questions

What is a CURP?
CURP (Clave Única de Registro de Población) is the 18-character code RENAPO issues to identify every person living in Mexico, citizen or resident. It is used everywhere from school enrolment and banking to tax records and SIM registration.
Is a CURP the same as an RFC?
No. The CURP identifies a person for civil-registry purposes; the RFC (Registro Federal de Contribuyentes) is a separate tax identifier issued by the SAT, and is partly derived from the CURP but used only for tax matters.
How is a CURP different from a South African ID number?
An SA ID number is purely numeric and derived only from date of birth and gender. A CURP is derived from a person's actual name as well — four letters come from the given name and both surnames — so generating one needs name inputs, not just a date.
Are these real CURPs?
No. Every CURP this tool produces is either built from a name you typed or from a randomly generated test identity, and is not issued by RENAPO or tied to a real person. Never use a generated CURP to impersonate anyone or complete a real application.
What is the homoclave, and why can’t you calculate it from a name?
The 17th character (the homoclave) is assigned by RENAPO to tell apart two people whose name, date of birth, sex and state would otherwise produce an identical code. It reflects registration order in RENAPO’s database, so it cannot be derived — this tool fills in a plausible digit so the checksum still validates.
How do I validate a CURP?
Check that it is exactly 18 characters in the correct pattern (4 letters, a 6-digit date, a sex letter, a 2-letter state code, 3 more letters, a homoclave, then a check digit), that the date is real, that the state code is a recognised RENAPO entity, and that the final check digit matches RENAPO’s modulo-10 algorithm. The validator on this page performs all of these checks.
Why would I need generated CURPs?
To test software without touching real personal data. Onboarding and KYC flows, government-service integrations, banking and telecom registration in Mexico all need realistic CURP input, and synthetic values keep real personal information out of test environments.