Connect Xero
Beta. The Xero integration is fully functional today, but we cap new connections at 25 Xero organisations while we complete Xero App Partner certification. Once certified, the cap lifts automatically with no action on your side.
Once connected, every invoice you send from Kiaro pushes to Xero with the right contact, account code, and tax rate. When your client pays (via Stripe Connect, bank transfer reconciled in Xero, or anything else that flips Xero’s invoice to PAID), Kiaro flips the matching invoice to paid within seconds.
Available on Solo and Team plans. One Xero organisation per Kiaro workspace.
Connect
- Open Settings, Integrations.
- Click Connect Xero.
- Sign in to Xero and choose the organisation you want to connect.
- You will land back in Kiaro on the mapping page.
Set up mapping
Two things are required before the first invoice can push:
- Default tax code. Kiaro stores tax rates as numbers (0%, 20%, etc.). Xero uses named tax codes (OUTPUT2, ZERORATEDOUTPUT). Pick the Xero code that should apply when no specific mapping is set.
- Default income account. The Xero account code (e.g. 200 Sales) used on every line, unless overridden per project.
After that you can optionally:
- Map specific Kiaro tax rates to specific Xero tax codes (per-rate mapping).
- Map specific projects to specific Xero account codes (per-project mapping).
See Map tax rates and accounts for the full mapping guide.
What syncs
| Direction | Trigger | Outcome |
|---|---|---|
| Kiaro to Xero | You send an invoice | The invoice appears in Xero as ACCREC, AUTHORISED |
| Kiaro to Xero | First time a client appears on a sent invoice | A matching Xero contact is created |
| Xero to Kiaro | Xero marks the invoice paid | Kiaro flips the invoice to paid |
| Kiaro to Xero | A Stripe payment is collected in Kiaro | A payment is recorded against the Xero invoice |
| Kiaro to Xero | A refund is issued in Kiaro | A credit note and cash refund are recorded in Xero |
| Kiaro to Xero | You void an invoice in Kiaro | The Xero invoice is voided |
Two-way sync
When your Xero connection is active and an invoice has been pushed to Xero, three additional events flow through automatically.
Payments. When Stripe collects a payment in Kiaro, that amount is recorded as a payment against the matching Xero invoice. Partial payments accumulate: if a client pays in two instalments, each one is recorded as it arrives, and Xero shows the invoice as fully paid only when the total is covered.
Only Stripe payments sync this way. When you mark an invoice paid by another method (bank transfer, cash), Kiaro updates the status in Kiaro but does not post a payment to Xero, because it can’t know which of your accounts received the money. Reconcile those payments against the invoice in Xero’s bank feed, which is the standard Xero workflow and is also where Xero then flips the invoice to paid.
Refunds. When you issue a refund in Kiaro, Kiaro records a credit note in Xero and posts the corresponding cash refund against your nominated Stripe clearing account. See Map tax rates and accounts for how to nominate that account.
Voids. When you void an invoice in Kiaro, the matching Xero invoice is voided, clearing the receivable from your books. One exception: if the invoice was paid via Stripe and then fully refunded, Kiaro leaves the Xero invoice as-is, because the refund credit note has already corrected the books.
Sync failures are non-blocking. A failure to sync a payment, refund, or void never prevents the action from completing in Kiaro. Failures are recorded in the integration’s sync activity log and can be retried once any underlying issue (such as a missing clearing account) is resolved.
Disconnect
Open Settings, Integrations, then click Disconnect on the Xero card. Your tax and account mappings are kept for 30 days in case you reconnect.
Limits
- Forward-only at v1: invoices sent before you connect are not retroactively pushed.
- One Xero organisation per workspace at v1.
- If your Xero plan does not support multi-currency, invoices in a currency other than your Xero org’s base currency are skipped with an inline note on the invoice.