Xero Sync

Xero Sync is an optional add-on that connects KodaTime to your own Xero organisation. Invoices you send are created in Xero, payments recorded in Xero flow back automatically, and your client companies stay in step with Xero contacts. It's a flat monthly price per organisation and is managed by admins.

Connecting to Xero

  1. Add the Xero Sync add-on from your billing settings.
  2. Go to Settings → Xero and click Connect. You'll be taken to Xero to authorise KodaTime and pick the Xero organisation to link.
  3. Choose a default sales account and default tax rate— these are used for invoice lines that don't specify their own.

Invoice sync

  • Marking an invoice as Sent automatically creates it in Xero as an authorised invoice.
  • Sync to Xeroon a draft pushes it to Xero as a draft. Re-syncing updates the same Xero invoice — it never creates duplicates.
  • When a payment is recorded in Xero, the invoice is marked Paidhere automatically, with Xero's amounts and payment date. Voiding flows both ways.
  • Refresh from Xeroon an invoice fetches its current Xero state on demand — useful if a webhook was missed.
  • Xero recalculates tax using your Xero organisation's own tax settings, so totals can differ from KodaTime's by a cent or two on some invoices.

Contact sync

Client companies in KodaTime map to contacts in Xero, and stay in step three ways:

  • When invoicing— pushing an invoice finds the matching Xero contact by name, or creates one with the company's details, and links the two.
  • When you edit a company — changes to a linked company's name, finance email, tax number, or address are pushed to its Xero contact automatically.
  • When a contact changes in Xero — edits made in Xero flow back to the linked company automatically.

To link every company at once, use Sync all companies now under Settings → Xero. It updates already-linked companies and creates Xero contacts for the rest, then reports what was created, updated, or failed.

Troubleshooting

  • If a sync fails, admins get a notification with the reason — for example a missing default sales account, or a contact rename from Xero that clashes with another company's name (the rename is skipped; everything else still applies).
  • If the connection shows an error state, click Reconnect on Settings → Xero.
  • Disconnecting keeps your sync settings, so reconnecting later needs no reconfiguration. If the add-on lapses, syncing pauses but nothing is lost.
Company names are the matching key on first sync. Before running Sync all companies now, make sure company names in KodaTime match your Xero contacts — matching is by exact name, and unmatched companies get new contacts created in Xero.