Skip to main content

πŸš€ Quickstart

Connect to Xero with Nango and see data flow in 2 minutes.
1

Create the integration

In Nango (free signup), go to Integrations -> Configure New Integration -> Xero.
2

Authorize Xero

Go to Connections -> Add Test Connection -> Authorize, then log in to Xero. Later, you’ll let your users do the same directly from your app.
3

Call the Xero API

Let’s make your first request to the Xero API. Replace the placeholders below with your secret key, integration ID, and connection ID:
  • cURL
  • Node
curl "https://api.nango.dev/proxy/api.xro/2.0/Contacts" \
  -H "Authorization: Bearer <NANGO-SECRET-KEY>" \
  -H "Provider-Config-Key: <INTEGRATION-ID>" \
  -H "Connection-Id: <CONNECTION-ID>"
Or fetch credentials with the Node SDK or API.βœ… You’re connected! Check the Logs tab in Nango to inspect requests.
4

Implement Nango in your app

Follow our quickstart to integrate Nango in your app.To obtain your own production credentials, follow the setup guide linked below.

πŸ“š Xero Integration Guides

Nango maintained guides for common use cases. Official docs: Xero API documentation

🧩 Pre-built syncs & actions for Xero

Enable them in your dashboard. Extend and customize to fit your needs.

Accounts

Function nameDescriptionTypeSource code
accountsFetches all accounts in Xero (chart of accounts). Incremental sync, detects deletes, metadata is not required.SyncπŸ”— Github

Bank Transactions

Function nameDescriptionTypeSource code
bank-transactionsFetches all bank transactions in Xero. Incremental sync, detects deletes, metadata is not required.SyncπŸ”— Github

Contacts

Function nameDescriptionTypeSource code
create-contactCreates one or multiple contacts in Xero. Note: Does NOT check if these contacts already exist.ActionπŸ”— Github
update-contactUpdates 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
contactsFetches all Xero contacts. Details: incremental sync, detects deletes, metadata is not required.SyncπŸ”— Github

Credit Notes

Function nameDescriptionTypeSource code
create-credit-noteCreates one or more credit notes in Xero. Note: Does NOT check if the credit note already exists.ActionπŸ”— Github
update-credit-noteUpdates one or more credit notes in Xero.ActionπŸ”— Github
credit-notesFetches all credit notes in Xero. Incremental sync.SyncπŸ”— Github

General Ledger

Function nameDescriptionTypeSource code
general-ledgerFetch all general ledger entries in XeroSyncπŸ”— Github

Invoices

Function nameDescriptionTypeSource code
create-invoiceCreates one or more invoices in Xero. Note: Does NOT check if the invoice already exists.ActionπŸ”— Github
update-invoiceUpdates 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
invoicesFetches all invoices in Xero. Incremental sync.SyncπŸ”— Github

Items

Function nameDescriptionTypeSource code
create-itemCreates one or more items in Xero. Note: Does NOT check if the item already exists.ActionπŸ”— Github
update-itemUpdates one or more items in Xero.ActionπŸ”— Github
itemsFetches all items in Xero. Incremental sync, does not detect deletes, metadata is not required.SyncπŸ”— Github

Organisations

Function nameDescriptionTypeSource code
organisationsFetches organisation details in Xero.SyncπŸ”— Github

Payments

Function nameDescriptionTypeSource code
create-paymentCreates one or more payments in Xero. Note: Does NOT check if the payment already exists.ActionπŸ”— Github
paymentsFetches all payments in Xero. Incremental sync.SyncπŸ”— Github

Tenants

Function nameDescriptionTypeSource code
get-tenantsFetches all the tenants the connection has access to. This can be used to set the metadata to the selected tenant.ActionπŸ”— Github