Xero
Cloud accounting for invoices, payments, and bank reconciliation
Xero
Connect to Xero for cloud accounting automation including invoices, bills, payments, and bank transactions.
Overview
Xero is a cloud-based accounting platform. The integration supports:
- Contacts - Customers and suppliers
- Invoices - Sales invoices (AR)
- Bills - Purchase invoices (AP)
- Payments - Record payments against invoices
- Bank Transactions - Spend and receive money
- Accounts - Chart of accounts
- Credit Notes - Customer and supplier credits
- Items - Products and services
- Reports - Financial reports
Prerequisites
- Xero account (any plan)
- Xero Developer account
- OAuth app configured
- Organisation (tenant) access
Authentication
Xero uses OAuth 2.0 for authentication via Nango.
Multi-Organization Support
Xero requires a tenant ID for all API calls. Get connected tenants first:
Pass tenantId to all subsequent actions.
Available Actions
Connection Actions
getConnections
Get connected organizations (tenants).
Contact Actions
getContact
Get contact by ID.
createContact
Create a new contact.
updateContact
Update an existing contact.
archiveContact
Archive a contact (soft delete).
listContacts
List contacts with filters.
Invoice Actions
getInvoice
Get invoice by ID.
createInvoice
Create a sales invoice (ACCREC).
Invoice Types:
ACCREC- Accounts Receivable (Sales Invoice)ACCPAY- Accounts Payable (Bill)
Line Amount Types:
Exclusive- Amounts exclude taxInclusive- Amounts include taxNoTax- No tax applied
updateInvoice
Update an invoice.
voidInvoice
Void an invoice.
deleteInvoice
Delete a draft invoice.
listInvoices
List invoices with filters.
emailInvoice
Send invoice via email.
Bill Actions
createBill
Create a bill (accounts payable).
Payment Actions
getPayment
Get payment by ID.
createPayment
Record a payment against an invoice.
deletePayment
Delete an unreconciled payment.
listPayments
List payments.
Bank Transaction Actions
getBankTransaction
Get bank transaction by ID.
createBankTransaction
Create a bank transaction (spend or receive).
Transaction Types:
SPEND- Money out (expense)RECEIVE- Money in (income)
updateBankTransaction
Update a bank transaction.
listBankTransactions
List bank transactions.
Account Actions
getAccount
Get account by ID.
createAccount
Create a new account.
Account Types:
BANK, CURRENT, CURRLIAB, DEPRECIATN, DIRECTCOSTS, EQUITY, EXPENSE, FIXED, INVENTORY, LIABILITY, NONCURRENT, OTHERINCOME, OVERHEADS, PREPAYMENT, REVENUE, SALES, TERMLIAB
listAccounts
List chart of accounts.
Credit Note Actions
getCreditNote
Get credit note by ID.
createCreditNote
Create a credit note.
Credit Note Types:
ACCRECCREDIT- Customer credit (AR)ACCPAYCREDIT- Supplier credit (AP)
Item Actions
getItem
Get item by ID.
createItem
Create a product/service item.
listItems
List items.
Organisation Actions
getOrganisation
Get organisation details.
Report Actions
getReport
Get a financial report.
Report Types:
BalanceSheetProfitAndLossTrialBalanceAgedPayablesByContactAgedReceivablesByContactBudgetSummary
Webhook Triggers
Xero webhooks trigger workflows on accounting events.
Event Types:
| Event | Description |
|---|---|
INVOICE.CREATED | Invoice created |
INVOICE.UPDATED | Invoice updated |
CONTACT.CREATED | Contact created |
CONTACT.UPDATED | Contact updated |
PAYMENT.CREATED | Payment recorded |
Example Workflow
Invoice sync workflow:
Rate Limits
| Limit | Value |
|---|---|
| API calls/minute | 60 |
| API calls/day | 5,000 |
| Concurrent connections | 5 per app |
Troubleshooting
Common Errors
| Error | Cause | Solution |
|---|---|---|
tenantId is required | Missing organization ID | Call getConnections first |
contactId is required | No contact specified | Provide contactId |
INVALID_INVOICE_STATUS | Wrong status transition | Check current status |
VALIDATION_ERROR | Missing required fields | Review required parameters |
ORGANIZATION_OFFLINE | Org temporarily unavailable | Retry later |
Where Filter Syntax
Xero uses OData-style filters: