> ## Documentation Index
> Fetch the complete documentation index at: https://zite.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrate with Xero

> Connect your own Xero OAuth app to your Zite app to work with contacts, invoices, payments, bank transactions, and accounting reports.

## How it works

[Xero](https://www.xero.com) is accounting software for managing contacts, invoices, payments, and reports. Connect Xero to your Zite app using **your own Xero OAuth app** (Client ID, Client Secret, and the exact redirect URI shown in Zite). Zite does not provide a shared, one-click Xero client.

App visitors don't need to connect their own Xero accounts—your app uses the Xero organization you authorize.

Your Xero app has its own connection and usage limits, based on its [Xero developer tier](https://developer.xero.com/documentation/guides/oauth2/limits/).

By connecting Xero, you can:

* Read and write contacts (customers and suppliers)
* Read and write invoices, credit notes, and quotes
* Read and write payments, including prepayments and overpayments
* Read and write bank transactions
* Read organization settings, accounts, and tax rates
* Fetch Balance Sheet, Profit and Loss, Aged Receivables / Payables, and Trial Balance reports

## How to integrate Xero into your app

<Steps>
  <Step title="Connect to Xero">
    Ask Zite to connect your app to Xero in the chat box. Alternatively, click **+** in the chat box, select **Integrations**, then choose **Xero**.

    Xero connects with **your own** Web app from [Xero My Apps](https://developer.xero.com/app/manage)—not a Zite-owned client. In the connection form:

    1. Create a **Web app** in My Apps on the Xero developer site.
    2. Copy the redirect URI shown in Zite and add it to the Web app's OAuth 2.0 settings. It must match **exactly**.
    3. Enable the scopes listed below on the Xero app's Configuration page. Zite requests this fixed set when you connect, including `offline_access` to keep the connection active.
    4. Paste the app's **Client ID** and **Client Secret** into Zite.
    5. Click **Connect**, then choose which Xero organization to use in Xero's consent screen.

    <Frame caption="Copy the redirect URI from your own Zite connection form; the example shown here is from a local environment.">
      <img src="https://mintcdn.com/zite/9fmMLszvweMSNjij/help/images/xero-connect.png?fit=max&auto=format&n=9fmMLszvweMSNjij&q=85&s=6f907e7747dfe3932280e1f50a522007" alt="Connect to Xero dialog showing the redirect URI, Client ID, and Client Secret fields" width="1225" height="1284" data-path="help/images/xero-connect.png" />
    </Frame>

    Scopes requested by Zite:

    ```
    offline_access
    accounting.settings
    accounting.contacts
    accounting.invoices
    accounting.payments
    accounting.banktransactions
    accounting.reports.balancesheet.read
    accounting.reports.profitandloss.read
    accounting.reports.aged.read
    accounting.reports.trialbalance.read
    ```

    After you connect, your app can read and write Xero accounting data for the connected organization.
  </Step>

  <Step title="Describe your use case">
    Tell Zite how you want to use Xero in your app. For example, "Show overdue invoices for our customers" or "Let the team look up a contact and create an invoice."

    Zite can work with the contacts, invoices, payments, bank transactions, and reports available to your connection. Tell it what your app should show or collect.
  </Step>

  <Step title="Test and publish">
    Test the Xero features in your app to make sure everything works as expected.

    Click `Publish` in the upper right corner to deploy your changes and make the Xero integration available in your live app.
  </Step>
</Steps>

## Common use cases

With a Xero connection, you can create apps like:

* **Contact Directories:** Look up and update customers and suppliers from the connected Xero organization
* **Invoicing Tools:** Create and display invoices, credit notes, and quotes
* **Payment Trackers:** Record payments against invoices and review payment history
* **Bank Transaction Views:** Show bank transactions from the connected organization
* **Financial Reports:** Display Balance Sheet, Profit and Loss, aged receivables and payables, or trial balance
* **Internal Accounting Dashboards:** Combine contacts, invoices, and reports for the connected organization

## Important notes

* **Your own Xero app:** You must create a Web app in Xero and paste the Client ID and Client Secret before connecting. Zite does not use a shared, one-click Xero app.
* **Redirect URI:** The redirect URI in your Xero app must match the URI shown in Zite exactly.
* **Scopes:** Enable the scopes listed above on your Xero app before connecting. Zite requires `offline_access` and a refresh token to complete the connection. Available actions depend on the scopes granted; if a required scope is missing, enable it on the Xero app and reconnect.
* **Connected organization:** Choose the intended organization in Xero's consent screen. Zite uses the first organization returned for that authorization, with no organization picker afterward. When reconnecting, it may fall back to previously connected organizations if none are returned for the current authorization.
* **Usage limits:** Xero allows 60 calls per minute and 5 concurrent calls per organization. The daily limit depends on your developer tier: 1,000 calls for Starter and 5,000 for higher tiers. If a request is rate-limited, wait for the retry period before trying again. See [Xero's API limits](https://developer.xero.com/documentation/guides/oauth2/limits/).
* **Accounting data only:** This connection reads and writes Xero accounting data within the scopes you grant. It does not include Payroll, Projects, Files, or Xero webhooks.

<Info>
  Need help with this integration? Contact [support@zite.com](mailto:support@zite.com).
</Info>
