Every business registered in Malaysia must declare at least one MSIC code for its primary economic activity. The code is more than a statistical tag — it drives SSM record-keeping, LHDN tax classification, SST treatment, e-Invoice categorisation, sectoral licensing, and eligibility for incentives such as Pioneer Status. This guide is a decision framework for choosing the right code on day one. For background on what MSIC actually is, see our overview MSIC code guide.
Step 1 — describe what the business does, not what it sells
Many founders pick a code based on the product. MSIC classifies by activity. A company that manufactures shoes is in division 15 (leather products); a company that imports and resells the same shoes is in division 46 (wholesale); a company that sells them online is in 47911 (retail via internet). The primary code is the one that describes how the business earns revenue.
Step 2 — navigate the 5-level hierarchy
MSIC codes are hierarchical:
- Section (letter A–U) — broad sector.
- Division (2 digits) — major industry group.
- Group (3 digits) — specific industry group.
- Class (4 digits) — detailed classification.
- Item (5 digits) — what you actually register with SSM.
SSM requires a 5-digit item code. Filing at division or class level (2 or 4 digits) is sometimes accepted by the system but creates problems later — particularly in MyInvois, which expects the 5-digit form on every invoice line.
Step 3 — read the "includes" and "excludes" lists carefully
Every code in MSIC 2008 has a written scope. Most also list explicit exclusions that point to the alternative code. Three common traps:
- Software: custom development is 62010; SaaS as a service is generally 63110 (data processing/hosting); an app studio that also runs ads against its own product is in 58200 (software publishing).
- Restaurants vs catering: fixed-premises is 56101; event catering is 56210. Central kitchens that do not serve directly may fall under food manufacturing (division 10).
- Online retail vs marketplace: 47911 covers a retailer selling its own goods online. Operating a third-party marketplace is closer to 63120 (web portals) combined with a commission-based intermediary code.
Step 4 — primary vs secondary codes
SSM allows multiple MSIC codes per company, with the first declared being the primary activity. The primary code determines:
- The default LHDN business code for tax classification.
- The default SST treatment.
- Sector-specific eligibility (Pioneer Status, MD Status, etc.).
- Bumiputera participation rules (for distributive trade).
Secondary codes are recorded but do not drive these defaults. Register secondary codes only if you have genuine separate revenue streams. Over-registering creates compliance friction — every code carries its own potential licensing, SST, and reporting implications.
Step 5 — verify against the licensing landscape
Some codes carry mandatory sectoral licences. Before locking in:
- Manufacturing codes (sections 10–33): if you cross the ICA 1975 thresholds (≥ RM 2.5M shareholders' funds or ≥ 75 FTE), a Manufacturing Licence is required.
- Wholesale/retail (sections 45–47): foreign-equity companies need KPDN distributive trade approval.
- Construction (sections 41–43): CIDB registration required.
- F&B (section 56): Food Premises Licence + JAKIM halal — see our halal certification guide.
- Financial services, education, healthcare, telecoms: sectoral regulator licences (BNM, MOE, MOH, MCMC) on top of MSIC.
Step 6 — match the foreign-equity rules
Foreign founders must confirm the chosen code does not sit under a cap. The full matrix is in our foreign equity rules guide — covering wholesale, retail, oil and gas, financial services, telecoms, and education.
Common mistakes to avoid
- Picking too broad a code (a 2- or 4-digit one). SSM accepts it at registration but downstream systems will reject or downgrade.
- Confusing manufacturing with retail. If you import finished goods and resell them, you are in division 46/47, not in sections 10–33.
- Picking a prestigious-sounding code that does not match what you do. LHDN cross-references your declared activity against actual revenue patterns.
- Forgetting to update. Pivots happen — if the business model changes substantively, update SSM. Outdated codes cause e-Invoice rejections and tax assessment mismatches.
- Over-registering secondary codes "just in case". Each carries its own potential SST, licensing, and reporting obligations.
Worked examples
- A SaaS company serving restaurants: primary 63110 (data processing, hosting and related) or 62010 (computer programming). Not 56 (the restaurant code) — your activity is software, not food service.
- A direct-to-consumer fashion brand selling online and in its own pop-up shop: primary 47911 (online is the main channel); secondary 47711 (retail of clothing in specialised stores).
- A consulting firm advising on supply chain: primary 70200 (management consultancy); consider secondary 74909 (other professional activities) only if substantive non-management revenue exists.
- A bakery with retail counter: depends on volume — if production is the primary revenue, division 10; if walk-in retail dominates, 56101.
Once you have a shortlist of codes, use the MSIC search tool on the homepage to inspect each code's description and inclusions, then confirm with your company secretary before lodging the SSM Section 14 form.
Sources: Department of Statistics Malaysia (DOSM) — MSIC 2008 Version 1.0; SSM.
Get help with MSIC code selection
Talk to our Malaysia setup specialists. One-business-day response, no obligation.