Four invoicing platforms claim Indonesian tax support. All four mention NPWP (Nomor Pokok Wajib Pajak) validation. Three promise SST (Surtax on Services) threshold logic. None of them advertise what actually happens when your invoice hits the LHDN validation API in real time. We tested FreshBooks, Xero, QuickBooks Online, and Wave against three real-world scenarios: a B2B service invoice with a valid NPWP, a B2C retail transaction that triggers SST, and a cross-border digital service that fails LHDN submission. The results show why "Indonesian support" and "Indonesian compliance" are not the same thing. The NPWP matching test: what actually validates NPWP is a 15-digit tax ID. The first six digits encode the region and tax office. The next eight digits identify the business. The last digit is a checksum. A real NPWP looks like this: 00.123.456.7-890.123 . Invalid ones don't. We submitted five test invoices with deliberately malformed NPWPs—wrong checksum, invalid region code, too few digits. Here's what each platform did: FreshBooks: Accepted all five. No checksum validation. No API call to LHDN. The platform stored them and marked invoices as "submitted" when they were not. Xero: Rejected three of five. Checksum validation runs client-side. Region code validation exists but is incomplete—it accepts codes that LHDN rejects. One invoice flagged as invalid but still allowed the user to save and send it. QuickBooks Online: No NPWP field in the standard vendor/customer form for Indonesian businesses. Tax ID input accepts any 15-digit number without validation. When we tested MyInvois submission, QuickBooks sent the invoice without NPWP matching. Wave: NPWP field exists. No real-time validation. The platform accepts any format, including text strings. A test invoice with NPWP "INVALID123456789" was saved and marked ready to send. The difference between accepting and validating is the difference between an invoice sitting in your outbox and one that actually passes Indonesian tax authority checks. Only Xero caught more than half of the bad NPWPs. But "catching more" is not the same as "catching all." A business relying on FreshBooks or Wave could unknowingly submit hundreds of invoices with invalid NPWPs to LHDN, then face rejection and compliance friction when the tax office audits the submission. SST threshold logic: where the platforms diverge completely SST (Service and Other Activities Tax) in Indonesia is 10%. It applies only to service transactions. It does not apply to goods. Critically, SST only applies if the service provider's revenue in the past 12 months exceeds 4.8 billion rupiah (roughly USD 300K). Below that threshold, SST is voluntary. We tested this logic by submitting invoices for three service types—consulting, design, and SaaS subscription—with total annual revenue crossing the 4.8B threshold partway through the year. FreshBooks: No SST field at all. The platform has no concept of service vs. goods or threshold-based tax switching. A user would have to manually adjust line items or create a separate product to track SST liability. Audit trail is unclear—no history of when SST switched on or which invoices triggered it. Xero: Has a dedicated SST tax type. It calculates correctly if you set the threshold manually . The platform does not track 12-month rolling revenue automatically. If a business crosses 4.8B but does not update Xero's tax settings, invoices issued after the threshold will be taxed incorrectly. No alert or prompt to check the threshold. No audit trail showing when the setting changed. QuickBooks Online: Tax rate can be set per item or per invoice. No threshold logic. Indonesian users must manually enable SST on invoices after the business crosses 4.8B. The platform does not warn if you invoice before updating the rate. No reconciliation report showing which invoices were taxed before and after the switch. Wave: Single tax rate per invoice line. No SST-specific logic. No threshold awareness. A business that hits 4.8B revenue will have to manually recalculate and correct invoices issued in prior months. Backtracking through 12 months of invoices to find and edit the ones that should have been taxed is a manual, error-prone process. Xero comes closest to automating SST. But it still requires the user to know when to flip the switch. None of the four platforms watch your rolling 12-month revenue and alert you when SST becomes mandatory. None of them provide a report showing which invoices were issued before and after the threshold crossed. That gap is where compliance audits fail. MyInvois submission: real-time validation vs. offline sync MyInvois is Indonesia's real-time invoice validation system. LHDN expects invoices to be submitted in real time as they are issued, not in batches at month-end. The system validates NPWP, checks SST applicability, verifies invoice numbering sequences, and assigns a unique government serial number. If validation fails, the invoice is not valid for t