Overview
Xero is a cloud accounting platform popular with SMBs in AU/NZ/UK/SA. The Automize Xero connector covers the core accounting flows – invoices, contacts, payments, credit notes, quotes, items, accounts, journals, and bank transactions.
- Regions: Xero is a single global platform, but data is regionalised by the Organisation's country (AU, NZ, UK, US, SA, etc.). The connector talks to api.xero.com – no region selector. Choose which Organisation when authorising.
- Plans: All Xero plans expose the API. Limited features (e.g. Projects, Payroll) need the corresponding add-on subscription.
Setting up the connection
Auth type: OAuth 2.0 (Authorization Code).
- Sign in at developer.xero.com and create an app (Web app type).
- Set the Redirect URI shown in the Automize Xero connector dialog.
- Add the scopes listed below.
- Copy the Client ID and Client Secret.
- In Automize, open Settings → Connectors → Xero → Add connection. Paste credentials, click Connect with Xero, choose which Organisation to connect (each Org is a separate connection).
Scopes required:
openidprofileemailaccounting.transactionsaccounting.contactsaccounting.settingsaccounting.reports.readoffline_access
Find your credentials at https://developer.xero.com/app/manage.
Rate limits
Xero enforces 60 calls/minute and 5,000 calls/day per Organisation per app. Tight by enterprise-API standards – design for batched calls and caching. The connector retries 429 with the Retry-After header. For bulk loads, use Xero's batched POST endpoints (one call accepts up to 200 invoices/contacts).
Data model
An Organisation is the tenant. Most objects live within an Organisation.
Contact ─┬─ Invoices ─── Payments
├─ Credit Notes
└─ Quotes
Account ─── Manual Journals
Bank Account ─── Bank Transactions
Contacts are de-duplicated by Name (case-insensitive) within an Org.Available operations
26 operations available. Click any row to jump to its detail.
| Operation | Category | What it does |
|---|---|---|
| Create contact | General | Create a new contact in Xero. |
| Create credit note | General | Create a new credit note in Xero. |
| Create invoice | General | Create a new sales (ACCREC) or purchase (ACCPAY) invoice in Xero. |
| Create payment | General | Create a payment against an invoice in Xero. |
| Create purchase order | General | Create a new purchase order in Xero. |
| Create quote | General | Create a new quote in Xero. |
| Balance sheet report | General | Get the Balance Sheet report from Xero. |
| Get contact | General | Get a contact by ID from Xero. |
| Get credit note | General | Get a credit note by ID from Xero. |
| Get invoice | General | Get an invoice by ID from Xero. |
| Get item | General | Get an inventory item by ID from Xero. |
| Profit & loss report | General | Get the Profit & Loss report from Xero. |
| Get purchase order | General | Get a purchase order by ID from Xero. |
| Get quote | General | Get a quote by ID from Xero. |
| Trial balance report | General | Get the Trial Balance report from Xero. |
| List accounts | General | List the chart of accounts in Xero. |
| List bank transactions | General | List bank transactions in Xero. |
| List contacts | General | List all contacts in Xero. |
| List credit notes | General | List all credit notes in Xero. |
| List invoices | General | List all invoices in Xero. |
| List items | General | List inventory items in Xero. |
| List payments | General | List all payments in Xero. |
| List purchase orders | General | List all purchase orders in Xero. |
| List quotes | General | List all quotes in Xero. |
| Update contact | General | Update an existing contact in Xero. |
| Update invoice | General | Update an existing invoice in Xero. |
Operations
Create contact
Create a new contact in Xero.
| Parameter | Required | Type | Description |
|---|---|---|---|
Name Name | Yes | text | |
Email EmailAddress | No | text |
Tips
- Name is the required dedupe key – case-insensitive unique per Org.
- EmailAddress + ContactNumber are optional but useful for downstream sync.
Create credit note
Create a new credit note in Xero.
No input parameters.
Tips
- Allocate to a specific invoice via Allocations on the Invoice update, not here. This just creates the credit note.
Create invoice
Create a new sales (ACCREC) or purchase (ACCPAY) invoice in Xero.
| Parameter | Required | Type | Description |
|---|---|---|---|
Type (ACCREC/ACCPAY) Type | Yes | text | |
Contact (JSON) Contact | Yes | text | |
Line items (JSON) LineItems | Yes | textarea |
Tips
- Status defaults to DRAFT. Set Status=AUTHORISED to send straight to the customer.
- Type=ACCREC for sales invoices, ACCPAY for bills.
- Line items: each needs Description + (UnitAmount + Quantity OR LineAmount), plus AccountCode.
Errors
ValidationException– Field-level validation failed. Response body lists each offending field.InvoiceNumber must be unique– Numbering scheme conflict. Don't pass InvoiceNumber to let Xero auto-assign.
Create payment
Create a payment against an invoice in Xero.
| Parameter | Required | Type | Description |
|---|---|---|---|
Invoice (JSON) Invoice | Yes | text | |
Account (JSON) Account | Yes | text | |
Amount Amount | Yes | number | |
Date (YYYY-MM-DD) Date | Yes | text |
Tips
- Apply a payment to an Invoice (sales) or Bill (purchases). Requires Invoice ID + Account (the bank) + Amount + Date.
Create purchase order
Create a new purchase order in Xero.
No input parameters.
Create quote
Create a new quote in Xero.
No input parameters.
Tips
- Same line item shape as invoices. Convert ACCEPTED → invoice via the Xero UI (no direct API endpoint).
Balance sheet report
Get the Balance Sheet report from Xero.
No input parameters.
Get contact
Get a contact by ID from Xero.
| Parameter | Required | Type | Description |
|---|---|---|---|
Contact ID contact_id | Yes | text |
Tips
- contact_id or ContactNumber. Returns full contact incl. addresses, phones, balances.
Get credit note
Get a credit note by ID from Xero.
| Parameter | Required | Type | Description |
|---|---|---|---|
Credit note ID creditNoteId | Yes | text | |
Credit Note Id credit_note_id | Yes | text |
Get invoice
Get an invoice by ID from Xero.
| Parameter | Required | Type | Description |
|---|---|---|---|
Invoice ID invoice_id | Yes | text |
Tips
- invoice_id or InvoiceNumber. Returns line items, payments, attachments references.
Get item
Get an inventory item by ID from Xero.
| Parameter | Required | Type | Description |
|---|---|---|---|
Item ID itemId | Yes | text | |
Item Id item_id | Yes | text |
Profit & loss report
Get the Profit & Loss report from Xero.
No input parameters.
Get purchase order
Get a purchase order by ID from Xero.
| Parameter | Required | Type | Description |
|---|---|---|---|
Purchase order ID purchaseOrderId | Yes | text | |
Purchase Order Id purchase_order_id | Yes | text |
Get quote
Get a quote by ID from Xero.
| Parameter | Required | Type | Description |
|---|---|---|---|
Quote ID quoteId | Yes | text | |
Quote Id quote_id | Yes | text |
Trial balance report
Get the Trial Balance report from Xero.
No input parameters.
List accounts
List the chart of accounts in Xero.
No input parameters.
Tips
- Chart of accounts. Filter by Type (REVENUE, EXPENSE, BANK, etc.).
- AccountCode is the human-readable code; AccountID is the UUID.
List bank transactions
List bank transactions in Xero.
No input parameters.
Tips
- Type: RECEIVE (money in), SPEND (money out), or transfer types.
- Filter by BankAccount.AccountID to scope to one bank account.
List contacts
List all contacts in Xero.
No input parameters.
Tips
- Where: Name.Contains("Acme") for fuzzy search.
- IncludeArchived=true to return inactive contacts.
List credit notes
List all credit notes in Xero.
No input parameters.
Tips
- Filter by Type (ACCRECCREDIT / ACCPAYCREDIT) and Status.
List invoices
List all invoices in Xero.
No input parameters.
Tips
- Filter via Where clause: Status=="AUTHORISED", Type=="ACCREC" (sales) or Type=="ACCPAY" (bills).
- Pagination is 100 per page. Use page parameter.
- Add summaryOnly=true for header-only listings (much faster on big orgs).
List items
List inventory items in Xero.
No input parameters.
Tips
- Inventory / non-inventory items. Has Code (your SKU), Name, sale and purchase details.
List payments
List all payments in Xero.
No input parameters.
Tips
- Filter by Invoice.InvoiceID to find payments against a specific invoice.
List purchase orders
List all purchase orders in Xero.
No input parameters.
List quotes
List all quotes in Xero.
No input parameters.
Tips
- Status flow: DRAFT → SENT → ACCEPTED → INVOICED, or DECLINED.
Update contact
Update an existing contact in Xero.
| Parameter | Required | Type | Description |
|---|---|---|---|
Contact ID contactId | Yes | text | |
Contact Id contact_id | Yes | text |
Tips
- Set IsCustomer=true / IsSupplier=true to flag – Xero tracks these separately.
Update invoice
Update an existing invoice in Xero.
| Parameter | Required | Type | Description |
|---|---|---|---|
Invoice ID invoice_id | Yes | text | |
Fields (JSON) fields | Yes | textarea |
Tips
- Only DRAFT invoices can change line items. AUTHORISED invoices can only update notes / reference / dates.
- Status transition AUTHORISED → VOIDED is irreversible.
FAQ
- Why does my invoice fail with 'ValidationException – Account code is required'?
- Every line item needs an AccountCode from the chart of accounts (e.g. 200 for Sales). Look it up via List Accounts.
- Multiple Organisations – one connection or several?
- Each Xero Organisation = one Automize Xero connection. Authorise once per Org. Use process variables to pick the right connection at runtime.
- Can I post to a Posted (locked) period?
- No. Xero forbids edits in a locked period. The Org's CurrentFinancialYearEndDate locks history. To amend, unlock via the Xero UI or post adjustments in a current period.
- InvoiceNumber sequence – manual or auto?
- Leave InvoiceNumber off and Xero auto-assigns per its sequence. Pass it explicitly only if you're migrating data with existing numbers – collisions return ValidationException.