Published by the Malaysian Communications and Multimedia Commission (MCMC) on the government's open-data portal, Malaysia's official postcode list names 2,930 postcodes in 2,932 rows, because two of them, 40160 and 71000, are each listed twice. In that list the first two digits of a postcode mark the state for every code but one: 34950, Bandar Baharu in Kedah, sits inside Perak's block of codes beginning 34.
Of the 100 possible two-digit openings, the list uses 86. The other 14 (00, 03, 04, 19, 29, 37, 38, 61, 65, 66, 67, 74, 92 and 99) carry no postcode at all.
State codes in the first two digits
We counted the MCMC postcode dataset, the edition with data as of June 2026, which the portal says is compiled yearly. Each state or federal territory holds one block of two-digit openings, or a few.
| State or federal territory | Codes on the list | Opening digits |
|---|---|---|
| Perlis | 79 | 01, 02 |
| Kedah | 159 | 05 to 09, plus 34950 |
| Pulau Pinang | 144 | 10 to 14 |
| Kelantan | 138 | 15 to 18 |
| Terengganu | 161 | 20 to 24 |
| Pahang | 211 | 25 to 28, 39, 49, 69 |
| Perak | 223 | 30 to 36 |
| Selangor | 276 | 40 to 48, 63, 64, 68 |
| Kuala Lumpur | 273 | 50 to 60 |
| Putrajaya | 73 | 62 |
| Negeri Sembilan | 155 | 70 to 73 |
| Melaka | 120 | 75 to 78 |
| Johor | 215 | 79 to 86 |
| Labuan | 25 | 87 |
| Sabah | 434 | 88 to 91 |
| Sarawak | 244 | 93 to 98 |
Some blocks hold a single code. 49000 is Bukit Fraser in Pahang, 60000 is in Kuala Lumpur, and 64000 is KLIA in Selangor. Neither MCMC nor Pos Malaysia, as far as we could find, publishes the two-digit rule as such; it is how the codes fall in the list, and how reference pages describe them.
Ownership of the system rests with MCMC
Section 57 of the Postal Services Act 2012 says that "The Commission shall be vested with the development, control, implementation, maintenance and management of the postcode and addressing system in Malaysia", and allows it to delegate those functions to the designated postal operator or anyone else it decides on. We did not find out whether it has.
The portal describes the list as one that "includes all recognized postcodes across Malaysia", aggregated from official postal service records, and adds that "Users should verify the current validity of postcodes for critical applications." Pos Malaysia's own postcode finder may recognise codes that are not on the list, so a code missing from the list is not on that ground alone invalid. The list is open under the Creative Commons Attribution 4.0 licence, which asks that it be credited.
The last three digits sit outside any published scheme
It is sometimes said that the later digits mark a town and then a delivery zone. We found no MCMC or Pos Malaysia source that says so, and the list itself shows no such pattern. Of its 584 three-digit openings, 89 hold more than one town; of its 397 town and state pairs, 139 run across more than one four-digit opening; and 1,668 of the 2,930 codes, 57%, end in a digit other than zero. That does not rule out an internal design at Pos Malaysia. It means the list cannot be read that way.
The answer from our lookup stops at the list
Until 2 October 2026, our Malaysian postcode lookup gave a green result to any five digits that began with a used pair, 86,000 strings in all, of which 2,930 are on the list. It described its data as public Pos Malaysia gazette data with no licensing concern, when it is MCMC's list under a licence that asks for credit, and it gave a reason for the unused blocks that no source supports. Its five-character input box also cut off "50 450" before the space could be removed. It now says "found" only for codes on MCMC's list, shows other codes as falling in a state's range without claiming them, credits MCMC, and accepts spaces and dashes.
For Singapore's six-digit system, see our guide to how Singapore postcodes work.
The errors in popular references cluster in three states
The Malay Wikipedia list of postcodes, in its revision of 24 September 2026, gives three blocks that the MCMC list does not bear out. It puts codes beginning 02 in Kedah, where the list's 13 such codes are all in Perlis; it puts codes beginning 39 in Perak, where the list puts every one in Pahang; and it gives Negeri Sembilan codes beginning 74, where the list has none.
Identical town names straddle state lines
The list holds 397 pairs of town and state, and seven town names appear in two states: Simpang Ampat in Perlis and Pulau Pinang, Ayer Hitam in Johor and Kedah, Kepala Batas in Kedah and Pulau Pinang, Serdang in Kedah and Selangor, Rantau Panjang in Kelantan and Perak, Jeram in Perak and Selangor, and Ulu Bernam in Perak and Selangor.