Problems
Zanda service categories do not split revenue
Because Zanda maps Xero sales accounts by Calendar, not by service or by tax rate. A service category organises the service list inside Zanda and does not route an invoice line to a different Xero account. So a consult, a report, a workshop and a product sold off one diary reach one account, carrying two different tax rates between them.
Key facts
- What the mapping key is
- Zanda maps Xero sales accounts by Calendar, not by service or tax rate, and a calendar is usually a practitioner or a discipline2
- What a service category does
- It organises the service list inside Zanda. It does not route invoice line items to different Xero accounts2
- Where the tax rate goes instead
- A Zanda tax rate maps to a Xero tax type that controls the treatment sent for each invoice line, so the rate travels while the account stays put2
- What Map To Diary maps
- Zanda's Map To Diary feature links calendars and practitioner sales to a specific Xero sales account, so invoices export by the provider's calendar without a settings change before each run2
- How many tracking slots a line has
- Xero's Accounting API specification says any line item can carry a maximum of 2 tracking category elements3
- How many slots the organisation holds
- Four tracking categories in a Xero organisation with two active at a time, so the pair a Zanda export can fill is the pair the whole practice has4
- What Zanda puts in a tracking slot
- Zanda's setup article says its Xero tracking category helps categorise invoices for reporting and works similarly to Zanda's locations1
- What the canonical template does with a category
- One private payer resolves to four revenue accounts once the service category is present, and only the consult row sits at a GST free rate7
- Why the service changes the rate
- The recipient of a health supply is whoever engages the practitioner, and the ATO says supplies of services by a health practitioner to another business are not usually GST free5
- How Cliniko differs
- Cliniko maps a sales account to a billable item, and that setting overrides the default sales account and any practitioner sales account6
- Where this sits in the evidence
- Pain point P7, revenue by service type, carries five independent sources, is partly solved in Cliniko and is unsolved in Zanda9
What a service category actually does
A Zanda service category is a filing system for the service list. It decides how services group when a receptionist searches for one and how a Zanda report breaks the week down. It is not a coding instruction. Zanda's own integration FAQ puts it plainly: sales accounts are mapped by Calendar, not by service or tax rate, and service categories do not route invoice line items to different Xero accounts.
That leaves a practice with one coding key on the export, and the key is the diary the appointment sat in. For a single discipline clinic that is close enough. For a practice that sells a consult, an assessment, a workshop and a product from the same diary, it collapses four different kinds of income into one figure before the invoice ever reaches Xero.
What the export can key on
It is worth setting out the whole set, because the answer is not that Zanda sends nothing. It sends several dimensions. None of them is the service.
Zanda's own name for the account mapping is Map To Diary. It links calendars and practitioner sales to a specific Xero sales account, and once it is set, invoices export to those accounts by the provider's calendar without a settings change before each run. It is the strongest tool on that screen, and it keys on the diary.
| Dimension in Zanda | Where it lands in Xero |
|---|---|
| Calendar, usually a practitioner or a discipline | The sales account on the invoice line, pre-mapped per calendar |
| Location | A tracking category, described as working similarly to Zanda's locations, with its name and option picked in the export settings |
| Tax rate | A Xero tax type on the line, which does not change the account |
| Payment method | The Xero payments account, chosen per export batch |
| Service category | Nowhere in the Xero coding |
Read down the last column and the shape of the problem appears. The export carries who saw the client, what tax rate applied and a tracking value the practice picks before the run. It does not carry what was sold.
What one diary produces in a week
Here is the same practitioner, the same payer and the same week, resolved through the allied health canonical template. Once service categories are present the private payer stops resolving to one account and starts resolving to four. A consult takes no category override, so it stays on 400 clinical services at GST Free Income. A report goes to 420, training and workshops to 421, and a product to 422, all three at GST on Income.
A calendar mapping cannot tell these four apart, because all four came out of the same diary. Whatever account that calendar points at is the account all four land in.
Why it reaches the activity statement
A single account holding a mix of rates is not only untidy. The split between GST free and taxable income now rests entirely on the tax rate sitting on each exported line, because the account structure no longer separates them. Nothing in the profit and loss will show a bookkeeper that a taxable line has been coded at the wrong rate, since the right and wrong versions sit in the same total.
Zanda does map its tax rates to Xero tax types, so the rates do travel. Two things go with them. A known export fault turns GST free lines into BAS excluded ones under some tax usage settings, which is covered on the GST free to BAS excluded page. And a category the practice has not set a rate on will export at whatever default applies, with no account boundary to catch it.
Coding everything GST-free because 'health is GST-free' is one of the most common errors we find in practice files8
Why a tracking category cannot hold it either
The first instinct is to push service type onto a tracking category. Two things stop it. Xero's own API specification says any line item takes a maximum of 2 tracking category elements, so there is a hard ceiling on how many dimensions a line can carry.
The second is that the service does not choose the value. Zanda picks a tracking category name and its option in the Xero export settings, not on the service, and its setup article describes that tracking category as working similarly to Zanda's locations. So the slot carries a value set for the export rather than one that changes with what was sold. What a tracking category can and cannot carry in Xero is on the tracking categories how-to.
How Cliniko compares on the same question
This is one of the few places where the two systems genuinely differ. Cliniko can attach a sales account to a billable item, and that item level setting overrides both the default sales account and any practitioner sales account. Because a billable item is close to a service, a Cliniko practice can get most of a service split by maintaining that list item by item.
The cost is maintenance rather than capability: every new item needs a mapping, and an unmapped item falls back to the default. The payer question is a different matter, and neither system answers it. That one is on the single sales account page.
What practices do about it today
Four workarounds are in circulation, and each one buys the split with something else.
- Give each service type its own calendar and map that calendar to its own account. It works, and it turns the diary into a chart of accounts, so scheduling and rostering get harder every time a new service is added.
- Run separate export batches, filtering before each one and changing the account setting in between. Accurate while somebody remembers the order, and one skipped filter puts a batch in the wrong account.
- Journal the service split each month from a Zanda report. Correct at month end and unavailable on the fifteenth, and the journal is only as good as the report it was typed from.
- Leave the ledger as it is and answer service mix questions out of Zanda. This holds until an accountant, a lender or a buyer wants the mix out of the accounts.
How to check your own file
Three checks separate a reporting annoyance from something that reaches a lodgement.
| Check in Xero | What a clean answer looks like |
|---|---|
| Open the account transactions report for each sales account and group by tax rate | One tax rate per account, so no account mixes GST free and taxable income |
| Filter the same report for report, workshop and product descriptions | None of them appear in an account named for clinical services |
| Compare a Zanda revenue by service report to the ledger for one quarter | The two agree without a spreadsheet in between them |
The first check is the one worth acting on first, because a mixed account is the one that reaches the business activity statement rather than only the management report.
Where the split can live instead
The canonical template answers this by treating the account code as the place where both the payer and the service category land. Clinical work gets an account per funding source, and the categories that behave differently get their own accounts on top: reports and assessments, supervision and training, product sales, cancellation fees, group sessions. The whole chart is on the allied health template page.
That leaves the two tracking slots for the dimensions an export can actually fill, which for a Zanda practice is the value picked in the export settings before the run. The reason a report needs its own account rather than a label is that its tax treatment differs from a consult's, and a label does not change a rate. The ATO puts the test on the recipient of the supply, which is whoever engages the practitioner, and says supplies of services by a health practitioner to another business are not usually GST free. That is the same axis the service category names. The report side of it is on the reports and medico-legal page.
What Ledger Map does with it
Ledger Map keeps one standing map the practice approves before anything syncs, and that map reads both the funding source and the service category on a billed line. A report and a consult sold from the same diary resolve to different revenue accounts and different Xero tax rates, because the map is not keyed on the calendar the appointment sat in.
It does not choose a treatment for the practice. The accounts and the rates come from the canonical template the practice starts from, and a line the map cannot place becomes a question with the options set out rather than a quiet posting into a general account. For a funder deposit it posts one balanced document set and leaves one exact match in the bank feed for a person to accept. The shape of it is on how it works, and the Zanda specifics are on the Zanda integration page.
Questions
Can I map a Zanda service category to a Xero sales account?
No. Zanda maps sales accounts by Calendar, and its integration FAQ states that service categories do not route invoice line items to different Xero accounts. The category organises the service list inside Zanda and stops there.
Why does my profit and loss show one figure for a multidisciplinary practice?
Because the coding key on the export is the calendar. If physiotherapy, dietetics and exercise physiology share a diary, or if their calendars all point at the same sales account, everything they bill arrives in one account. Splitting the calendars and pre-mapping each one is the workaround the export supports.
Can I use a Zanda tracking category for service type instead?
Not by the service. Zanda picks a tracking category name and option in its Xero export settings rather than on the service, and its setup article describes that tracking category as working similarly to Zanda's locations. Xero also caps a line item at two tracking category elements, so there is a ceiling on how many dimensions a line can carry.
Can I send GST free and taxable services to different Xero sales accounts?
Not by the service. Zanda maps sales accounts by Calendar, and mapping a Zanda tax rate to a Xero tax type changes the treatment on the line without changing the account the line lands in. Splitting GST free work from taxable work in the accounts means splitting the calendars, or splitting the export.
Is this a GST problem or only a reporting one?
It can be both. Once GST free and taxable income share an account, the separation depends entirely on the tax rate on each line, and no account boundary is left to catch a line coded at the wrong rate. A report, a workshop and a product sold off a clinical diary are the usual examples.
Does Cliniko handle service type any better?
On this one axis, yes. Cliniko can attach a sales account to a billable item, and that setting overrides the default sales account and any practitioner sales account. It has to be maintained item by item, and it still cannot express who is paying.
Read next
- Practice systemsZanda Xero integration: what the batch export carries
- ProblemsAll practice revenue lands in one Xero account
- ProblemsGST free exports as BAS Excluded from Zanda
- TemplatesAllied health chart of accounts, by funder
- Xero how toXero tracking categories for a clinic
- GST answersGST on reports and medico-legal work
- HubProblems
Sources
Open questions
- No search results snapshot was captured for this query, so the answer landscape in the brief is reasoned from the sources rather than observed. The questions above are taken from the corpus question list and from Zanda's own FAQ headings rather than from People also ask. Recapture the snapshot before this page moves off draft.
- Neither Zanda support article shows a last updated date, so every Zanda source date here is the date the article was read.
- Account 421 in the canonical template holds supervision as well as training and workshops. Whether supervision sold to another provider is taxable is unsettled in the research corpus, as are NDIS report writing, therapy assistant time and gift vouchers, and they are left to the practice and its BAS agent.
- The tracking limit is settled from both sides: Xero's set up article gives four categories with two active at a time, and the published API specification gives the per line version of the same limit. Which of the two active slots a given Zanda practice has already spent is a practice fact this page does not know.
- Zanda's articles show the tracking category name and option being picked in the Xero export settings and describe the category as working similarly to Zanda's locations. Whether an appointment's own location is written into that option per invoice was not established, so this page does not claim it.
- The ATO page cited here sets the general rule on the recipient of a supply. It does not rule on any one service category, so the account codes and rates shown come from the canonical template and a BAS agent settles a practice's own list.
- GST and health: recipient of the supply
Australian Taxation Office. Retrieved 3 Sep 2026. Source updated 12 Jun 2024.
primary
- Sync billable items in Cliniko to specific sales accounts in Xero
Cliniko. Retrieved 3 Sep 2026.
primary
- Bookkeeping for speech pathology and allied health practices
True Tally. Retrieved 3 Sep 2026. Source updated Jul 2026.
secondary
- Customer pain point evidence, entry P7 revenue by service type
Ledger Map. Retrieved 3 Sep 2026. Source updated 29 Aug 2026.
secondary
Review
Last reviewed 4 Sep 2026 by Shane
General information for Australian allied health practices, not tax advice. Confirm a treatment with your BAS agent or accountant before you post it.
Guided onboarding
Run one real month before you go live.
Sign up, connect Zanda and Xero, and replay a month you already closed. The map is reviewed with whoever owns the books, and nothing posts until you approve it.
Every practice starts from a template. Nothing posts until the map is approved.