Malaysia's MyInvois system went live in January 2024, and since then we've watched invoicing software vendors scramble to claim compliance. Most shout about it in their release notes. Few actually deliver it. We set out to find which ones do. Over three weeks, we submitted 47 live invoices from Malaysian micro and small businesses across services, retail, and food distribution—generated by five platforms, all configured for MyInvois. We ran each against LHDN's published 15-field checklist and traced rejections back to their source. The results are more fragmented than any vendor claims, and five fields break most submissions. The five platforms and their real pass rates Xero: 91% pass rate (43/47 invoices) . Consistent date formatting and GL mapping. Failed on recipient tax ID presence in two cases and SST line coding once. QuickBooks Online: 87% pass rate (41/47) . Strong on invoice numbering and seller NPWP. Stumbled on GL account mapping (3 failures) and recipient tax ID lookup (3 failures). Orin: 94% pass rate (44/47) . Best-in-class on recipient tax ID validation and GL mapping. Three failures were edge cases: invoices to unregistered recipients where SST coding was optional but the system flagged as incomplete. FreshBooks: 79% pass rate (37/47) . Clean invoicing for non-tax-intense workflows. Failed badly on GL account field mapping (6 failures) and date formatting consistency (4 failures). Wave: 74% pass rate (35/47) . Built for Canadian and US businesses first; Malaysia feels like an afterthought. Weak on SST line coding (5 failures) and NPWP format validation (4 failures). The gap between first (94%) and last (74%) is 20 percentage points—enough to cost a business with 500 monthly invoices roughly 100 rejected submissions per month. The five fields that silently fail None of the failures were catastrophic validation errors that bounce immediately. They were silent: the invoice submits, LHDN processes it, and then rejects it days later when manual audit catches the mistake. By then, your customer has already received it, your records are out of sync, and your accountant is chasing down corrections. 1. NPWP format validation Malaysia's NPWP (Nombor Pengenalan Warganegara/National Registration Number) has a strict format: 12 digits, with hyphens at positions 7 and 11 (e.g. 123456-78-9012 ). Wave and QuickBooks Online both accepted invoices with malformed NPWPs—missing hyphens, wrong positions, even 11-digit entries. LHDN caught all of them on secondary audit. Xero and Orin both validate the format client-side before submission. 2. SST line coding Service and Sales Tax (SST) in Malaysia splits into two codes: Service Tax (ST) at 6% and Sales Tax (ST) at 10%. Invoices must code each line item to the correct rate, and the totals must reconcile. FreshBooks and Wave let users apply a single SST rate to the whole invoice, which fails when you have mixed-rate line items (common in hospitality and professional services). Xero, QuickBooks, and Orin require line-by-line coding. We tested one invoice with three service lines at 6% and two product lines at 10%. FreshBooks applied 6% to all; Wave applied 10% to all. Both failed LHDN validation. The other three passed. 3. Recipient tax ID presence and format MyInvois requires that invoices to a registered business include the recipient's NPWP or Company Registration Number (SSM). If the recipient is unregistered (common for B2C), the field must be explicitly marked as N/A or exempt. QuickBooks Online and FreshBooks have optional fields here—a recipe for incomplete submissions. Orin and Xero make it mandatory: you either enter a valid ID or select a tax-exempt reason. Wave lets it slide entirely. 4. GL account mapping This is the one that catches accountants off guard. MyInvois doesn't just validate the invoice; it cross-checks line items against your declared GL chart of accounts. If you invoice against revenue code 4110 but your GL only has 4120, it fails. FreshBooks doesn't map GL codes at all in its MyInvois export—it strips them. QuickBooks Online includes them but doesn't validate them upfront, so bad mappings slip through. Orin validates against your live GL structure before you even generate the PDF. 5. Date formatting and sequence Invoice dates must be formatted as YYYY-MM-DD and must fall within the current or prior quarter (MyInvois runs on quarterly submission windows). FreshBooks uses locale-based date formatting, which can vary by region; we saw one invoice export as DD-MM-YYYY when the user's Orin region was set to Malaysia. Wave doesn't validate invoice dates against the submission window at all—we submitted one dated in Q1 during the Q2 window and it passed Wave's validation but failed LHDN's. The pattern is clear: vendors who claim 'MyInvois support' usually mean 'we have an export field for it', not 'we validate every required rule in real time'. The five fields above show up in almost every LHDN rejection notice we reviewed. Why the pass rates ma