Switch a company on for MyInvois: identity, environment, status
Steps 2 to 4 of the MyInvois setup guide: complete each company’s identity, point it at the real LHDN, and switch e-invoicing on, in that order. It follows Step 1, and Step 1 has to be finished first: the save that switches the company on is what records BigLedger’s side of the authorisation, and if the authorisation is not yet in place nothing is recorded and you find out at the first submission.
- Step 2: complete your company’s identity.
- Step 3: choose the LHDN environment, before you turn anything on.
- Step 4: turn e-invoicing on, before you finalise anything.
Step 2: Complete your company’s identity
Outcome: the supplier block of every future e-invoice is correct, because it comes from here.
Organisation Applet → your company → E-Invoice tab
Every sales e-invoice you send carries your own company as the supplier, built from this record. Fill in all of it:
- Tax number, identity document type and value, business registration number
- Service-tax number, if you are registered
- Industry classification code and a business activity description
- Address — line 1, city and state are all mandatory
- Contact number, 8 to 20 characters (a short number, or a field containing “N/A”, fails)
- E-mail address
The 8-to-20 rule and the three address parts are BigLedger’s own mandatory-field check, run on every document before it is sent, so they apply the same way to every company.
Repeat for each company. GadgetSphere does this three times, once per legal entity.
Step 3: Choose the LHDN environment — before you turn anything on
Outcome: your documents go to the real LHDN, not to its sandbox.
Organisation Applet → your company → E-Invoice tab → LHDN Environment
Set it to PRODUCTION.
A blank LHDN Environment means the sandbox. BigLedger reads this field once per submission and falls back to SANDBOX when it is empty — so a company enabled before choosing the environment submits every document to LHDN’s test system, provided a test-side configuration exists for it. The sandbox returns the same statuses and the same kind of LHDN unique identifier and QR code, so the documents read Valid and have been filed with nobody. Nothing on the sales document or the status column tells you which environment it went to. The one tell is the Validation URL on the e-invoice record (the link the QR code opens): a sandbox document’s link starts with preprod.myinvois.hasil.gov.my, a real one with myinvois.hasil.gov.my.
Set the environment first, then the status in Step 4. Getting the order wrong costs you a re-submission of everything that went to the sandbox.
The sandbox is also the one place you can rehearse a rejection
The paragraph above is a warning, and it stays a warning. But turn it round and it is also the only safe-practice facility in the product: a company pointed at the sandbox submits to LHDN’s pre-production system, gets back the same statuses, a unique identifier and a QR code of the same shape, and files nothing with anybody. So a rejection you cause there reads exactly like a real one, and you can learn to read it on a Tuesday afternoon instead of on the 7th.
Worth rehearsing, because each produces a different-looking failure and people confuse them: a customer with no tax number, a customer with a malformed one, a missing state code on the address, a contact number outside 8–20 characters, and a document over RM 10,000 with an incomplete buyer block.
What it costs you, stated plainly. The sandbox is free at LHDN’s end and not free at yours: the document you finalise is a real BigLedger document. It posts a journal, moves stock and takes a number in your sequence. There is no dry run — finalising is what starts the chain, and nothing in the product undoes that cleanly.
So rehearse on a company you have created for the purpose and have not yet put a real ledger into — before go-live, while an unwanted journal costs nothing. Do not point a live company back at the sandbox to try something out. Its submissions stop reaching LHDN, everything still comes back Valid, and only the Validation URL on each record shows where it went.
Two things have to be true for this to work at all: the company’s LHDN Environment must read the
sandbox value rather than being blank-by-accident, and the test-side intermediary configuration
must exist. If it does not, every submission fails with No intermediary config found for company with guid : … in SANDBOXenvironment
(the missing space is BigLedger’s) — and that is a request to your BigLedger contact, naming the
company and the environment (what to send).
When you are done, set the company back to PRODUCTION and re-check it. A blank field is the sandbox, not an error.
This field is also what decides which of the two intermediary configurations from Step 1 is used. If it is pointing at an environment with no configuration for your company, every submission fails with that same message, naming the environment — which is a different message from a lapsed authorisation, and means something different: nothing was recorded on that side at all.
Step 4: Turn e-invoicing on — before you finalise anything
Outcome: the company is enabled, so finalised documents actually enter the pipeline.
Organisation Applet → your company → E-Invoice tab → e-invoice status
Set the company’s e-invoice status to enabled and save. With the environment and tax number already filled in, this same save records BigLedger’s side of the Step 1 authorisation.
A document finalised while the company is not enabled is dropped silently. No queue row, no pool row, no error, no log entry. It simply never becomes an e-invoice, and nobody finds out until somebody reconciles the month and comes up short. Those documents then have to be found by query and pushed in by hand.
This is the single most consequential ordering rule in e-invoicing. Enable the company first, then start finalising.
The check happens once, at the moment of finalising, and it is not repeated later: switching the company on afterwards does not pick up what was finalised before.
Next: Steps 5 to 8, tidy the data and send the first document.
What success looks like for this part
On each company’s E-Invoice tab the identity is complete, with line 1, city and state on the address and a contact number of 8 to 20 characters; LHDN Environment reads PRODUCTION; and the e-invoice status is enabled. These are readiness checks: nothing on the tab shows whether a document was finalised before you enabled it, or whether the save recorded BigLedger’s side of the authorisation, and only the live document in Step 8 proves that. When the whole setup is done, run its success check.
Common mistakes in this part
| Mistake | What you see | Fix |
|---|---|---|
| Enabling the company before choosing the LHDN environment | Documents come back Valid and LHDN has no record of them, because they went to the sandbox; their Validation URL starts with preprod. | Set LHDN Environment to PRODUCTION, then re-submit everything that went to the sandbox |
| Finalising documents before enabling e-invoicing for the company | Those documents never appear anywhere in e-invoicing — no pool, no queue, no error | Enable first. For documents already lost this way, raise a support request with the document numbers |
The mistakes that span the whole setup are on the front page.
Related documentation
- MyInvois Setup Guide: the whole setup, with its success check.
- Organisation Applet: the company’s E-Invoice tab.
- My E-Invoice Admin Applet: every prerequisite, with the exact field and screen names.