Skip to main content
This guide shows you how to register your own app with Xero to obtain your OAuth credentials (client ID & secret). These are required to let your users grant your app access to their Xero account.

Access requirements

Before you begin, note the following requirements for Xero:
Pre-RequisitesStatusComment
Paid dev account✅ Not requiredFree, self-signup for a Xero Developer account.
Paid test account✅ Not requiredDeveloper account includes a demo company for testing.
Partnership✅ Not required
App review✅ Not requiredOnly required for apps published to the Xero App Store.
Security audit✅ Not required

Setup guide

1

Create a Xero Developer account

Go to Xero Developer signup page and create a free account.
2

Create a new app

  1. Log in to your Xero My Apps developer console.
  2. Click New app in the top right corner.
  3. A new app form will appear. Enter a unique App name.
  4. Select Mobile or desktop app as the integration type.
  5. Fill in the Company or application URL and Redirect URI fields. For the Redirect URI, use: https://api.nango.dev/oauth/callback.
  6. Check the developer’s terms checkbox and click Create App.
  7. Your app will be generated, and you will be redirected to your App details page.
3

Obtain API credentials

  1. Navigate to the Configuration tab to retrieve your Client ID and Client Secret.
  2. Click Generate a Secret to create a new Client Secret.
  3. You will need these credentials when configuring your integration in Nango.
4

Configure your integration in Nango

Follow the Quickstart to add your credentials to Nango.

Important notes

  • Organization selection: When a user authorizes your app, they select which Xero organization to connect. Your app can only access data for the selected organization.
  • Multiple organizations: If you need to work with multiple Xero organizations, you’ll need to handle the tenant context in your API calls. After a connection is created, Nango will automatically fetch and store the tenant_id in the connection config, which you can then use in your API calls.
  • Token refresh: Make sure you add the offline_access scope to ensure the token refreshes as expected.
For more details on Xero’s OAuth implementation, see Xero’s OAuth 2.0 authorization flow documentation.