International · Malaysia
Malaysia MyKad number checker.
Decode a 12-digit MyKad (NRIC) number: birth date, place-of-birth code and gender digit. Runs in your browser; nothing is sent.
How it works: A MyKad number has 12 digits in the layout YYMMDD-PB-###G. YYMMDD is the birth date, PB is a two-digit place-of-birth code, and the final digit G is odd for males and even for females. There is no check digit, so a pass only means the structure is plausible.
Inputs
Test values (not real people’s numbers):
Result
Enter a number and press Check.
How the Malaysia MyKad check works
A MyKad number has 12 digits in the layout YYMMDD-PB-###G. YYMMDD is the birth date, PB is a two-digit place-of-birth code, and the final digit G is odd for males and even for females. There is no check digit, so a pass only means the structure is plausible.
| Digits | Meaning |
|---|---|
| 1-6 | Date of birth as YYMMDD. The century is not stored, so 05 could be 1905 or 2005 |
| 7-8 | Place-of-birth code: 01-16 and 21-59 are Malaysian states and territories, 60 and above are other countries or groups |
| 9-11 | Serial digits |
| 12 | Odd for male, even for female |
Worked example, 770305-02-1234: 77 / 03 / 05 is 5 March 1977 (2077 would be in the future). Place code 02 is Kedah. The last digit 4 is even, so the gender digit reads female.
What this tool cannot tell you
JPN does not offer a public service that confirms whether a MyKad number was issued. Because there is no check digit, a plausible-looking number tells you nothing about who holds it. A passing result means the number is well formed. It does not mean it was issued, is current, or belongs to anyone. Official sources to use instead: National Registration Department (JPN).
Where each rule comes from
Not every issuer publishes its check rules. This table says, for each rule used here, who documents it and how firmly.
| Rule | Source | Status |
|---|---|---|
| 12-digit layout, date and place-of-birth fields, odd/even gender digit | python-stdnum my/nric documentation; Wikipedia, Malaysian identity card | Documented by third parties, cross-checked |
| Place-of-birth code list (01-16, 21-59, 60-99) | National Registration Department (JPN) code list as reproduced in python-stdnum's my/bp.dat. The JPN pages could not be machine-read when checked, so foreign-country groups are shown in the grouped form used there. | Documented by third parties, cross-checked |
| No check digit | Neither JPN nor the cross-checked implementations describe one | Documented by third parties, cross-checked |
Frequently asked questions
Does a MyKad have a check digit?
No. The number is a birth date, a place code and four serial digits. This tool can only test that the date is real and the place code exists.
How do I read a MyKad number?
The first six digits are the birth date as YYMMDD, the next two are the place of birth, and the last four include a gender digit: odd is male and even is female.
Why does the tool show two possible birth years?
The number stores only two digits of the year. Where both 19yy and 20yy are valid past dates, the tool lists both rather than guess.
Is it safe to type an IC number here?
The decoding happens in your browser and nothing is sent, stored or logged. Only enter numbers you are entitled to use.
Sources
- python-stdnum, stdnum/my/nric.py (retrieved 15 October 2026)
- python-stdnum, stdnum/my/bp.dat (place-of-birth codes, cites JPN) (retrieved 15 October 2026)
- JPN, place-of-birth code list page (retrieved 15 October 2026)
- Wikipedia, Malaysian identity card (retrieved 15 October 2026)
Format check only — not an official verification
This tool checks structure and, where a public algorithm exists, a check digit, entirely in your browser. It does not query any government register, and it cannot confirm that a number was issued or to whom. Nothing you type is transmitted, stored or logged.