Managed ERP · Compliance

LHDN e-Invoice in 2026: where the phases actually landed, and what it means in Odoo

The e-Invoice timetable has moved more than once, and the current position is more forgiving than most businesses realise. It is still not a reason to leave it to December.

A hairline diagram of an invoice being validated and returned.

This summarises the position as at August 2026 and is not tax advice. IRBM has revised this timetable more than once. Confirm your own obligations against current IRBM guidance or with your tax agent before acting.

Where the phases actually landed

The rollout has been revised enough times that a lot of businesses are working from a superseded timetable. The current position:

PhaseAnnual turnoverIn force from
1Above RM100 million1 August 2024
2RM25 million – RM100 million1 January 2025
3RM5 million – RM25 million1 July 2025
4RM1 million – RM5 million1 January 2026
5RM150,000 – RM500,000Cancelled

Two changes matter more than the table. The exemption threshold was raised from RM500,000 to RM1 million with effect from 1 January 2026, and the planned Phase 5 cut-in of 1 July 2026 was cancelled outright. A large number of Malaysian micro-businesses that spent 2025 preparing are, for now, out of scope.

"Out of scope" is not "unaffected", and this is where businesses get caught. Your customers in Phase 1 to 4 need valid documentation from you, buyers may request a proper e-Invoice rather than a receipt, and you still need a TIN. Being exempt from issuing does not exempt you from participating.

The relaxation period, and how to read it

On 20 April 2026 IRBM extended the Phase 4 penalty-free relaxation by a further twelve months, from 31 December 2026 to 31 December 2027. During it, businesses in the RM1m–RM5m band may issue consolidated monthly e-Invoices instead of one per transaction.

One carve-out, and it catches people. The relaxation does not suspend the RM10,000 rule: any single transaction of RM10,000 or more requires its own individual e-Invoice, from 1 January 2026, regardless of the relaxation. If your business does a mix of small tickets and occasional large ones, you need the per-transaction path working from day one anyway — you just do not need it for everything.

Two ways to read that, and only one of them survives contact with a year-end.

The tempting reading: nothing needs to happen until late 2027.

The correct reading: you have been handed a low-stakes window in which to get it wrong. Consolidated monthly submission is dramatically easier to operate than per-transaction submission, and it exercises exactly the same plumbing — the same TIN data, the same classification codes, the same credentials, the same failure handling. Run it during the relaxation, find the problems while nobody is penalising you for them, and per-transaction becomes a change of frequency rather than a project.

The businesses that will struggle in 2028 are the ones that treat the relaxation as an extension rather than as a rehearsal.

What an e-Invoice actually is

Stripped of the acronyms, the mechanism is simple and its consequences are not.

An invoice is submitted electronically to IRBM's MyInvois system in a structured format. IRBM validates it and returns a unique identifier and a QR code. Only then is the document a valid tax invoice. The buyer can verify it independently.

The important consequence is the direction of the dependency. Previously your invoice was valid because you issued it. Now it is valid because IRBM validated it. Which means a failed submission is a failed invoice, and any process that lets a rejection go unnoticed will produce a month-end where the ledger and the tax position disagree.

The 55 required data fields — the number is stated in IRBM's own guideline, not estimated — are not individually hard. They are hard in aggregate because they demand your master data be correct — buyer TIN, business registration number, MSIC code, tax classification per line — and most companies discover at this point that theirs is not.

The four data problems, all of which are yours

Every e-Invoice implementation we have run has hit the same four, in the same order. None of them is a software problem, and all of them are found by software.

  1. Missing or wrong buyer TINs. Customer records created over years, by different people, with the field blank or holding a company registration number instead. This is the largest single task and it is a data-cleaning exercise, not an IT one.
  2. Classification codes nobody has ever set. Every line needs a classification. Products created before anyone had heard of MyInvois do not have one, and a default applied across the catalogue is a decision you are making about your own tax treatment.
  3. Documents that are not invoices. Proformas, delivery orders, deposit requests, credit notes and self-billed invoices each have their own treatment. Businesses that have been informally flexible about which document does what have to become formal about it.
  4. Consolidated versus per-transaction, for the retail end. A point-of-sale operation issuing hundreds of small receipts needs a deliberate consolidation policy, and it has to be the same policy the accountant assumes.

Budget the majority of an e-Invoice project to items 1 and 2. Any supplier quoting mostly for integration work has either done your data cleaning silently or has not looked at your data.

Doing it in Odoo

Odoo 18's Malaysian localisation covers MyInvois submission. The interesting decisions are operational rather than technical:

  • Where rejections surface. A rejected submission must appear in front of a named person the same day, with the reason. Our default is that rejections are an exception queue somebody owns, not a status field somebody might notice.
  • What happens at 4:55 pm on the last day of the month. Submission is a network call to someone else's service. It will time out at the worst possible moment. Retries, idempotency and a clear record of what has genuinely been accepted are the difference between an inconvenience and a reconciliation.
  • Who holds the credentials. They expire. On a zynAIR tenant, rotating them before they do is our job, and an expired credential discovered by a failed submission is our failure.
  • Where the QR code appears. The validated identifier and QR belong on the printed and emailed document, which means the report layout is part of the scope. If your reports are custom, they need touching.

The order to do this in

  1. Confirm which phase you are in, against current IRBM guidance and your actual turnover. Two of the businesses that asked us about this in 2026 were no longer in scope and did not know.
  2. Clean the customer master. TINs, registration numbers, addresses. Start now regardless of your phase; it is the long pole and it does not depend on any software decision.
  3. Set classification codes on the product catalogue. With your tax agent, not with a default.
  4. Decide your document taxonomy. Which document is an invoice, which is a proforma, how credit notes and self-billing work.
  5. Submit consolidated monthly during the relaxation, with individual e-Invoices for anything at RM10,000 or above. Cheap to operate, exercises both paths, and every failure found is free.
  6. Move to per-transaction before the relaxation ends, on a date you chose rather than one you ran out of.

If you are already on Odoo, most of this is configuration and data work rather than development. If you are not on any system, e-Invoice is a poor reason to buy an ERP on its own — but it is an excellent forcing function for the master-data discipline you were going to need anyway. Ask us where you actually stand.

Questions

Under the current framework, no. The exemption threshold was raised from RM500,000 to RM1,000,000 with effect from 1 January 2026, and the planned Phase 5 for businesses between RM150,000 and RM500,000 was cancelled. You may still receive requests for a valid e-Invoice from customers who are themselves in scope, and you will still need a TIN, so “exempt” does not mean “unaffected”. Confirm your own position against IRBM's current guidance before relying on it.

1 January 2026, under Phase 4 — but with a penalty-free relaxation period that IRBM extended on 20 April 2026 by a further twelve months, from 31 December 2026 to 31 December 2027. During the relaxation, businesses in this band may issue consolidated monthly e-Invoices rather than one per transaction — except that any single transaction of RM10,000 or more still needs its own individual e-Invoice. That limit is not suspended by the relaxation and applies from 1 January 2026.

Yes. Odoo 18 has Malaysian localisation covering MyInvois submission, and where a client's workflow needs more than the standard flow provides we extend it as a module rather than working around it in a spreadsheet. On a zynAIR tenant the submission path, the credential rotation and the failure handling are ours to operate.

The invoice is not valid for tax purposes until it is validated, so a silent rejection is an accounting problem that surfaces at month end. This is the single most important thing to get right operationally: rejections must be visible to a named person on the day they happen, with the reason attached — not discovered in a reconciliation three weeks later.

Have a version of this problem?

A technical review with the engineer who would do the work. No pitch deck, no discovery invoice.