Skip to content
What runs for you, and what never will — transcript

What runs for you, and what never will — transcript

Presentation 5 of 6 in Self-billed e-invoices: reporting what your supplier will not · about 13 minutes · for the whole-system operator — you run the books.

Play this as a presentation — one slide per step, with the same narration. Every word of every step is on this page.

This lesson is for you if you run the books at GadgetSphere and want to know how much of self-billing you are doing by hand for no reason. Quite a lot, as it turns out. But the second half matters more: there are three places in this pipeline where nothing runs, nothing retries and nothing warns you, and four company settings that look like controls and are not. About thirteen minutes, and no screens to fix.

Step 1 — Stop keying self-billed documents anywhere else

After this step you know where the manual work actually ends. Once a supplier is flagged and their E-Invoice tab is complete, finalising the purchase document is the last thing a person does. Nobody opens the MyInvois portal. Nobody re-types the purchase into a second system. Nobody presses a self-billed button, because the supplier record already decided that. From the moment you press Final, a trigger fires, and it proceeds only if four things hold: the company is enabled for e-invoicing, the document type is one that can carry a self-billed e-invoice, the skip flag is off, and no active queue row already exists for the same document number.

Reference: My E-Invoice Admin Applet — 1. Entry gate (trigger processor, at FINAL)

Step 2 — Let the pipeline build and send the document

After this step you can describe the whole chain to a colleague without naming a screen. A scheduled processor assembles the e-invoice from the purchase document, your company and the supplier record, runs the mandatory-field check, and either queues the document or pools it. A submission processor then drains that queue and sends the payload to LHDN, writing a history row when LHDN accepts it. A third processor polls LHDN for the verdict and writes it back onto the record — submitted, then valid or invalid, with the LHDN identifier and the exact validation time. And underneath all of it, a token processor renews the authorisation about every twenty minutes, without which none of the others can reach LHDN at all.

Reference: My E-Invoice Admin Applet — 4. Submission, validation and e-mail (cron)

Step 3 — Let it find a missing tax number for you

After this step you will stop chasing registration numbers you do not need to chase. There is one piece of master-data repair that happens by itself, and it is worth knowing about because it is invisible. When a document is worth ten thousand or more, the party’s identity type is a business registration number, and the tax number is blank, the processor searches LHDN for that tax number before it decides anything. If it finds one, it writes it back in three places: onto the entity record, onto the document, and onto the e-invoice header. So a supplier who was incomplete this morning can be complete this afternoon without anyone editing anything. It only covers that one shape.

Reference: My E-Invoice Admin Applet — 2 posting queue to irb or a pool cron e_invoice_generic_document_to_irb_processor

Step 4 — Let the failures come to you instead

After this step you can stop opening the admin applet to find out whether anything went wrong. Three things arrive without anyone looking at a screen, and you should find out from your BigLedger contact which of them are switched on for your tenant and where they are addressed. A processor e-mails a spreadsheet of the failed individual-pool transactions for each company. A standing sweep looks for finalised documents that never entered the pipeline at all and e-mails a digest when it confirms one — which matters here, because a skipped self-billed purchase appears on no e-invoice screen anywhere. And last month’s discrepancy report can be generated and e-mailed automatically for every company with e-invoicing on.

Reference: My E-Invoice Admin Applet — 4. Submission, validation and e-mail (cron)

Step 5 — Read the verdict off the screen that is current

After this step you will not be reassured by a stale one. When you do want to look, look at To IRB E-Invoice, which carries the live status one row per e-invoice, and use its Export tab if you would rather work in a spreadsheet. Do not build your picture from Submission History. That screen records what each submission looked like at the moment it was sent, so it reads Submitted forever, including for a self-billed document that LHDN rejected an hour later. A list built there is short, clean and wrong, and the rejections it hides stay hidden until somebody reconciles months afterwards.

Screen: To IRB E-Invoice filtered to last month with the status column sorted, showing self-billed purchase rows beside sales rows

Reference: The Month-End E-Invoice Cycle (1st to 7th) — Step 4: Pull the export that shows live status

Step 6 — Know the three places where nothing runs

After this step you know what your own standing habits have to cover. First, a pooled self-billed document waits for a person indefinitely; nothing ages it and nothing warns you it has been there since March. Five processors exist that could move pool rows, and measured across ninety tenant databases they were configured on exactly one, so assume manual unless support tells you otherwise. Second, nothing re-drives a queued row: the retries-remaining figure is written once and never counted down, and the one processor that revisits failed rows takes the newest first, so an old one can wait forever. Third, the ghost digest has no screen — the e-mail is the only notice.

Screen: the Individual Pool listing, with self-billed purchase rows among the sales rows and no ageing or oldest-row column anywhere on it

Reference: My E-Invoice Admin Applet — 3. Pools — what the buttons do

Step 7 — Stop trusting four switches that control nothing

After this step you will not spend an afternoon on four settings that do not do what their names say. Each company’s E-Invoice tab carries four of them: Disable Consolidated Self Billed Submission, Disable Consolidated Submission, Disable Single General Submission, and Enable High Sales Value Validation — the one whose name sounds least like the others and controls just as little. None of the four stops anything. Nothing in the backend reads them. They are read only by the document applets, where they remove values from the Submission Type drop-down for that company. So they explain a submission type missing from a list; they do not stop a processor, and they do not change routing already decided. Send Email To Buyer, on the same tab, is the one the backend genuinely reads.

Reference: Organization — Company E-Invoice tab

How the steps fit together

    flowchart TD
  s1["Step 1 — Stop keying self-billed documents anywhere else"]
  s2["Step 2 — Let the pipeline build and send the document"]
  s3["Step 3 — Let it find a missing tax number for you"]
  s4["Step 4 — Let the failures come to you instead"]
  s5["Step 5 — Read the verdict off the screen that is current"]
  s6["Step 6 — Know the three places where nothing runs"]
  s7["Step 7 — Stop trusting four switches that control nothing"]
  s1 --> s2
  s2 --> s3
  s3 --> s4
  s4 --> s5
  s5 --> s6
  s6 --> s7
  

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.

1. After you finalise a flagged purchase invoice, who sends it to LHDN?


2. A self-billed document worth RM 24,000 names a supplier with a registration number and no tax number. What happens?


3. What tells you a self-billed document has been sitting in the Individual Pool since March?


4. You switch on Disable Consolidated Self Billed Submission for a company. What stops?


5. A self-billed submission row has shown "5 retries remaining" for a week. What will happen to it?


Answer key
  1. A submission processor drains the queue and sends it; another polls LHDN for the verdictMy E-Invoice Admin Applet — 4. Submission, validation and e-mail (cron)
  2. The processor searches LHDN for the tax number and writes it back onto the supplierMy E-Invoice Admin Applet — 2 posting queue to irb or a pool cron e_invoice_generic_document_to_irb_processor
  3. Nothing — the pool waits indefinitely, which is why you look at it on a scheduleMy E-Invoice Admin Applet — 3. Pools — what the buttons do
  4. Nothing at all — the switch only removes a value from the Submission Type drop-downOrganization — Company E-Invoice tab
  5. Nothing dependable — the figure is never counted down, and old failed rows can be starved by newer onesMy E-Invoice Admin Applet — Troubleshooting
This is a self-check. Your answers are marked in your browser and stay there — nothing is sent anywhere, nothing is recorded, and the marking is readable in the page source, so it is not a credential. Open the answer key at any time.

Next: The traps, and proving the month · Back to the series · Play this as a presentation

Last updated on