Country deep dive
Malaysia's rollout works top-down by turnover tier, with a relaxation period running well past each tier's formal start date.
The largest taxpayers become the first mandatory cohort, establishing MyInvois as the national clearance platform.
Mid-large businesses join the mandate.
The mandate extends further down the turnover scale toward mid-sized companies.
A relaxation period (no penalties for submission errors) runs alongside this phase, extended to 31 December 2027.
Businesses below RM1 million individually but part of a related-company group at or above that threshold are captured regardless of their own standalone revenue.
Malaysia genuinely supports two serialisations of the same underlying UBL 2.1 structure โ pick whichever fits your stack, not a fixed single format.
Both XML and JSON carry the same UBL 2.1 data model โ choose based on what integrates more cleanly with your existing ERP, not a compliance preference.
Validation failures at LHDN fail closed โ the document is rejected outright rather than accepted with a warning, so getting these 55 fields right the first time genuinely matters.
Self-billed invoices are treated as a genuinely distinct document type set, not just a flag on the standard invoice type โ plan your integration accordingly if you use self-billing.
A business can and often does use both tracks simultaneously โ MyInvois for domestic compliance, Peppol for government procurement or international clients โ but they're genuinely different protocols requiring separate handling.
MyInvois is a genuine clearance platform: LHDN validates in real time and assigns identifiers before an invoice carries legal weight.
API submission is recommended for moderate-to-high invoice volumes โ it enables direct ERP integration and automated batch processing that manual portal entry can't match.
Don't reuse sandbox credentials in production or vice versa โ LHDN issues distinct client ID/secret pairs for each environment via the MyInvois developer portal.
On successful validation, MyInvois returns a UUID immediately and a Long ID once server-side validation completes โ build your status polling around both identifiers.
Trying to cancel outside this window returns an "OperationPeriodOver" error โ plan your correction workflow around credit/debit notes as the fallback path, not cancellation.
Getting API credentials is a genuine multi-step identity-verification process, not a self-serve signup.
Check your FY2022 audited accounts (or first available tax return) against the current turnover tier to confirm when your obligation actually begins.
Complete identity verification using your TIN and BRN (or NRIC for individuals), and apply for API access โ LHDN issues a client ID and client secret for the OAuth 2.0 flow.
Source this from a recognised Malaysian Certificate Authority โ every submitted document must be digitally signed.
Ensure your ERP or invoicing software can generate all 55 mandatory fields correctly, in either XML or JSON โ validation failures fail closed with no partial acceptance.
Use your separate sandbox credentials to validate the full submission โ validation โ status-polling flow before switching to production.
Sales needs to capture accurate TINs at the deal stage; finance needs a daily rejection-queue monitoring routine, since fixes need to happen fast within the 72-hour window.
Confirm whether being part of an RM1m+ group brings you into scope even if your own standalone revenue sits below that threshold.
Non-compliance ties back into Malaysia's general Income Tax Act framework rather than a standalone e-invoicing fine schedule.