You close your billing platform on Friday. The invoice reads ₹1,00,000. You pull your general ledger on Monday morning and find ₹95,000 posted. The discrepancy stares back: ₹5,000 missing, no explanation, no audit trail. Your month-end close is due Wednesday. This is not a rare edge case—it happens to most finance teams running separate billing and accounting systems, and the culprit is almost always one of seven specific sync breaks. This guide walks you through each one and gives you a forensic checklist to find yours in 90 minutes. Why invoices and GL diverge The root cause is simple: your billing platform and accounting system speak different languages. One rounds taxes in real-time; the other waits for end-of-day batch posts. One allocates to a single GL account; the other splits across three. One posts on invoice creation; the other on payment receipt. None of these are wrong by itself—but when they pile up, reconciliation breaks. The problem deepens if you're manually re-entering invoice data, using API integrations with timestamp mismatches, or running separate invoicing and accounting tools without a unified sync layer. Most teams don't discover the break until they're 20 days into month-end close, standing in front of a ₹5K variance that won't reconcile. Here are the seven breaks that cause 95% of these gaps. 1. Tax recalculation between systems Your billing platform calculates tax at invoice creation using the customer's address at that moment. But your GL receives the invoice three hours later, and the system recalculates tax based on a different tax rule—maybe a regional override, maybe a product-category exemption you forgot you had configured. The ₹5K gap: Billing posts ₹1,00,000 gross (₹85,470 net + ₹14,530 IGST at 18%). GL receives the same line item but recalculates IGST at 5% for a service exemption, posting ₹95,238 instead. Difference: ₹4,762. Audit step: Pull the original invoice from billing. Cross-check the tax rate and tax amount with your GL entry. If they differ, open your GL's tax configuration and your billing platform's customer tax settings side-by-side. Look for exemptions, overrides, or time-based rule changes that might have triggered between the two posts. 2. Currency rounding and mid-trade rates If you invoice in USD but post GL entries in INR, the conversion rate matters. Billing converts at the rate at invoice time (9:30 AM Friday). Your GL integration runs the sync at 6:00 PM Friday when the rate has shifted 0.3%. Over a ₹1 lakh invoice, that's ₹300. Multiply by 20 invoices, and you have a ₹6K month-end variance. Even worse: some systems round to paisa; others round to rupee. One system posts ₹1,00,000.49, rounds to ₹1,00,000. The other rounds ₹1,00,000.49 to ₹1,00,000.50 for tax purposes, then posts ₹1,00,000.50 to GL. Audit step: If you work in multi-currency, check the timestamps on your invoice creation and your GL post. Are they the same? If not, pull the FX rate from your bank or data provider for both times. Calculate the gross variance in rupees. If it matches your ₹5K gap, you've found your culprit. Configure your billing-to-GL sync to lock the FX rate at invoice creation time, and never recalculate on sync. 3. GL account code mismatch or missing allocation rules You tell your billing platform to post all invoices to account 4100 (Revenue). But your GL is configured to route by product category: SaaS revenue goes to 4101, services to 4102, support to 4103. Your billing platform doesn't know about this split. So it posts ₹1,00,000 to 4100. Your GL integration tries to remap it across three accounts but loses ₹5K in the reroute because the allocation percentages don't add up to 100% (someone rounded 33.33% + 33.33% + 33.33% to integers: 33 + 33 + 33 = 99). Audit step: Compare the invoice line-by-line breakdown in your billing platform with the GL account codes it maps to. Then check if those GL codes match your chart of accounts in the accounting system. If there's a mismatch, trace the sync logic: is it using a lookup table, a formula, or hardcoded account numbers? If it's a lookup table, verify every row. If there's a discrepancy in the total or a missing product category, you've found the leak. 4. Payment receipt timing vs. invoice posting Your billing platform posts the invoice on Friday. Your GL posts on Friday too—but only for invoices marked "paid." If the invoice is marked "sent" or "draft" in billing, it might not sync to GL until payment arrives. Payment lands on Monday. GL posts on Monday. But by then, it's a new accounting period, and the entry lands in a different posting period. You reconcile Friday's GL and find ₹1,00,000 posted. You reconcile Monday's GL and see the invoice a second time. Or worse, it lands in the next month's close, and you miss it entirely. Audit step: Check your billing platform's invoice status history. When was it created? When was it marked "sent" or "paid"? Now check your GL posting date for the corresponding entry. Do they