Your accountant opens Xero on Monday morning and sees invoices from your CRM that never arrived as line items. She checks Wave and finds partial transactions—no vendor category, no tax code applied. Zoho shows the payment but skipped the tax calculation because the regional code doesn't match her chart of accounts. By Tuesday, she's manually entering data that should have synced automatically. This is not incompetence. This is how bank feeds, tax automation, and multi-entity invoicing actually work across the platforms you're comparing. Most teams pick accounting software based on price or feature list, not on how cleanly it receives data from the tools that generate it. Your accountant feels the cost every reconciliation cycle. Bank feeds work differently—and timing matters more than you think Xero's nightly batch push pulls transactions from your bank at fixed times, usually between 9 PM and 6 AM depending on your bank and region. If you invoice at 2 PM, your bank feeds won't see it until the next morning. For cash flow visibility, this lag is minor. For reconciliation, it means your accountant must match invoices to deposits across a 12–24 hour window where transaction order matters. In high-volume invoicing (SaaS, recurring billing, subscriptions), this creates a matching problem: your CRM sends invoice #1001 at 2 PM. The customer pays at 3 PM. Xero doesn't see the deposit until 6 AM the next day. By then, you've issued invoices #1002 through #1010. Your accountant must manually correlate which payment belongs to which invoice, especially if customers batch multiple invoices into one transfer. Wave requires manual bank upload or direct connection setup. It doesn't push from your CRM at all—Wave pulls from your bank, but only if you've connected your bank account directly. If your business uses a corporate card, a payment processor (Stripe, PayPal), or multiple bank accounts, each requires its own connection. For a 10-person team across two regions with three bank accounts, Wave's per-account feed becomes three separate reconciliation streams. Xero and Zoho handle multi-bank accounts in one unified feed. Zoho Books' real-time sync is the outlier—if you're using Zoho's CRM (Zoho CRM) and invoicing (Zoho Books) together, invoices can trigger bank feed updates almost immediately. But if your CRM is separate (Pipedrive, HubSpot, Affinity), Zoho's speed advantage disappears. You're back to manual export-and-import, which reintroduces the lag that nightly batches were meant to solve. Tax categories break when they don't match your regional chart of accounts Your accountant has spent two years building a chart of accounts for Malaysia. It includes separate codes for SST-payable and SST-exempt revenue, because tax reporting requires them split. When you invoice through your CRM and sync to Xero, the default tax category is "Standard Rate SST (6%)." For most transactions, correct. But for one-off services or tiered pricing, you need "Zero-Rated" or "Exempt." Xero lets you set custom tax codes per line item, but only if your CRM sends that metadata in the sync. Most CRMs don't. They send the invoice amount and the customer name, and Xero applies your default tax code. Your accountant then manually edits each invoice to fix the category. At 50 invoices a week, that's 2–3 hours of manual re-tagging. Zoho Books has the same problem, but with a twist: Zoho's regional tax codes (for Malaysia, Indonesia, Singapore) are pre-built but often don't align with custom deductions or exemptions your business negotiates. If you have a contract with a government agency that exempts 10% of invoiced services, Zoho's standard tax codes don't include a "Partial Exempt" category. Your accountant adds it manually, but then Zoho's tax report doesn't recognize it, and she has to reconcile by hand. Wave's tax handling is the simplest—and the most brittle. Wave offers basic tax categories (Taxable, Tax-Exempt, Zero-Rated), but no regional customization. For Malaysia or Indonesia, this means Wave fundamentally can't handle SST registration thresholds, MyInvois compliance, or tiered tax brackets. Your accountant exports Wave data to a spreadsheet, applies the correct codes, and re-imports to your official books. Wave is a staging ground, not a final record. What your accountant actually needs Tax code inheritance from CRM to accounting. When you set "Invoice Type: SST-Exempt" in your CRM, that metadata must flow through the sync. Without it, your accountant spends time reassigning. Custom regional codes pre-built for your market. Malaysia needs MyInvois codes; Indonesia needs e-Faktur categories. Generic tax templates cost reconciliation time. Tax report that doesn't require re-entry. If your accountant must manually verify or re-tag taxes before filing, the sync has failed. Multi-entity invoicing: where most syncs collapse You have two entities: a holding company and a trading subsidiary. Your accountant uses separate Xero instances for eac