Getting Started with Keito's Xero Integration

Keito Team
1 February 2026 · 3 min read

Learn how to connect Keito to Xero and automatically sync tracked time to invoices in minutes.

Developer Resources

Getting Started with Keito’s Xero Integration

TL;DR — Connect Keito to Xero in under a minute via OAuth 2.0. Approved time entries automatically sync as draft invoices. You control the mapping between projects and Xero contacts.

One of the most requested features since launch has been a seamless integration with Xero. Today we’re excited to walk you through how it works and how to set it up for your team.

What Gets Synced

KeitoXeroDirection
Approved time entriesDraft invoice line itemsKeito → Xero
Client detailsContactsKeito → Xero
Tax ratesTax ratesXero → Keito
Payment recordsInvoice paymentsKeito → Xero

Connecting Your Account

Head to Settings > Integrations in Keito and click “Connect Xero”. You’ll be redirected to authorise the connection via OAuth 2.0. The whole process takes under a minute.

1. Navigate to Settings > Integrations > Xero
2. Click "Connect to Xero"
3. Authorise in the Xero consent screen
4. You're redirected back — connection is live

Note — You’ll need admin permissions in both Keito and Xero. The connection uses OAuth 2.0 with automatic token refresh, so you won’t need to reconnect regularly.

Automatic Invoice Sync

Once connected, Keito will sync approved time entries directly to Xero as draft invoices. You control which projects map to which Xero contacts, and can review everything before it’s sent.

The sync flow works like this:

  1. Your team tracks time against projects in Keito
  2. Managers approve submitted timesheets
  3. Keito generates an invoice from approved hours
  4. Click Copy to Xero — a draft invoice is created in Xero
  5. Review and send from Xero when ready

Configuring Project Mappings

Each Keito project can be mapped to a Xero contact and revenue account:

{
  "project": "Website Redesign",
  "xero_contact": "Acme Corp",
  "revenue_account": "200 - Professional Services",
  "tax_rate": "20% VAT on Income",
  "description_format": "{task} — {date} ({hours}h)"
}

This means every line item on the Xero invoice includes a clear description of the work performed, making client communication transparent.

Tips for a Smooth Setup

Make sure your Xero chart of accounts includes a revenue account for time-based services. Keito will auto-map where possible, but you can always override in the integration settings.

Common gotchas:

  • Duplicate contacts — If a client name in Keito doesn’t exactly match a Xero contact, a new one is created. Standardise names before your first sync.
  • Tax rate mismatches — Verify your Keito tax settings align with Xero’s. The integration settings page shows a side-by-side comparison.
  • Currency differences — Keito uses the project currency. Make sure it matches the Xero contact’s default currency.

What’s Next

We’re working on two-way payment sync so that payments recorded in Xero automatically update invoice status in Keito. Follow our changelog for updates.