Skip to content

E-Invoice & PEPPOL Guides

“I finalised the invoice and nothing was submitted to LHDN.” It is the sentence most e-invoice questions start from, and the answer is nearly always behind the screen: finalising only queues the work, and scheduled background runs route the document, send it and collect LHDN’s verdict afterwards. This page sends you to the guide for the situation you are in today — a rejection, a validated mistake, the week between the 1st and the 7th, a supplier’s e-invoice, or a first company going live — and names who owns each part of the job.

Find the guide for the situation you are in

You are…Open
New to e-invoicing, and want to know what LHDN requires and whyWhat Malaysia Requires, then what goes on an e-invoice
Bringing a company onto MyInvois for the first timeMyInvois Setup
Deciding which sales go to LHDN one by one and which wait for the monthPools & Submission Routing
Looking at an e-invoice that has not moved, with no error anywhereUnderstanding E-Invoice Statuses
Asked “did that invoice reach LHDN?” by a customer or an auditorTrace One Document to LHDN
Asking “LHDN rejected it. Where do I find out why?”Validation Rules & Troubleshooting
Somewhere between the 1st and the 7thThe Month-End Cycle
Asking “I submitted a wrong invoice and LHDN has already validated it. Can I cancel?”Cancelling & Correcting an E-Invoice
Holding an e-invoice one of your suppliers issued to youIncoming Supplier E-Invoices
Asked by a trading partner to deliver over PEPPOLPeppol Configuration, after MyInvois is running
Reading “LHDN requires…” on a page and wondering how current it isThe LHDN guideline versions this wiki cites
Planning for a business shape: a distributor, a retail chain, self-billingE-invoicing use cases

Three ideas recur in every guide above, each with a short page: consolidated e-invoices, pools and queues, and validation and clearance.

PEPPOL runs beside the LHDN path, not after it; set up MyInvois first, because tax compliance requires it.

What happens after you press Finalise

What happens after you finalise a documentA finalised sales or self-billed purchase document enters the posting queue. BigLedger then routes it on its submission type, its amount and whether the mandatory fields are complete: incomplete documents are held in the Individual, Single General or Batch pool, complete ones go to the submission queue, and Batch Pool documents are swept into the monthly consolidation by the 7th. The submission queue and the consolidation both call LHDN MyInvois, one document per call, and LHDN returns Valid or Invalid.You finalise a sales documentPosting queueSubmission type · amount · mandatory fieldsPools — held, not sentSubmission queueMonthly consolidationLHDN MyInvoisInvalidValidor a self-billed purchase documentqueued, not sentone document per LHDN callby the 7th · buyer is General Publicvalidates, then answersfix the record, then Save and ResubmitQR code, printable e-mailed to the buyerIndividual Pool — buyer details missingSingle General Pool — one attempt firstBatch Pool — waiting for consolidationheldcompleteSave and Resubmit

Each stage after Finalise is a separate run on a clock, so a document can sit at any point while nothing on your screen changes. A document finalised while its company’s E-Invoice Status is not ENABLED gets no record, no pool row and no error — so switch each company on before anyone finalises a sale. The stages, the three pools and the RM 10,000 rule are in Pools & Submission Routing; what each status means, and the moment it was copied, in Understanding E-Invoice Statuses and the module page.

Who does what, before anyone opens a screen

Write the names down before go-live; most of what goes wrong is one of them not knowing the job was theirs.

And who approves a cancellation, and who covers on leave: nothing advances a request on a schedule, and the server refuses it 72 whole hours after LHDN validated the e-invoice.

When it goes wrong

SymptomRead
“I finalised the invoice and nothing was submitted to LHDN”Statuses — waiting, parked in a pool, failed, or the company was not ENABLED
“LHDN rejected it”: the record reads InvalidValidation — correct the record itself and Save and Resubmit, and the customer record too
Every submission fails at onceMyInvois Setup — the intermediary authorisation, or the tenant’s one token-refresh clock
A validated e-invoice is wrongCancel & correct — inside 72 hours of LHDN’s validation time, not the invoice date
Last month’s Batch Pool rows still unprocessed on the 3rdMonth-end, Step 5
A walk-in comes back for their own e-invoiceThe shopper who comes back
Your buyer says they rejected an e-invoice and nothing changedCancel & correct — a rejection on the MyInvois portal is not a request in BigLedger
A PEPPOL document did not arrive, or was turned downPeppol Configuration — read the outbound queue first

What must exist first is on the module’s configuration page; why the three status screens disagree is in Understanding E-Invoice Statuses and the My E-Invoice Admin applet.

What success looks like

Per company: the E-Invoice Status reads ENABLED, the e-invoice clocks read ACTIVE in the Scheduler, yesterday’s documents read Valid, the Individual and Single General pools are empty or every row is being chased, and after the 7th last month’s consolidated e-invoices read Valid. The exact clock codes and the morning routine are under How you know e-invoicing is actually working. If the status or the clocks fail, nothing else will work until they are fixed.

Read next

New to e-invoicing: read What Malaysia Requires, then MyInvois Setup. Already live: read The Month-End Cycle before your next 1st. The architecture is on the E-Invoice & PEPPOL module, and the purchase side on the Purchase Invoice applet.