The MyInvois Portal is the free web portal LHDN provides for issuing e-invoices. You can create an e-invoice on a form, submit it for validation and manage the validated document without connecting your own software. It also holds your taxpayer profile: the people who can act for your business, any system you connect, and any service provider you appoint.
There is no separate MyInvois sign-up. You reach it by logging in to MyTax, and the first hurdle for most businesses is not the portal itself but the MyTax role that makes their company appear inside it. This guide covers that, then the day-to-day work: submitting, batch uploading, finding documents afterwards, and fixing the things that commonly go wrong.
Getting in for the first time
Most "I can't access MyInvois" problems are really "my role isn't approved yet". The portal opens under your own name immediately; your business only appears once the right role is active in MyTax.
- Step 1
Get a MyTax account
Log in with your NRIC or passport number. No account yet? Activate one on MyTax before anything else. - Step 2
Apply for the role
Apply in MyTax for the role that matches your business type, and wait for it to be approved and active. - Step 3
Open MyInvois
With the role active, open the MyInvois Portal from MyTax. - Step 4
Switch taxpayer
Click the profile icon at the top right, choose Switch Taxpayer, and pick your business. - Step 5
Activate the profile
The first time you open the business profile, you are asked to activate it. Do this once.
Which role you apply for
| Role | Who it is for | How you get it |
|---|---|---|
| Business Owner | An individual running a sole proprietorship | Applied for in MyTax |
| Company Director / Organization Administrator | Every other category — companies, partnerships, co-operatives and so on | Applied for in MyTax |
| Estate Administrator | Someone managing the estate of a deceased person | Applied for in MyTax |
| Business Owner Representative | Staff or an agent acting for a sole proprietor | Appointed by the Business Owner in MyTax |
| Company Director / Organization Administrator Representative | Staff or an agent acting for a company | Appointed by the Director or Administrator in MyTax |
Two things catch businesses out here. First, a change of director is not automatic: the outgoing Company Director or Organization Administrator has to terminate their role before the new one's application can go through, and when that happens all existing representatives must be reappointed in MyTax. Second, before a Business Owner appoints a representative, LHDN expects the business and employer information to already be in order in its records — if those details are stale, fix them first.
Production and sandbox are two separate portals
LHDN runs a testing environment alongside the live one. They are genuinely separate systems, and this surprises people who assume a practice run carries over.
| Production | Testing (sandbox) | |
|---|---|---|
| Where you log in | mytax.hasil.gov.my | preprod-mytax.hasil.gov.my |
| What submissions are | Real e-invoices with legal effect | Practice only |
| What happens to the data | Stored in LHDN's records | Test data only, never migrated to production. The Portal FAQ (Question 2) says information submitted in the portal testing environment is not stored in the HASiL database and does not migrate to production. Separately, the SDK's Integration Practices say data in the API sandbox is retained for a maximum of three months and then permanently deleted. These are two statements about two different testing environments, not one storage rule — treat anything in either as temporary, not as a permanent record |
| Role application | Applied for separately | Applied for separately |
| User guide | myinvois.hasil.gov.my/content | preprod.myinvois.hasil.gov.my/content |
You apply for the role in each environment separately. Having access to production does not give you the sandbox, and vice versa. Practise in the sandbox until a submission validates cleanly, then repeat the setup in production.
What you can do in the portal
The portal covers two areas: your profile and your documents.
Profile management — activate and edit the business profile, appoint user representatives and set what each of them may do, register an ERP system, appoint an intermediary, set the email addresses that receive notifications, upload a company logo and customise the printed layout.
Document management — create and submit e-invoices, credit notes, debit notes and refund notes; save drafts; view, search and export documents; cancel your own documents; reject documents issued to you; and use Print for documents submitted manually through the portal.
One useful detail if you have been reading about API integration: submitting through the portal needs no digital certificate of your own. The portal handles signing. For API submissions, signing and certificate requirements depend on the document version and arrangement.
Submitting an e-invoice
The flow is the same whichever document type you are issuing:
- Create a new document and choose the type — invoice, credit note, debit note or refund note.
- Fill in the supplier and buyer details. Yours come from the profile; the buyer's have to be right, because LHDN validates them.
- Add the line items, with classification codes, tax type and amounts.
- Save as draft or submit. A draft can be edited; a submitted document goes to LHDN for validation.
- Check the outcome. Validation happens in near real time and the result appears against the document.
The 55 MyInvois fields explains what each field expects and which are genuinely mandatory. If a submission comes back rejected, common MyInvois rejection errors works through the validation messages one by one.
Batch upload: many invoices at once
Batch upload lets you submit a set of e-invoices by filling in LHDN's pre-defined Excel spreadsheet and uploading it. The template is downloaded from the batch upload pop-up in the portal itself, and you can rename the file to suit your own filing.
The spreadsheet has four worksheets that must be completed: Documents, DocumentLineItems, LineItemsTaxes and DocumentTotalTax. In the Documents worksheet, TotalNetAmount is technically optional — fill it in anyway. Leaving it blank is what causes documents to show as "Document Not Available" in the portal afterwards.
Two sets of limits, and they are not the same
| Limit | Applies to |
|---|---|
| 100 documents per Excel file, 25MB total | The batch upload file you prepare |
| 100 draft documents uploaded at once | One batch upload action |
| 1,000 draft documents per taxpayer at any time | Everything sitting in your drafts |
| 100 e-invoices, 5MB per submission, 300KB per e-invoice | MyInvois system limits for a single submission (Specific Guideline section 3.6.4; Submit Documents API) |
These are separate figures. The 25MB and the 100-document file limit belong to the Excel file you upload, as LHDN's MyInvois Portal FAQ states (Questions 25 and 26). The 5MB and 300KB figures are MyInvois system limits for a submission of structured documents. LHDN's published documents do not spell out how the two interact when drafts created from a spreadsheet are submitted, so allow for both.
If a month's invoices exceed these, split them across several files or submissions.
When rows fail
After upload, the portal shows which documents passed and which failed. Accepted ones become drafts — review them and submit. Failed ones have to be corrected in the spreadsheet and re-uploaded.
Two things make this less painful. Validation stops at the first error in a document, so fixing one problem can reveal the next; work through them rather than assuming one pass is enough. And errors are reported by position using a zero-based index — Invoice[0] is the first invoice in the file, Invoice[1] the second. Before uploading, delete any formatted-but-empty rows from the template; they are a common cause of a file being rejected as invalid or corrupt.
Drafts created by batch upload can be edited in the portal before you submit them, but it is faster to get the spreadsheet right than to fix twenty drafts by hand.
Finding documents afterwards
The Documents menu has two search functions, with different windows:
| Function | What it searches | Window |
|---|---|---|
| Search Recent Documents | Documents sent or received recently | 10 days at a time, within the last 31 days |
| Search All Documents | Everything, with filters to narrow it down | 31 days at a time, within the past 2 years |
A few practical limits worth knowing before you plan your month-end routine:
- Export is capped at 100 documents from the Documents menu.
- Print only works for documents submitted through the portal. For an e-invoice submitted through an ERP system or API, the PDF comes from the supplier, not the portal.
- Copy as Draft — reusing a previous document as the basis for a new one — appears only for documents that were submitted through the portal or mobile app.
- Times can look wrong if you compare routes. The portal displays Malaysia Standard Time; batch upload and API submissions record UTC, eight hours behind. The same document can appear to carry two different timestamps depending on where you look.
Cancelling and rejecting
Both are document actions in the portal. As the supplier you cancel a document you issued; as the buyer you reject one issued to you, which asks the supplier to cancel it.
The timing is what matters, and it is strict: 72 hours from validation. The 72-hour cancellation window covers how the countdown works and what to do once it has passed — after that, corrections go through a credit, debit or refund note instead.
Representatives, ERP systems and intermediaries
The Representatives section of the View Taxpayer Profile page is where you decide who else can act for the business. There are three kinds.
People
User representatives are appointed in MyTax, then their permissions are set in the MyInvois Portal under Edit Permission, in the User Representatives section of View Taxpayer Profile. Viewing documents is always enabled; everything else is granted deliberately:
Document — Submit · Cancel · Reject · Taxpayer — Edit Profile Information · Manage Person Representatives · Manage ERPs · Manage Intermediaries · Edit Visual Templates · Notifications — View · Intermediary — View Companies Summary Data.
Grant only what someone needs. Submitting and cancelling are separate permissions for a reason.
ERP systems
If software will submit on your behalf using your own credentials, register it under Representatives → ERP. The portal issues a Client ID and Client Secret, and there is no limit on how many systems you register. You can regenerate the credentials from the same tab if they are ever exposed — treat them like a banking password, because anyone holding them can submit e-invoices in your name.
What those credentials are actually for — authentication, signing and the submission flow — is covered in the MyInvois API.
Intermediaries
An intermediary is a service provider you authorise to submit on your behalf under their credentials rather than yours. Three rules are easy to trip over:
- Only businesses can be intermediaries. An individual taxpayer cannot register in their own name.
- An intermediary cannot be deleted once registered. To end the relationship, edit the intermediary and set the Representation To date — that stops further activity while preserving the historical record.
- "Blocked" means inactive, not banned. The status is cleared by updating the taxpayer profile and toggling Register as Intermediary.
Which route you choose — portal only, your own ERP credentials, or an appointed intermediary — is a setup decision worth making before you start submitting, because it determines who holds credentials and who is accountable when something fails.
The mobile app
MyInvois has a mobile app for iOS, Android and Huawei devices, giving you the portal's functions on a phone. Activate your profile in the portal first — the app works against a profile that already exists. Documents submitted from the app can be reused with Copy as Draft, the same as portal submissions.
When something goes wrong
Email notifications are not arriving. Notifications go only to the addresses set in the Taxpayer Profile — not the address on your user profile, and not the ones typed into a document. Separate multiple addresses with semicolons, keep the whole entry under 250 characters, and whitelist @myinvois.hasil.gov.my and @hasil.gov.my with your email provider. Check the spam folder before assuming the portal is at fault.
"You have been blocked." Note the URL, your IP address and the time, then report it through the e-Invoice feedback form, which the MyInvois Portal FAQ (Question 38) directs this error to. The form is LHDN's channel for e-Invoice enquiries, and the help desk line and other official channels are on the MyInvois contact page.
"Taxpayer not found" when adding an intermediary. Check the intermediary's name exactly as registered, along with the TIN, BRN and company name. Confirm the company is actually registered as an intermediary. Note that the pre-production environment uses its own company naming convention, so details that work in production may not match there.
A submission fails validation. That is a different class of problem, and the messages have specific meanings — common MyInvois rejection errors covers them.
Is the portal enough for your business?
The portal provides the core functions needed to submit and manage e-invoices. Its cost is your time: each e-invoice is entered separately from your accounts, and customer and product details are managed alongside rather than inside your books. That is fine at low volume and starts to hurt as volume climbs or the same customers recur.
The MyInvois portal versus third-party apps sets out that decision properly. In short: the portal suits businesses issuing a small number of invoices each month, or anyone who needs to check the e-invoices issued to them. Finvo is being developed to connect invoicing and accounting with MyInvois, so businesses can work with those records in one workflow. Check current access and features during rollout.
Whichever you choose, the portal stays part of the picture: it is where your profile, representatives and credentials live.
Official help
- MyInvois Portal User Guide — myinvois.hasil.gov.my/content, and the sandbox guide for the testing environment
- MyInvois Portal FAQs — LHDN's own question list, updated periodically
- Contact LHDN — the MyInvois contact page for the help desk line and live chat, and the e-Invoice feedback form for enquiries and the "You have been blocked" error
- LHDN e-Invoice microsite — hasil.gov.my/en/e-invois for the guidelines themselves
The guidelines are revised often. Check anything you rely on against the current version rather than an older summary — including this page.
Related guides
- What is MyInvois? — the system behind the portal, and how the portal, API and app fit together
- E-invoicing in Malaysia: a complete guide — whether the requirement applies to you, and from when
- LHDN e-invoice compliance: requirements and checklist — getting your TIN, business data and customer records ready before you submit
- The 55 MyInvois fields — what each field expects
- The 72-hour cancellation window — cancelling and rejecting in time
- Common MyInvois rejection errors — when validation fails
