Xero + Short-Term Rentals: The Setup Nobody Teaches You
Xero wasn’t built for this
Xero is excellent accounting software. It handles invoicing, bank reconciliation, payroll, and reporting beautifully for most businesses. But short-term rental income has characteristics that Xero doesn’t handle natively:
- Multiple revenue streams per booking — accommodation, cleaning fees, extras
- Platform commissions — deducted before payout, not invoiced separately
- Multi-currency — guests pay in one currency, your bank receives another
- Variable tax treatment — VAT on accommodation but not on deposits, or different rates for short vs. long stays
- High volume — 20-50 invoices per month across multiple properties
Most hosts and their accountants end up creating a “good enough” setup that works until it doesn’t — usually at tax time, when the reconciliation falls apart.
The common mistakes
Mistake 1: One line item per booking
The simplest approach — one invoice line showing the total payout — is also the least useful. It lumps accommodation, cleaning fees, and platform commissions into a single number. Your accountant can’t separate revenue types. Your tax return can’t distinguish between taxable and non-taxable income. Your P&L shows a number that doesn’t match what the guest actually paid.
Mistake 2: Ignoring platform fees
When Airbnb takes their 3% host fee, you receive a payout that’s less than the booking value. Many hosts record only the payout amount, ignoring the commission entirely. This understates gross revenue and hides the true cost of each platform.
The correct treatment: record the full booking value as income, and the platform commission as an expense. This gives you accurate gross revenue figures and lets you compare the real cost of each channel.
Mistake 3: Wrong currency handling
If a guest pays €1,200 and you receive £987 in your UK bank account, which currency goes on the invoice? If you invoice in GBP at the bank amount, you’ve lost the connection to the original booking value. If you invoice in EUR, you need to handle the FX conversion on the bank reconciliation.
Neither approach is wrong, but most hosts don’t choose deliberately — they use whatever currency they think of first, and end up with an inconsistent mix that makes reconciliation impossible.
Mistake 4: No contact per guest
Creating a new Xero contact for every guest is tedious. Skipping it and using a generic “Airbnb Bookings” contact saves time but eliminates guest-level tracking. If a guest books twice, you can’t see their history. If you need to issue a refund, you can’t find the original invoice.
Mistake 5: Manual data entry
The biggest mistake isn’t a configuration issue — it’s the process itself. Manually creating invoices from booking emails is slow, error-prone, and doesn’t scale. At 20 bookings per month, you’re spending 2-3 hours per month on data entry. At 50 bookings, it’s a part-time job.
The right setup
Here’s how a properly configured Xero setup for short-term rentals should work:
Chart of accounts
| Account | Type | Purpose |
|---|---|---|
| Accommodation Income | Revenue | Nightly rate revenue |
| Cleaning Fee Income | Revenue | Cleaning fees charged to guests |
| Service Fee Income | Revenue | Additional services and extras |
| Platform Commissions | Expense | Airbnb/Booking.com/VRBO fees |
| FX Gains/Losses | Other | Currency conversion differences |
Invoice structure (per booking)
A properly structured invoice should have separate line items:
- Booking summary — zero-value line with confirmation code, guest name, dates, and platform (for reference)
- Accommodation — nightly rate x number of nights (or total if rate varies)
- Cleaning fee — separate line item with appropriate tax treatment
- Platform service fee — deducted commission as a negative line item or separate expense
- Tax — VAT/GST applied to applicable line items based on your registration status
Currency handling
Invoices should be created in your accounting currency (the currency your bank and tax returns use), with the exchange rate recorded for audit. The original booking currency should be noted in the invoice reference or description for traceability.
Contact management
Each guest should be a Xero contact, created automatically on first booking and reused for repeat guests. This enables guest-level revenue tracking and simplifies refund processing.
How Airflow automates all of this
Airflow connects to Xero via OAuth — a proper, secure integration with automatic token refresh. No API keys to manage. No manual re-authentication.
When a booking is processed, Airflow creates a draft invoice in Xero with:
- Contact resolution — searches for existing guest contact by name and email; creates one if not found
- Multi-line items — accommodation, cleaning fees, service fees, and platform commissions as separate lines
- Correct account codes — mapped to your chart of accounts, configurable per organisation
- Tax handling — VAT rates applied based on your registration status and line item type
- Withholding tax — supported for jurisdictions that require it
- Currency conversion — booking amount converted to your accounting currency with the exchange rate, source, and timestamp recorded
- Bank spread adjustment — configurable percentage to account for your bank’s FX markup
The invoice is created as a draft. You review it, approve it, and it’s ready for reconciliation when the payout arrives.
Bulk processing
Airflow processes up to 10 bookings per batch, running every 15 minutes. A busy weekend of bookings turns into a stack of clean, correctly structured draft invoices waiting for your review on Monday morning — not a backlog of manual data entry.
The reconciliation payoff
When your Airbnb payout arrives in your bank account, Xero’s bank rules can match it to the corresponding invoice because the amounts, references, and dates all line up. What used to take 20 minutes of detective work per payout becomes a one-click bank reconciliation.
Beyond Xero
Airflow supports direct integrations with three accounting platforms:
- Xero — full OAuth integration, draft invoices, contact management, automatic token refresh
- QuickBooks — sandbox and live modes, customer creation, multi-line invoices
- FreshBooks — OAuth, client search/create, detailed line items
All three follow the same pattern: connect your account via OAuth, configure your account codes, and start processing bookings. Draft invoices are created automatically with the same multi-line structure — accommodation, fees, commissions, tax, and currency conversion.
Google Sheets and CSV export
For other accounting platforms, Airflow supports Google Sheets sync — push your booking data to a connected spreadsheet with one click. You can also export booking and financial data as CSV for import into any accounting tool. This gives you flexibility regardless of which software your accountant uses.
Stop doing your accountant’s job
Your time is better spent on guest experience, property maintenance, and growing your business — not on creating invoices that a machine can create more accurately in seconds.
Get started with Airflow, connect your Xero account, and forward your first booking email. The draft invoice that appears will have more detail, better structure, and fewer errors than anything you’d create manually.
Your accountant will thank you at year-end.