Thai ID Validator: Verify 13-Digit Thai Citizen ID Numbers
Validate 13-digit Thai citizen ID numbers with the official MOD-11 checksum and a per-digit breakdown, entirely in your browser.
Table of Contents
Thai ID Validator: Verify 13-Digit Thai Citizen ID Numbers
The Thai citizen ID is the key to daily life in Thailand β bank accounts, SIM cards, leases, hospital visits, school enrollment. It is also retyped constantly into forms and databases, and one slipped digit can follow a record for years.
A check digit is the defense. The 13th digit of every Thai ID is computed from the first 12 by a fixed arithmetic rule, so most typos fail instantly. Our Thai ID Validator applies that rule, splits the number into its meaningful blocks, and shows the per-digit math behind the verdict.
Nothing you type is uploaded. The validator runs entirely client-side, which matters because a citizen ID is sensitive personal data that can feed identity fraud if it leaks.
Why Use Thai ID Validator?
- Catch typos immediately β A transposed or mistyped digit breaks the checksum, so errors surface while the customer or patient is still in front of you.
- Privacy by design β The number never leaves the browser: validation is local JavaScript with no upload, no account, and no server-side logging.
- See the whole calculation β Every digit is shown with its weight, product, and running total, plus the expected check digit on failure.
- Decode the structure β The tool labels the registration category, registrar province code, book number, serial number, and check digit.
- Instant and offline-friendly β The verdict updates as you type, and the page keeps working without a connection once loaded.
- Free and install-free β No signup, no software, and nothing to configure on locked-down machines.
Key Features
| Feature | What It Does |
|---|---|
| MOD-11 checksum | Recomputes digit 13 from digits 1β12 using the standard weights 13 down to 2. |
| Per-digit breakdown | Shows each digit's weight, product, and running sum for hand-checking. |
| Structural decode | Labels the category digit, province code, book number, serial number, and check digit. |
| Clear failure reasons | Distinguishes non-numeric input, wrong length, and checksum mismatch. |
| Formatting tolerance | Strips spaces and hyphens, so 1-2345-67890-12-1 equals 1234567890121. |
| 100% client-side | No uploads or accounts, and it works offline after the first load. |
- Approximate province hint β Digits 2β3 form the province code, so the tool names the registration province; people move, so treat it as a hint.
- Expected check digit on failure β The tool shows the digit that would make the number valid, turning debugging into a two-second fix.
How to Use
- Open the Thai ID Validator in any modern browser.
- Type or paste the 13-digit number; spaces and hyphens are removed automatically.
- Watch the live verdict: green means the checksum matches, red means it does not.
- Read the per-digit breakdown for the weights, products, and total behind the result.
- On failure, re-check the digits, correct the typo, and copy the cleaned number.
The 13-Digit Checksum
What each position means
| Position | Meaning |
|---|---|
| 1 | Registration category β the series under which the holder was registered, such as a Thai citizen born from 1984 onward or a pre-1984 house-registration case. |
| 2β5 | Registrar office code: digit 2 is the region, digit 3 the province, digits 2β3 the province code, digits 4β5 the district. |
| 6β10 | Registration group or book number β for modern births, the birth-certificate book from the district office. |
| 11β12 | Serial number within that group. |
| 13 | Check digit. |
The weighted sum, worked step by step
Multiply digits 1β12 by descending weights, add the products, take the remainder mod 11, and subtract it from 11 (mod 10):
N13 = (11 β ((13ΓN1 + 12ΓN2 + β¦ + 2ΓN12) mod 11)) mod 10
For the fictitious specimen 1-2345-67890-12-1, the products are 13 + 24 + 33 + 40 + 45 + 48 + 49 + 48 + 45 + 0 + 3 + 4 = 352. Because 11 Γ 32 = 352, the remainder is 0, so (11 β 0) mod 10 = 1 β exactly the final digit. Change any digit, transpose a pair, or alter the last digit to 4, and the check fails, so the tool reports the number as invalid.
What a valid result proves β and what it does not
A passing checksum proves only that the 13 digits are arithmetically consistent. It does not prove the number belongs to a real person, that the person is alive, or that the card is genuine. Anyone can construct a passing number β this guide's specimen does β and only the official civil-registration database can confirm an identity. Treat validation as a typo filter, never as identity verification.
Privacy cautions
A Thai citizen ID is sensitive personal data under Thailand's PDPA. Never log full numbers when a masked form (x-xxxx-xxxxx-xx-x) will do, avoid pasting IDs into sites whose data handling you cannot verify, and remember that client-side tools keep numbers local while server-side checkers may not.
Practical Use Cases
Data Entry and Customer Records
Call centers, insurers, hospitals, and universities retype IDs constantly. A checksum check at the point of entry catches transpositions before a wrong number spreads into statements, claims, or academic records.
QA and Test Data for Developers
Teams building Thai forms, KYC flows, or CRMs need valid and invalid fixtures. The validator confirms a fabricated specimen passes while a corrupted variant fails β exactly what a test suite needs to exercise both branches.
Pre-Checks Before KYC or Onboarding
Before submitting a number to a bank, telco, or e-wallet verifier, a checksum pass filters out the most common failure cause: a typo. Fewer malformed submissions mean fewer failed attempts and faster approvals.
Office and Clinic Form Review
Staff transcribing paper or PDF forms can validate each ID as they type it, catching handwriting misreads immediately and avoiding the back-and-forth of resubmission.
Best Practices
- Checksum-valid is not a real person. A passing number can be fabricated, so reserve identity claims for official databases.
- Never log or store full ID numbers without a legal reason; mask digits and restrict access when storage is unavoidable.
- Pair validation with stronger proof. For consequential checks, follow the checksum with an OTP or an official verification channel.
- Treat the province as a hint. Digits 2β5 reflect the registrar's office at registration, and people move.
- Use clearly fake specimens. Placeholders like 1-2345-67890-12-1 keep screenshots and demos free of real personal data.
- Validate early, keep a human in the loop. Check while the form is being filled in, and let the person confirm the digits.
Start Validating Thai IDs in Seconds
Thirteen digits are easy to mistype and just as easy to verify. Open the Thai ID Validator, paste any citizen ID, and get an instant verdict with the full per-digit calculation β privately, in your browser. Whether you are checking a form, testing an application, or learning the checksum, the answer is one paste away.
Related Tools You Might Like:
- IMEI Checker β validate 15-digit IMEI numbers with the Luhn checksum and decode the TAC.
- MRZ Parser β parse passport and ID machine-readable zones with their own check-digit rules.
- GTIN Validator β verify EAN, UPC, and ISBN barcode numbers with mod-10 check-digit math.
Validate the format, respect the person β and keep every number in your browser.
Frequently Asked Questions
Q: What algorithm does the Thai ID checksum use?
A: A MOD-11 scheme: digits 1β12 are multiplied by weights 13 down to 2, the products are summed, the remainder mod 11 is taken, and (11 β remainder) mod 10 must equal digit 13.
Q: Does a valid result mean the ID belongs to a real person?
A: No. The checksum only shows the digits are arithmetically consistent, and made-up numbers can pass. Confirming a registration requires the official database or an approved verification service.
Q: Is my ID number sent to a server?
A: No. The validator runs entirely in your browser, and the number is never uploaded, logged, or shared; the page even works offline after loading.
Q: Why does the displayed province not match the birthplace?
A: Digits 2β5 encode the registrar's office when the number was issued, not necessarily the birthplace. Registration can move, and births abroad map to their own codes.