Malaysia's Service and Sales Tax (SST) is precise—too precise to guess. A retainer billed monthly, a fixed-price project, and hourly work billed on deliverables each trigger different tax treatments, GL splits, and audit exposure. Get one wrong and your LHDN filing either triggers a desk audit or underpays tax you'll owe later with penalties. This guide maps the exact line-item structure, GL coding logic, and submission checklist that accounting firms and service teams use to pass LHDN scrutiny. Why SST line-item structure matters more than you think SST is charged at 6% on most service supplies, but the invoice line structure is what LHDN auditors trace first. A single invoice mixing retainer hours, reimbursable expenses, and software subscription fees can trigger three different tax codes and two GL accounts. If your accounting system doesn't split them, your invoice passes through to your client correctly, but your GL doesn't reconcile to the tax return—and auditors see that gap immediately. The core rule: every distinct service type or cost centre gets its own line item, its own tax code, and its own GL account . This isn't about making your invoice longer; it's about making your books auditable. Line-item structure: retainer, project, hourly Retainer model (monthly flat fee) Service description: 'Professional services—[service type] retainer, [month]' Quantity: 1 Unit price: retainer amount (pre-tax) Tax code: SST 6% (supply code: service) GL account: 4101 (Service Revenue – Retainer) Tax GL account: 2101 (SST Payable) A RM5,000 monthly retainer invoices as: RM5,000 (line), SST RM300 (6%), total RM5,300. The GL posts: DR Cash/AR RM5,300, CR 4101 RM5,000, CR 2101 RM300. Auditors expect this to repeat identically each month; variance flags discretionary adjustments. Project model (fixed-price, deliverable-based) Service description: '[Project name]—[deliverable], completed [date]' Quantity: 1 Unit price: agreed project fee (pre-tax) Tax code: SST 6% (supply code: service) GL account: 4102 (Service Revenue – Project) Tax GL account: 2101 (SST Payable) A RM15,000 project invoices as: RM15,000 (line), SST RM900 (6%), total RM15,900. GL: DR Cash/AR RM15,900, CR 4102 RM15,000, CR 2101 RM900. The key audit question: when was revenue recognized? On invoice, on delivery, or on payment? Your policy must match your GL date consistently. Hourly/time-and-materials model Service description: '[Resource name]—[task], [hours] hours @ RM[rate]' Quantity: hours worked Unit price: hourly rate (pre-tax) Tax code: SST 6% (supply code: service) GL account: 4103 (Service Revenue – Time & Materials) Tax GL account: 2101 (SST Payable) Example: 40 hours @ RM250/hour = RM10,000 (line), SST RM600 (6%), total RM10,600. GL: DR Cash/AR RM10,600, CR 4103 RM10,000, CR 2101 RM600. Auditors will cross-check hours against timesheets; missing or rounded entries here are audit red flags. Mixed invoice: all three in one bill This is where most teams slip. One invoice with a RM3,000 retainer line, a RM8,000 project deliverable, and RM2,000 in 30 hours of hourly support must split into three distinct line items: Line 1: RM3,000 retainer → GL 4101, SST RM180 Line 2: RM8,000 project → GL 4102, SST RM480 Line 3: RM2,000 hourly → GL 4103, SST RM120 Invoice total: RM13,000 + SST RM780 = RM13,780 Your AR subsidiary ledger now shows three balances; your GL shows three revenue lines. If you collapse these into one line, your tax return will show the total correctly (RM780 SST on RM13,000), but your GL won't reconcile to the invoice detail, and auditors will ask why. GL account structure and the SST reconciliation trap Most service firms run into trouble here: they post revenue to one account (4100 Service Revenue) and SST to one account (2101 SST Payable), then discover their invoices don't tie back to the GL. LHDN doesn't require sub-accounts, but they make audit survival much easier. Minimum GL structure: 4100-series (Revenue): 4101 (Retainer), 4102 (Project), 4103 (Hourly), 4104 (Reimbursable Expenses, if billed back) 2100-series (Payables): 2101 (SST Payable) Supporting accounts: 1150 (SST Receivable, if you claim input credit) Each month, your GL should reconcile to your invoice detail: sum of all Line 1 invoices = GL 4101 balance, etc. If they don't match, you have a data-entry error or a missing adjustment. The SST input-credit decision If you're GST-registered (rare for small service firms) or if you incur SST on subcontractors or software, you can claim input credit. This posts to GL 1150 (SST Receivable) and nets against 2101 (SST Payable) on your return. Example: Output SST (invoiced to clients): RM780 Input SST (paid on subcontractors): RM120 Net SST due: RM660 GL check: 2101 balance (RM780) less 1150 balance (RM120) = RM660 If your GL shows RM780 in 2101 and nothing in 1150, but your return claims RM120 input credit, auditors will ask for the supporting invoices. Have them ready. LHDN submission checklist: what they ask, what they ver