General Information
Website: xero.com
Software type: Software as a service (SaaS)
Geography: 🌍 Global (180+ countries)
Support multi-folder: ✅
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- If you don’t already have a Xero account, you can create one here: Free trial
- Sign in to the Xero Developer Portal.
- 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.
- 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.
Scopes
Scopes
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
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.
| Scope | Status | Purpose | Optional |
|---|---|---|---|
offline_access | Enables long-lived refresh tokens for background syncing | ||
accounting.transactions.read | Deprecated | Read invoices, credit notes, payments, manual journals | ✅ |
accounting.invoices.read | New | Read invoices and credit notes | ✅ |
accounting.invoices | New | Create and update invoices and credit notes | ✅ |
accounting.payments.read | New | Read payments | ✅ |
accounting.payments | New | Create and update payments | ✅ |
accounting.banktransactions.read | New | Read bank transactions | ✅ |
accounting.manualjournals.read | New | Read manual journals | ✅ |
accounting.manualjournals | New | Create and update manual journals | ✅ |
accounting.reports.trialbalance.read | New | Read trial balance reports | ✅ |
accounting.journals.read | Upon approval | Read manual journal entries | ✅ |
accounting.settings.read | Read organisation settings and chart of accounts | ||
accounting.reports.read | Deprecated | Read accounting reports | ✅ |
accounting.contacts.read | Read customers and suppliers | ||
accounting.attachments.read | Read attachments on Invoices, CreditNotes, ManualJournals | ||
accounting.budgets.read | Read budgets | ||
accounting.reports.tenninetynine.read | Read 1099 reports | ✅ | |
files.read | Read from the Xero Files library | ||
accounting.transactions | Deprecated | Create/update invoices, credit notes, manual journals; for PDF upload combine with accounting.attachments | ✅ |
accounting.contacts | Create/update customers and suppliers | ✅ | |
accounting.settings | Create chart-of-accounts entries; manage organisation settings; create/update tracking options | ✅ | |
accounting.attachments | Upload attachments to Invoices, CreditNotes, ManualJournals | ✅ | |
files | Write 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
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:- French article: Help Center - Xero - FR
- English article: Help Center - Xero - EN
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
(see Xero’s doc for more details)