Skip to content
Trace One Document to LHDN

Did this invoice reach LHDN? Trace one document from FINAL to LHDN

Someone has asked you “did that invoice reach LHDN?”. Usually it is a customer who wants the validated e-invoice, sometimes an auditor who wants last month’s submissions in a file. By the end of this page you will have found the document’s e-invoice record and read its status. You will also know which of four answers to give: it is valid and here is the proof, it was rejected and is being fixed, it has not been sent yet, or it is inside a consolidated e-invoice. Allow about five minutes the first time and one minute after that.

Why each record exists, and what it holds, is explained in E-Invoice Submission Mechanics. This page is the job.

Meet GadgetSphere

GadgetSphere Distribution Sdn Bhd (GSD) issued 310 invoices to corporate buyers in March 2026, each submitted individually. A buyer’s accounts team writes in: they never received the validated e-invoice for invoice GSD-INV-2603-0187, RM 18,400, dated 12 March. Their auditor will not accept the invoice without it. That is the document we trace.

Before you start

  • Access to the My E-Invoice Admin applet, with Internal Submission → To IRB E-Invoice and Submission History.
  • Your own document number, not the e-invoice’s. The e-invoice record has a running number of its own; you search by Doc No, which carries your invoice number.
  • Who is asking, and what they need. A customer needs the validated e-invoice or its LHDN reference. An auditor usually needs a month’s list. Ask before you start, because the last step differs.

Step 1: Look at the document first

The document tells you whether an e-invoice record exists at all.

The document’s own applet, e.g. Sales Invoice → the invoice → its To IRB fields.

A walk-in cash bill is usually reported inside a consolidated e-invoice and has no record of its own. If the document is a cash bill and Step 2 finds nothing for it, go to Step 3.

Open GSD-INV-2603-0187. If its To IRB reference is filled in, a record exists: go to Step 2.

If it is blank, BigLedger has built no record and sent nothing, and the invoice is waiting somewhere before LHDN:

  1. Check the three pools in My E-Invoice Admin. An invoice to a corporate buyer whose TIN was never captured waits in the Individual Pool, and nothing moves it from there but a person.
  2. If it is in no pool, compare dates: was the company switched to ENABLED after this invoice was finalised? A document finalised while its company was not ENABLED never entered e-invoicing, and switching the company on later does not pick it up. Switch the company on, then ask BigLedger support to push the document into e-invoicing, giving them the company code and the document numbers.

The mistake to avoid: telling the customer “it is with LHDN” because the invoice is FINAL. FINAL is your side; a blank To IRB reference means LHDN has never seen it.

Step 2: Find the record and read its status

The status says which of the four answers you will give.

My E-Invoice Admin → Internal Submission → To IRB E-Invoice.

Search Doc No GSD-INV-2603-0187 and read the status:

StatusWhat it meansWhat you do
ValidLHDN accepted it. The validation link and QR code are on the recordWhere the buyer block has an e-mail address and the company sends e-mail to buyers, the customer’s copy went out from the printable queue. The Email Dashboard shows whether it went. To send it again, use Resend Email, a tab the record shows once it is Valid
InvalidLHDN rejected it, and its reasons are in the record’s validation responseFix the cause, then Save and Resubmit. That puts the same record back in the queue (Validation rules)
IN_QUEUEBigLedger holds the record and LHDN has not seen itNot an error on its own. Still there the next day: open its row under My E-Invoice Admin → Individual Submission, read Request Error, fix the cause, select the row and press Submit. Nothing retries it for you. If the error is a timeout or a lost connection, look the document up on the MyInvois portal first: the earlier attempt may have reached LHDN, and a second one would send it twice
SubmittedLHDN has the payload and has not given its verdict yetPress Refresh on the record if it has read Submitted for days (what each status means)
CancelledA rejection request succeeded: the e-invoice no longer stands at LHDNTell the customer, and send the replacement document’s e-invoice once it is valid (Cancel and correct)

For our invoice the record reads Valid, and the Email Dashboard shows the e-mail was sent on 13 March. Resend it from the record’s Resend Email tab, and put its LHDN reference in your reply as well, in case the first e-mail was filtered on the buyer’s side.

The mistake to avoid: pressing Save and Resubmit on a Valid record to “send it again”. It is refused, and it is the wrong tool: resubmitting is for a rejected record, and the e-mail is resent from the record’s own tab.

Step 3: If it is a cash bill, find the consolidated e-invoice it is inside

A walk-in receipt usually has no e-invoice of its own, and the answer is the consolidated one.

My E-Invoice Admin → Monthly Report → Discrepancies Report → a consolidated line.

A GS cash bill will not have its own record. Its Doc No leads to a match-link row, one per receipt inside a consolidated e-invoice. That row names the consolidated e-invoice the receipt was reported in. Open the consolidated line in the Discrepancies Report drill-down to see the receipts inside it. Whoever works with the API can look the receipt up in the link records directly.

The customer gets the consolidated e-invoice’s LHDN reference, not one of their own. If they need an individual e-invoice now, the route is in The shopper who comes back for their own e-invoice.

Step 4: Read what was sent

The submission history is the proof of what LHDN accepted.

My E-Invoice Admin → Internal Submission → Submission History.

Search the same Doc No. The request body is the exact payload BigLedger sent, and the response is LHDN’s exact answer. This is the row to quote when you open a ticket with LHDN or with BigLedger support.

Only a successful submission writes a history row. If the record still reads IN_QUEUE the next day and has no history row, it has not been accepted. The reason is on its Individual Submission row, as Request Error, which is where Step 2 sent you.

Step 5: Hand over the answer, and keep a copy

BigLedger stops at the record. Choosing what to send, and to whom, is your part of the job.

  • A customer: send the validated e-invoice (the record’s printable, with its QR code), or its LHDN unique reference number. If it was rejected, say so, and say when the corrected one will go.
  • An auditor, for a month: filter To IRB E-Invoice to company GSD and March, open the Export tab, choose CSV (or PDF for the printables, zipped), and wait for the row to show DONE. Download it from the row. Each export kind runs one job at a time, so a second click while the first builds is refused with a message. The CSV carries the LHDN document identifier and unique reference number. The validation link is not a column: it is on each record.
  • A wrong invoice LHDN has already validated: cancelling is possible only within 72 hours of the validation time stored on the record. Read that time first; after it, the correction is a credit note (Cancel and correct).

The CSV shows each record as it is now, so a record cancelled later reads Cancelled even if it was Valid at month-end. If what was true on a given day matters, export on that day and file the copy with the request.

What success looks like

Take yesterday’s largest individual invoice. In under a minute you open its record from Doc No, the status reads Valid, the validation link on the record opens LHDN’s page for it, and the latest Submission History row for it is the submission the record holds. Take one cash bill from last month: you can name the consolidated e-invoice it is inside and give its LHDN reference.

Common mistakes

What people doWhat actually happensDo this instead
Search To IRB E-Invoice by the e-invoice’s running number, expecting the invoice numberThey are different numbers, so nothing matchesSearch by Doc No
Fix the customer’s TIN and wait for the e-invoice to updateNothing updates: the record is a frozen copy taken when it was builtSave and Resubmit on the pool row or the rejected record
Search Submission History for a failed sendNothing to find: a failed attempt writes no history rowOpen its Individual Submission row and read Request Error
Search Submission History for a document still in a poolNothing to find: the document has not been sentSearch the pools (Step 1)
Give an auditor last month’s CSV exported today, as the month-end positionRecords cancelled since then read CancelledExport on the day that matters, and keep the file

Related documentation

Last updated on