Integration
Reconciling Cliniko's Stripe payments in Xero
Cliniko records the full amount a patient pays by card, but Stripe deducts its own transaction fee before the money reaches your bank, so the deposit in your Xero bank feed is smaller than the invoice payment in Cliniko. Cliniko's help centre confirms the fee and net amount are shown on the payment record and that refunds are processed in Stripe, not Cliniko.
Last checked 25 Sep 2026 against the sources listed at the end of this page.
What syncs, and when
| What | Direction | When | Notes |
|---|---|---|---|
| Card payment | Cliniko to Xero | Patient pays a Cliniko invoice online or the practice takes a card payment through Stripe | Cliniko's payment record shows the patient's payment, the Stripe fee and the net amount, according to Cliniko's help centre. The payment allocated against the invoice in Cliniko is what crosses to Xero through the ordinary Xero integration, using whichever clearing account you have mapped for that payment type. |
| Stripe payout | Not synced to Cliniko or Xero directly | Stripe's own payout schedule to your bank account | Stripe batches several payments into one payout and takes its fee before the money lands in your bank, so the bank feed line in Xero is a lump sum, net of fees, that does not match any single Cliniko invoice one to one. |
| Refunds | Not synced automatically | Processed manually in Stripe | Cliniko's help centre says refunds have to be processed through Stripe directly, then recorded in Cliniko by hand; there is no button in Cliniko that pushes a refund to Stripe. |
What does not sync
- The Stripe fee as its own line item in Xero. Cliniko shows it on the payment record, but the amount that reaches Xero through the invoice sync is the payment allocated in Cliniko, not a separate fee transaction.
- Stripe's payout batching. Xero's bank feed shows what actually lands in the account, which is several patient payments minus Stripe's fees, not the individual gross payments Cliniko recorded.
- Refunds processed in Stripe. These have to be entered back into Cliniko manually; Cliniko's help centre is explicit that refunds cannot yet be processed from inside Cliniko itself.
Set it up
- Confirm Stripe is connected under Cliniko's online payments settings before relying on it for reconciliation; Cliniko needs an active Stripe account to process card payments at all.
- In Xero, set up a dedicated clearing account for Stripe payments, separate from cash or EFTPOS, following the same clearing account approach Cliniko's Xero integration guide recommends per payment type.
- Map Stripe payments to that clearing account in Cliniko's Xero integration settings, so allocated Stripe payments land in one place in Xero rather than mixed in with other payment types.
- When the Stripe payout appears in the Xero bank feed, use Find and Match against the payments sitting in the Stripe clearing account rather than trying to match it to a single invoice.
- Post the Stripe fee difference between the clearing account and the bank feed amount to a fees or bank charges expense account, so the clearing account clears to zero once the payout is matched.
Two numbers, one payment
When a patient pays a Cliniko invoice by card, Cliniko's help centre says the payment record shows three figures: what the patient paid, Stripe's fee, and the net amount after that fee. The invoice in Cliniko closes off against the full amount the patient paid, because that is what settles the patient's account.
Stripe's fee never appears in Cliniko as a separate transaction. It only shows as a subtraction on that one payment record. That is the detail that catches clinics out when they try to reconcile Xero straight against Cliniko's invoice list.
Why the bank feed never matches the invoice
Stripe does not pay your practice for each card payment individually. It batches payments into a payout on its own schedule and deposits the total, net of its fees, into your bank account. Xero's bank feed shows that payout as one lump sum, which will not equal any single Cliniko invoice and will not equal the sum of the gross payments either, because the fees have already come out.
A clearing account for Stripe payments, kept separate from cash and EFTPOS the way Cliniko's Xero integration guide suggests doing per payment type, gives you a place to land the payments as Cliniko sees them and then match the payout against that account rather than the bank feed directly.
Refunds are the one manual step
Cliniko's help centre is direct about refunds: they have to be processed in Stripe first, and then recorded back into Cliniko by hand. There is no automatic push either way. If a refund is issued in Stripe and never entered in Cliniko, the patient's Cliniko record still shows the invoice as paid in full, which will not match what Xero eventually shows once the refund reduces a later Stripe payout.
Sources
- Cliniko's online payment record shows the patient's payment, the Stripe transaction fee, and the net payment amount, in a field labelled Online payments; the fee amount varies by card type and geography. Cliniko Help, checked 25 Sep 2026.
- Refunds on Cliniko's online payments have to be processed through Stripe directly; Cliniko cannot yet process a refund from inside the platform. Cliniko Help, checked 25 Sep 2026.
- Cliniko's Xero integration lets each payment type, including Stripe, be sent to its own clearing account in Xero rather than straight to the bank feed account. Cliniko Help, checked 25 Sep 2026.
- Clearing accounts for Cliniko payments in Xero are set up as Current Asset accounts, tax BAS Excluded, with payments enabled on the account. Cliniko Help, checked 25 Sep 2026.