When an agency owner books a WauHub demo with their accountant, we ask them to bring one trip that has already departed. Not the whole year, just one group.
Say it is a June Japan group: 20 passengers at RM6,500 each. By the end of May, RM130,000 has come in and RM83,000 has gone out to the ground handler and the airline. The owner looks at the bank and reckons the trip made about RM47,000.
The accountant says RM11,000. The ground handler’s final bill of RM36,000 only arrives after the group comes home, and none of the RM130,000 counted as revenue until the group flew.
Both figures come from the same bank account. The gap is timing. A travel agency gets paid before it delivers and pays suppliers before the trip runs, so accounting for a tour and travel business comes down to five rules:
- Customer deposits and balances are a liability, “Customer deposits”, until the trip runs.
- Advances to hotels, airlines and ground handlers are an asset, “Supplier prepayments”, until the trip runs.
- When the trip departs, both move. Deposits become revenue and advances become cost of sales.
- If you only arrange someone else’s service, such as a flight-only ticket, only your fee or commission is revenue.
- Exchange rate differences go into their own account, not into the trip’s cost.
Below, we walk through that Japan trip the way we would in a demo, month by month, with the journal entry for each step. If your books do not look like this, show it to your accountant.

The trip
The 20 customers pay RM1,000 to hold a seat in March and the RM5,500 balance in May. The agency pays a ground handler and an airline along the way.
Before the first ringgit comes in, give the departure its own code, such as JPN-JUN27-01. Every invoice, supplier bill, tour leader allowance, guide tip and airport transfer for this group gets tagged with that code. Your monthly P&L tells you whether the agency made money. The code is what lets you answer “did the June Japan group make money?” without a weekend in Excel.
March: deposits come in
Twenty customers pay RM1,000 each. You have not given them anything yet. You owe them a trip, so the money sits as a liability.
| Debit | Credit |
|---|---|
| Bank RM20,000 | Customer deposits RM20,000 |
Many agencies post this straight to sales. March then looks like a record month, June looks terrible, and next year’s pricing and hiring get decided on figures that are months out of date. We wrote about the cash side of this in cash flow management for travel agencies.
April: the ground handler wants an advance
You pay the Japanese ground handler RM35,000. Nothing has been delivered to you yet, so this is an asset until the trip runs.
| Debit | Credit |
|---|---|
| Supplier prepayments RM35,000 | Bank RM35,000 |
Post it straight to expenses and April looks like a loss, while June looks like almost pure profit. Neither month tells you anything useful about the trip.
If the supplier bills in foreign currency
Saudi hotels bill in SAR, Japanese ground handlers in JPY, and plenty of suppliers in USD or THB. Record the bill in RM at the rate on the bill date. If you pay later and the ringgit has moved, the difference goes to its own account.
| Event | RM amount |
|---|---|
| Saudi hotel bill SAR 40,000 at 1.18 | RM47,200 |
| Paid two weeks later at 1.21 | RM48,400 |
| Realised exchange loss | RM1,200 |
The trip still cost RM47,200. Keep the RM1,200 in “Realised foreign exchange gain or loss”. Bury it in cost of sales and you can no longer tell whether the trip was priced badly or the ringgit just had a bad fortnight.
May: balances and air tickets
The 20 customers pay their RM5,500 balances, and you pay for the group air tickets.
| What happened | Debit | Credit |
|---|---|---|
| 20 balances of RM5,500 | Bank RM110,000 | Customer deposits RM110,000 |
| Group air tickets paid | Supplier prepayments RM48,000 | Bank RM48,000 |
This is the moment the bank looks best. RM130,000 in, RM83,000 out. On paper the trip has still earned nothing.
June: the group flies
The departure date is when the money finally changes category. Revenue is recognised, the advances become cost, and the ground handler’s final bill is recorded even though you have not paid it yet.
| What happened | Debit | Credit |
|---|---|---|
| Trip departs: recognise revenue | Customer deposits RM130,000 | Tour revenue RM130,000 |
| Advances become cost | Cost of sales RM83,000 | Supplier prepayments RM83,000 |
| Ground handler’s final bill received | Cost of sales RM36,000 | Accounts payable RM36,000 |
Your accountant will set the exact recognition rule for your agency, whether that is the departure date or the days of the trip. Either way, here is what the trip made:
| RM | |
|---|---|
| Tour revenue | 130,000 |
| Cost of sales (35,000 + 48,000 + 36,000) | 119,000 |
| Gross profit | 11,000 |
| Gross margin | 8.5% |
That is the RM11,000 from the top of this article, and the RM36,000 still owed to the ground handler after everyone is back home.
For the detailed version accountants use, see tour profit and loss: a technical guide for travel agency accountants.
What if a customer cancels?
A cancellation touches both sides of the books.
| Situation | What to record |
|---|---|
| Customer cancels, you refund in full | Reduce Customer deposits, reduce Bank |
| Customer cancels, you keep part as a cancellation fee | Refund the rest; move the amount you keep from Customer deposits to Cancellation fee income |
| Supplier keeps your advance | Move it from Supplier prepayments to cost or expense for that trip |
| Supplier refunds your advance | Reduce Supplier prepayments, increase Bank |
The usual slip is refunding the customer from the bank without reducing the deposit liability. The customer has gone, but their deposit is still sitting on your balance sheet. Our step-by-step guide shows how to record and refund a customer booking.
What if you are only the agent?
The Japan group is a package you put together yourself. You set the price and take the loss if a supplier lets you down or seats go unsold, so you are the principal. Revenue is the full RM130,000.
Selling a flight-only ticket at the airline’s fare plus your service fee is different. You are arranging someone else’s service, so you are the agent, and only your fee is revenue.
| Sale | As principal | As agent |
|---|---|---|
| Flight-only ticket, customer pays RM1,850, airline fare RM1,780 | Revenue RM1,850, cost RM1,780 | Revenue RM70 |
| Profit | RM70 | RM70 |
You keep RM70 either way. The revenue line, though, looks completely different, and revenue is the figure banks, auditors and turnover thresholds look at. An agency that books every air ticket at gross can look several times bigger on paper than it really is.
Most Malaysian Sdn Bhds report under MPERS (the Malaysian Private Entities Reporting Standard), which uses the same agent or principal test. Agree the treatment for each type of product with your accountant once, then apply it the same way every month.
Month-end checklist
Go through this before anything goes to your accountant.
- Match every bank line to a customer, supplier or trip.
- Check that FPX, card and DuitNow QR receipts from your payment gateway match what actually settled into the bank.
- For every trip that departed this month, move its customer deposits to revenue and its supplier prepayments to cost.
- For trips that have already run, chase any supplier bill you still have not received, so the trip’s cost is complete.
- Look for deposits older than their trip date. Each one is either a revenue entry someone missed or a refund nobody recorded.
- Make sure customer invoices and self-billed supplier documents are validated in MyInvois. Our guide on what to issue for customers and suppliers explains which document goes to whom.
A simple chart of accounts for a travel agency
You do not need hundreds of accounts, just the ones that match how money moves in a travel business. Here is a starting point:
| Type | Account | Used for |
|---|---|---|
| Asset | Bank, operating | Day-to-day receipts and payments |
| Asset | Payment gateway clearing | FPX, card and DuitNow QR payments not yet settled to bank |
| Asset | Supplier prepayments | Advances to hotels, airlines, ground handlers |
| Asset | Accounts receivable | Corporate customers on credit terms |
| Liability | Customer deposits | Money received for trips not yet run |
| Liability | Accounts payable | Supplier bills received but not paid |
| Liability | Commission payable | Sales agent commission owed |
| Liability | SST payable | Service tax collected, if your agency is registered |
| Revenue | Tour package revenue | Packages where you act as principal |
| Revenue | Commission and service fee income | Tickets and services sold as agent |
| Revenue | Cancellation fee income | Amounts kept when customers cancel |
| Cost of sales | Land, hotel, air, visa and guide costs | Supplier costs for trips you run |
| Cost of sales | Sales agent commission | Commission tied to specific sales |
| Expense | Rent, salaries, marketing, software | Running the office |
| Other | Realised foreign exchange gain or loss | Rate differences on foreign payments |
Before you add the SST account, read how SST applies to common travel services and check your registration status with your tax agent.
Where software helps
You can do all of this with Excel and a general accounting package. What takes the time is working out, three months later, which trip a bank transfer or supplier bill belonged to.
In WauHub, customer invoices, payments, supplier bills and payment vouchers stay linked to the booking they came from. They post to a double-entry chart of accounts with a general ledger, trial balance, profit and loss and balance sheet. Bank statement lines are matched to recorded transactions, and every figure traces back to its source document. Your accountant still sets the rules and signs off the accounts. They just spend less time WhatsApp-ing you to ask “duit ni untuk trip mana?”
Have a look at the travel agency accounting page, or book a demo and bring your accountant. We will follow one customer deposit and one supplier advance from the bank all the way to the trip’s profit and loss.
