A software company billing monthly subscriptions to customers in Malaysia, Indonesia, and Singapore faces three separate tax regimes, three currencies, and vastly different proration expectations on upgrades. Most billing systems handle one country well, fragment at two, and collapse under the weight of three. The result: silent tax miscalculations, currency rounding leaks, and audit failures that surface months later. This guide maps the exact tax rates, currency conversion rules, GL posting structure, and proration logic you need to bill subscriptions cleanly across these three countries—with working invoice templates and audit-proof trails. The three tax systems: rates, thresholds, and who pays Malaysia (SST—Service & Sales Tax) SST applies to digital services at 6% or 10% depending on the service category. Software subscriptions, SaaS, and hosted platforms typically fall under the 6% rate for 'information technology services.' There is no registration threshold—SST applies from your first invoice to a Malaysian customer. The tax is not input-recoverable for most service providers, meaning you absorb it as a cost. SST rate for software: 6% (confirmed for SaaS and cloud services) Applies: All invoices to Malaysian customers, no exemption for first RM 500k Remittance: Monthly or quarterly depending on SST registration tier Invoice display: Must show SST amount separately; 'SST Registration No.' required on invoice Indonesia (PPN—Pajak Pertambahan Nilai, VAT) PPN is 11.5% on digital services and software. For e-services provided to non-resident customers (which includes overseas SaaS providers), Indonesia imposes PPN on the domestic recipient, but the supplier (you) may not be obligated to remit if you're not registered as a VAT-liable entity in Indonesia. However, if you have an Indonesian entity or subsidiary, you must register and remit. Most foreign SaaS providers billing Indonesian customers remit via a local representative or use a tax agent; alternatively, the customer may self-assess and pay PPN on import of services. PPN rate: 11.5% Applies: Foreign digital service providers to Indonesian customers; local entities must register Compliance: Use NPWP (tax ID) and e-Faktur system if registered; invoices must reference the customer's NPWP Invoice display: PPN amount, invoice series number (from e-Faktur), and customer NPWP Singapore (GST—Goods & Services Tax) GST is 8% and applies to imported digital services when the customer is a business. If the customer is a non-business end-user (consumer), GST may not apply depending on the place of supply rules. For subscriptions, the general rule is that GST applies if the recipient is in Singapore and registered for GST. Many SaaS vendors pre-register with IRAS (Inland Revenue Authority of Singapore) to simplify compliance; unregistered vendors may reverse-charge (invoice without GST and let the customer self-assess if they are GST-registered). GST rate: 8% Applies: To GST-registered business customers in Singapore; non-business invoices may be exempt Invoice display: GST amount (or notation that GST is reverse-charged if supplier not registered) Threshold: No GST registration threshold for imported digital services The critical point: you must know your customer's status (individual, unregistered business, or GST-registered business) before calculating tax. A mismatch can trigger audit flags months later. Currency and FX: when to lock, when to float, and how to round Subscriptions billed in local currencies expose you to FX variance. Most billing systems use one of three approaches: Lock at signup. Convert the USD/SGD/IDR base price once at subscription start and hold the local rate for the entire contract term. Works well for annual plans; creates customer friction for currency fluctuations. Rebase quarterly. Recalculate the local currency price once per quarter at a fixed FX rate (e.g., the opening rate of Q1). Balances FX risk and customer stability; requires customer notice. Float daily. Recalculate every invoice based on spot rates. Most transparent but most volatile for the customer; requires very clear terms. For most recurring revenue, lock at signup, rebase annually works best: customers see one price for a 12-month term, FX swings don't surprise mid-contract, and you avoid the administrative overhead of quarterly recalculation. FX rounding convention: Always round to the smallest denomination of the target currency. In Malaysia (MYR) and Indonesia (IDR), round to the nearest 0.01; in Singapore (SGD), round to 0.01. Never round tax first, then add tax. Calculate gross, then round gross, then back-solve the tax amount so the invoice reconciles to the published rate. Example: A USD 99/month plan invoiced in Malaysian Ringgit at a locked rate of 4.42 MYR/USD: Gross: 99 × 4.42 = 437.58 MYR SST (6%): 437.58 × 0.06 = 26.25 MYR Invoice total: 463.83 MYR Always show the locked rate on the invoice so the customer can verify Upgrade, downgrade, and mid