Mexico RFC Validator
Check whether a Mexican RFC is a well-formed individual (13) or company (12) tax ID, including date and homoclave structure. 100% local. Built for Mexico.
Validate a Mexican RFC
Paste a 12- or 13-character RFC to check its structure, see segmented name/date/homoclave, and batch-check lists — all locally.
How the RFC check character works
The last character of an RFC is a check character computed from the characters before it. This tool uses the same SAT dictionary, the same 12-slot weighted sum and the same modulo-11 rule as its validator.
Structure
| Kind | Length | Pattern |
|---|---|---|
| Individual | 13 | Four letters, then YYMMDD, then a three-character homoclave. The four letters are the first letter of the paternal surname, the first internal vowel of the paternal surname, the first letter of the maternal surname and the first letter of the given name. |
| Company | 12 | Three letters from the legal name, then YYMMDD of incorporation, then a three-character homoclave. |
| Homoclave | 3 | The first two characters are assigned by SAT. The last character is the check character. |
| Generic public | XAXX010101000 | Generic RFC for the national public (público en general), accepted on invoices without SAT registration of a person. This tool recognises it and does not apply the check-character test. |
| Generic foreign | XEXX010101000 | Generic RFC for foreign residents, accepted on invoices without SAT registration of a person. This tool recognises it and does not apply the check-character test. |
For the check, a 13-character RFC uses its first 12 characters as the weighted body. A 12-character company RFC is padded with a leading space so that 12 values are still multiplied by weights 13 down to 2. The date block must be a real calendar day. Because an RFC has no century marker, 29 February is accepted when either 19yy or 20yy is a leap year.
Worked example: ABC680524P73
This is the legal 12-character company specimen from the batch-check placeholder on this page. Because it is 12 characters long, the weighted body is a leading space plus the first 11 characters. Each of those 12 characters is looked up in the dictionary below, multiplied by a weight from 13 down to 2, and the products are added. The total is taken modulo 11. A remainder of 0 gives the check character 0. Otherwise subtract the remainder from 11: if that gives 10 (remainder 1) the check character is A, and any other result is that digit itself (for example remainder 10 gives 1).
| Dictionary | 0123456789ABCDEFGHIJKLMN&OPQRSTUVWXYZ Ñ |
| Position | Character | Dictionary value | Weight | Product |
|---|---|---|---|---|
| 1 | (space) | 37 | 13 | 481 |
| 2 | A | 10 | 12 | 120 |
| 3 | B | 11 | 11 | 121 |
| 4 | C | 12 | 10 | 120 |
| 5 | 6 | 6 | 9 | 54 |
| 6 | 8 | 8 | 8 | 64 |
| 7 | 0 | 0 | 7 | 0 |
| 8 | 5 | 5 | 6 | 30 |
| 9 | 2 | 2 | 5 | 10 |
| 10 | 4 | 4 | 4 | 16 |
| 11 | P | 26 | 3 | 78 |
| 12 | 7 | 7 | 2 | 14 |
| Sum of products | 1108 | |||
| Remainder modulo 11 | 8 | |||
| Check character | 3 |
The products add up to 1108. That total modulo 11 is 8, and 11 minus 8 is 3, which matches the last character of the specimen.
Two boundary cases the specimen does not exercise: ABC680524PKA ends in A because its total leaves remainder 1, and ABC680524PJ1 ends in 1 because its total leaves remainder 10. Both are computed by the same function that validates your input.
Official sources
- sat.gob.mx: official site of SAT, the Servicio de Administración Tributaria that issues the RFC
- sat.gob.mx/curp/Consult: SAT form titled Consulta RFC, used to look up an RFC from a CURP
- agsc.siat.sat.gob.mx: Validador de RFC, the SAT service that tells you whether a key is actually registered
Common mistakes and what the digit cannot tell you
- Do not treat & as illegal. In a company name it is a legal character in the SAT dictionary, standing after N.
- Do not treat Ñ as illegal. It is the last character in the SAT dictionary this tool uses.
- Do not use a generic RFC as if it were a personal RFC. XAXX010101000 and XEXX010101000 are shared invoice keys, not one person registered with SAT.
- Do not type a date that is not a real calendar day. The YYMMDD block must be a possible month and day, including leap-year 29 February as described above.
- A matching check character only proves the key was copied consistently. It does not prove SAT has registered it. To confirm registration use the SAT Validador de RFC or the CURP lookup linked above; the Constancia de situación fiscal is the formal document that states the registered RFC.
The RFC (Registro Federal de Contribuyentes) is Mexico's tax ID, issued by SAT (Servicio de Administración Tributaria). Individuals (personas físicas) get 13 characters: 4 letters from the name, 6 date-of-birth digits (YYMMDD), and a 3-character homoclave.
Companies (personas morales) get 12: 3 letters, 6 incorporation-date digits, and the homoclave. The final character of the homoclave is a check digit computed with SAT's character-value table modulo 11 — this tool recomputes it locally and flags structure errors, impossible dates and check-digit mismatches.
Limits: the homoclave's first two characters are assigned by SAT from internal data, so no offline tool can derive them from a name — we validate consistency, not registry existence. For registry status, suspension, or the exact RFC on record, use SAT's official services. Last verified: July 2026.
FAQ
What is an RFC?
The Registro Federal de Contribuyentes is Mexico’s tax ID: 13 characters for individuals and 12 for companies.
What does this check?
Three layers: the structure (name letters + YYMMDD + homoclave), whether the date is a real calendar date, and the final check character recomputed with the official SAT mod-11 table. Generic RFCs (XAXX010101000 for the public, XEXX010101000 for foreigners) are recognized. Only SAT itself can confirm actual registration.
Can I check many at once?
Yes. Open Batch check, paste one RFC per line, and export results as CSV.
Is my RFC uploaded?
No. Everything runs locally in your browser.
What is the difference between a 13-character RFC and a 12-character RFC?
Thirteen characters is an individual: four name letters, a birth date as YYMMDD, and a three-character homoclave. Twelve characters is a company: three letters, an incorporation date as YYMMDD, and a three-character homoclave. The last character of either form is the check character.
What are XAXX010101000 and XEXX010101000?
They are the generic RFCs this tool recognises without applying the check-character test. XAXX010101000 is the key for the national public (público en general) on invoices that do not identify a registered person. XEXX010101000 is the generic key for foreign residents in the same situation.
What is the homoclave?
It is the last three characters. SAT assigns the first two to distinguish people or companies that would otherwise share the same name letters and date. The third character is the check character computed from the SAT dictionary and a modulo-11 rule.
Why can SAT still reject an RFC that this tool accepts?
A matching check character only proves the key is internally consistent. It does not prove SAT has registered it, that it is active, or that it belongs to the person or company on an invoice. To confirm registration use the SAT Validador de RFC or its CURP lookup; the Constancia de situación fiscal is the formal document that states the registered key.
Last updated: