You win a ₹50L annual retainer for a regional tech services contract. The client operates across Malaysia, Indonesia, and Singapore—and they want one invoice each month that splits the retainer by country, adds project work unique to each jurisdiction, and covers contractor time that was logged across all three. Same invoice. Three tax jurisdictions. Three currencies. Rounding errors are already stacking up in your head. This is not a rare edge case. Regional MSPs, design agencies, and staffing firms run into this monthly. Most invoicing tools assume one tax rate per invoice. Some choke on currency splits. And none of them handle the interaction between proration, tax withholding, and GL coding without manual workarounds. Let's work through a real scenario end-to-end and test which platforms handle it natively. The scenario: one retainer, three countries, mixed billing Your client has signed a 12-month retainer for ₹50L. The agreement splits it by country: Malaysia: ₹18L annually (6% SST, invoice in MYR) Indonesia: ₹22L annually (10% PPn, invoice in IDR) Singapore: ₹10L annually (8% GST, invoice in SGD) On top of the retainer, you've logged: ₹3L in project work across Malaysia and Indonesia (split 60/40). 92 hours of contractor time logged in Singapore, billed at ₹5,000/hour = ₹4.6L. You're billing monthly. This month (June) is a full month—no mid-contract start, no partial cancellation. But proration rules matter if the client joins mid-month or if you need to reconcile a partial year. Let's build the invoice. Step 1: Calculate the monthly retainer split and apply taxes Malaysia portion: Monthly retainer: ₹18L ÷ 12 = ₹1.5L SST (6%) on retainer: ₹1.5L × 0.06 = ₹9,000 Subtotal (Malaysia): ₹1.5L + ₹9,000 = ₹1.59L Indonesia portion: Monthly retainer: ₹22L ÷ 12 = ₹1.833L (rounded to nearest rupiah in IDR calculation) Project work (60% of ₹3L): ₹1.8L Taxable subtotal: ₹1.833L + ₹1.8L = ₹3.633L PPn (10%): ₹3.633L × 0.10 = ₹0.363L Total (Indonesia): ₹3.633L + ₹0.363L = ₹3.996L Singapore portion: Monthly retainer: ₹10L ÷ 12 = ₹0.833L Project work (40% of ₹3L): ₹1.2L Contractor time: ₹4.6L Taxable subtotal: ₹0.833L + ₹1.2L + ₹4.6L = ₹6.633L GST (8%): ₹6.633L × 0.08 = ₹0.530L Total (Singapore): ₹6.633L + ₹0.530L = ₹7.163L Grand total (INR): ₹1.59L + ₹3.996L + ₹7.163L = ₹12.749L Key rule: Each jurisdiction's taxes apply only to the revenue earned in that jurisdiction. Retainer splits by country. Project work allocates by service location. Contractor time stays in the country where hours were logged. Mixing these up is the fastest way to fail an audit. Step 2: Handle currency conversion and rounding Your invoice lives in INR, but Malaysia wants MYR and Singapore wants SGD. Indonesia will accept IDR or INR. Using live mid-market rates (sample, not real): 1 INR = 0.20 MYR 1 INR = 87 IDR 1 INR = 0.018 SGD Malaysia (MYR): ₹1.59L × 0.20 = 31,800 MYR (SST already applied in INR, no double-tax) Indonesia (IDR): ₹3.996L × 87 = 347,652,000 IDR (PPn already in INR) Singapore (SGD): ₹7.163L × 0.018 = 12,893 SGD (GST already in INR) Now the trap: if you round each country's total independently, you lose alignment with the INR invoice. Best practice: Calculate everything in INR first, then convert the final line items to local currencies. Round only at the currency pair boundary, not mid-calculation. Your client expects one invoice total. Show it in INR, then break down the local-currency equivalents in a supporting schedule. That way, your GL matches, your tax authority sees the right base, and currency rounding doesn't hide revenue. Step 3: GL coding and tax withholding Now your accountant needs to post this. A proper split looks like: Debit: Accounts Receivable (INR) ₹12.749L Credit: Service Revenue – Malaysia ₹1.5L Credit: Service Revenue – Indonesia ₹3.633L Credit: Service Revenue – Singapore ₹6.633L Credit: SST Payable (Malaysia) ₹9,000 Credit: PPn Payable (Indonesia) ₹0.363L Credit: GST Payable (Singapore) ₹0.530L If your client is in Malaysia and must withhold 3% contractor tax on services: you'd reduce the net payment by ₹0.382L (3% of ₹12.749L) and post that to a withholding liability account. Indonesia's withholding is 2% on project work: another ₹36,000 off the net. Singapore has no standard withholding for service retainers, but contractor time may fall under different rules depending on contractor residency—check with ACRA. The invoice footer should note these withholdings clearly. Your client needs to know why the payment owed differs from the invoice total. Proration rules when the contract doesn't start on the 1st If your contract starts mid-month (say, June 15), proration kicks in. The formula is simple but easy to mess up: Prorated amount = (Monthly amount) × (Days in service / Days in month) If you start June 15, you're invoicing for 16 days of June (15th through 30th, inclusive): Malaysia retainer: ₹1.5L × (16 ÷ 30) = ₹0.8L (+ 6% SST = ₹0.848L) Indonesia: ₹1.833L × (16 ÷ 30) = ₹0.976L (+ 10% PPn, if applicable