Skip to main content

Overview

Pre-built tooling

ToolsStatus
Pre-built authorization (OAuth)βœ…
Credentials auto-refreshβœ…
Auth parameters validationβœ…
Pre-built authorization UIβœ…
Custom authorization UIβœ…
Expired credentials detectionβœ…
ToolsStatus
Pre-built integrationsβœ…
API unificationβœ…
2-way syncβœ…
Webhooks from Nango on data modificationsβœ…
Real-time webhooks from 3rd-party APIβœ…
Proxy requestsβœ…
ToolsStatus
HTTP request loggingβœ…
End-to-type type safetyβœ…
Data runtime validationβœ…
OpenTelemetry exportβœ…
Slack alerts on errorsβœ…
Integration status APIβœ…
ToolsStatus
Create or customize use-casesβœ…
Pre-configured pagination🚫 (time to contribute: <48h)
Pre-configured rate-limit handling🚫 (time to contribute: <48h)
Per-customer configurationsβœ…

Pre-built integrations

EndpointDescriptionReadme
GET /accountsFetches all accounts in Xero (chart of accounts). Incremental sync, detects deletes, metadata is not required.πŸ”—
EndpointDescriptionReadme
GET /bank-transactionsFetches all bank transactions in Xero. Incremental sync, detects deletes, metadata is not required.πŸ”—
EndpointDescriptionReadme
POST /contactsCreates one or multiple contacts in Xero.
Note: Does NOT check if these contacts already exist.
πŸ”—
PUT /contactsUpdates one or multiple contacts in Xero. Only fields that are passed in are modified. If a field should not be changed, omit it in the input. The id field is mandatory.πŸ”—
GET /contactsFetches all Xero contacts.
Details: incremental sync, detects deletes, metadata is not required.
πŸ”—
EndpointDescriptionReadme
POST /credit-notesCreates one or more credit notes in Xero.
Note: Does NOT check if the credit note already exists.
πŸ”—
PUT /credit-notesUpdates one or more credit notes in Xero.πŸ”—
GET /credit-notesFetches all credit notes in Xero. Incremental sync.πŸ”—
EndpointDescriptionReadme
GET /general-ledgerFetch all general ledger entries in XeroπŸ”—
EndpointDescriptionReadme
POST /invoicesCreates one or more invoices in Xero.
Note: Does NOT check if the invoice already exists.
πŸ”—
PUT /invoicesUpdates one or more invoices in Xero. To delete an invoice
that is in DRAFT or SUBMITTED set the status to DELETED. If an
invoice has been AUTHORISED it can’t be deleted but you can set
the status to VOIDED.
πŸ”—
GET /invoicesFetches all invoices in Xero. Incremental sync.πŸ”—
EndpointDescriptionReadme
POST /itemsCreates one or more items in Xero.
Note: Does NOT check if the item already exists.
πŸ”—
PUT /itemsUpdates one or more items in Xero.πŸ”—
GET /itemsFetches all items in Xero. Incremental sync, does not detect deletes, metadata is not
required.
πŸ”—
EndpointDescriptionReadme
GET /organisationsFetches organisation details in Xero.πŸ”—
EndpointDescriptionReadme
POST /paymentsCreates one or more payments in Xero.
Note: Does NOT check if the payment already exists.
πŸ”—
GET /paymentsFetches all payments in Xero. Incremental sync.πŸ”—
EndpointDescriptionReadme
GET /tenantsFetches all the tenants the connection has access to.
This can be used to set the metadata to the selected tenant.
πŸ”—
Not seeing the integration you need? Build your own independently.

Access requirements

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

Next

Follow the Quickstart.
To receive webhooks from Xero, follow our Xero Webhooks Guide.
Need help getting started? Get help in the community.
Contribute improvements to the setup guide by editing this page
TopicLinks
GeneralWebsite
Create a Developer account
Developer Dashboard
DeveloperAPI documentation
Authentication documentation
OAuth 2.0 authorization flow
Register an application
List of OAuth scopes
API rate limits
Contribute useful links by editing this page

API gotchas

  • When a user authorizes your app, they select which Xero organization to connect. Your app can only access data for the selected organization.
  • 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.
  • Make sure you add the offline_access scope to ensure the token refreshes as expected
Contribute API gotchas by editing this page
⌘I