lhdn e-invoicing myinvois compliance malaysia

How to Prepare for LHDN E-Invoicing in 2026: A Practical Guide for Malaysian SMEs

Step-by-step guide to LHDN MyInvois e-invoicing for Malaysian small and medium businesses. Covers timeline, mandatory data fields, sandbox testing, and integration options.

By IntBooks Team

TL;DR — LHDN’s MyInvois e-invoicing rollout is in its third and final phase as of January 2026. Every Malaysian business with annual turnover above RM 150,000 is now in scope. This guide walks you through what an e-invoice actually contains, when you need to start submitting them, and how to integrate with the MyInvois portal — either through a certified service provider, your own ERP, or the LHDN portal directly.

If you’ve been putting off LHDN e-invoicing, this is the article for you. The good news: it’s not as complicated as the official PDFs make it sound. The bad news: the deadlines have already passed for most businesses, and continued non-compliance can result in fines of up to RM 20,000 per offence under the Income Tax Act 1967.

Here’s what you actually need to know in 2026.

What is LHDN MyInvois e-invoicing?

MyInvois is the Inland Revenue Board of Malaysia’s (LHDN) centralized platform for structured electronic invoices. An e-invoice is not a PDF emailed to a customer — it’s a machine-readable XML or JSON document submitted to LHDN’s system in real time, validated against tax rules, and assigned a unique identification number (UIN) before it can be used for tax purposes.

The goals from LHDN’s perspective:

  • Real-time tax visibility — every B2B and B2C transaction above the SST threshold flows through one ledger.
  • Reduced fraud — issuer and recipient TINs are validated against the LHDN database at issue time.
  • Eliminated paper — invoices, credit notes, debit notes, and refund notes all live in a single digital trail.

How do I file e-invoices in IntBooks?

If you’re using IntBooks, e-invoicing is built into the AR/AP module. When you create an invoice from the dashboard:

  1. Pick a customer with a validated TIN (or add one — the SSM/TIN validator runs automatically).
  2. Add line items with the correct SST classification.
  3. Click “Submit to MyInvois”. The system signs the payload, sends it to LHDN’s API, and waits for validation.
  4. The returned UIN and QR code are stored on the invoice and exposed to your customer via the customer portal.

There’s no toggle to enable. The integration is on by default for organizations that have completed onboarding.

What’s the deadline for my business?

LHDN’s three-phase rollout was based on annual turnover:

PhaseAnnual turnover thresholdMandatory date
1RM 100 million and above2024-08-01
2RM 25 million – RM 100 million2025-01-01
3RM 150,000 – RM 25 million2026-01-01

Businesses below RM 150,000 annual turnover are exempted indefinitely as of the latest LHDN guidance (subject to revision). If you’re above the threshold and still not submitting, you are non-compliant today.

What goes on an e-invoice?

A valid LHDN e-invoice has 55 mandatory fields (the original spec had 53; LHDN added two more in late 2025). The most important ones:

  • Issuer: TIN, name, SSM number, address, MSIC code, contact
  • Recipient: TIN (validated), name, address — for B2C transactions, a generic consumer TIN can be used
  • Document: invoice number, issue date/time, currency code, exchange rate (if not MYR), document type (invoice, credit note, debit note, refund note, self-billed)
  • Line items: description, classification code (LHDN’s product/service codes), quantity, unit price, subtotal, SST/discount, total
  • Tax: SST rate per line, total tax amount, total amount payable
  • Reference: original invoice UIN (for credit/debit/refund notes)

Missing any mandatory field = LHDN rejects the submission with a validation error.

How do I submit?

Three options, in order of practicality:

If you already have accounting software, see if it has a MyInvois adapter. Most modern Malaysian-focused ERPs do. You create the invoice in your normal workflow and the software handles signing, submission, polling, and storage of the UIN.

IntBooks works this way out of the box.

Option 2: Certified service provider

If your ERP doesn’t support MyInvois, you can route invoices through a Peppol Access Point or LHDN-certified middleware (a list is published on the LHDN website). You upload your invoices, they sign and submit on your behalf, and you receive the UIN back. Cost is typically RM 0.10 – RM 0.50 per invoice.

Option 3: MyInvois portal (manual)

The LHDN MyInvois portal supports manual invoice creation through a web form. This is only practical for businesses issuing under 50 invoices per month — you’ll burn out copy-pasting line items. There’s also a CSV upload mode that’s slightly faster.

Common mistakes when starting out

I’ve onboarded dozens of small businesses to MyInvois. The same mistakes come up:

  1. Forgetting to validate the customer TIN before saving the invoice. Validation happens at submission time; if the TIN is wrong, the invoice gets rejected and you can’t easily edit it.

  2. Using the wrong MSIC code for your business. Your MSIC is on your SSM registration. It’s a 5-digit code that determines which classifications are valid on your invoice line items. Pick the wrong one and your line classifications get rejected.

  3. Treating credit notes as new invoices. A credit note must reference the UIN of the original invoice it cancels. Without the reference, LHDN treats it as a new sale and you double-count revenue.

  4. Submitting in batches at end-of-month. MyInvois enforces a 72-hour submission window from invoice issue date. Issue an invoice on the 1st, you must submit by the 4th. Backdated submissions get flagged.

  5. Not testing in the sandbox first. LHDN provides a free sandbox environment at preprod.myinvois.hasil.gov.my. Run at least 20 test invoices through it before going live in production.

What about credit notes, debit notes, and refunds?

These work the same as invoices but with different document type codes:

  • Invoice01
  • Credit note02 (negative value, references original invoice UIN)
  • Debit note03 (additional charge on top of an existing invoice)
  • Refund note04 (cash refund, references original invoice UIN)
  • Self-billed invoice11 (when the buyer issues the invoice on behalf of a supplier — common in agriculture and freelance services)

All five types must be submitted to MyInvois within 72 hours of issue.

What if my invoice is rejected?

LHDN returns a structured error with one of ~30 standard error codes. The most common:

  • MV-001 — TIN does not exist or is invalid
  • MV-007 — MSIC code does not match issuer registration
  • MV-014 — invoice total does not equal sum of line items + tax
  • MV-021 — referenced UIN does not exist (for credit/debit notes)
  • MV-029 — submission outside 72-hour window

Fix the error and resubmit. There is no penalty for rejection — only for non-submission within the window.

What changes for B2C transactions?

B2C invoices (selling to consumers) use a generic recipient TIN (EI00000000010) and don’t require the buyer’s name or address on the invoice itself. You still need to submit, but the validation is lighter. POS systems typically aggregate B2C sales into a daily summary invoice and submit one document per day per terminal.

How does this interact with SST-02?

E-invoicing and SST-02 are separate but related. MyInvois captures every transaction; SST-02 is the monthly summary return filed by SST-registered businesses. Once you’re on MyInvois, your SST-02 filing becomes mostly automatic — every taxable supply is already in LHDN’s system.

We have a dedicated guide on SST-02 filing that walks through how to reconcile your MyInvois submissions with your SST-02 return.

Ready to start?

If you’re a Malaysian SME above the RM 150,000 threshold:

  1. Confirm your TIN is registered with LHDN (most existing taxpayers already have one).
  2. Apply for a MyInvois portal account at myinvois.hasil.gov.my — takes about 5 working days for approval.
  3. Generate API credentials if you’re integrating with software.
  4. Test in the sandbox with at least 20 invoices covering your most common scenarios.
  5. Switch to production and start submitting from your next billing cycle.

If you’d like to see how IntBooks handles all of this end-to-end without writing a single line of code, request closed-beta access. We’re currently inviting eligible Malaysian SMEs ahead of the public launch — MyInvois integration is included on every plan, including the free tier.


Last updated: 8 April 2026. This article reflects LHDN guidance current as of the date above. LHDN has revised the e-invoicing rules multiple times since the 2024 launch — always check the official MyInvois portal for the latest schema and field requirements.