If you're selling subscriptions across Southeast Asia, your invoicing platform will fail you at precisely three moments: the first time you cross a tax threshold, the day a customer mid-cycle downgrades and you need to prorate, and the morning you realize your currency conversion is eating 2–3% of margin that no one budgeted for. Each market has its own tax regime, threshold, and compliance gate. None of them talk to each other. This is not a tax guide. This is a billing operations playbook: where to set the thresholds, how to prorate correctly, which platforms handle it natively, and what to audit before you scale. Tax thresholds that trigger invoicing rules Your first decision is not whether to charge tax—it's whether your revenue crosses the threshold that makes tax mandatory. Malaysia: SST (Sales and Service Tax) at ₤80,000 annual revenue Threshold: RM80,000 annual taxable turnover. Below this, SST is optional (and rarely claimed by small vendors). Rate: 6% on software, SaaS, and services. Invoice requirement: Once registered, every invoice must show SST separately, tax ID (SPP number), and customer tax ID if they claim input credit. Proration: SST applies to the net service value before any credits. A mid-cycle proration is taxable if the resulting period revenue is positive. Audit trigger: LHDN (Inland Revenue Board) flags invoices without consistent tax ID format or mismatched customer SST registration status. Singapore: GST (Goods and Services Tax) at SGD 1M annual revenue Threshold: SGD 1 million annual turnover. Below this, GST is not required. Many SMBs stay unregistered deliberately. Rate: 8% (as of 2024). Invoice requirement: GST-registered suppliers must show GST separately, UEN (Unique Entity Number), and issue full tax invoices (not simplified invoices). Proration: GST applies pro-rata to the service days used. IRAS (Inland Revenue Authority of Singapore) expects exact day counts and clear credit notes for adjustments. Audit trigger: Mismatched GST treatment (charging GST to an unregistered customer, or failing to charge when registered). IRAS cross-checks with customer filing. Indonesia: PPN (e-Faktur) at IDR 4.8B (~USD 310K) annual revenue Threshold: IDR 4.8 billion annual turnover. Micro-SMBs can opt out if revenue is stable below this. Rate: 10% (standard), plus 5% on digital services if the vendor is registered as a digital services provider. Invoice requirement: Every invoice must be issued via e-Faktur (electronic invoicing system managed by LHDN). Invoices not in e-Faktur are not legally valid. NPWP (taxpayer number) and customer NPWP are mandatory fields. Proration: PPN applies pro-rata to service delivery date (not invoice date). A mid-cycle adjustment creates a separate e-Faktur credit note; both parent and credit invoices must be filed real-time. Audit trigger: Missing e-Faktur filing within 30 days of invoice issue. LHDN cross-checks invoice serial numbers and PPN calculation automatically; mismatches trigger instant debt notice. Do not rely on your customer to tell you whether they are tax-registered. Pull LHDN (Malaysia), IRAS (Singapore), and Ditjen Pajak (Indonesia) registries before the first invoice. Most invoicing platforms do not do this natively. You will need a separate tax ID validation layer. How proration breaks across borders A customer signs up on the 15th of the month at RM1,000/month. On the 20th, they downgrade to RM500/month. You now owe them a credit for 11 days of service at the higher rate (RM180.65). Here is where each market's rule diverges: Malaysia: SST applies to the credit, not the original charge The credit is RM180.65. You then add SST on that credit: RM180.65 × 6% = RM10.84. Your customer's new balance is RM1,000 + 6% SST = RM1,060 (full month charge), minus RM180.65 – RM10.84 (credit with SST) = RM868.51 owing for the month. Your invoicing platform must: Recalculate the tax on the prorated amount, not the original charge. Issue a separate credit note (not a debit note) showing the prorated amount and its SST. File both invoices with LHDN within the same tax period if in the same month (usually fine). If the credit straddles month-end, file it in the month of issue. Singapore: GST applies to the net prorated amount; IRAS requires day count The downgrade happens on day 20. Days 1–19 = 19 days at SGD 100/month = SGD 61.29. Days 20–30 = 11 days at SGD 50/month = SGD 18.33. Your invoice shows two line items with different GST bases: Line 1: RM61.29 + 8% GST = RM66.19 Line 2: RM18.33 + 8% GST = RM19.79 If your system cannot split by day count and tax rate in a single invoice, IRAS will reject it. Most SaaS platforms invoice by calendar month, not by usage period; this is a common fail point. Indonesia: e-Faktur splits are mandatory; credit notes must be real-time The e-Faktur system does not allow mid-period amendments to an invoice. You must issue: Original invoice (IDR 1,000,000 + 10% PPN = IDR 1,100,000) on the 15th. Credit note (referencing the orig