Back to Resources
9 min read

Connecting Xero

XeroFlow's Xero integration is the backbone of its financial features. This guide walks you through the OAuth connection process, what data syncs, how two-way flow works, and how to troubleshoot common issues.

2-Click
OAuth Setup
Auto
Continuous Sync
2-Way
Data Flow

The authorization flow

XeroFlow connects to Xero using OAuth 2.0, the industry-standard authorization protocol. To begin, go to Settings, then Integrations, and click "Connect Xero." You will be redirected to Xero's website where you sign in (if not already) and grant XeroFlow permission to access your organization.

You will need to be an Admin or Owner in your Xero organization to authorize the connection. The permissions XeroFlow requests include reading and writing invoices, contacts, accounts, and expense claims. XeroFlow does not access payroll or employee data.

After granting access, you are redirected back to XeroFlow and the connection is established. The authorization token refreshes automatically, so you should not need to reconnect unless you explicitly revoke access in Xero's settings.

Secure OAuth 2.0

XeroFlow never sees or stores your Xero password. The OAuth 2.0 protocol grants a secure token that refreshes automatically. You can revoke access at any time from your Xero settings, and your client links and data mapping will be preserved for when you reconnect.

What data syncs

Once connected, XeroFlow performs an initial sync that pulls in your existing Xero data. This typically takes a few minutes depending on the size of your organization. The following data is synchronized:

Chart of AccountsRevenue, expense, and asset accounts used for categorization
ContactsCustomers and suppliers, available for client linking
InvoicesSales invoices with line items, amounts, and payment status
ExpensesExpense claims and bills for profitability calculations

After the initial sync, data is kept in sync continuously. Changes made in Xero (new invoices, updated contacts, payment status changes) appear in XeroFlow within minutes. The sync status is visible in Settings under the Xero integration panel.

Accounts & Contacts

Chart of accounts and customer contacts for categorization and linking.

Invoices & Bills

Sales invoices with line items, amounts, and real-time payment status.

P&L Reports

Revenue and expense data powering profitability dashboards.

Two-way data flow

The Xero integration is not one-directional. XeroFlow can also push data back to Xero. The most important example is the end-of-month (EOM) invoicing engine, which generates invoices within XeroFlow and uploads them directly to Xero as draft invoices.

When the EOM engine generates an invoice, it creates the invoice in Xero with the correct contact, line items, tax rates, and account codes. The invoice is created as a draft so you can review it in Xero before approving and sending it to the client. Once approved in Xero, the status update flows back to XeroFlow so your dashboards reflect the latest state.

Invoice import and matching

All invoices from your connected Xero organization are imported and associated with XeroFlow clients based on the contact link. If a client has a linked Xero contact, their invoices automatically appear in the client's financial tab -- no manual matching required.

For invoices associated with Xero contacts that have not been linked to a XeroFlow client, they will appear in the Finance section's unmatched queue. From there, you can either link the contact to an existing client or create a new client record. This ensures no invoice data falls through the cracks during initial setup.

Troubleshooting connection issues

If the Xero connection shows as disconnected, the most common cause is a token expiration that failed to refresh. This can happen if Xero's servers were temporarily unavailable during the refresh window. To fix it, simply click "Reconnect Xero" in Settings -- you will go through the OAuth flow again and the connection will be restored. Your data mapping and client links are preserved.

If specific data is not syncing (for example, a new invoice does not appear), check the sync status indicator in Settings. It shows the last successful sync time and any errors. Common issues include:

Rate limiting -- Xero limits API calls. If your organization has many invoices, the initial sync may take longer. Subsequent syncs are incremental and much faster.

Permission changes -- If your Xero user role was downgraded, the connection may lose write access. Ensure the authorizing user remains an Admin or Advisor in Xero.

Multi-org access -- If your Xero account has access to multiple organizations, make sure you authorized the correct one during the OAuth flow.

If you continue to experience issues, contact support with the error details from the sync status panel. We can investigate the Xero API response and resolve the issue quickly.

Next steps

With Xero connected, you can now set up clients with billing data and explore automation.