tax-sst2026-07-20

2026 Malaysian Service Tax (SST 8%) Invoicing, Credit Notes & SST-02 Reporting

A 2026 Malaysia guide to 8% and 6% Service Tax invoicing, credit-note adjustments, accounting entries, and SST-02 working-paper controls.

GetPay Engineering Team
Updated: 2026-09-13

TL;DR (Key Takeaways)

  • Malaysia's 8% Service Tax is not a universal SST rate: confirm the taxable-service group, effective date, exemption, registration position, and any current RMCD policy before selecting 8%, 6%, a fixed amount, or no tax.
  • Calculate Service Tax on the taxable value after an applicable invoice-level discount, round to sen, and retain the rate and tax amount with the invoice rather than relying on a company-wide default.
  • A credit note should reference the original invoice and separately reverse the taxable value and Service Tax; in a posted ledger the balanced pattern is debit revenue, debit SST payable, and credit accounts receivable.
  • GetPay's SST-02 screen is a bimonthly working paper. Lock snapshot creates an internal immutable audit record, but it does not file a return with RMCD.
  • The current GetPay invoice preset still maps service tax to 6%, and its SST-02 computation does not subtract credit notes or produce rate-banded statutory boxes. Do not represent either step as automated 8% compliance.

Use 8% only after classifying the actual service

The safe 2026 rule is not “charge 8% on every service.” It is: classify the supply under current Royal Malaysian Customs Department (RMCD) guidance, establish whether the supplier is registered or required to register, check the service date and any exemption, and only then apply the prescribed treatment.

Malaysia increased the general Service Tax rate from 6% to 8% from 1 March 2024, but the system remains multi-rate. RMCD's current overview identifies continuing 6% treatment for categories including food and beverage, logistics, telecommunications, and parking. Its 2026 overview also describes newer taxable areas with their own 6% or 8% treatment. Credit and charge cards use a fixed amount rather than an ordinary percentage.

That makes the tax decision a transaction fact, not a permanent company setting:

DecisionEvidence to retainWhy it matters
Is the service within a taxable group?Contract, service description, industry guideA business can sell taxable and non-taxable services
Is 8%, 6%, fixed amount, or exemption applicable?Current RMCD order, guide, policy or ruling“SST registered” does not imply one rate
When was the service provided and paid?Service period, invoice date, payment dateTransitional and accounting-basis rules can depend on timing
Is the customer or transaction exempt?Exemption certificate or supporting factsThe service description alone may not settle treatment
Is the supplier registered for this service?SST registration detailsAn invoice should not imply tax was properly charged without the right registration basis

Do not use a blog table as the final classification oracle. RMCD published significant scope and policy changes after the 2024 rate increase and continued updating service-specific material in 2025 and 2026. Use the current guide for the actual industry and obtain professional advice where the facts are mixed.

How should an 8% SST invoice be calculated?

Start with the taxable value, apply any discount that reduces that value, calculate Service Tax at the selected rate, then round the tax amount to the nearest sen.

For example, assume a management service is correctly classified at 8%:

Invoice componentCalculationAmount
Gross service valueRM10,000.00
Invoice discount(RM500.00)
Taxable valueRM10,000 − RM500RM9,500.00
Service TaxRM9,500 × 8%RM760.00
Invoice totalRM9,500 + RM760RM10,260.00

If the same RM9,500 taxable value were correctly subject to 6%, the tax would be RM570 and the total RM10,070. That RM190 difference is why a generic “service” flag is insufficient for a business that supplies services at different rates.

Store the components, not only the final RM10,260:

  • service description and service period;
  • gross value and discount;
  • taxable value;
  • tax type and rate;
  • Service Tax amount;
  • invoice total;
  • customer and supplier details required for the transaction;
  • SST registration information where applicable; and
  • evidence supporting an exemption or special treatment.

GetPay's current invoice route demonstrates sound arithmetic at one boundary: it calculates net = subtotal - discount_amount, applies the selected rate to net, rounds tax_amount to two decimal places, and stores tax_type, tax_rate, tax_amount, and total. This prevents the tax from being silently recalculated later from an unlabeled grand total.

However, the standard GetPay invoice flow currently maps service to 0.06, sales to 0.10, and exempt to 0. The create dialog uses the same fixed mapping. It does not expose a verified 8% service option or line-level mixed rates. Therefore, do not use today's “Service Tax (6%)” preset for an 8% supply and do not claim GetPay currently provides multi-rate SST invoicing. The compliance requirement is clear; that named product capability is not present in the inspected implementation.

When is a credit note required?

RMCD describes a credit note as the adjustment document used when an invoice value is reduced or the transaction is cancelled. It is not an invitation to overwrite the original invoice. A controlled credit note preserves the original document and creates a dated, traceable reduction.

A useful credit-note record contains:

  • the words “credit note” and a unique serial number;
  • issue date;
  • supplier identity and SST registration details;
  • buyer identity;
  • reason for the reduction;
  • enough description to identify the taxable service;
  • reduced quantity or value;
  • value excluding Service Tax;
  • applicable Service Tax rate and tax amount; and
  • original invoice number and date.

The rate must follow the tax treatment of the adjusted supply. If an original 8% invoice is reduced by RM2,500 of taxable value, the adjustment is:

Credit-note componentCalculationAmount
Revenue reductionRM2,500.00
Service Tax reductionRM2,500 × 8%RM200.00
Total creditRM2,500 + RM200RM2,700.00

Do not enter RM2,700 entirely as a revenue reduction. That would erase the distinction between income and the SST liability.

What are the debit and credit lines?

For an unpaid or partly unpaid invoice in a posted accrual ledger, the reversal pattern is:

Account roleDebitCredit
RevenueRM2,500.00
SST payableRM200.00
Accounts receivableRM2,700.00
TotalRM2,700.00RM2,700.00

This is exactly the economic shape implemented by GetPay's posted-ledger credit-note builder: debit the revenue account selected for the original invoice type, debit the SST payable account when tax is positive, and credit accounts receivable for the total. The article deliberately does not publish account codes because the active chart and invoice type determine the real accounts.

GetPay also validates that:

  • subtotal and total are positive;
  • tax_amount is non-negative;
  • all three amounts are precise to no more than two decimal places;
  • subtotal + tax_amount equals total to sen;
  • the credit note references an originating invoice;
  • the cumulative total of non-void credit notes does not exceed the invoice total; and
  • a repeated request can return the prior credit note when the same tenant-scoped idempotency key is used.

The database operation locks the original invoice row before rechecking the cumulative cap, preventing two simultaneous credit notes from both spending the same remaining balance. In posted-ledger mode, the route also checks the accounting period and the original sale journal before creating the credit note and its journal entry in the controlled flow.

For MyInvois, GetPay maps a credit note as document type 02 and requires the original invoice's LHDN UUID before constructing the billing reference. That electronic-document link is separate from SST-02 reporting: a valid MyInvois credit note still has to be reflected correctly in the Service Tax working paper.

How should an SST-02 schedule be assembled?

Build the schedule in layers so a reviewer can trace every box back to documents:

  1. List taxable invoices for the bimonthly period and preserve each invoice's taxable value, rate, and tax.
  2. Group the list by the actual statutory rate or treatment instead of combining every service into one number.
  3. List debit notes as additions and credit notes as deductions with original-document references.
  4. Apply the correct Service Tax accounting basis and timing rules for the business.
  5. Reconcile tax collected, tax adjustments, payments, and the general ledger.
  6. Tie the final working paper to the current SST-02 form and MySST submission.
  7. Retain the submitted return, receipt or acknowledgement, schedules, and review evidence.

GetPay's current /sst-return surface provides a narrower internal computation. It uses fixed bimonthly pairs—January–February, March–April, May–June, July–August, September–October, and November–December—and selects invoices by issue_date. It includes ISSUED, OVERDUE, and PAID invoices.

The computed fields are:

GetPay fieldCurrent computation
total_salesSum of invoice subtotal less discount_amount
output_taxSum of invoice tax_amount
invoice_countCount of included invoices
input_taxSum of effective bank-transaction amounts categorized SST_GST
payment_countCount of those effective SST_GST transactions
net_payableoutput_tax - input_tax, rounded to two decimals
statusREFUND when negative; otherwise PAYABLE

Bank-transaction splits are overlaid before the SST_GST filter. That matters when a split component is SST-related but the parent transaction is not, or when a stale parent category should no longer control the result.

The page can export the live summary as CSV, and a server route renders a live SST-02 filing-summary PDF. A separate submission route can create a draft payload from the computed return for the MySST queue. These are useful working-paper and operational surfaces, but the computation is not a complete statutory SST-02 schedule.

What must be reconciled outside the current GetPay summary?

Three boundaries are material.

First, the invoice query does not select or group tax_type or tax_rate. It adds the net subtotal of every included invoice and sums stored tax_amount. It therefore does not produce statutory rate bands, and it does not itself prove that only taxable services within the correct SST scope were included.

Second, getSSTReturn() does not read the credit_notes table. A GetPay credit note can correctly reverse revenue, SST payable, and accounts receivable in posted-ledger mode while still being absent from the SST-02 screen's computed deduction. Maintain a separate credit-note schedule and reconcile it to the applicable SST-02 adjustment field.

Third, the summary is issue-date based and includes unpaid ISSUED and OVERDUE invoices. RMCD's published invoicing guidance describes payment-basis Service Tax as the ordinary basis and invoice/accrual basis as requiring written approval. The correct filing basis depends on the registered person's facts and current rules. An issue-date accrual summary must not be relabeled as a payment-basis statutory return.

These are not cosmetic caveats. They can change taxable value, tax due, and the reporting period.

What does “Lock snapshot” actually do?

After review, an admin can select Lock snapshot. GetPay recomputes the period and inserts the figures into an append-only sst_returns history record with the user, time, counts, totals, status, and optional notes. The period can be locked only once, and database protection makes the record immutable after insertion.

The lock is an internal audit-trail control. It does not transmit SST-02 to RMCD. The page displays Not a filed return, the button says Lock snapshot, and the confirmation text says This does NOT submit the return to RMCD.

Use the sequence this wording implies:

  1. Compute and export the working paper.
  2. Reconcile rate groups, timing basis, credit notes, debit notes, and ledger balances.
  3. Obtain reviewer or accountant approval.
  4. Lock the internal snapshot only when its limitations and adjustments are documented.
  5. Prepare and submit the statutory SST-02 through the authorised MySST process.
  6. Retain the actual submission evidence separately from the GetPay lock record.

The distinction prevents a dangerous audit statement: “locked in GetPay” is not the same as “filed with Customs.”

Final 2026 control checklist

  • Confirm the service classification from current RMCD material.
  • Confirm whether 8%, 6%, a fixed amount, or an exemption applies.
  • Keep service date, payment date, invoice date, and tax basis visible.
  • Calculate tax on the correct discounted taxable value and round to sen.
  • Never overwrite an issued invoice to hide an adjustment.
  • Split every credit note between taxable value and Service Tax.
  • Reference the original invoice and retain the adjustment reason.
  • Reconcile cumulative credit notes so credits cannot exceed the original invoice.
  • Build SST-02 rate bands and credit-note deductions outside GetPay's current summary.
  • Reconcile issue-date output to the legally applicable accounting basis.
  • Treat CSV, PDF, and Lock snapshot as working-paper controls, not proof of filing.
  • Retain the MySST submission receipt or acknowledgement as the filing evidence.

Frequently Asked Questions

Is every taxable service in Malaysia subject to 8% Service Tax in 2026?

No. Eight per cent is the general rate for many taxable services, but RMCD publishes services that remain at 6%, fixed-amount treatment for credit or charge cards, exemptions, and service-specific rules. Confirm the current classification and effective-date guidance for the actual supply instead of using 8% as a universal company default.

How should a credit note reverse an 8% Service Tax invoice?

State the original invoice reference and reason, then split the reduction into taxable value and Service Tax at the applicable rate. For a RM2,500 taxable-value reduction at 8%, the tax reduction is RM200 and the total credit is RM2,700. A posted-ledger entry debits revenue RM2,500, debits SST payable RM200, and credits accounts receivable RM2,700.

Does GetPay currently calculate 8% Service Tax when service is selected?

No. The current invoice creation and edit code maps the service preset to 0.06, sales to 0.10, and exempt to zero. The stored schema can retain a tax rate, but the standard invoice flow is not a verified multi-rate or 8% Service Tax workflow.

Does GetPay's SST-02 summary include credit-note deductions?

No. The current computation sums eligible invoice subtotal and tax_amount fields and SST_GST bank-transaction amounts. It does not query credit_notes, so credit-note deductions require a separate reconciliation before the statutory SST-02 is prepared.

Does Lock snapshot file SST-02 with Royal Malaysian Customs?

No. Lock snapshot stores the current figures as an internal, one-time audit record for that bimonthly period. GetPay labels the page Not a filed return, and the lock dialog explicitly says that the action does not submit to RMCD.

Sources & Ground Truth

Direct LHDN MyInvois Submission Engine

Ready to automate your Malaysian e-invoicing & bookkeeping?

GetPay handles 100% compliant e-invoices, multi-bank reconciliation, and statutory payroll out of the box.

Get Started Free

Related Articles