Guide · 8 min
LHDN e-Invoice Phase 4 — the 12-point checklist
What every Malaysian SME needs in place before 1 Jan 2027 hard enforcement.
Why this matters
From 1 January 2027, every business invoice in Malaysia must be submitted to MyInvois for validation and receive a Unique Identifier Number (UIN). No UIN means the invoice is not legally recognised — it is not deductible, not claimable, and may attract penalties under the Income Tax Act 1967.
The 12 points
1. TIN registered. Your business TIN must be active in MyInvois portal. Verify via Tax Identification Search before testing.
2. ASP selected. Choose either direct API integration, an ASP (Authorised Service Provider) like ONSET, or manual portal entry. Direct API only economic above ~50K invoices/year.
3. Sandbox certificate issued. Production credentials require passing a sandbox UAT. Plan two weeks.
4. Customer master cleaned. Every B2B customer needs a TIN. Every B2C aggregate must use the generic consumer TIN (EI00000000010).
5. Product master mapped to MSIC codes. LHDN expects MSIC 2008 5-digit codes on every line. Mismatch causes auto-rejection.
6. Currency + rounding. MYR primary, conversion to 6dp where foreign currency. Bank-rounding (HALF_EVEN) not commercial rounding.
7. GST/SST treatment correct. Each line carries its own tax code. Mixed-rate invoices need per-line tax category.
8. Self-billed scenarios identified. Foreign supplier invoices that need self-billing (s.83A) are flagged separately.
9. Credit note / debit note workflow. Adjustments must reference the original UIN. Your accounting system must store UINs.
10. Validation gate before submission. Submit broken invoices = rejection rate spikes = manual rework. Use a pre-submit validator.
11. 7-year archive plan. Submitted documents + UINs + ack receipts retained for 7 years per s.82 ITA. Format-stable storage (PDF/A or signed JSON).
12. DR for outage windows. MyInvois has had multi-hour downtimes. Queue + retry logic mandatory. Manual portal fallback documented.
What ONSET Module E1 handles
Items 4-11 automatically. Item 12 via the WATCHDOG circuit-breaker. Items 1-3 are owner setup tasks — we provide a checklist but you must execute them yourself with LHDN.
Common rejection codes (top 5)
TXN-001 missing TIN · DOC-014 invalid MSIC · CUR-008 rounding mismatch · TAX-022 tax category mismatch · DOC-009 invalid date format. See /modules/E1/rejections for the live count.