You issued an invoice for ₹50,000 in GST-inclusive revenue. Your invoicing tool records it as revenue. Your accounting software records it as ₹45,455 (ex-GST) plus ₹4,545 (tax payable). Three months later, when you reconcile GST returns, the numbers don't match. You're off by ₹150 across twelve invoices. You don't know where it went. This isn't a rounding error you can ignore. It cascades through tax filings, cash flow forecasts, and audit readiness. And it happens across Xero, Zoho Books, and Wave because each platform handles GST, multi-currency conversion, and tax code application differently—and they don't always sync cleanly. The gap isn't a bug. It's a design choice buried three layers deep in settings. Here's how to find it, fix it, and prevent it from happening again. Where invoice-to-books divergence actually happens Your invoicing module and your accounting module are often separate. They live in the same platform, but they don't always speak the same language. GST-inclusive vs. GST-exclusive recording: Your invoice reads "₹50,000 including GST." Your invoicing tool records it one way; your accounting module interprets it another. Xero defaults to inclusive recording on invoices, but your GL posting might default to exclusive. Zoho Books can flip this per invoice type. Wave doesn't distinguish clearly—it posts whatever you enter. Multi-currency rounding: You invoice a Singapore client in SGD. The invoicing tool converts at today's rate (1 SGD = ₹62.34). Your accounting module re-converts at settlement (1 SGD = ₹62.41). The difference is ₹7 per ₹1,000 SGD invoiced. Across fifty invoices, that's ₹350 in unexplained variance. Tax code drift: You set up GST on your "Services" item. Six months later, the tax rate changes (18% to 5%, or vice versa, depending on your jurisdiction). You update the item, but invoices already issued retain their original tax code. When you reconcile, the accounting module re-applies the current tax code to the GL posting—not the original one. Mismatch. Discount tax treatment: You issue a ₹50,000 invoice with a ₹5,000 discount. Should GST apply to ₹50,000 or ₹45,000? Your invoicing tool applies it one way; your accounting module might apply it another depending on how you entered the discount (line-level or invoice-level). Rounding per line vs. per invoice: Zoho Books rounds tax per line. Xero rounds per invoice. Wave rounds however you set it. If you have three lines at ₹16,667 each (₹50,001 total), the tax compounds differently. The ₹1 overage might live in one line's tax, not split across all three. The monthly audit: where to look first You need a checklist. Run it every month, ideally within three days of month-end close. Export invoices from your invoicing module. Pull every invoice issued that month, with invoice total, GST, and amount ex-GST. Spreadsheet format. Export the GL accounts for revenue and tax payable. Pull the monthly totals for revenue (inclusive and exclusive) and GST liabilities. Cross-reference by invoice number if your accounting software tags them. Sum the invoicing module column. Sum the GL column. Compare. If they differ by more than ₹50 (or your rounding tolerance), dig in. Don't skip small gaps—they compound. Filter by invoice type and tax code. Services (18% GST) shouldn't have entries with 5% or 0%. If you see mismatches, tax code drift is the culprit. Check multi-currency invoices separately. Pull the list of foreign-currency invoices and their conversion dates. Compare the invoice conversion rate to the rate in your GL posting. If they differ by more than 0.1%, you have a rounding or settlement-date issue. Validate discount application. If you issued any invoices with line-level or invoice-level discounts, check whether the invoicing tool and GL both treated the discount as pre-tax or post-tax. Inconsistency = gap. Pro tip: Set up a standard reconciliation template in your accounting software (or a linked spreadsheet). Schedule it to run on the same day each month. Drift that appears in month two is easier to fix than drift you discover in month six during tax filing. Xero-specific gaps and how to close them Xero is built around invoices, so invoice-to-GL mismatches are less common than in Wave. But they happen. GST-inclusive invoices: Xero records GST-inclusive invoices with the GST split into a separate GL posting. Your invoice total appears in revenue; the GST portion posts separately to your GST liability account. This is correct, but if you're used to net-revenue accounting, it looks wrong. Verify your GL setup treats GST liability as a separate account, not netted against revenue. Currency rounding on multi-currency invoices: Xero converts at the invoice date rate. If your invoice date and receipt/payment date differ, the exchange gain or loss posts to a separate account. This is standard, but it means your revenue figure on the invoice (in AUD, SGD, etc.) won't exactly match the INR posting in your GL. Check your exchange gain/loss ac