Xero Accounting Integration

Connect Keito to Xero to sync invoices and keep your accounting records in sync without manual data entry.

Overview

Note: Only one accounting integration can be active at a time. If you’re currently connected to QuickBooks, you’ll need to disconnect before connecting Xero.

The Xero integration allows you to:

  • Push invoices from Keito directly into Xero
  • Automatically create Xero contacts from your Keito clients
  • Map tax rates between the two systems
  • Record payments in Xero when they’re logged in Keito
  • Track sync status for every invoice

Requirements

  • A Keito Business plan subscription
  • A Xero account with appropriate permissions
  • Administrator access in Keito

Connecting Xero

  1. Go to Settings > Integrations > Xero.
  2. Click Connect to Xero.
  3. You’ll be redirected to Xero to authorise the connection.
  4. Grant Keito access to your Xero organisation.
  5. You’ll be returned to Keito with the connection active.

The connection uses OAuth 2.0 with automatic token refresh, so you won’t need to reconnect regularly.

Configuration

After connecting, configure your sync preferences:

Revenue Account

Select the default Xero account where invoice revenue should be recorded (e.g., “Sales” or “Professional Services Revenue”).

Payment Account

Optionally select the bank account where payments are recorded when you mark invoices as paid.

Tax Rates

Keito fetches your Xero tax rates so you can map them to your Keito tax settings. This ensures tax calculations match between systems.

Tracking Categories

If you use Xero tracking categories for departmental or regional reporting, you can configure how Keito data maps to them.

Syncing Invoices

Sending an Invoice to Xero

  1. Open a finalized invoice in Keito.
  2. Click Copy to Xero.
  3. Keito creates the invoice in Xero with matching:
    • Invoice number
    • Client (as a Xero contact)
    • Line items with descriptions, quantities, and amounts
    • Tax rates
    • Due date and payment terms

Contact Sync

When you sync an invoice for a client that doesn’t exist in Xero:

  • Keito automatically creates a new Xero contact using your client’s name and details.
  • The Xero contact ID is stored so future invoices for that client are linked correctly.

Sync Status

Each invoice shows its Xero sync status:

StatusMeaning
Not syncedInvoice hasn’t been sent to Xero
PendingSync is in progress
SuccessSuccessfully created in Xero
FailedSync failed — check the error details

If a sync fails, you can view the error message and retry.

Payment Sync

When you record a payment in Keito, it can be reflected in Xero:

  • The Xero invoice is updated to show the payment.
  • Transaction IDs are stored for reconciliation.
  • Partial payments are supported.

Disconnecting

To remove the Xero integration:

  1. Go to Settings > Integrations > Xero.
  2. Click Disconnect.
  3. The OAuth tokens are revoked.
  4. Previously synced data remains in both systems but no further syncing occurs.

Troubleshooting

Token Expired

If the connection shows as expired, click Reconnect to re-authorise. This can happen if the refresh token (valid for 60 days) expires due to extended inactivity.

Sync Failures

Common causes of sync failures:

  • Missing Xero account — Ensure your revenue account is configured.
  • Tax rate mismatch — Verify tax rate mappings are correct.
  • Xero permissions — Ensure your Xero user has invoice creation permissions.
  • Rate limiting — Xero has API rate limits. Retry after a brief wait.

Duplicate Invoices

Keito tracks which invoices have been synced and stores the Xero invoice ID. If you see duplicates, check the sync status before re-syncing.