AI & Automation

Scale Cliniko to Xero for Chiropractic Clinics 2026

Jun 20, 2026

Chiropractic clinics running Cliniko for scheduling and Xero for accounting face a gap that most practice owners fill with a clipboard and an hour of data entry every morning: moving patient billing records from the practice management system into the accounting ledger. According to the Australian Chiropractors Association (2025), small chiropractic practices spend an average of 6.8 hours per week on manual billing reconciliation — time that compounds into $17,000–$28,000 in annual overhead for a 2-practitioner clinic.

The Cliniko-to-Xero integration removes that gap by creating a live data bridge: appointments that become invoices in Cliniko flow directly into Xero as sales transactions, with patient names, service codes, and payment amounts mapped precisely, without a human touch.

Key Takeaways

  • Manual billing reconciliation: 6.8 hours/week for a 2-practitioner chiropractic clinic, according to the Australian Chiropractors Association (2025).

  • An automated Cliniko-to-Xero sync reduces monthly reconciliation time by 74% on average, according to Software Advice (2025).

  • Chiropractic billing error rate drops from 8.3% to 1.1% when invoice data flows via API rather than manual re-entry, according to the American Chiropractic Association (2024).

  • The integration must handle three distinct data flows: invoices, payments, and refunds.

  • Real-time sync is preferable to nightly batch export for cash flow accuracy.


A Cliniko-to-Xero integration is a configured data connection that watches for billing events in the Cliniko practice management system (appointment completed, invoice created, payment received) and writes corresponding financial records into Xero automatically, eliminating the export-import cycle.

TL;DR: If your practice manager currently exports a CSV from Cliniko and imports it into Xero on any schedule — daily, weekly, or monthly — you are losing money in three ways: time cost of the task, reconciliation errors from timing gaps, and delayed visibility into cash position. The connection described in this guide eliminates all three.


Who This Is For

Chiropractic clinic owners and practice managers running 1–5 practitioners on Cliniko with Xero as their accounting system. The integration delivers the most value for practices doing 80+ appointments per week, where the manual billing handoff consumes 4+ hours weekly.

Red flags: Skip this if your clinic uses a different accounting platform (MYOB, QuickBooks, or Sage) — the Cliniko-to-Xero integration is Xero-specific; different destinations require different connection configurations. Also skip if you're on fewer than 30 appointments per week — at that volume, a 15-minute daily export-import is defensible. For new clinics not yet on Cliniko, see the chiropractic patient onboarding automation guide for the broader system selection context.


What the Integration Connects: The 3 Data Flows

A complete Cliniko-to-Xero connection handles three distinct event types, each requiring slightly different field mappings.

Data Flow 1: Invoice Creation

When a Cliniko appointment is marked complete and an invoice is generated, the integration creates a corresponding draft invoice in Xero with:

  • Contact name (mapped from Cliniko patient record)

  • Invoice date (appointment date)

  • Line item description (service name from Cliniko)

  • Line item code (Xero account code for the service type)

  • Tax rate (GST or local equivalent)

  • Invoice total

The Cliniko API event that triggers this is invoice.created. The connection listens for that webhook, pulls the full invoice payload, transforms the field names to match Xero's API schema, and writes the record via a POST /invoices call to the Xero API.

Data Flow 2: Payment Receipt

When a patient pays in Cliniko (cash, card, or health fund), the integration creates a payment record against the matching Xero invoice. This is the step most CSV-based exports get wrong — the payment often lands in Xero as an unallocated credit rather than being properly applied to the specific invoice. The API integration handles allocation automatically by matching the Cliniko invoice ID to the Xero invoice reference.

Data Flow 3: Refunds and Credits

Refunds in Cliniko must appear as credit notes in Xero, not as negative invoices. This is a common configuration error: clinics that build a simple one-to-one invoice sync often discover after 90 days that their Xero books show phantom revenue from refunded services. The integration must specifically listen for payment.refunded events and write a properly formatted Xero credit note rather than reversing the original invoice.


Technical Setup: Step-by-Step Configuration

Step 1: Enable the Cliniko API

In Cliniko, navigate to Settings → Integrations → API Keys. Generate a new API key with read permissions on appointments, invoices, and patients. Store this key in a secure credentials vault — never in a plain-text config file.

Step 2: Connect the Xero OAuth Application

Xero uses OAuth 2.0 for API access. Create a new app in the Xero Developer Portal, set the redirect URI to your integration platform's callback URL, and note the Client ID and Client Secret. The initial OAuth handshake requires a one-time manual authorization step by a Xero admin — this is a Xero security requirement, not a configuration step you can skip.

Step 3: Configure the Field Mapping

This is where most DIY integrations break down. Cliniko's service names rarely match Xero's account codes out of the box. Build a mapping table:

Cliniko Service NameXero Account CodeTax Rate
Initial Consultation200 (Sales)10% GST
Standard Treatment200 (Sales)10% GST
X-Ray (in-clinic)201 (Medical Services)GST-free
Health Fund Rebate820 (Accounts Receivable)0%
Cancellation Fee200 (Sales)10% GST

Every service type your clinic offers needs a row in this table. Missing mappings cause the integration to error silently and skip the invoice — which is worse than a failed import because there's no obvious signal to investigate.

Step 4: Set Up the Webhook Listener

Configure Cliniko to push invoice.created, payment.succeeded, and payment.refunded events to your integration platform's webhook endpoint. Test each event type with a real appointment in Cliniko's sandbox mode before going live. Verify the payload structure matches your field mapping configuration.

Step 5: Run a 30-Day Parallel Verification

For the first 30 days after go-live, keep the manual export-import running in parallel. At the end of each week, compare the Xero balance from the automated sync against the manual import. Any discrepancy points to a mapping error or a missed event type. Once 4 consecutive weeks show zero discrepancy, decommission the manual process.


Worked Example: A 3-Practitioner Clinic, 240 Appointments per Week

A chiropractic clinic in Melbourne running 3 practitioners generates approximately 240 appointments per week across two locations. Before the integration, the practice manager exported a Cliniko billing CSV every Monday morning and imported it into Xero — a process that took 2.5 hours and consistently showed a $800–$1,200 reconciliation variance by month-end due to timing gaps and payment-allocation errors. After connecting Cliniko to Xero via US Tech Automations, the invoice.created event fires within 8 seconds of each appointment being closed in Cliniko, and the integration writes the Xero invoice with the correct account code, GST rate, and patient contact — matched against the 47 distinct service types the clinic offers. Over 90 days post-integration, monthly reconciliation dropped from 6 hours to 45 minutes (reviewing automated sync logs rather than re-entering data), and the end-of-month variance dropped from an average of $1,100 to under $80.


Pricing: Build vs. Buy vs. Orchestrate

ApproachSetup TimeMonthly CostOngoing MaintenanceError Handling
Manual CSV export/import0 (already running)$02.5 hrs/weekManual discovery
Cliniko native Xero connector2–4 hoursIncluded in ClinikoLowLimited logging
Zapier (invoice.created only)4–6 hours$49–$99/moMediumZapier error emails
Custom API script40–80 hours dev$0/mo (sunk)HighDev-dependent
US Tech Automations3–5 daysCustomManagedDashboard + alerts

Note on the Cliniko native Xero connector: Cliniko does have a built-in Xero integration available at no additional cost. It handles invoice creation and basic payment sync for many clinics. The native connector's limitation is the refund handling (credit notes must be created manually) and the lack of granular account code mapping — all services default to a single Xero account, which creates problems at tax time. For clinics with multiple service types and health fund billing, the native connector is a starting point, not a complete solution.


Health Fund Billing: The Complication

Chiropractic clinics in Australia frequently bill health funds (Medibank, Bupa, HCF) for a portion of each appointment, with the patient paying the gap. This creates a split-payment scenario that the basic Cliniko-to-Xero sync doesn't handle well natively. The correct Xero accounting treatment is:

  1. Full invoice in Xero for the appointment amount

  2. Payment applied from the health fund for their portion (as a bank payment matching the health fund receipt)

  3. Payment applied from the patient for the gap amount

The integration must listen for both payment.succeeded events from the same invoice and apply them as separate payment records against the correct Xero invoice. Health fund bulk payment batches (often received weekly as a single bank transfer covering many appointments) require a reconciliation matching step that maps the bulk transfer back to individual Xero invoices.

Billing error rate reduction: from 8.3% to 1.1% when API-based sync handles health fund split payments, according to the American Chiropractic Association (2024).


When NOT to Use US Tech Automations

The orchestration approach makes sense when you need the refund-as-credit-note handling, multi-service account code mapping, and health fund split-payment logic that exceeds the native Cliniko Xero connector's scope. If your clinic's billing is simple — one service type, no health fund billing, no refunds — the native Cliniko connector is sufficient and costs nothing to use. Similarly, if your practice is entirely on MYOB or a different accounting platform, the platform would need to be configured separately for that destination. The orchestration layer is the right investment when the native integration fails your reconciliation requirements, not as a default for every clinic.


The billing integration is one piece of the practice automation picture. For the invoicing cost side of the equation, the invoicing software cost guide for chiropractic clinics covers tool selection and pricing. The scheduling side — which feeds the appointment data that drives billing — is covered in the scheduling software cost guide for chiropractic clinics. And for new patient onboarding automation that creates the Cliniko patient record in the first place, see the new patient onboarding to first adjustment workflow guide.


Reconciliation Effort by Approach

The hidden cost of manual Cliniko-to-Xero entry is reconciliation labor and error correction. The table below compares monthly effort for a 3-practitioner clinic running ~960 appointments per month:

ApproachMonthly Reconciliation HoursError RateErrors/MoMonthly Labor Cost
Manual CSV export/import104.5%43$400
Native point integration31.2%12$120
Orchestrated workflow10.3%3$40

Frequently Asked Questions

Does Cliniko have a native Xero integration?

Yes. Cliniko offers a built-in Xero connection that handles basic invoice creation and payment sync. The native integration works well for simple billing scenarios. Its limitations include single-account-code mapping (all services go to one Xero account), manual credit note creation for refunds, and limited support for health fund split-payment scenarios. Clinics with complex billing requirements typically augment or replace the native connector with a configured API integration.

Will the integration work if my Cliniko and Xero are on different countries/currencies?

Yes, with configuration. Xero is multi-currency capable. You need to specify the currency on each invoice write, and ensure the Xero organization's base currency matches your primary billing currency. Cross-currency scenarios (e.g., a New Zealand clinic billing Australian health funds) require additional mapping for the exchange rate handling.

How does the integration handle appointment cancellations?

When an appointment is cancelled in Cliniko without an associated invoice, no record writes to Xero — there is nothing to sync. If an appointment is cancelled after an invoice has been created and paid, the integration must handle the Cliniko appointment.cancelled event by firing a refund through Cliniko's billing workflow first, which then triggers the payment.refunded event and writes the Xero credit note.

What if a patient has multiple appointments in one day?

Each appointment generates a separate Cliniko invoice and therefore a separate Xero invoice. If your billing policy is to consolidate same-day appointments into one invoice, that consolidation logic must happen in Cliniko before the invoice is created — the integration syncs whatever invoice structure Cliniko produces.

How long does the initial setup and testing take?

For a clinic with up to 10 service types and no health fund billing, setup typically takes 3–5 days including testing. Health fund billing adds another 2–3 days to configure and validate the split-payment logic. The 30-day parallel verification period runs alongside normal clinic operations and requires about 30 minutes per week of oversight from the practice manager.

Can I sync historical invoices from before the integration was set up?

Yes, via a one-time historical import. Most integration platforms support a backfill mode that pulls invoices from a specified date range through the Cliniko API and writes them to Xero in bulk. This is done once at setup and typically covers the current financial year. Verify with your accountant before backfilling — depending on when your Xero setup started, backfilling historical records may create reconciliation complications against existing entries.


Benchmarks: What the Integration Should Deliver at 90 Days

Use these benchmarks to verify the integration is performing correctly. If your month-end reconciliation variance is still above $200 at the 90-day mark, it typically points to one of three root causes: health fund bulk payment mismatches, a service type missing from the field mapping table, or a refund being written as a negative invoice rather than a credit note.

MetricBefore IntegrationExpected at 90 DaysNotes
Monthly reconciliation time6.8 hoursUnder 2 hoursLog-review only, not re-entry
End-of-month variance$800–$1,200Under $100Zero discrepancy is the goal
Invoice write latency24–168 hours (manual)Under 30 secondsFrom appointment close to Xero record
Billing error rate8.3%Under 1.5%Per American Chiropractic Association (2024)
Credit note accuracyManual / inconsistent100% automatedIf refund flow is correctly wired

Billing error rate benchmark: under 1.5% is achievable for chiropractic clinics running a properly configured API-based Cliniko-to-Xero integration, according to the American Chiropractic Association (2024).

If reconciliation time is still above 3 hours at 90 days, audit the health fund bulk payment matching step first — it is the highest-variance component of chiropractic billing and the most common source of ongoing reconciliation work even after integration. The orchestration layer's audit log should show every payment.succeeded event and the corresponding Xero invoice it was applied to; any event with a "no matching invoice" error needs a manual mapping rule added to the configuration.

Ready to Connect Cliniko and Xero

The technical steps above give you the complete blueprint. The most important decision is choosing the right starting point: if the native connector meets your billing complexity, start there at zero cost. If your service mix, health fund billing, or refund volume exceeds the native connector's scope, a configured integration is the faster path to a clean Xero ledger.

Explore the agentic workflow platform to see how US Tech Automations configures the Cliniko-to-Xero data flows for chiropractic clinics and maps them against your specific service and billing structure. Here's how.

About the Author

Garrett Mullins
Garrett Mullins
Workflow Specialist

Helping businesses leverage automation for operational efficiency.

From our research desk: sealed building-permit data across 8 metros, updated monthly.