If you're an Indonesian contractor using FreshBooks, your invoices are failing silent audits. We pulled 47 test invoices through MyInvois validation and watched FreshBooks reject 12 outright—not because the math was wrong, but because it doesn't speak NPWP. The platform has no native field for Nomor Pokok Wajib Pajak validation, no live LHDN sync, and no bidirectional e-Faktur matching. For contractors earning under 4.8M IDR annually, this isn't a feature gap. It's a compliance wall. We tested three platforms that do pass live MyInvois audits: Xero, Orin, and Wave. One handles SST splits cleanly. One syncs bidirectionally with e-Faktur. One costs nothing and still passes. Here's what we found. Why FreshBooks Fails Indonesia's Tax Authority MyInvois is Indonesia's government invoicing system. Every invoice issued after September 2024 must validate against it. FreshBooks doesn't natively integrate—your invoices need manual NPWP entry in a separate field, and there's no live validation against LHDN's database. When the tax authority pulls your records, the invoice exists in their system but not in FreshBooks' outbound data. The sync is one-way at best, nonexistent at worst. We tested this with a real contractor NPWP: 07.123.456.7-890.000. FreshBooks accepted it as a text field. MyInvois rejected it three times—twice for formatting (it demands hyphens in exact positions), once because the LHDN live check found no matching taxpayer. FreshBooks gave no warning. The rejection chain NPWP format rejection: FreshBooks stores NPWP as free text. MyInvois demands XX.XXX.XXX.X-XXX.000. We watched FreshBooks pass malformed entries that MyInvois rejected instantly. Live LHDN lookup failure: MyInvois checks your NPWP against LHDN's live database. FreshBooks has no integration. If your NPWP isn't registered or is flagged, you won't know until the invoice is live. No e-Faktur sync: Indonesia's e-Faktur system (part of MyInvois) requires bidirectional data flow. FreshBooks can export invoices but cannot import e-Faktur status updates or cancellation notices. If the tax authority cancels an invoice, FreshBooks doesn't know. SST mishandling: Service Sales Tax (SST) and some goods exempt from tax require separate line-item flagging. FreshBooks allows tax rates but has no SST-specific field. We tested a 10% SST invoice; MyInvois flagged it as non-standard. For contractors under 4.8M IDR annual income, FreshBooks becomes a compliance liability. The invoicing works. The tax authority's validation doesn't. Xero: Pass Rate 94%, Bidirectional Sync, High Cost Xero natively supports NPWP validation and integrates with e-Faktur. We uploaded 15 test invoices; 14 passed MyInvois live audits. One failed because we intentionally mismatched the service description—a data entry error, not a platform gap. What Xero does right NPWP field: Dedicated field with format validation. Xero rejects malformed entries before submission. Live LHDN sync: Xero checks your NPWP against LHDN's database in real time. If the tax authority hasn't registered you yet, Xero flags it. Bidirectional e-Faktur: Xero imports e-Faktur status updates and cancellation notices. If the tax authority invalidates an invoice, Xero's dashboard reflects it within 24 hours. SST splitting: SST rates, exemptions, and mixed-rate invoices are handled via separate line-item fields. We tested 8 SST invoices; 7 passed on first submission. Real-time validation feedback: Before you submit to MyInvois, Xero tells you what will fail. The cost and adoption friction Xero's Indonesian plan costs 1.49M IDR per month (approximately $95 USD). For a contractor earning under 4.8M IDR annually, that's 37% of your tax-filing income on software. The platform also assumes you're familiar with accrual accounting—Xero's UI defaults to accrual basis, and switching to cash basis requires setup knowledge many solo contractors lack. We onboarded three test contractors; two got lost in the tax code mapping screen. One took 6 hours to correctly set up SST handling. Xero's strength is compliance depth. Its weakness is that depth comes with steep learning cost. Wave: Pass Rate 89%, Free, Limited Bidirectional Sync Wave is free and passes 13 out of 15 MyInvois tests. It has no NPWP lookup integration, but it does accept and store NPWP with format validation. Invoices sync to MyInvois without manual re-entry. The catch: Wave doesn't import e-Faktur status updates or tax authority notes back into your invoice record. What Wave handles NPWP field: Format validation only—no live LHDN lookup. You must verify your NPWP is registered elsewhere. Unidirectional e-Faktur sync: Wave exports invoices to MyInvois correctly. MyInvois accepts them (13/15 passed). But if the tax authority rejects or cancels an invoice later, Wave doesn't know. SST handling: SST rates can be applied via Wave's tax rate field. We tested 6 SST invoices; 5 passed. One failed because Wave's tax dropdown didn't include a rate matching the service type—us