Skip to main content

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.

The mapping levels, and what each one overrides561
LevelWhat you set it onWhat it overrides
Billable item or productOne billable item, or one productThe practitioner setting and the default sales account
Practitioner invoice itemA practitioner's invoice itemsThe default sales account, but not an item that carries its own account
Default sales accountEvery invoice item with no overrideNothing. It is mandatory, and the integration does not run without it
Payment typeA payment type such as EFTPOS, cash or StripeThe 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.

Comparison as at 2 Sep 2026Five behaviours of the Cliniko integration set against the work each one leaves in Xero, dated 2 Sep 2026.As at 2 Sep 2026What ClinikodoesWhat is leftto do inXeroOne paymentacross severalinvoicesPosts oneXero paymentper invoiceMatch thesingle bankline to thewhole setA payment fromaccount creditSends theinvoice,holds thepayment backThe invoicesits openuntil it issettled byhandRevenue bylocationSends notrackingcategorySplit byaccount, orreportoutside XeroA second XeroorganisationOne instancemaps to oneorganisationKeep thesecond entityoutside theintegrationBackfillingold paymentsSends aboutone payment aminuteWait it out,then checkthe clearingbalance
Plate 1What the integration does, and what is left to do in Xero.

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.

  1. 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.
  2. Match the deposit to that set, so the bank account carries one line per deposit and the clearing account falls back towards nil.
  3. 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.
  4. Find the invoices Cliniko shows as paid that Xero still shows as open, which is where account credit payments end up.
  5. 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.

Six of the sync errors Cliniko documents, and what each one means4
What Xero saysWhat happened
Payments can only be made against Authorised documentsA 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 itThe same case from the Xero side, with a payment or credit already attached
The document date cannot be before the period lock dateThe invoice is dated inside a locked period, or before the end of year lock
Invoice not of valid status for modificationAn invoice with that number is already in Xero, and it can be a voided one
You have reached the limit of invoices you can approveThe Xero organisation is on a trial or a Starter plan
The existing contact with name cannot be updated to use new nameA 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.

Standing map rulesFive rows of the standing map, each showing the funder and service category billed, the account and Xero tax rate it posts to, and the reason.What was billedWhere it postsPrivate400 Clinicalservices, privatepatientsPractice defaultGST Free IncomeA listed health service delivered asappropriate treatment is GST free, whoeversettles the invoice.Medicare bulk bill401 Clinicalservices,MedicarePractice defaultGST Free IncomeMedicare funded treatment is GST free unders38-10. The settlement rail is handled bythe clearing policy rather than by thisaccount.Health fund403 Clinicalservices, privatehealth fundbenefitPractice defaultGST Free IncomeThe fund's benefit is consideration for asupply made to the patient, so the fund isonly the payer.Private420 Reports,assessments andmedico-legalReportsGST on IncomeA report requested by a third party such asan insurer is taxable, so the whole categorydefaults to taxable.Private422 Products andequipment salesProductsGST on IncomeGoods a patient takes home are taxableunless they are a necessary, specific partof the health service supplied at the sametime.
Plate 2Five rows of the standing map, read from the allied health canonical template.

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.

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.
  1. Integrate Cliniko with your Xero account

    Cliniko. Retrieved 2 Sep 2026. Source updated 28 Jul 2026.

    primary

  2. Reconcile in Xero when using the Cliniko integration

    Cliniko. Retrieved 2 Sep 2026. Source updated 28 Jul 2026.

    primary

  3. Set up Xero for use with Cliniko

    Cliniko. Retrieved 2 Sep 2026.

    primary

  4. An invoice failed to sync with Xero

    Cliniko. Retrieved 2 Sep 2026.

    primary

  5. Sync payment types in Cliniko to specific clearing accounts in Xero

    Cliniko. Retrieved 2 Sep 2026. Source updated 18 May 2026.

    primary

  6. Process bulk bill claims for Medicare

    Cliniko. Retrieved 2 Sep 2026. Source updated 18 Jun 2026.

    primary

  7. Process health fund claims with HealthPoint

    Cliniko. Retrieved 4 Sep 2026. Source updated 18 Jun 2026.

    primary

  8. Cliniko API reference

    Cliniko. Retrieved 2 Sep 2026.

    primary

  9. Cliniko to Xero Advanced Integration

    Interlock IT. Retrieved 2 Sep 2026.

    secondary

  10. Xero and Cliniko: 4 common problems

    Festival Bookkeeping. Retrieved 2 Sep 2026.

    secondary

  11. Allied health by funding source, the canonical template

    Ledger Map. Retrieved 2 Sep 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.