# Xero

Xero is a cloud-based accounting software for small businesses, providing invoicing, bank reconciliation, bookkeeping, and financial reporting in real time

- **Category:** accounting
- **Auth:** OAUTH2
- **Composio Managed App Available?** No
- **Tools:** 41
- **Triggers:** 0
- **Slug:** `XERO`
- **Version:** 20260417_00

## Frequently Asked Questions

### How do I set up custom OAuth credentials for Xero?

For a step-by-step guide on creating and configuring your own Xero OAuth credentials with Composio, see [How to create OAuth credentials for Xero](https://composio.dev/auth/xero).

## Tools

### Create Bank Transaction

**Slug:** `XERO_CREATE_BANK_TRANSACTION`

Create a bank transaction in Xero. Use SPEND for payments out or RECEIVE for money received.

### Create Contact

**Slug:** `XERO_CREATE_CONTACT`

Create a new contact in Xero. Contacts can be customers, suppliers, or both.

### Create Invoice

**Slug:** `XERO_CREATE_INVOICE`

Create a new invoice in Xero. Supports both sales invoices (ACCREC) and bills (ACCPAY).

### Create Item

**Slug:** `XERO_CREATE_ITEM`

Create an inventory item in Xero. Items can be tracked for sales and/or purchases.

### Create Manual Journal

**Slug:** `XERO_CREATE_MANUAL_JOURNAL`

Create one or more manual journals (journal entries) in Xero with journal lines. Manual journals must balance (debits equal credits).

### Create Payment

**Slug:** `XERO_CREATE_PAYMENT`

Create a payment in Xero to link an invoice with a bank account transaction.

### Create Purchase Order

**Slug:** `XERO_CREATE_PURCHASE_ORDER`

Create a purchase order in Xero to order goods/services from suppliers.

### Get Account

**Slug:** `XERO_GET_ACCOUNT`

Retrieve a specific account from Xero's chart of accounts by its unique ID. Returns detailed account information including code, name, type (BANK, REVENUE, EXPENSE, etc.), status (ACTIVE/ARCHIVED), tax settings, bank details (for BANK accounts), and classification. Use XERO_LIST_ACCOUNTS to get account IDs if you don't already have one.

### Get Asset

**Slug:** `XERO_GET_ASSET`

Retrieve a specific asset by ID from Xero. Returns depreciation details and book value.

### Get Balance Sheet Report

**Slug:** `XERO_GET_BALANCE_SHEET_REPORT`

Retrieve Balance Sheet report from Xero. Shows assets, liabilities, and equity at a specific date. Liability and credit balances appear as negative numbers in the response. Response structure is Reports → Rows → Sections; account lines are nested inside group sections and summary totals (e.g., 'Total Current Assets') appear in SummaryRows.

### Get Budget

**Slug:** `XERO_GET_BUDGET`

Retrieve a budget from Xero. Budgets track planned vs actual spending by account.

### Get Connections

**Slug:** `XERO_GET_CONNECTIONS`

Tool to list active Xero connections. Use to retrieve all current tenant connections for the authenticated user and resolve the correct tenant_id before making data requests. When multiple tenants are returned, never assume the first connection is correct — always explicitly pass the intended tenant_id to every subsequent call. Using a wrong or stale tenant_id can silently return or modify data for a different organisation.

### Get Contacts

**Slug:** `XERO_GET_CONTACTS`

Tool to retrieve a list of contacts. Use when you need up-to-date contact information with filtering, paging, or incremental updates.

### Get Invoice

**Slug:** `XERO_GET_INVOICE`

Retrieve a specific invoice by ID from Xero. Returns full invoice details including line items and status.

### Get Item

**Slug:** `XERO_GET_ITEM`

Retrieve a specific item by ID from Xero. Returns item code, name, pricing, and tax details.

### Get Manual Journal

**Slug:** `XERO_GET_MANUAL_JOURNAL`

Retrieve a specific manual journal by ID from Xero. Returns full details including journal lines.

### Get Organisation

**Slug:** `XERO_GET_ORGANISATION`

Retrieve organisation details from Xero. Returns company info, base currency, timezone, financial year settings, SalesTaxBasis, SalesTaxPeriod, etc. Response fields are nested under data.data.Organisations[0]. Use Timezone when computing date ranges to avoid boundary errors.

### Get Profit & Loss Report

**Slug:** `XERO_GET_PROFIT_LOSS_REPORT`

Retrieve Profit & Loss report from Xero. Shows income, expenses, and net profit for a specified period. Response rows are labeled (e.g., 'Net Profit', SummaryRow); parse by row label, not array index. Aggregates multiple tax codes — not suitable for tax compliance reporting.

### Get Project

**Slug:** `XERO_GET_PROJECT`

Retrieve a specific project by ID from Xero. Returns project details, deadlines, and status.

### Get Purchase Order

**Slug:** `XERO_GET_PURCHASE_ORDER`

Retrieve a specific purchase order by ID from Xero. Returns full details including line items and status.

### Get Quotes

**Slug:** `XERO_GET_QUOTES`

Tool to retrieve a list of quotes. Use when you need to list, filter, or page through sales quotes. Use after obtaining the tenant ID via connections.

### Get Trial Balance Report

**Slug:** `XERO_GET_TRIAL_BALANCE_REPORT`

Retrieve Trial Balance report from Xero. Shows all account balances (debits and credits) at a specific date. Use to verify that total debits equal total credits and to prepare financial statements. Credit balances appear as negative numbers in the response.

### List Accounts

**Slug:** `XERO_LIST_ACCOUNTS`

Retrieve chart of accounts from Xero. Returns all accounting codes used for categorizing transactions. Use AccountID (not name or code) as the unique identifier for accounts. Results may be paginated; increment the page parameter until empty results are returned to avoid missing accounts in large organisations.

### List Assets

**Slug:** `XERO_LIST_ASSETS`

Retrieve fixed assets from Xero. Assets track depreciation and book value of capital equipment.

### List Attachments

**Slug:** `XERO_LIST_ATTACHMENTS`

List all attachments for a specific entity in Xero (invoice, contact, etc.).

### List Bank Transactions

**Slug:** `XERO_LIST_BANK_TRANSACTIONS`

Retrieve bank transactions from Xero. Includes SPEND, RECEIVE, and transfer types; unfiltered results include DELETED transactions that skew totals. Dates returned in /Date(milliseconds_since_epoch)/ format. Rate limit: ~60 requests/minute per org; heavy pagination may trigger 429 errors.

### List Credit Notes

**Slug:** `XERO_LIST_CREDIT_NOTES`

Retrieve list of credit notes from Xero. Credit notes are issued to reduce amounts owed by customers.

### List Files

**Slug:** `XERO_LIST_FILES`

Retrieve files from Xero Files. Lists documents stored in Xero's file management system.

### List Folders

**Slug:** `XERO_LIST_FOLDERS`

Retrieve folders from Xero Files. Lists document folders in Xero's file management system.

### List Invoices

**Slug:** `XERO_LIST_INVOICES`

Retrieve a list of invoices from Xero. Results include both sales invoices (Type=ACCREC) and bills (Type=ACCPAY) by default; filter by Type in the `where` clause when only one is needed. Supports filtering by status, contact, date range, and pagination.

### List Items

**Slug:** `XERO_LIST_ITEMS`

Retrieve items (inventory/products) from Xero. Items can be tracked for sales and/or purchases.

### List Journals

**Slug:** `XERO_LIST_JOURNALS`

Retrieve journals from Xero. Journals show the accounting entries for all transactions. Omitting filters returns the full historical journal ledger and can produce very large responses — use If-Modified-Since and/or paymentsOnly to narrow scope. No date range filter parameter exists. Results are returned inside a Journals array field.

### List Manual Journals

**Slug:** `XERO_LIST_MANUAL_JOURNALS`

Retrieve manual journals from Xero. Manual journals are used for period-end adjustments and corrections.

### List Payments

**Slug:** `XERO_LIST_PAYMENTS`

Retrieve list of payments from Xero. Payments link invoices to bank transactions; invoices may have multiple partial/split payment records. Response Date fields use Xero's /Date(milliseconds)/ format requiring custom parsing.

### List Projects

**Slug:** `XERO_LIST_PROJECTS`

Retrieve projects from Xero. Projects track time and costs for client work.

### List Purchase Orders

**Slug:** `XERO_LIST_PURCHASE_ORDERS`

Retrieve list of purchase orders from Xero. Purchase orders track goods/services ordered from suppliers.

### List Tax Rates

**Slug:** `XERO_LIST_TAX_RATES`

Retrieve tax rates from Xero. Shows available tax codes and rates for the organization. Use returned tax codes as valid `TaxType` values in other tools — invalid values cause ValidationException errors.

### List Tracking Categories

**Slug:** `XERO_LIST_TRACKING_CATEGORIES`

Retrieve tracking categories from Xero. Tracking categories are used to segment data for reporting (e.g., departments, regions).

### Update Invoice

**Slug:** `XERO_POST_INVOICE_UPDATE`

Tool to update an existing invoice. Use when you need to modify the details of an invoice after it's been created.

### Update Contact

**Slug:** `XERO_UPDATE_CONTACT`

Update an existing contact in Xero. Only provided fields will be updated.

### Upload Attachment

**Slug:** `XERO_UPLOAD_ATTACHMENT`

Upload a file attachment to a Xero entity (invoice, contact, etc.). Supports PDF, images, and documents.
