Read the error and tell whose it is — transcript
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 you are looking at a failure message you do not recognise. Error text in e-invoicing comes from four different places, and each place tells you something different about what went wrong and who can fix it. In about ten minutes you will learn to tell them apart at a glance, and you will meet the handful of LHDN codes that, on the one customer we have measured, accounted for almost every rejection.
Step 1 — Recognise BigLedger’s own refusal
After this step you can read a held document’s message correctly. Open any row in a pool and you will find a Validation Error panel. What it contains is a list of fields: the supplier’s tax number is missing, the buyer’s address is missing, the contact number is missing. There is no code, and there is no message from LHDN, because LHDN was never asked. That is the signature of BigLedger’s own completeness check, and the panel is unusually kind — it names every field it wants rather than stopping at the first one. Work down the list, fill in all of them, and the document has a chance of going out. Fill in half and the same panel comes back shorter.
Reference: E-Invoice Validation Rules & Troubleshooting — The two kinds of failure
Step 2 — Recognise LHDN’s rejection
After this step you can read a rejection properly, including the part that is hidden. An Invalid e-invoice carries a Validation Error table, and each line of it has three parts: a code, the property the code is complaining about, and a message. The property is the half people ignore, and it is often the fastest route to the answer — a currency complaint pointed at the target currency property tells you where to look before you have decoded anything. Messages are frequently too long for the column and are cut off, so hover one to read it in full rather than guessing from the first few words. The code is the thing to write down; the next lesson sorts the codes into families.
Reference: E-Invoice Validation Rules & Troubleshooting — 1. Wrong currency setup on foreign-currency invoices
Step 3 — Recognise a failure to send
After this step you will stop hunting for a code that does not exist. When the send itself fails, the text lives on the submission queue row, in a field called the request error, and it is not an LHDN validation message at all. It reads like plumbing, because it is plumbing: a connection problem, a rejected call, or the message that the access token is not available. That last one means the authorisation you granted BigLedger on the MyInvois portal has lapsed or the process that refreshes it has stopped, and no amount of editing a customer will help. Remember too that this text is the only record of the attempt, because a failed submission writes nothing to Submission History.
Reference: My E-Invoice Admin Applet — Troubleshooting
Step 4 — Recognise a button turning you down
After this step you can tell a refusal from a rejection, which are easy to confuse because both appear as red text after you press something. BigLedger itself refuses certain actions and says so in plain sentences. Save and Resubmit is refused on an e-invoice that LHDN has already validated, telling you to cancel it first, and refused on a submitted one, telling you to wait for the validation response. Moving a large sale into the Batch Pool is refused because a transaction of ten thousand ringgit or more cannot be consolidated. A cancellation request is refused once seventy-two hours have passed since validation. None of these is a data error. Each is a rule, and the fix is to choose a different route.
Reference: My E-Invoice Admin Applet — 5. Fixing an Invalid e-invoice from To IRB E-Invoice
Step 5 — Read a code as a family, not as a number
After this step you will stop trying to memorise a code list and start sorting codes into families, which is what actually saves you time. Take one to see the shape. A rejection saying the identification number is not a valid national identity number is not really about the number: it is usually a foreign customer keyed as Malaysian, and it is fixed on the customer record rather than on the e-invoice in front of you. Every code works that way. It names a symptom and points at a record. There are five families of code, and one more family that produces no code of its own, your own company record. The next lesson walks all six, and the page below lists the codes so you do not have to hold them.
Step 6 — Remember what no error will ever tell you
After this step you know the limit of every message in this lesson. LHDN checks structure, identities and codes. It does not check your accounting. An e-invoice can pass every rule, come back Valid, carry a proper identifier and a QR code, and still be addressed to the wrong customer, priced wrong, or a duplicate of one you already sent. No validation error will ever be raised for any of that, because nothing is looking for it. That is why the month-end reconciliation exists alongside the Invalid list, and it is why a clean status column is necessary but not sufficient. Silence from LHDN means the document is well formed, not that it is right.
Reference: Validation and clearance — What it is not
How the steps fit together
flowchart TD
s1["Step 1 — Recognise BigLedger's own refusal"]
s2["Step 2 — Recognise LHDN's rejection"]
s3["Step 3 — Recognise a failure to send"]
s4["Step 4 — Recognise a button turning you down"]
s5["Step 5 — Read a code as a family, not as a number"]
s6["Step 6 — Remember what no error will ever tell you"]
s1 --> s2
s2 --> s3
s3 --> s4
s4 --> s5
s5 --> s6
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
- BigLedger's own completeness check — nothing was sent to LHDN — E-Invoice Validation Rules & Troubleshooting — The two kinds of failure
- Hover the message to see it in full — E-Invoice Validation Rules & Troubleshooting — 1. Wrong currency setup on foreign-currency invoices
- A rule BigLedger enforces — a validated e-invoice must be cancelled first — My E-Invoice Admin Applet — 5. Fixing an Invalid e-invoice from To IRB E-Invoice
- Access token not available, on the submission queue row's request error — My E-Invoice Admin Applet — Troubleshooting
- That its structure, identities and codes satisfied LHDN — nothing about your accounting — Validation and clearance — What it is not
Next: The error families and the record behind each · Back to the series · Play this as a presentation