Skip to main content
Xero

General Information

Website: xero.com
Software type: Software as a service (SaaS)
Geography: 🌍 Global (180+ countries)
Support multi-folder: ✅

Introduction

Xero is a cloud-based accounting platform for small and medium-sized businesses. It provides real-time financial visibility, automated bank reconciliation, and comprehensive reporting tools to help businesses streamline accounting processes and make informed decisions. Our Xero connector allows your application to securely integrate with your users’ Xero accounts via OAuth2.

Configure Xero

Prerequisite(s)

  • Xero account with administrator permissions
  • OAuth2 application in Xero with Client ID and Client Secret
  • Appropriate OAuth scopes for the data you plan to access
  • Note: Uncertified apps are limited to 25 connected organizations

Process

Setting up your Xero App
  1. If you don’t already have a Xero account, you can create one here: Free trial
  2. Sign in to the Xero Developer Portal.
  3. Create a new app in the developer console:
  • App name: Choose a clear name that users will recognize during the OAuth flow.
  • Integration type: Select Web app.
  • Company or application URL: Enter your company’s website (starting with https://).
  • Redirect URI: Set to https://chift.app/oauth2/redirect.
  1. Retrieve your app credentials and configure them in Chift:
  • In the Xero Developer Portal, open My Apps and select your application.
  • Reveal your Client ID from the configuration panel.
  • Click Generate secret to create a Client Secret.
  • Copy both values and store them securely.
Enter the Client ID and Client Secret in the Xero connector configuration inside the Chift platform.
Scopes are not set when creating the Xero Web app. They can be configured in the Chift Xero connector and requested during the OAuth flow.

For SSO only (not related to accounting operations), request openid, profile, email.
Some scopes are marked as deprecated and cannot be used anymore for any new app created after 02/03/2026. If used, an invalid scope error will be raised. Please don’t use them anymore, we only keep them for backward compatibility, but they will be removed in the future. See as well here
  • To get access to the “accounting.journals.read” scope, an approval of Xero is needed.
ScopeStatusPurposeOptional
offline_accessEnables long-lived refresh tokens for background syncing
accounting.transactions.readDeprecatedRead invoices, credit notes, payments, manual journals
accounting.invoices.readNewRead invoices and credit notes
accounting.invoicesNewCreate and update invoices and credit notes
accounting.payments.readNewRead payments
accounting.paymentsNewCreate and update payments
accounting.banktransactions.readNewRead bank transactions
accounting.manualjournals.readNewRead manual journals
accounting.manualjournalsNewCreate and update manual journals
accounting.reports.trialbalance.readNewRead trial balance reports
accounting.journals.readUpon approvalRead manual journal entries
accounting.settings.readRead organisation settings and chart of accounts
accounting.reports.readDeprecatedRead accounting reports
accounting.contacts.readRead customers and suppliers
accounting.attachments.readRead attachments on Invoices, CreditNotes, ManualJournals
accounting.budgets.readRead budgets
accounting.reports.tenninetynine.readRead 1099 reports
files.readRead from the Xero Files library
accounting.transactionsDeprecatedCreate/update invoices, credit notes, manual journals; for PDF upload combine with accounting.attachments
accounting.contactsCreate/update customers and suppliers
accounting.settingsCreate chart-of-accounts entries; manage organisation settings; create/update tracking options
accounting.attachmentsUpload attachments to Invoices, CreditNotes, ManualJournals
filesWrite to the Xero Files library

ℹ️ Certification, Limits & Pricing

Default limits

New Xero apps start as uncertified, which limits the integration to 25 active connected organizations. This restriction is enforced by Xero and applies to all uncertified apps. If you plan to scale beyond this threshold, certification is required.

Certification (scaling beyond 25 connections)

To remove the connection cap, your app must complete Xero’s certification process. At a high level, this involves:
  • Demonstrating real usage (typically ~10 active customer connections)
  • Submitting a partnership application
  • Accepting commercial terms
  • Passing Xero’s technical review
Once certified, your app can connect more organizations and becomes eligible for listing in the Xero App Store.
Certification can take several weeks/months. If you expect growth beyond 25 connections, start the process early.

Pricing considerations

Xero subscription plans vary by feature set and usage limits. Your end customers must be on a plan that supports their accounting and invoicing needs. Certification or partnership may introduce commercial terms depending on your integration model and scale. Always review Xero’s current pricing and plan structure when designing your rollout.

Test Xero

Xero offers a demo company you can use to test your integrations. It comes with sample data, allowing you to validate and experiment with your setup before connecting to real organizations. Once you’ve registered on the Developer Portal, you can follow this guide to access the demo environment.

Connect Xero

To activate a connection with Xero, users will have to go through the following steps:

Rate limits

Limits apply to API calls per tenant (organisation, account, or practice):
  • Concurrent: 5 calls at a time
  • Per Minute: 60 calls
  • Daily: 5,000 calls
Across all tenants, your app is limited to 10,000 calls per minute.
(see Xero’s doc for more details)

Technical limitations / specifities

Suppliers :

In Xero, all suppliers are contacts. A contact is initially neutral. It is treated as a supplier once a supplier invoice is linked to it. Contacts can also act as customers simultaneously; the supplier role is inferred from activity, not stored as a separate entity.

Coverage

Xero coverage