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
- Go to Settings > Integrations > Xero.
- Click Connect to Xero.
- You’ll be redirected to Xero to authorise the connection.
- Grant Keito access to your Xero organisation.
- 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
- Open a finalized invoice in Keito.
- Click Copy to Xero.
- 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:
| Status | Meaning |
|---|---|
| Not synced | Invoice hasn’t been sent to Xero |
| Pending | Sync is in progress |
| Success | Successfully created in Xero |
| Failed | Sync 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:
- Go to Settings > Integrations > Xero.
- Click Disconnect.
- The OAuth tokens are revoked.
- 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.