Why Your Travel Agency Ledger Isn't Balancing (And How to Fix It)
Customer advances, cancellation refunds, partial payments, and carry-forward balances — the real reasons your travel agency books don't reconcile, and how to fix them permanently.
The Real Problem: Travel Payments Are Never 1:1
In most businesses, a customer pays an invoice and the transaction is done. In travel, payments flow in multiple directions — customers pay advances before trips are confirmed, bookings get cancelled mid-trip, refunds roll into future bookings, and partial payments sit in limbo for weeks.
If you're tracking this in spreadsheets, you're almost certainly losing money. Here's why — and how to fix it.
Problem 1: Customer Advances with No Clear Trail
A customer sends ₹50,000 as an advance for an upcoming Goa trip. The trip gets quoted at ₹42,000. What happens to the remaining ₹8,000?
The Spreadsheet Way
- •Record the ₹50,000 in a "Received" column
- •When the booking is created, manually deduct ₹42,000
- •Remember to note ₹8,000 as a balance somewhere
- •When the next trip comes up, hope you remember the ₹8,000 exists
- •If the customer asks about their balance 3 months later, scramble through sheets to find it
How MoonTrip Solves It
A customer advance ledger is a per-customer account tracking all credits (advance deposits, cancellation refunds) and debits (booking applications) with a running balance. MoonTrip maintains one for every customer. When an advance payment is recorded, it creates a credit entry. Here's how the math works:
Step 1: Customer pays advance
Advance Created = ₹50,000 (CREDIT)
Running Balance = ₹50,000
Step 2: Booking created for ₹42,000
Auto-Applied (FIFO) = ₹42,000 (DEBIT)
Running Balance = ₹8,000
Step 3: Next booking for ₹35,000
Auto-Applied = ₹8,000 (DEBIT — remaining balance)
Customer Still Owes = ₹27,000
Running Balance = ₹0- •FIFO Application: The oldest advance is always used first — no manual selection needed
- •Auto-Apply on Booking: When a new booking is created, the system checks for available advance balance and applies it automatically
- •Partial Application: One advance can be split across multiple bookings
- •Running Balance: Always visible on the customer dashboard — the customer can ask any time and you have the number instantly
Problem 2: Cancellation Refunds That Disappear
A customer cancels a ₹1,20,000 Kashmir package. The vendor charges ₹25,000 in cancellation fees. The agent charges the customer ₹30,000. The difference? That ₹5,000 is the agent's profit on the cancellation. The remaining ₹90,000 needs to go somewhere.
The Spreadsheet Way
- •Calculate refund amount manually: ₹1,20,000 − ₹30,000 = ₹90,000
- •Figure out if the customer had already paid (fully or partially)
- •If they paid ₹80,000, the actual refund is ₹80,000 − ₹30,000 = ₹50,000
- •Track the ₹5,000 agent profit separately in another column
- •Create a credit note manually for GST compliance
- •If the customer wants to use the refund for a future trip, track that too
How MoonTrip Handles It
MoonTrip's cancellation wizard walks through every step with live calculations:
Original Invoice = ₹1,20,000
Customer Already Paid = ₹80,000
Vendor Charges (actual) = ₹25,000
Customer Charges = ₹30,000
Agent Profit = ₹30,000 − ₹25,000 = ₹5,000 ← Internal EXT invoice
Non-Refundable = ₹30,000
Gross CN Amount = ₹1,20,000 − ₹30,000 = ₹90,000
Actual Refund = ₹80,000 − ₹30,000 = ₹50,000The system then asks where the ₹50,000 refund should go:
- •Customer Advance: Refund goes to the advance ledger for future trips — creates a credit entry automatically
- •Allocate to Another Booking: If the customer has a pending Rajasthan trip, apply the ₹50,000 directly to reduce that booking's outstanding amount
- •Direct Settlement: Settle via UPI, bank transfer, or cheque — recorded as a refund payment
Three documents are auto-generated: Cancellation Note (E1), Internal Margin Invoice (E2) for the ₹5,000 profit, and a Processing Fee Credit Note (E4) if the processing fee was refunded.
Problem 3: Partial Payments and "Who Owes What"
Group bookings are the worst offenders. A family of 6 books a Kerala trip. Father pays ₹1,00,000 upfront, promises the remaining ₹80,000 "next week." Next week becomes next month. Meanwhile, you've already paid the hotel.
The Spreadsheet Way
- •Mark the booking as "Partially Paid" in a cell
- •Set a mental reminder to follow up
- •Send a WhatsApp message manually
- •Hope the customer responds before the trip date
- •If they don't pay, figure out whether to cancel or absorb the loss
How MoonTrip Solves It
The Smart Receivables module monitors every booking's payment status:
Booking Total = ₹1,80,000
Amount Paid = ₹1,00,000
Amount Pending = ₹80,000
Payment Status = "Partial"
Due Date = 2026-03-25
If status = "Partial" or "Unpaid" AND today > due date:
→ Trigger automated WhatsApp reminder
→ Send professional email follow-up
→ Repeat every 3 days until settledProblem 4: Balance Carry-Forwards Between Trips
Industry-standard reconciliation requires handling scenarios where money from one trip flows into another:
- •Overpayment: Customer paid ₹50,000 for a ₹45,000 trip → ₹5,000 should roll to next trip
- •Cancellation Refund: ₹30,000 refund from a cancelled Manali trip → apply to the upcoming Goa trip
- •Credit Note: A service credit issued by the agency → reduce the next invoice
Trip 1: Manali — Cancelled
Refund Amount = ₹30,000
→ Credited to Advance Ledger (CREDIT)
Trip 2: Goa — New Booking
Booking Total = ₹42,000
Advance Auto-Applied = ₹30,000 (DEBIT)
Customer Now Owes = ₹12,000
Trip 3: Rajasthan — Future
If customer pays ₹60,000 for ₹55,000 booking:
Overpayment = ₹5,000
→ Credited to Advance Ledger (CREDIT)
Running Balance = ₹5,000Problem 5: Credit Notes and GST Compliance
A credit note is a GST-compliant document that reverses or reduces the tax liability from a previous invoice, required under Section 34 of the CGST Act for cancellations and refunds. It must reference the original invoice, show the reversal amount, and adjust your GSTR-1 output tax liability.
- •Cancellation Note (E1): Issued when a booking is cancelled — reverses the original invoice amount minus cancellation charges
- •Internal Margin Invoice (E2): When the agent retains profit on a cancellation (customer charge > vendor charge), this internal document captures the margin with GST
- •Processing Fee Credit Note (E4): If the original processing/booking fee is refunded, a separate CN is generated
Original Invoice (GSTR-1 Table 4A)
Taxable Value = ₹1,00,000
CGST = ₹9,000
SGST = ₹9,000
Credit Note Issued (GSTR-1 Table 9B)
Reversal = ₹70,000
CGST Reversal = ₹6,300
SGST Reversal = ₹6,300
Net Tax Liability for the Period:
Taxable Value = ₹1,00,000 − ₹70,000 = ₹30,000
CGST = ₹9,000 − ₹6,300 = ₹2,700
SGST = ₹9,000 − ₹6,300 = ₹2,700The Complete Reconciliation Flow
Here's how a properly reconciled travel agency ledger should work, end to end:
| Date | Description | Credit | Debit | Balance |
|---|---|---|---|---|
| Jan 5 | Advance Deposit via UPI | +₹50,000 | ₹50,000 | |
| Jan 12 | Goa Booking auto-applied | −₹42,000 | ₹8,000 | |
| Feb 3 | Kashmir Booking applied | −₹8,000 | ₹0 | |
| Feb 3 | Customer pays (of ₹1,20,000) | +₹72,000 | Pending: ₹40,000 | |
| Feb 20 | Kashmir Cancelled — refund | +₹50,000 | ₹50,000 | |
| Mar 1 | Rajasthan Booking applied | −₹50,000 | ₹0 | |
| Mar 1 | Customer owes remaining | Pending: ₹5,000 | ||
| Mar 10 | Payment received | +₹5,000 | ₹0 |
Related Guides
Stop calculating manually
MoonTrip automates GST, invoicing, and profit tracking for Indian travel agencies.
Get Started Free