Integration
Cliniko and Xero: what syncs, what doesn't, and how to set it up
Cliniko's Xero integration is a one way push. Invoices go to Xero as soon as they are created in Cliniko, and payments go once they are allocated to an invoice. Unallocated payments, credit allocations and payments made with account credit do not sync, so those invoices stay open in Xero, according to Cliniko's help centre.
Last checked 25 Sep 2026 against the sources listed at the end of this page.
What syncs, and when
| What | Direction | When | Notes |
|---|---|---|---|
| Invoices | Cliniko to Xero | Created in Cliniko | Pushed as soon as they are created. Each billable item, product and practitioner invoice item can be sent to its own Xero sales account, otherwise the default sales account is used. |
| Edits to unpaid invoices | Cliniko to Xero | Invoice edited and saved in Cliniko | Saving an unpaid invoice again in Cliniko resends it. Once the invoice is paid in Xero, Xero locks Cliniko out of changing it, so later corrections are made in Xero. |
| Payments | Cliniko to Xero | Allocated to an invoice in Cliniko | Sent to the default clearing account, or to a clearing account per payment type (EFTPOS, cash, Stripe and so on). One payment split across several invoices appears in Xero as one payment per invoice. |
| Tax | Cliniko to Xero | With each invoice | Each Cliniko tax type can be mapped to a Xero tax rate. Untaxed items use the default Xero tax rate for tax exempt revenue set in the integration. |
| Patient name | Cliniko to Xero | With the invoice | Keep the name the same in both systems. Cliniko's help centre says a name changed in only one of them, or an archived Xero contact, stops the sync. |
| Past invoices and payments | Cliniko to Xero | Synchronise from previous date (manual) | Runs in the background. Invoices arrive first; payments are slower because Xero's API accepts one payment per minute. Order is not predictable. No data is duplicated. |
What does not sync
- Unallocated payments. They exist only in Cliniko until you allocate them to an invoice.
- Credit allocations, and payments made using account credit. The invoice syncs but stays open in Xero, so you record the payment in Xero yourself.
- Anything from Xero back to Cliniko. The integration only pushes from Cliniko to Xero, so a payment recorded in Xero does not mark the Cliniko invoice paid.
- Invoices and payments created while the integration is disconnected. They wait until you run Synchronise from previous date.
- Invoices dated before a lock date in Xero. Xero treats the period as closed and rejects them.
- Refunds and credit notes are not covered in Cliniko's Xero help, so check each one in Xero after you record it.
- Xero Cashbook and Ledger organisations. Xero no longer supports invoicing integrations with them, so they cannot be connected.
Set it up
- Talk to your accountant first about clearing accounts: one per payment type, or all payments straight to the bank feed account.
- In Xero, connect your bank feed. If you use clearing accounts, add each one in the Chart of Accounts as a Current Asset, tax BAS Excluded, with Enable payments to this account ticked.
- In Xero, check your sales accounts. The default Sales account (200) suits many clinics; add separate revenue accounts with GST Free Income if you want income split by service.
- In Cliniko, switch on account wide two factor authentication (Settings > Our clinic > General settings > Two factor authentication). The integration requires it.
- In Cliniko, go to Settings > Integrations and click Connect to Xero. Log in to Xero and click Allow access, then wait for the redirect back to Cliniko.
- On Edit your integration with Xero, choose the default sales account, the default clearing account and the default Xero tax rate for tax exempt revenue. Click Save integration settings.
- Optional: map each Cliniko tax type to a Xero tax rate, and map billable items, products, practitioner invoice items and payment types to their own Xero accounts.
- If you already have history in Cliniko, run Synchronise from previous date and allow hours or days for payments to finish.
- From now on, create invoices and record payments in Cliniko only, never in Xero, then reconcile the bank feed in Xero.
How the sync actually works
The Cliniko and Xero connection is one way. Cliniko pushes; Xero receives. Nothing you do in Xero comes back to Cliniko. That shapes the whole workflow: create invoices and take payments in Cliniko, and use Xero for reconciliation and reporting. Cliniko's own reconciliation guide says the same thing, because entering a payment in both places is how duplicates happen.
Invoices go across the moment they are created. Payments only go when they are allocated to an invoice in Cliniko. A payment sitting on a patient's account without an allocation never reaches Xero, and nor does a payment made with account credit. In Xero those invoices look unpaid even though Cliniko shows them closed. If your aged receivables in Xero look wrong, this is the first thing to check.
Clearing accounts or straight to the bank
Cliniko can send every payment to your bank feed account, or to separate clearing accounts for each payment type. Clearing accounts suit clinics that take EFTPOS, cash, Stripe and health fund payments, because each settles into the bank differently. You reconcile the day's EFTPOS deposit against the EFTPOS clearing account rather than hunting for individual payments.
One detail catches people out: a single payment split across two invoices in Cliniko shows as two payments in Xero. Use Find and Match in Xero to match one bank line against several payments.
When invoices stop syncing
Cliniko lists the usual causes: an invoice dated before a Xero lock date, a patient name or email changed in Cliniko but not in Xero, a contact archived in Xero, a duplicate invoice number already in Xero, a changed item code, or an invoice already paid in Xero that Cliniko then tries to edit. Most unpaid ones resync if you edit and save them in Cliniko.
The integration also disconnects itself if Xero stops responding. Your settings survive, but anything created while it was down stays in Cliniko until you run Synchronise from previous date. It is worth a weekly glance at Settings > Integrations so a disconnection does not go unnoticed until BAS time.
Sources
- Invoices are pushed to Xero as soon as they are created in Cliniko. Payments are only pushed once allocated to invoices, so unallocated payments are not seen in Xero, and credit allocations do not appear in Xero. Setup requires account wide two factor authentication in Cliniko. Cliniko Help, checked 25 Sep 2026.
- Clearing accounts in Xero for Cliniko payments are set up as Current Asset accounts, tax BAS Excluded in Australia, with payments enabled. Xero no longer supports invoicing integrations with Xero Cashbook and Ledger organisations. Cliniko Help, checked 25 Sep 2026.
- A payment in Cliniko allocated across several invoices appears in Xero as a separate payment for each invoice. Cliniko recommends creating invoices and entering payments in Cliniko first and letting it sync them. Cliniko Help, checked 25 Sep 2026.
- Invoices fail to sync when dated before a Xero lock date, when patient details differ between Cliniko and Xero, when the contact is archived in Xero, when the invoice number already exists, or when the invoice is already paid in Xero. Cliniko Help, checked 25 Sep 2026.
- The integration disconnects when Xero cannot respond. Invoices and payments created while disconnected must be sent with Synchronise from previous date, and Xero's API only allows one payment to be sent each minute. Cliniko Help, checked 25 Sep 2026.
- Cliniko tax types can be mapped to Xero tax rates; untaxed items use the default Xero tax rate for tax exempt revenue. Cliniko Help, checked 25 Sep 2026.