Which LHDN your new company is actually talking to — transcript
Play this as a presentation — one slide per step, with the same narration. Every word of every step is on this page.
This presentation is for whoever has just added a second or third company to the group and is about to switch e-invoicing on for it. In about ten minutes you will know which of LHDN’s two systems that company will submit to, and why the answer is not the one most people assume.
Step 1 — Find the field that decides the destination
After this step you will know where the decision is made. On the company’s E-Invoice tab there is a drop-down called LHDN Environment, with two values, sandbox and production. It sits between fields you will spend much longer on — the tax number, the address, the industry code — and it looks like an administrative detail. It is not. Every time BigLedger sends anything to the tax authority for this company, it reads that one field first, and it reads nothing else to decide where the message goes. The web address, the credentials and the token all follow from it.
Reference: Organization — Company E-Invoice tab
Step 2 — Understand what a blank field means
After this step you will treat an empty drop-down as a decision rather than an absence. A new company starts with that field empty, and empty does not mean unset or undecided. The code reads the value and, when it finds nothing, uses sandbox. So a company that has been given a tax number, an address and an enabled status, but never had the environment chosen, submits every document to LHDN’s test system. Nothing warns you. The company looks configured, because it is configured — just pointed at the wrong end of the country’s tax infrastructure.
Reference: Organization — Company E-Invoice tab
Step 3 — See why the mistake survives your own checks
After this step you will know why this one is worth being careful about rather than merely correct about. The sandbox is not a stub. It accepts the document, returns a status, issues a unique identifier and gives you a QR code, exactly as production does. Your e-invoice goes to Valid. It prints with a reference number. The customer’s copy looks right, your listing looks right, and your month-end reconciliation between sales and submitted e-invoices balances perfectly. Nothing on any screen in BigLedger tells you which environment a submission went to. The only way you find out is that the tax authority has no record of any of it.
Reference: MyInvois Setup Guide — Step 3: Choose the LHDN environment — before you turn anything on
Step 4 — Learn how the token is made, and why the TIN matters more than you thought
After this step the intermediary arrangement will stop being a black box. You never hold LHDN credentials. BigLedger holds one set, per environment, and uses them to ask LHDN for a token on behalf of your company — the request carries your company’s tax number in a header, and that number is the whole of your identity in the exchange. A scheduled job refreshes those tokens about every twenty minutes and keeps three per company per environment, so a token never expires under a submission. The practical consequence: a wrong tax number on the company record is not a validation error on a document. It is a token minted for somebody else.
Reference: My E-Invoice Admin Applet — Configuration
Step 5 — Tell the two failure messages apart
After this step you will save a day of the wrong diagnosis. When submissions stop, you get one of two messages, and they mean opposite things. Access token not available means the arrangement exists and the authorisation behind it has lapsed — you go back to the MyInvois portal and re-appoint BigLedger. No intermediary config found for this company in that environment means nothing was ever set up for the side you are pointing at, which is usually a company switched to production before anyone configured production for it. The first is your task; the second is a message to your BigLedger contact, and today fourteen enabled companies across the customer base are in exactly that state.
Reference: My E-Invoice Admin Applet — Configuration
Step 6 — Put the environment before the switch
After this step you have a rule that costs nothing and prevents a re-submission. Set the LHDN Environment to production, save, and only then set the e-invoice status to enabled. Doing it the other way round is not fatal, but every document finalised in the gap has to be found and pushed through again afterwards, and you will be finding them by date rather than by any status on the screen. Thirty seconds of proof when you are done: open the company, read the environment, and confirm it says production before you congratulate yourself on a Valid e-invoice.
Reference: MyInvois Setup Guide — What success looks like
Check yourself
Three to five questions on what you just heard. Every correct answer links to the page that makes it correct, so you can check the source, not just the mark.
Answer key
- To LHDN's sandbox, because a blank environment is read as sandbox — Organization — Company E-Invoice tab
- You would not — the sandbox returns the same statuses, identifier and QR code, so you check the environment field itself — MyInvois Setup Guide — Step 3: Choose the LHDN environment — before you turn anything on
- Your company's tax number, sent in a header when the token is requested — My E-Invoice Admin Applet — Configuration
- Nothing was ever configured for the environment the company is pointing at — My E-Invoice Admin Applet — Configuration
- Environment first, then status — documents finalised in the gap have to be found and pushed through by hand — MyInvois Setup Guide — Step 3: Choose the LHDN environment — before you turn anything on
Next: The fields on a new company’s E-Invoice tab that switch something on, and the four that do not · Back to the series · Play this as a presentation