Skip to content
MyInvois Setup: Switch the Company On

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.

  1. Step 2: complete your company’s identity.
  2. Step 3: choose the LHDN environment, before you turn anything on.
  3. 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.

Get this wrong and every document fails at once, across every branch and every customer — because the fault is on the supplier side of every e-invoice you send. When you are troubleshooting later and no single customer looks wrong, come back and read this record again.

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

MistakeWhat you seeFix
Enabling the company before choosing the LHDN environmentDocuments 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 companyThose documents never appear anywhere in e-invoicing — no pool, no queue, no errorEnable 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

Last updated on