Malaysia's e-invoicing system confuses newcomers because it is two architectures stacked: a mandatory clearance layer and an optional exchange layer. Once you see the seam, everything else falls into place.
Layer one: MyInvois clearance
Every in-scope invoice must be submitted — via the MyInvois API or portal — to LHDN (the Inland Revenue Board), which validates it and issues a Unique Identifier Number (UIN). Until that happens, there is legally no invoice. This is classic CTC clearance, the same family as Saudi Arabia's FATOORA.
Layer two: Peppol exchange
Delivery of the cleared invoice to the buyer can happen any way the parties like — but the structured, automatable route is Peppol, using the PINT MY profile with the LHDN UIN carried inside the payload. MDEC acts as Malaysia's Peppol Authority and accredits Peppol Service Providers. So: clearance is mandatory, Peppol is the professional way to move what's been cleared.
How the rollout actually went
- 1 Aug 2024 — turnover > RM100M;
- 1 Jan 2025 — RM25–100M;
- 1 Jul 2025 — RM5–25M;
- 1 Jan 2026 — up to RM5M.
Each phase carried a six-month relaxation period allowing consolidated invoices. In December 2025 the Cabinet raised the exemption threshold to RM1M annual turnover, cancelling the previously planned July 2026 final phase — micro-businesses are out, everyone else is in. And since 1 January 2026, any transaction above RM10,000 requires an individual e-invoice; no consolidation.
The stakes
Section 120(1)(d) of the Income Tax Act 1967 prices non-compliance at RM200–RM20,000 and/or up to six months' imprisonment per offence — and each invoice can be a separate offence. Meanwhile the system is no pilot: the IRB reported in February 2026 that 200,000+ taxpayers had issued over one billion e-invoice transactions.
What service providers should automate
The operational pain lives in the seam between the layers: embedding UINs correctly in PINT MY payloads, deciding consolidated-vs-individual treatment per transaction (especially around the RM10,000 rule), and handling LHDN rejections gracefully so finance teams see actionable errors rather than API noise. This is exactly what the Malaysia rule-pack in PeppolBridge does — one submission from the client ERP, clearance and exchange both handled.
Onboarding the Malaysian long tail?
SQL Account, AutoCount, Sage UBS, custom systems — 7 days each, clearance and Peppol included.