International · Validation
Thai national ID check digit validator.
Check a 13-digit Thai national ID number against the check digit it carries. Everything runs in your browser, so the number never leaves your device. This is a format and checksum check only.
How it works: multiply the first 12 digits by 13, 12, 11 ... 2, add them up, and the check digit is (11 minus the total mod 11) mod 10. If it doesn't match, the number has a typo.
Inputs
Result
Enter an ID number and press Check.
How a Thai national ID number is built
A Thai national identification number has 13 digits, usually written 1-2345-45678-78-1. The last digit is a check digit calculated from the first twelve.
| Digits | Meaning |
|---|---|
| 1 | Category of the person (1 to 8 on the published list). This tool rejects 0 and 9, as python-stdnum does. |
| 2-5 | Registrar office code |
| 6-12 | Birth certificate or personal record number |
| 13 | Check digit |
The check digit: multiply digits 1 to 12 by the weights 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, add the products, take the total modulo 11, and the check digit is (11 minus that remainder) modulo 10. Thai Wikipedia writes the same rule as 1 minus x when x is 0 or 1, otherwise 11 minus x.
Checksum and format only
A passing result means the number is internally consistent. It cannot confirm the number was ever issued or that it belongs to anyone. Only the Thai Department of Provincial Administration can do that. Fake numbers can pass, and real numbers with a typo will fail.
Sources
Algorithm and category rule: python-stdnum, stdnum/th/pin.py. Independent formula (weights 13 to 2, mod 11): Thai Wikipedia, เลขประจำตัวประชาชนไทย. Structure and categories: Wikipedia: Thai identity card.
Checksum only — not a registry lookup
This tool checks the ID number entirely in your browser. It does not query any Thai government registry, and a checksum-valid result is not proof the number was ever issued or belongs to anyone. A national ID number is personal data: nothing you type is transmitted, stored, or logged, but use a sample number where you can.