Xero
Keep Xero in step with your orders, invoices and payments without re-keying, with the right person approving what changes.
46 ways to read, 18 ways to write, each write switched on by you.
Quality checks
Built and tested with example responses.
- Ready to connect: doneEvery listed action is built in.
- Built and tested with example responses: doneEach action is built from the provider’s published API and tested against example responses, errors, rate limits and paging.
Connected, approved, proven.
The things teams do most with Xero, an example flow with a person in the loop, and what Nexra keeps as proof.
Top actions
- Create invoice or billApproval by rule
- Record paymentApproval by rule
- Aged payables reportRead
Example flow
- Magento Open Source · Read inventoryDone
- Xero · Create draft purchase orderNeeds approval
- Nexra · Record the decision and result in the evidence chainProven
Example workflow. Routine runs go through on their own. Only a change your rules flag, such as one over a limit you set, waits for the right person, who sees the exact change and the rule before it reaches Xero.
What gets logged
- Whether it ran on its own or who approved it, and under which rule
- A fingerprint of the exact request sent to Xero
- Xero's reply: what it created or changed
- One entry in the evidence chain, linked to the one before
Try this in the sandbox
Run the whole flow with test data in your sandbox, then connect a Xero test account before you go live.
For developers
Technical detail
Read Xero invoices, bills, contacts, payments, banking, journals, settings, attachments and reports (profit and loss, balance sheet, trial balance, aged, bank summary); create draft invoices, bills, quotes and orders.
Xero API docs- Source actions
- 46
- Destination actions
- 18
- Data types
- 37
What you can map
Reads are always available. Writes are off until you switch them on for a connection, and governed writes follow your policies.
Accounting invoices5
- Create invoice or billDestinationProvider duplicate protectionApproval before production
Creates a sales invoice (ACCREC) or bill (ACCPAY).
- Get invoice or billSource
One invoice or bill with lines, payments and balances.
- List invoices and billsSourceIncremental
Sales invoices (ACCREC) and bills (ACCPAY) with lines, payments and balances.
- Search invoices and billsSourceIncremental
Invoices and bills by number, reference text, contact, status, type and date range.
- Update invoice or billDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a draft or submitted invoice or bill.
Accounting payments3
- Record paymentDestinationProvider duplicate protectionApproval before production
Records a payment already made or received against an invoice, bill or credit note. No money is moved.
- Get paymentSource
One payment. Read only.
- List paymentsSourceIncremental
Payments applied to invoices, bills and credit notes.
Attachments1
- List attachmentsSource
Attachment metadata (file name, type and size) for one record. File contents are not downloaded.
Bank transactions3
- Create bank transactionDestinationProvider duplicate protectionApproval before production
Records spend or receive money in a bank account. No money is moved.
- Get bank transactionSource
One spend or receive money transaction. Read only.
- List bank transactionsSourceIncremental
Spend and receive money transactions with lines and reconciliation state.
Batch payments1
- List batch paymentsSourceIncremental
Batch payments with the payments they contain. Read only.
Branding themes1
- List branding themesSource
Invoice branding themes, used to choose a template on drafts.
Chart of accounts2
- Get accountSource
One account from the chart of accounts.
- List chart of accountsSourceIncremental
Accounts with code, type, class, tax type and status.
Contact groups1
- List contact groupsSource
Contact groups with status.
Contacts5
- Create contactDestinationProvider duplicate protectionApproval before production
Creates a customer or supplier contact. Contact names must be unique.
- Get contactSource
One contact with balances, groups, phones and addresses.
- List contactsSourceIncremental
Customers and suppliers with balances, groups, phones and addresses.
- Search contactsSourceIncremental
Contacts by IDs, contact number (external system ID), account number, status or role. Name and email search are not offered because Xero filters travel in the URL.
- Update contactDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a contact.
Credit notes3
- Create credit noteDestinationProvider duplicate protectionApproval before production
Creates a customer (ACCRECCREDIT) or supplier (ACCPAYCREDIT) credit note.
- Get credit noteSource
One credit note with allocations.
- List credit notesSourceIncremental
Customer and supplier credit notes with allocations and remaining credit.
Currencies1
- List currenciesSource
Currencies enabled for the organisation.
Customers1
- List CustomersSource
List operation for Customers.
Draft bills1
- Create draft billDestinationProvider duplicate protectionApproval before production
Creates a supplier bill (ACCPAY) in DRAFT status.
Draft invoices1
- Create draft sales invoiceDestinationProvider duplicate protectionApproval before production
Creates a sales invoice (ACCREC) in DRAFT status.
Draft purchase orders1
- Create draft purchase orderDestinationProvider duplicate protectionApproval before production
Creates a purchase order in DRAFT status.
Draft quotes1
- Create draft quoteDestinationProvider duplicate protectionApproval before production
Creates a sales quote in DRAFT status.
Items4
- Create itemDestinationProvider duplicate protectionApproval before production
Creates a product or service item with sales and purchase details.
- Get itemSource
One product or service item.
- List itemsSourceIncremental
Products and services with sales and purchase details and stock on hand; incremental with If-Modified-Since.
- Update itemDestinationProvider duplicate protectionApproval before production
Updates an item. Xero requires the item code on every update.
Journals2
- Get journalSource
One general ledger journal with its lines.
- List journalsSourceIncremental
The general ledger journals Xero creates for every posted transaction, in journal number order, with account, tax and tracking per line.
Manual journals3
- Create manual journalDestinationProvider duplicate protectionApproval before production
Creates a manual journal; posted journals must balance to zero.
- Get manual journalSource
One manual journal with lines. Read only.
- List manual journalsSourceIncremental
Manual journals with lines and tax.
Orders1
- List OrdersSource
List operation for Orders.
Organisation1
- Get organisationSource
The connected organisation's name, base currency, country, tax settings, financial year and lock dates.
Overpayments1
- List overpaymentsSourceIncremental
Customer and supplier overpayments with allocations and remaining credit. Read only.
Prepayments1
- List prepaymentsSourceIncremental
Customer and supplier prepayments with allocations and remaining credit. Read only.
Prices1
- List PricesSource
List operation for Prices.
Products1
- List ProductsSource
List operation for Products.
Purchase orders4
- Create purchase orderDestinationProvider duplicate protectionApproval before production
Creates a purchase order for a supplier.
- Get purchase orderSource
One purchase order with delivery details and lines.
- List purchase ordersSourceIncremental
Purchase orders with status, delivery details and lines.
- Update purchase orderDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a purchase order.
Quotes4
- Create quoteDestinationProvider duplicate protectionApproval before production
Creates a draft or sent sales quote. Xero does not email it.
- Get quoteSource
One quote with expiry, terms and lines.
- List quotesSourceIncremental
Sales quotes with status, expiry and lines.
- Update draft quoteDestinationProvider duplicate protectionApproval before production
Updates a quote's lines, dates, reference, title, summary or terms and keeps it in DRAFT status.
Repeating invoices1
- List repeating invoicesSource
Repeating invoice and bill templates with their schedule. Read only.
Reports aged payables1
- Aged payables reportSource
Aged payables for one supplier contact, one record per bill row.
Reports aged receivables1
- Aged receivables reportSource
Aged receivables for one contact, one record per invoice row.
Reports balance sheet1
- Balance sheet reportSource
Balance sheet at a date, one record per report row.
Reports bank summary1
- Bank summary reportSource
Opening balance, cash received, cash spent and closing balance per bank account for a date range, one record per account row.
Reports profit and loss1
- Profit and loss reportSource
Profit and loss for a date range, one record per report row.
Reports trial balance1
- Trial balance reportSource
Trial balance at a date, one record per account row.
Tax rates1
- List tax ratesSource
Tax rates with components and effective rate.
Tracking categories1
- List tracking categoriesSource
Tracking categories and their options.
Users1
- List usersSourceIncremental
Users of the organisation with their role.
Access and limits
- Authentication
- Xero OAuth 2.0 authorisation code with rotating refresh tokens
- Plans and access
- All Xero organisation plans; purchase orders and quotes follow plan features. The connection uses the scopes granted during Nexra's Xero sign-in, chosen by when the Xero app was created. Apps created before 2 March 2026: accounting.transactions, accounting.contacts, accounting.settings, accounting.reports.read, accounting.attachments.read and accounting.journals.read. Newer apps: accounting.invoices, accounting.payments, accounting.banktransactions, accounting.manualjournals, accounting.contacts, accounting.settings, accounting.attachments.read and accounting.reports.aged.read, plus the profit and loss, balance sheet, trial balance and bank summary report scopes and accounting.journals.read for App Partner Program apps.
- Test environment
- Xero provides a free Demo Company that can be authorised for testing.
- Rate limits
- 60 calls per minute and 5,000 per day per organisation, 5 concurrent calls, plus an app-wide minute limit; HTTP 429 with Retry-After.
- Pagination
- page with pageSize up to 1000 on paged endpoints; quotes return 100 per page.
- Provider events
- Xero webhooks for contact, invoice and credit note events. Flows can start the moment something happens: when an invoice is created; when an invoice is updated; when a new contact is added; when a contact is updated.
Before you build a flow
- Read-only live sync is supported for contacts, items, prices, and invoices after OAuth authorisation.
- Xero Accounting API does not provide delivery tracking; delivery status must come from a commerce or fulfilment system.
- Attachment contents are not read; attachments.list returns metadata only.
- Idempotency-Key values longer than Xero's 128-character limit are rejected by Xero.
- Deletes, voids, payment reversals and bank transfers are not implemented.
- Search operations build Xero where clauses only from validated values without quotes or @. Contact search by name or email is not offered because Xero's searchTerm and where filters are sent in the URL query string and searchTerm also matches email addresses; search by contact number, account number or ID instead.
- Incremental reads send If-Modified-Since on invoices, contacts, credit notes, payments, bank transactions, purchase orders, quotes, manual journals, items, users, overpayments, prepayments and batch payments. Tax rates, tracking categories, contact groups, currencies, branding themes and repeating invoices have no incremental filter.
- Reports need accounting.reports.read (apps created before 2 March 2026) or the per-report scope (newer apps). Xero grants the profit and loss, balance sheet, trial balance and bank summary report scopes and accounting.journals.read to newer apps only through its App Partner Program, so on a newer app outside the programme those reads return a permission error; aged payables and receivables work for every app. Connections authorised before these scopes were requested must be reauthorised once.
- Report rows are flattened to one record per row with Xero's formatted text values; layouts follow the organisation's report settings.
- Attachment file contents, bank transfers, receipts, expense claims, employees, linked transactions, history and notes are not implemented. Journals (the general ledger) are read only.
Developer reference
- Create the Xero credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose Xero, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/xero and the Connections API.

