Skip to content
Pools: Working Each Pool

E-Invoice Pools: What You Can Do in Each Pool, and the Questions That Come Up Most

Part 3 of Pools and E-Invoice Submission Routing: what you can do with a document once it is in a pool, and the questions that come up most. It follows How a finalised document is routed, which says which pool a document lands in and why.

Before you press anything in the Batch Pool: most red rows there are waiting for the monthly run, and Process or Save and Resubmit marks a row processed whether it succeeds or fails, which takes it out of the run. And Move To Batch Pool refuses a sales invoice or cash bill of RM 10,000 or more (“Cannot move transaction with amount more than or equal to 10000.”): get that buyer’s tax number instead. At GadgetSphere, with 22 branches of walk-in receipts, that is most of the pool.

  1. What you can do in each pool
  2. Frequently asked questions

What you can do in each pool

The routing table says which pool a document lands in; Pools and queues says why the three behave differently. What follows is what you can actually do once a document is in one.

Batch Pool

Fix the buyer’s data and resubmit the receipt as an individual e-invoice; move it to the Individual or Single General pool; consolidate on demand (by date range, by branch, or by selected documents); or skip e-invoicing for the document. Most rows need none of this — they are waiting for the monthly run and that is correct.

Individual Pool

Complete the buyer details and resubmit. If you cannot obtain the buyer’s details at all, move the document to the Batch Pool so it is consolidated instead — and do it in the first days of the following month. The automatic run keeps taking last month’s Batch Pool rows on every firing until that month is over, so a row you move on the 3rd is still picked up, but it has to be consolidated and submitted by the 7th to be on time; and once the following month has ended the row is outside the run’s window, and only the manual Consolidate button will take it. (Since 13 October 2026 a document that did get an individual e-invoice record which LHDN then rejected — Invalid, or still IN_QUEUE because LHDN refused it when it was sent — is swept into the Batch Pool by the next consolidation run for its month when it is under RM 10,000 and a sales document, and reported under the General Public buyer. A record that has not been sent yet is left for the submission run, and a pooled document that never got a record is not touched.)

Single General Pool

Fix and resubmit as individual; if that submission fails or comes back Invalid, resubmit the document as a single-document consolidated e-invoice with Resubmit as New E-invoice on the e-invoice record; or move it to another pool. This pool exists for sales where the buyer’s data is unlikely ever to arrive but you still want one individual attempt first. Note that every one of those is something you do: like the Individual Pool, this one waits indefinitely and nothing in it moves on a schedule.

Pool comparison

Batch PoolIndividual PoolSingle General Pool
Default outcomeAuto-consolidated monthlyWaits for youWaits for you
Fix & resubmit as individual✅✅✅
Move to another pool✅✅✅
Fallback to consolidatedAutomatic (scheduled)Manual (move to batch); automatic for a record LHDN rejected or refused, under RM 10,000, once its month has ended — the consolidation run sweeps it (since 13 October 2026; never for a record not yet sent)Manual (Resubmit as New E-invoice, after a failed individual attempt), or the same automatic sweep for a record LHDN rejected or refused
Skip e-invoice✅✅✅

All pool actions are performed in the My E-Invoice Admin Applet.

Frequently asked questions

A customer wants an individual e-invoice for a receipt that’s already in the Batch Pool — what do I do? Find the document in the Batch Pool, complete the customer’s TIN/ID and address, and use Save and Resubmit. It leaves the batch and is submitted individually. This works any time before the receipt has been consolidated.

What happens if I can’t get a buyer’s TIN at all? For a local buyer, an individual e-invoice can still be issued with the General Public TIN plus a valid NRIC (see General TINs); failing that, move the document to the Batch Pool and let it be consolidated. For a foreign buyer neither route is open: no General TIN is substituted for a passport, and pushing the receipt into the batch misreports it: both consolidation runs file a row with no tax number under General Public. The buyer’s real tax number is the only way that sale reaches LHDN as theirs.

A customer is asking us for an e-invoice for a receipt from last week — do we have to key it ourselves? Not necessarily. Your buyers can do it themselves through the My E-Invoice Portal: the customer finds their own receipt, fills in their tax number, identity and address, and submits. Their details land on your customer record and the pooled receipt is ready for you to complete with Save and Resubmit. For a 22-branch retailer this is the difference between chasing details and having them arrive. It does not work for a receipt that is already inside a validated consolidated e-invoice — that needs a cancellation inside 72 hours, or a credit note.

A document shows “skipped” — is that a problem? Skipping is a deliberate action for documents that must not be e-invoiced (for example, when the counterparty issues the e-invoice instead). A sale that already carries the skip flag at FINAL is also recorded in a matching queue, so it can be paired later with the e-invoice the counterparty issued, provided your company runs that job; a sale you skip later from a pool row is not recorded there. See Incoming Supplier E-Invoices for what that pairing can and cannot reach. Skipping removes the document from the report’s ERP Transaction Summary, but not from the Document vs E-Invoice Discrepancy tab, where it is still listed as missing — so a document skipped by mistake still turns into a question at month-end. Skipping is not a way to get rid of a sale that did not happen. It stops the e-invoice and nothing else: the revenue, the stock movement and the amount owed all stay in your books. Correct the sale itself, as the month-end guide sets out. A voided sale is on neither side of the report, because both sides read FINAL sales only. That is why a sale voided after its e-invoice went out leaves a Valid e-invoice with nothing behind it.

I fixed a Batch Pool row and resubmitted it, and it failed. Will the consolidation still pick it up? No — and this is the one that catches people out, though not for the reason most people think. It is not the “failed” that strands it, it is the “processed”. Most rows in a healthy Batch Pool are unprocessed and failed: they are there because they could not have been individual e-invoices, the Validation Error lists the buyer details you do not have, and the consolidation run never reads that column. What takes a row out of the run is Process or Save and Resubmit, which mark it processed whether they succeed or fail. So filter on process status, not on red. Then either fix the customer record and Save and Resubmit again — which can now succeed and produce an individual e-invoice — or, if you simply want the receipt back in the monthly batch, use Move to Individual and then Move To Batch Pool from the Individual Pool. Nothing resets a row; that pair replaces it with a fresh unprocessed one.

What success looks like for this part

The Individual and Single General pools are empty, or every row in them has someone chasing the buyer’s details; and every Batch Pool row you pressed Process or Save and Resubmit on either became an individual e-invoice or went back through Move to Individual and Move To Batch Pool as a fresh unprocessed row. When you are done, run the whole page’s success check.

Common mistakes in this part

  • Assuming a pooled document will sort itself out. Only the Batch Pool empties itself, and only for last month. The Individual and Single General pools wait for you indefinitely, and nothing ages a row or warns you it is old. (One clock can e-mail each company a list of its Individual Pool rows whose submission failed, but it is not among the clocks BigLedger installs, so on a default tenant no such e-mail arrives.) BigLedger does contain five processors that could move these rows for you: four of them can be put on a schedule, and nothing puts them on one for you; the fifth cannot be scheduled at all and runs only when somebody calls its endpoint, one branch at a time. So the capability exists, but it does nothing until a clock is added for it. The listing in the Scheduler applet shows whether a schedule with one of these codes exists on your tenant and whether it is ACTIVE; if you do not have that applet, ask support. Plan for manual.
  • Pressing Process on a screen full of red rows to tidy them up. They were going to be consolidated. Process runs the individual check, the check fails for the same reason it failed the first time, and the row is marked processed — you have just taken it out of the run, and there is no button that puts it back.

Next: The monthly consolidation cycle.

Last updated on