Overview
Pre-built tooling
✅ Authorization
✅ Authorization
✅ Read & write data
✅ Read & write data
| Tools | Status |
|---|---|
| Pre-built integrations | ✅ |
| API unification | ✅ |
| 2-way sync | ✅ |
| Webhooks from Nango on data modifications | ✅ |
| Real-time webhooks from 3rd-party API | ✅ |
| Proxy requests | ✅ |
✅ Observability & data quality
✅ Observability & data quality
| Tools | Status |
|---|---|
| HTTP request logging | ✅ |
| End-to-type type safety | ✅ |
| Data runtime validation | ✅ |
| OpenTelemetry export | ✅ |
| Slack alerts on errors | ✅ |
| Integration status API | ✅ |
✅ Customization
✅ Customization
| Tools | Status |
|---|---|
| Create or customize use-cases | ✅ |
| Pre-configured pagination | 🚫 (time to contribute: <48h) |
| Pre-configured rate-limit handling | 🚫 (time to contribute: <48h) |
| Per-customer configurations | ✅ |
Accounts
Bank Transactions
Contacts
| Function name | Description | Type | Source code |
|---|---|---|---|
create-contact | Creates one or multiple contacts in Xero. Note: Does NOT check if these contacts already exist. | Action | 🔗 Github |
update-contact | Updates 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. | Action | 🔗 Github |
contacts | Fetches all Xero contacts. Details: incremental sync, detects deletes, metadata is not required. | Sync | 🔗 Github |
Credit Notes
| Function name | Description | Type | Source code |
|---|---|---|---|
create-credit-note | Creates one or more credit notes in Xero. Note: Does NOT check if the credit note already exists. | Action | 🔗 Github |
update-credit-note | Updates one or more credit notes in Xero. | Action | 🔗 Github |
credit-notes | Fetches all credit notes in Xero. Incremental sync. | Sync | 🔗 Github |
General Ledger
Invoices
| Function name | Description | Type | Source code |
|---|---|---|---|
create-invoice | Creates one or more invoices in Xero. Note: Does NOT check if the invoice already exists. | Action | 🔗 Github |
update-invoice | Updates 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. | Action | 🔗 Github |
invoices | Fetches all invoices in Xero. Incremental sync. | Sync | 🔗 Github |
Items
| Function name | Description | Type | Source code |
|---|---|---|---|
create-item | Creates one or more items in Xero. Note: Does NOT check if the item already exists. | Action | 🔗 Github |
update-item | Updates one or more items in Xero. | Action | 🔗 Github |
items | Fetches all items in Xero. Incremental sync, does not detect deletes, metadata is not required. | Sync | 🔗 Github |
Organisations
Payments
Tenants
Access requirements
| Pre-Requisites | Status | Comment |
|---|---|---|
| Paid dev account | ✅ Not required | Free, self-signup for a Xero Developer account. |
| Paid test account | ✅ Not required | Developer account includes a demo company for testing. |
| Partnership | ✅ Not required | |
| App review | ✅ Not required | Only 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
- Log in to your Xero My Apps developer console.
- Click New app in the top right corner.
- A new app form will appear. Enter a unique App name.
- Select Mobile or desktop app as the integration type.
- Fill in the Company or application URL and Redirect URI fields. For the Redirect URI, use:
https://api.nango.dev/oauth/callback. - Check the developer’s terms checkbox and click Create App.
- Your app will be generated, and you will be redirected to your App details page.
3
Obtain API credentials
- Navigate to the Configuration tab to retrieve your Client ID and Client Secret.
- Click Generate a Secret to create a new Client Secret.
- You will need these credentials when configuring your integration in Nango.
4
Next
Follow the Quickstart.
Contribute improvements to the setup guide by editing this page
Useful links
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_idin the connection config, which you can then use in your API calls. - Make sure you add the
offline_accessscope to ensure the token refreshes as expected
Contribute API gotchas by editing this page