Skip to content
Tax codes, SST and what LHDN actually sees · presentation 1 of 5 · for the whole-system operator — you run the books Read the transcript · Back to the series

These slides need JavaScript to advance one at a time. Without it every slide is shown below, one after another, each with its own player — or read the transcript, which carries the same steps and every word.

Tax codes, SST and what LHDN actually sees · presentation 1 of 5

The taxable type LHDN receives is arithmetic

You can say where the tax type on a submitted e-invoice line actually comes from — recomputed from the line's tax amount rather than…

Two fields with the same name

Step 1 — Find the field everybody assumes is the answer

You will know which of two similarly named things you are looking at.

Screen capture pending the demo tenant

Doc Item Maintenance, an item open on its E-Invoice tab, with the Taxable Type Code drop-down showing

Step 2 — Watch the value be replaced

You will know what actually happens at submission.

Where this step sits
    flowchart TD
  s1["1. Find the field everybody assumes is…"]
  s2["2. Watch the value be replaced"]
  s3["3. Name the one case where your…"]
  s4["4. Check the rule against what was…"]
  s5["5. Understand why so many amounts are…"]
  s6["6. Decide where to look when one…"]
  s1 --> s2
  s2 --> s3
  s3 --> s4
  s4 --> s5
  s5 --> s6
  classDef here fill:#1e40af,stroke:#1e40af,color:#ffffff,font-weight:bold;
  class s2 here;
  

Step 3 — Name the one case where your choice survives

You will know the exception, and it is narrow.

Where this step sits
    flowchart TD
  s1["1. Find the field everybody assumes is…"]
  s2["2. Watch the value be replaced"]
  s3["3. Name the one case where your…"]
  s4["4. Check the rule against what was…"]
  s5["5. Understand why so many amounts are…"]
  s6["6. Decide where to look when one…"]
  s1 --> s2
  s2 --> s3
  s3 --> s4
  s4 --> s5
  s5 --> s6
  classDef here fill:#1e40af,stroke:#1e40af,color:#ffffff,font-weight:bold;
  class s3 here;
  

What the submitted data says

Step 4 — Check the rule against what was actually sent

You will trust the rule rather than take it on faith.

Where this step sits
    flowchart TD
  s1["1. Find the field everybody assumes is…"]
  s2["2. Watch the value be replaced"]
  s3["3. Name the one case where your…"]
  s4["4. Check the rule against what was…"]
  s5["5. Understand why so many amounts are…"]
  s6["6. Decide where to look when one…"]
  s1 --> s2
  s2 --> s3
  s3 --> s4
  s4 --> s5
  s5 --> s6
  classDef here fill:#1e40af,stroke:#1e40af,color:#ffffff,font-weight:bold;
  class s4 here;
  

Step 5 — Understand why so many amounts are zero

You will know why not applicable dominates.

Where this step sits
    flowchart TD
  s1["1. Find the field everybody assumes is…"]
  s2["2. Watch the value be replaced"]
  s3["3. Name the one case where your…"]
  s4["4. Check the rule against what was…"]
  s5["5. Understand why so many amounts are…"]
  s6["6. Decide where to look when one…"]
  s1 --> s2
  s2 --> s3
  s3 --> s4
  s4 --> s5
  s5 --> s6
  classDef here fill:#1e40af,stroke:#1e40af,color:#ffffff,font-weight:bold;
  class s5 here;
  

Where to fix it

Step 6 — Decide where to look when one is wrong

You will stop fixing this in the wrong place.

What you do
  1. Fix the rate on the line and the type follows

NarrationSlide 1 of 10

Left and right arrows, or the space bar, move between slides; f is full screen and Esc leaves it. Clicking the left or right half of a slide pages it. Play and pause belong to you — nothing moves on by itself unless you tick the box above.