Practice systems
Cliniko Xero integration: what syncs, what does not
Cliniko pushes invoices to Xero when they are created and payments once they are allocated to an invoice, one way only. Credit allocations, account credit payments and tracking categories do not travel. One payment split across several invoices arrives as several Xero payments, so a bookkeeper still matches each funder deposit against a clearing account by hand.
Key facts
- Direction
- One way, Cliniko into Xero, with nothing flowing back1
- What triggers a payment
- Allocation. A payment reaches Xero once it is allocated to an invoice in Cliniko1
- One payment, several invoices
- Arrives in Xero as several separate payments, one per invoice2
- Account mapping
- A mandatory default sales account, with overrides by billable item, product and practitioner invoice item1
- Clearing account shape
- Current Asset, tax rate BAS Excluded, with payments to the account enabled3
- Tracking categories
- Not supported, so revenue cannot be split by location or business in Xero10
- Backfilling old payments
- About one payment a minute, so a large history can take hours or days1
- Write back
- The public API exposes invoices as read only and carries no payments resource9
What Cliniko sends to Xero
The integration is one way and close to real time. Cliniko's own wording is that it will automatically push all invoices and allocated payments from Cliniko across to Xero, and a paid status set in Cliniko travels with the invoice. Cliniko's error list shows the rest of the shape: Xero carries the Cliniko invoice number, and a Xero contact is created from the name on the invoice.
The word that does the work is allocated. A payment sitting in Cliniko that has not been attached to an invoice does not exist as far as Xero is concerned, and neither does a credit.
Payments are only pushed across to Xero once they are allocated to invoices in Cliniko, so unallocated payments in Cliniko won't be seen in Xero. Credit allocations in Cliniko also will not appear in Xero.1
What it does not send
Two of the gaps are stated by Cliniko, two by the third party that sells a paid alternative, and one by neither. They show up in the same place: a Xero file that looks finished until someone reads the debtors list.
- A payment made from account credit. Cliniko's article is explicit that Xero does not accept it, the invoice syncs across, and it stays open in Xero while Cliniko shows it as paid.
- Credit allocations. They do not appear in Xero, so a prepaid package drawn down over six visits leaves no trace on the Xero side.
- Tracking categories. Interlock IT states the native integration does not support them for splitting revenue and costs by Cliniko location or business, and no tracking setting appears anywhere in Cliniko's own integration articles.
- A second Xero organisation. One Cliniko instance maps to one Xero organisation, which matters for a practice that runs two entities out of one diary.
- Refunds and write offs. Neither the setup article nor the failed sync article names them, so what happens to a refund is described by bookkeepers rather than by the vendor. Treat that as unconfirmed and check it on your own file.
Which mapping level wins
Two accounts are mandatory before anything syncs: a default sales account for invoice items and a default clearing account for payments. Everything else is an override, and the overrides sit in a fixed order of precedence.
| Level | What you set it on | What it overrides |
|---|---|---|
| Billable item or product | One billable item, or one product | The practitioner setting and the default sales account |
| Practitioner invoice item | A practitioner's invoice items | The default sales account, but not an item that carries its own account |
| Default sales account | Every invoice item with no override | Nothing. It is mandatory, and the integration does not run without it |
| Payment type | A payment type such as EFTPOS, cash or Stripe | The default payment account, for that payment type only |
Cliniko settles the precedence in one sentence about the practitioner level: it will not override any specific sales account settings you have set for those items, but will override the default. A payment type left unmapped falls back to the default payment account, and if that default is missing the payments do not sync to Xero.
One payment in Cliniko, several payments in Xero
This is the behaviour that produces most of the month end work, and it follows from how Cliniko models a payment. A payment in Cliniko can be allocated across several invoices. A payment in Xero belongs to one invoice.
When one payment is applied to more than one invoice in Cliniko, that will appear as more than one payment in Xero, because that single payment is allocated to multiple invoices in Cliniko.2
So a HICAPS settlement, a Medicare payment run or a card batch that closed twenty invoices in Cliniko lands in Xero as twenty payment records against one bank line. Cliniko's reconciliation article points the reader at Xero's Find and Match to attach the line to the set, which works and is also the part nobody costed when they turned the integration on.
Where the payments land
Cliniko lets payments sync either straight to the bank feed account or to one or more clearing accounts, and the clearing account has a shape it has to hold: account type Current Asset, tax rate BAS Excluded, and payments to the account enabled. Set one per payment type, or one for everything.
Sending payments straight to the Xero bank account looks simplest and ages worst. The bank account fills with small payments that are not bank transactions, and any gap between a deposit and the payments behind it sits in the reconcile tab with nothing to explain it. A clearing account per payment type gives that gap a name.
The month end job the integration leaves behind
Nothing here is a fault in Cliniko. It is what happens when a system that models one payment across many invoices talks to a system that models one payment per invoice, and the funders pay in lumps.
- Take each funder deposit on the bank feed and find the clearing entries behind it, using the funder's own report or remittance rather than the bank narration.
- Match the deposit to that set, so the bank account carries one line per deposit and the clearing account falls back towards nil.
- Chase the clearing balance that will not clear. It is either a claim that was paid but not matched, or a matched claim that was not paid.
- Find the invoices Cliniko shows as paid that Xero still shows as open, which is where account credit payments end up.
- Fix the invoices that failed to sync, and re-run them.
When an invoice fails to sync
Cliniko publishes the error list, and it reads as a map of Xero's own rules. Two of the entries are one rule restated: a paid Xero document will not take an edit pushed at it, so a Cliniko edit after the sync has nowhere to go.
| What Xero says | What happened |
|---|---|
| Payments can only be made against Authorised documents | A paid invoice was edited in Cliniko after it had synced |
| This document cannot be edited as it has a payment or credit note allocated to it | The same case from the Xero side, with a payment or credit already attached |
| The document date cannot be before the period lock date | The invoice is dated inside a locked period, or before the end of year lock |
| Invoice not of valid status for modification | An invoice with that number is already in Xero, and it can be a voided one |
| You have reached the limit of invoices you can approve | The Xero organisation is on a trial or a Starter plan |
| The existing contact with name cannot be updated to use new name | A patient was renamed in Cliniko after the contact was created in Xero |
Where item mapping runs out
Cliniko maps an account to a billable item, a product or a practitioner. What decides the GST treatment of allied health revenue is neither of those: it is what the service was and who it was for. A report written for an insurer is taxable. The same clinician's consultation is GST free. Both can be billed against the same funder in the same week.
That is why a standing map keys on the funding source and the service category rather than on the item code. Accounts 400, 401 and 403 below all carry GST free clinical work for three different payers, while 420 and 422 carry taxable revenue for the same private patients.
An item level override can reach the same answer, as long as every taxable item is separated from every GST free item in Cliniko and stays that way as items are added. That is a standing discipline rather than a setting.
Medicare claims raised inside Cliniko
Cliniko claims Medicare through Tyro Health. When the claim is submitted the invoice is left unpaid on purpose, because it is waiting on Medicare's approval, and Cliniko says there is no need to enter a payment at that point. If a Medicare payment type is set in the Tyro Health settings, the payment is allocated to the invoice when the claim is approved. Otherwise somebody records it.
Either way the Xero side is the same shape as any other funder run: many small payments against one deposit from Services Australia, which is the job described on the Medicare bulk bill page. Health fund benefits are claimed as HealthPoint through the same Tyro Health connection, not through HICAPS, and settle into their own clearing account on the Tyro page.
Why nothing comes back the other way
The most common question about this integration is why an invoice reconciled in Xero still shows as unpaid in Cliniko. The answer is in the API. Cliniko's public reference exposes invoices as read only and carries no payments resource, so a payment cannot be written back into Cliniko by Xero or by any third party working from the documented API.
Cliniko stays the system of record for what was billed and what was paid. Xero is downstream of it. Any tool that claims to close a Cliniko invoice from the Xero side is working outside the public reference, and that is worth asking about before you rely on it.
Where Ledger Map fits
Ledger Map holds one standing map for the practice, approved by the practice before anything syncs. A billed line resolves to its account and tax rate through the funding source and the service category, and a line the map cannot resolve becomes a question with the options laid out rather than a silent posting.
For a deposit, it posts one balanced document set per deposit and leaves one exact match in the bank feed. It does not auto reconcile, and it does not choose a treatment: the accounts and tax rates come from the canonical template the practice starts from. You can read the shape of it on how it works.
Cliniko is phase 2 on that engine. The scope decision of 29 Aug 2026 put Zanda first because Cliniko's API has no payments resource, so the Cliniko payments side arrives through the drop zone as reports and remittances rather than through a connector.
Questions
Why does an invoice still show as unpaid in Cliniko after I reconciled it in Xero?
Because the integration only runs one way. Cliniko pushes invoices and allocated payments into Xero, and nothing flows back. Cliniko's public API exposes invoices as read only and has no payments resource, so a reconciliation in Xero cannot close a Cliniko invoice. Record the payment in Cliniko as well.
Can Cliniko split one bank deposit across the invoices it paid?
Not on the Xero side. One Cliniko payment allocated to several invoices arrives as several separate Xero payments, one per invoice. The single bank line is then attached to that set with Find and Match, or the payments are sent to a clearing account and the deposit is reconciled against the clearing account instead.
Can the Cliniko integration use Xero tracking categories to split revenue by location?
No. Tracking categories are not part of the native integration, and no tracking setting appears in Cliniko's integration articles. Interlock IT, which sells a paid alternative, states the same thing. Splitting revenue by location or business means separate accounts in Xero, or reporting outside it.
Why did my Cliniko invoice fail to sync with Xero?
Cliniko's article names the Xero error message behind each cause: a paid invoice edited in Cliniko after it synced, a locked period or year end lock date, an invoice number already in Xero, a Xero trial or Starter plan invoice limit, a renamed patient, an archived or deleted contact, an invalid email address, and a changed item code.
Can one Cliniko account connect to two Xero organisations?
No. One Cliniko instance maps to one Xero organisation. A practice running two entities out of one Cliniko diary keeps the second entity's books outside the integration, or splits the diary.
How long does it take to backfill old Cliniko payments into Xero?
Cliniko states that Xero's API accepts about one payment a minute, so a long history can take hours or days to appear. Plan the switch on a quiet week and check the clearing account balance once it settles rather than during the backfill.
Read next
- FundersHow Medicare bulk bill payments land in Xero
- FundersHICAPS settlements in Xero
- FundersPrivate patients: card, EFTPOS and Stripe
- FundersTyro Health settlements in Xero
- Practice systemsZanda Xero integration: what the batch export carries
- FundersMedicare patient claims: who gets the rebate
- HubPractice systems
Sources
Open questions
- Refunds and write offs are not named in Cliniko's setup or failed sync articles, so what reaches Xero is described by bookkeepers rather than by the vendor. Check it on your own file before relying on either answer.
- Cliniko's help centre stamps a last updated date but publishes no version history, and three of the articles read here show only a relative stamp, so the source dates on this page are the dates the pages were read.
- The public API reference lists no payments resource today. Whether a partner or private endpoint exists outside that reference was not confirmed.
- Cliniko's community moved to Discord and is not indexable, the Facebook thread ranking for this query needs an account, and the Reddit thread refused an automated fetch, so the practitioner voice behind this page is one bookkeeping blog post that carries no publication date.
- Integrate Cliniko with your Xero account
Cliniko. Retrieved 2 Sep 2026. Source updated 28 Jul 2026.
primary
- Reconcile in Xero when using the Cliniko integration
Cliniko. Retrieved 2 Sep 2026. Source updated 28 Jul 2026.
primary
- Sync practitioner invoice items in Cliniko to specific sales accounts in Xero
Cliniko. Retrieved 2 Sep 2026.
primary
- Sync payment types in Cliniko to specific clearing accounts in Xero
Cliniko. Retrieved 2 Sep 2026. Source updated 18 May 2026.
primary
- Process bulk bill claims for Medicare
Cliniko. Retrieved 2 Sep 2026. Source updated 18 Jun 2026.
primary
- Process health fund claims with HealthPoint
Cliniko. Retrieved 4 Sep 2026. Source updated 18 Jun 2026.
primary
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.