Xero
Your Toolhouse AI Worker can connect to Xero using 41 specialized tools.
Auth Connection
This service requires an auth connection to use its tools. You can set this up in your Toolhouse dashboard under Auth Connections.
Tools (41)
Xero Create Bank Transaction
Xero Create Bank TransactionIntegration name: XERO_CREATE_BANK_TRANSACTION
Create a bank transaction in Xero. Use SPEND for payments out or RECEIVE for money received.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
Date
string
—
Transaction date in YYYY-MM-DD format.
Type
string
✅
—
Transaction type: SPEND (payment out) or RECEIVE (money in).
Status
string
—
Transaction status: AUTHORISED or DELETED.
ContactID
string
✅
—
Xero Contact ID for the transaction.
LineItems
array
✅
—
List of line items for the bank transaction.
Reference
string
—
Reference or transaction description.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
CurrencyCode
string
—
Currency code (e.g., USD, EUR).
BankAccountID
string
—
Bank account UUID identifier. Either bank_account_code or bank_account_id must be provided.
BankAccountCode
string
—
Short alphanumeric account code (e.g., '090', '091'), not the account name. Maximum 10 characters.
Xero Create Contact
Xero Create ContactIntegration name: XERO_CREATE_CONTACT
Create a new contact in Xero. Contacts can be customers, suppliers, or both.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
Name
string
✅
—
Full name of the contact or organization.
Website
string
—
Website URL of the contact.
LastName
string
—
Last name of the contact person.
FirstName
string
—
First name of the contact person.
TaxNumber
string
—
Tax number (VAT/ABN/GST number).
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
IsCustomer
boolean
—
Mark as customer when true.
IsSupplier
boolean
—
Mark as supplier when true.
EmailAddress
string
—
Email address of the contact.
phone_number
string
—
Primary phone number (will be added as DEFAULT phone type).
AccountNumber
string
—
Account reference number for the contact.
mobile_number
string
—
Mobile phone number (will be added as MOBILE phone type).
DefaultCurrency
string
—
Default currency code (e.g., USD, EUR).
BankAccountDetails
string
—
Bank account details for the contact.
Xero Create Invoice
Xero Create InvoiceIntegration name: XERO_CREATE_INVOICE
Create a new invoice in Xero. Supports both sales invoices (ACCREC) and bills (ACCPAY).
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
Date
string
—
Invoice date in YYYY-MM-DD format.
Type
string
✅
—
Invoice type: ACCREC (accounts receivable/sales) or ACCPAY (accounts payable/bills).
Status
string
—
Invoice status.
DueDate
string
—
Due date in YYYY-MM-DD format.
ContactID
string
—
Xero Contact ID (UUID). At least one of contact_id or contact_name must be provided.
LineItems
array
✅
—
List of line items for the invoice.
Reference
string
—
Reference or purchase order number.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant. In multi-org setups, pass the same tenant_id consistently across all Xero tool calls.
ContactName
string
—
Contact name. At least one of contact_id or contact_name must be provided.
CurrencyCode
string
—
Currency code (e.g., USD, EUR).
InvoiceNumber
string
—
Invoice number (auto-generated if not provided). WARNING: If this matches an existing invoice number, Xero will attempt to UPDATE that invoice instead of creating a new one. Omit this field to ensure a new invoice is created, or ensure the number is unique.
Xero Create Item
Xero Create ItemIntegration name: XERO_CREATE_ITEM
Create an inventory item in Xero. Items can be tracked for sales and/or purchases.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
Code
string
✅
—
Unique item code (SKU).
Name
string
✅
—
Item name/description.
IsSold
boolean
—
Item can be sold when true.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
IsPurchased
boolean
—
Item can be purchased when true.
SalesDetails.UnitPrice
number
—
Unit price for sales.
SalesDetails.AccountCode
string
—
Account code for sales.
PurchaseDetails.UnitPrice
number
—
Unit price for purchases.
PurchaseDetails.AccountCode
string
—
Account code for purchases.
Xero Create Manual Journal
Xero Create Manual JournalIntegration name: XERO_CREATE_MANUAL_JOURNAL
Create one or more manual journals (journal entries) in Xero with journal lines. Manual journals must balance (debits equal credits).
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
Url
string
"https://example.com/journal/12345"
URL link to a source document for reference, shown as 'Go to [appName]' in Xero
Date
string
✅
"2024-12-31"
Date journal was posted in YYYY-MM-DD format
Status
string
"DRAFT"
Manual journal status. DRAFT for unposted journals, POSTED to finalize. Defaults to DRAFT if not specified
Narration
string
✅
"Year-end adjustment for accrued expenses"
Description of journal being posted. This appears as the journal description in Xero
tenant_id
string
"a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d"
Xero tenant/organization ID. If not provided, uses the first connected tenant
JournalLines
array
✅
—
Array of journal line items. Manual journals must balance (sum of debits must equal sum of credits) or an error is returned
LineAmountTypes
string
"NoTax"
Line amount type indicating whether amounts are inclusive or exclusive of tax. Defaults to NoTax if not specified
idempotency_key
string
"KEY-12345-67890"
Idempotency key to prevent duplicate journal creation. Recommended for production use. This is sent as a header, not in the body
summarize_errors
boolean
true
If true, API will return summarized validation errors. If false, detailed errors are returned. Query parameter only
ShowOnCashBasisReports
boolean
true
Boolean display indicator; defaults to true if not specified
Xero Create Payment
Xero Create PaymentIntegration name: XERO_CREATE_PAYMENT
Create a payment in Xero to link an invoice with a bank account transaction.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
Date
string
—
Payment date in YYYY-MM-DD format.
Amount
number
✅
—
Payment amount.
AccountID
string
✅
—
Xero Account ID (bank account) for the payment.
InvoiceID
string
✅
—
Xero Invoice ID that this payment is for.
Reference
string
—
Payment reference or description.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
CurrencyRate
number
—
Exchange rate for foreign currency payments.
Xero Create Purchase Order
Xero Create Purchase OrderIntegration name: XERO_CREATE_PURCHASE_ORDER
Create a purchase order in Xero to order goods/services from suppliers.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
Date
string
—
Purchase order date in YYYY-MM-DD format.
Status
string
—
Purchase order status: DRAFT, SUBMITTED, AUTHORISED, BILLED.
ContactID
string
✅
—
Xero Contact ID for the purchase order.
LineItems
array
✅
—
List of line items for the purchase order.
Reference
string
—
Reference or purchase order number.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
DeliveryDate
string
—
Expected delivery date in YYYY-MM-DD format.
Xero Get Account
Xero Get AccountIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
tenant_id
string
—
Xero tenant/organization ID (UUID format). If not provided, uses the first connected tenant.
account_id
string
✅
—
Xero Account ID (UUID format, e.g., '562555f2-8cde-4ce9-8203-0363922537a4'). Get account IDs from XERO_LIST_ACCOUNTS action.
Xero Get Asset
Xero Get AssetIntegration name: XERO_GET_ASSET
Retrieve a specific asset by ID from Xero. Returns depreciation details and book value.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
asset_id
string
✅
—
Xero Asset ID to retrieve.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
Xero Get Balance Sheet Report
Xero Get Balance Sheet ReportIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
date
string
—
Balance sheet as of this date in YYYY-MM-DD format. Should align with the organisation's financial year settings; misaligned dates may produce unexpected figures.
periods
integer
—
Number of periods to compare.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant. In multi-org connections, omitting this returns the first tenant's data silently — always pass explicitly when multiple orgs are connected.
timeframe
string
—
Timeframe period: MONTH, QUARTER, or YEAR.
paymentsOnly
boolean
—
Show only cash transactions when true (cash basis).
standardLayout
boolean
—
Use standard layout when true.
trackingOptionID
string
—
Filter by tracking option ID.
Xero Get Budget
Xero Get BudgetIntegration name: XERO_GET_BUDGET
Retrieve a budget from Xero. Budgets track planned vs actual spending by account.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
DateTo
string
—
End date for budget data in YYYY-MM-DD format.
DateFrom
string
—
Start date for budget data in YYYY-MM-DD format.
budget_id
string
✅
—
Xero Budget ID to retrieve.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
Xero Get Connections
Xero Get ConnectionsIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called. No parameters required.
Xero Get Contacts
Xero Get ContactsIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
IDs
array
"uuid1,uuid2,uuid3"
Comma-separated list of ContactIDs to filter by.
page
integer
—
Page number for paginated results (requires pageSize). Iterate incrementing page until an empty result is returned to exhaust all records.
order
string
—
Sort by field, e.g. UpdatedDateUTC DESC.
where
string
—
OData-style filter for querying contacts. Optimized fields: Name, EmailAddress, AccountNumber, TaxNumber, ContactStatus, City, Country, IsCustomer, IsSupplier. Note: On high-volume accounts, some filters (e.g., IsCustomer, IsSupplier) may be rejected by Xero. If a filter fails on high-volume accounts, use searchTerm, page/pageSize pagination, or remove the where filter.
pageSize
integer
—
Number of contacts per page (requires page).
ContactID
string
"bd2270c3-8706-4c11-9cfb-000b551c3f51"
Xero ContactID. If provided, fetches a single contact at /Contacts/{ContactID}.
searchTerm
string
"peter"
Case-insensitive search across Name, FirstName, LastName, ContactNumber, CompanyNumber, EmailAddress.
summaryOnly
boolean
—
Return a lightweight summary-only response when true.
includeArchived
boolean
—
Include archived contacts when true.
If-Modified-Since
string
"2009-11-12T00:00:00"
UTC timestamp (YYYY-MM-DDThh:mm:ss) to set as the If-Modified-Since header; returns only contacts created or modified since this timestamp.
Xero Get Invoice
Xero Get InvoiceIntegration name: XERO_GET_INVOICE
Retrieve a specific invoice by ID from Xero. Returns full invoice details including line items and status.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
unitdp
integer
—
Number of decimal places for unit amounts (default 4).
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant. In multi-org setups, always pass explicitly to avoid querying the wrong organisation's data.
invoice_id
string
✅
—
Xero Invoice ID to retrieve. Must be the internal UUID (e.g. a1b2c3d4-...), not the human-readable InvoiceNumber (e.g. INV-0001); obtain the UUID via XERO_LIST_INVOICES first.
Xero Get Item
Xero Get ItemIntegration name: XERO_GET_ITEM
Retrieve a specific item by ID from Xero. Returns item code, name, pricing, and tax details.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
item_id
string
✅
—
Xero Item ID to retrieve.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
Xero Get Manual Journal
Xero Get Manual JournalIntegration name: XERO_GET_MANUAL_JOURNAL
Retrieve a specific manual journal by ID from Xero. Returns full details including journal lines.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
manual_journal_id
string
✅
—
Xero Manual Journal ID to retrieve.
Xero Get Organisation
Xero Get OrganisationIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant. In multi-tenant setups, omitting this defaults to the first tenant which may be unintended; use XERO_GET_CONNECTIONS to confirm the correct tenant_id.
Xero Get Profit Loss Report
Xero Get Profit Loss ReportIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
toDate
string
—
End date for the report in YYYY-MM-DD format. Date range between fromDate and toDate must not exceed 365 days.
periods
integer
—
Number of periods to compare (e.g., for month-on-month comparison).
fromDate
string
—
Start date for the report in YYYY-MM-DD format. Date range between fromDate and toDate must not exceed 365 days.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
timeframe
string
—
Timeframe period: MONTH, QUARTER, or YEAR.
paymentsOnly
boolean
—
Show only cash transactions when true (cash basis).
standardLayout
boolean
—
Use standard layout when true.
trackingOptionID
string
—
Filter by tracking option ID.
trackingOptionID2
string
—
Filter by second tracking option ID.
trackingCategoryID
string
—
Filter by tracking category ID.
trackingCategoryID2
string
—
Filter by second tracking category ID.
Xero Get Project
Xero Get ProjectIntegration name: XERO_GET_PROJECT
Retrieve a specific project by ID from Xero. Returns project details, deadlines, and status.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
project_id
string
✅
—
Xero Project ID to retrieve. Must be a valid GUID format (e.g., '550e8400-e29b-41d4-a716-446655440000'); job numbers or non-GUID strings will fail.
Xero Get Purchase Order
Xero Get Purchase OrderIntegration name: XERO_GET_PURCHASE_ORDER
Retrieve a specific purchase order by ID from Xero. Returns full details including line items and status.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
purchase_order_id
string
✅
—
Xero Purchase Order ID to retrieve.
Xero Get Quotes
Xero Get QuotesIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
page
integer
1
Page number for paginated results (1-based).
order
string
"ExpiryDate DESC"
Order by any element, e.g., ExpiryDate ASC.
DateTo
string
"2023-12-31"
Filter for quotes on or before this date (YYYY-MM-DD).
Status
string
"DRAFT"
Filter for quotes of a particular status.
DateFrom
string
"2023-01-01"
Filter for quotes on or after this date (YYYY-MM-DD).
ContactID
string
"bd2270c3-8706-4c11-9cfb-000b551c3f51"
Filter for quotes belonging to a particular contact by ContactID.
tenant_id
string
"213bd52c-ee3b-4ae7-8175-aa58c6720f28"
Xero Tenant ID. Optional - will auto-fetch from connections if not provided.
QuoteNumber
string
"QU-0001"
Filter by quote number.
ExpiryDateTo
string
"2023-12-31"
Filter for quotes expiring on or before this date (YYYY-MM-DD).
ExpiryDateFrom
string
"2023-01-01"
Filter for quotes expiring on or after this date (YYYY-MM-DD).
If-Modified-Since
string
"2023-01-02T00:00:00Z"
Only return quotes modified after this UTC timestamp in RFC3339 format.
Xero Get Trial Balance Report
Xero Get Trial Balance ReportIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
date
string
"2019-10-31"
The date for the Trial Balance report in YYYY-MM-DD format (e.g., 2018-03-31). If not specified, defaults to current date.
tenant_id
string
"YOUR_XERO_TENANT_ID"
Xero tenant/organization ID. If not provided, uses the first connected tenant. In multi-org connections, omitting this returns the first tenant's data silently — always pass explicitly when multiple orgs are connected.
paymentsOnly
boolean
true
Return cash only basis for the Trial Balance report when true (cash basis accounting).
Xero List Accounts
Xero List AccountsIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
order
string
—
Sort by field, e.g. Code ASC or Name DESC.
where
string
—
OData-style filter, e.g. Status=="ACTIVE" AND Type=="EXPENSE" Invalid syntax silently returns empty or misleading results rather than an explicit error. Status-based filters (e.g., Status=="ACTIVE") exclude archived accounts; omit to retrieve full historical chart.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant. Always specify when multiple organisations exist — omitting it defaults to the first tenant and may return another entity's data.
Xero List Assets
Xero List AssetsIntegration name: XERO_LIST_ASSETS
Retrieve fixed assets from Xero. Assets track depreciation and book value of capital equipment.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
page
integer
—
Page number for paginated results. Defaults to 1.
status
string
—
Required. Asset status filter. Valid values: DRAFT, REGISTERED, DISPOSED. Defaults to DRAFT.
orderBy
string
—
Sort field. Valid values: AssetType, AssetName, AssetNumber, PurchaseDate, PurchasePrice. For DISPOSED status, also allows: DisposalDate, DisposalPrice.
filterBy
string
—
Filter string to search assets. Matches against AssetName, AssetNumber, Description, and AssetTypeName fields.
pageSize
integer
—
Number of assets per page. Defaults to 10.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
sortDirection
string
—
Sort direction. Valid values: asc, desc.
Xero List Attachments
Xero List AttachmentsIntegration name: XERO_LIST_ATTACHMENTS
List all attachments for a specific entity in Xero (invoice, contact, etc.).
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
entity_id
string
✅
—
ID of the entity to list attachments for.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
entity_type
string
✅
—
Entity type: Invoices, Contacts, BankTransactions, CreditNotes, PurchaseOrders, etc.
Xero List Bank Transactions
Xero List Bank TransactionsIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
page
integer
—
Page number for paginated results. Returns max 100 items per page; no total count provided. Iterate by incrementing page until response returns zero results.
order
string
—
Sort by field, e.g. Date DESC or UpdatedDateUTC ASC. Default ordering is unreliable; always specify explicitly (e.g., Date DESC).
where
string
—
OData-style filter, e.g. Status=="AUTHORISED" AND Type=="SPEND" String values require double quotes; field names must be exact (e.g., BankAccount.AccountID, IsReconciled, Status, Type). Malformed expressions or wrong field names silently return empty results. Always filter by Status (e.g., Status=="AUTHORISED") to exclude DELETED transactions. Use IsReconciled boolean for reconciliation filtering, not Status alone.
unitdp
integer
—
Decimal places for unit amounts (default 4).
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant. In multi-org setups, always provide explicitly to avoid targeting the wrong organisation.
If-Modified-Since
string
—
UTC timestamp to return only bank transactions modified since this date.
Xero List Credit Notes
Xero List Credit NotesIntegration name: XERO_LIST_CREDIT_NOTES
Retrieve list of credit notes from Xero. Credit notes are issued to reduce amounts owed by customers.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
page
integer
—
Page number for paginated results.
order
string
—
Sort by field, e.g. Date DESC or CreditNoteNumber ASC.
where
string
—
OData-style filter, e.g. Status=="AUTHORISED"
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
If-Modified-Since
string
—
UTC timestamp to return only credit notes modified since this date.
Xero List Files
Xero List FilesIntegration name: XERO_LIST_FILES
Retrieve files from Xero Files. Lists documents stored in Xero's file management system.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
page
integer
—
Page number for paginated results.
sort
string
—
Sort field: Name, Size, CreatedDateUTC.
folderId
string
—
Filter files by folder ID.
pagesize
integer
—
Number of files per page (max 100).
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
Xero List Folders
Xero List FoldersIntegration name: XERO_LIST_FOLDERS
Retrieve folders from Xero Files. Lists document folders in Xero's file management system.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
sort
string
—
Sort field: Name, CreatedDateUTC.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
Xero List Invoices
Xero List InvoicesIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
page
integer
—
Page number for paginated results. Returns up to 100 invoices per page; increment page and check pagination.pageCount in the response to retrieve all records.
order
string
—
Sort by field, e.g. Date DESC or InvoiceNumber ASC.
where
string
—
OData-style filter, e.g. Status=="AUTHORISED" AND Total>100 Malformed expressions silently return empty results rather than an error.
Statuses
string
—
Comma-separated list of invoice statuses to filter by (e.g., DRAFT, SUBMITTED, AUTHORISED, PAID).
tenantId
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant. When multiple organisations are connected, always pass this explicitly to avoid querying the wrong organisation's data.
ContactIDs
string
—
Comma-separated list of Contact IDs to filter invoices by contact.
InvoiceIDs
string
—
Comma-separated list of Invoice IDs to filter by.
createdByMyApp
boolean
—
Filter to invoices created by your app when true.
includeArchived
boolean
—
Include archived invoices when true.
If-Modified-Since
string
—
UTC timestamp to return only invoices modified since this date.
Xero List Items
Xero List ItemsIntegration name: XERO_LIST_ITEMS
Retrieve items (inventory/products) from Xero. Items can be tracked for sales and/or purchases.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
order
string
—
Sort by field, e.g. Code ASC or Name DESC.
where
string
—
OData-style filter, e.g. IsSold==true AND IsPurchased==true
unitdp
integer
—
Number of decimal places for unit amounts (default 4).
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
Xero List Journals
Xero List JournalsIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
offset
integer
—
Offset for pagination. Increment by 100 (the page size) across successive calls to retrieve all journals. Deduplicate results by JournalNumber to avoid gaps or duplicates.
tenantId
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
paymentsOnly
boolean
—
Filter to payment journals only when true.
If-Modified-Since
string
—
UTC timestamp to return only journals modified since this date.
Xero List Manual Journals
Xero List Manual JournalsIntegration name: XERO_LIST_MANUAL_JOURNALS
Retrieve manual journals from Xero. Manual journals are used for period-end adjustments and corrections.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
page
integer
—
Page number for paginated results.
order
string
—
Sort by field, e.g. Date DESC.
where
string
—
OData-style filter, e.g. Status=="POSTED"
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
If-Modified-Since
string
—
UTC timestamp to return only manual journals modified since this date.
Xero List Payments
Xero List PaymentsIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
page
integer
—
Page number for paginated results. Returns max 100 items per page; iterate incrementing page until response returns empty array. Xero enforces ~60 requests/minute per org (HTTP 429 if exceeded).
order
string
—
Sort by field, e.g. Date DESC or Amount ASC.
where
string
—
OData-style filter, e.g. Status=="AUTHORISED" Results include both ACCREC and ACCPAY types; filter by Type=="ACCREC" or Type=="ACCPAY" to isolate sales or bill payments. Avoid strict Reference matching as format variations may miss valid records.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant. Wrong tenant_id silently returns empty results; verify with XERO_GET_CONNECTIONS before large pulls.
If-Modified-Since
string
—
UTC timestamp to return only payments modified since this date.
Xero List Projects
Xero List ProjectsIntegration name: XERO_LIST_PROJECTS
Retrieve projects from Xero. Projects track time and costs for client work.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
page
integer
—
Page number for paginated results.
states
string
—
Comma-separated project states: INPROGRESS, CLOSED.
pageSize
integer
—
Number of projects per page (1-500, default 50).
contactID
string
—
Filter projects by contact ID.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
projectIds
string
—
Comma-separated list of project IDs to filter by.
Xero List Purchase Orders
Xero List Purchase OrdersIntegration name: XERO_LIST_PURCHASE_ORDERS
Retrieve list of purchase orders from Xero. Purchase orders track goods/services ordered from suppliers.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
page
integer
—
Page number for paginated results.
order
string
—
Sort by field, e.g. Date DESC or PurchaseOrderNumber ASC.
DateTo
string
—
Filter by date to (YYYY-MM-DD).
Status
string
—
Filter by status: DRAFT, SUBMITTED, AUTHORISED, BILLED, DELETED.
DateFrom
string
—
Filter by date from (YYYY-MM-DD).
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
If-Modified-Since
string
—
UTC timestamp to return only purchase orders modified since this date.
Xero List Tax Rates
Xero List Tax RatesIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
order
string
—
Sort by field, e.g. Name ASC.
where
string
—
OData-style filter, e.g. Status=="ACTIVE"
TaxType
string
—
Filter by specific tax type.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant. In multi-org connections, always specify to avoid retrieving tax config from the wrong organisation.
Xero List Tracking Categories
Xero List Tracking CategoriesIntegration name: XERO_LIST_TRACKING_CATEGORIES
Retrieve tracking categories from Xero. Tracking categories are used to segment data for reporting (e.g., departments, regions).
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
order
string
—
Sort by field, e.g. Name ASC.
where
string
—
OData-style filter, e.g. Status=="ACTIVE"
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
includeArchived
boolean
—
Include archived tracking categories when true.
Xero Post Invoice Update
Xero Post Invoice UpdateIntegration name: 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.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
unitdp
integer
—
Number of decimal places for unit amounts.
Invoices
array
✅
—
List containing invoice update definitions (one item).
InvoiceID
string
—
Unique identifier (UUID) of the invoice.
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
InvoiceNumber
string
—
Invoice number identifier.
Xero Update Contact
Xero Update ContactIntegration name: XERO_UPDATE_CONTACT
Update an existing contact in Xero. Only provided fields will be updated.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
Name
string
—
Full name of the contact or organization.
LastName
string
—
Last name of the contact person.
ContactID
string
✅
—
Xero Contact ID to update.
FirstName
string
—
First name of the contact person.
TaxNumber
string
—
Tax number (VAT/ABN/GST number).
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
EmailAddress
string
—
Email address of the contact.
phone_number
string
—
Primary phone number (will update DEFAULT phone type).
AccountNumber
string
—
Account reference number for the contact.
mobile_number
string
—
Mobile phone number (will update MOBILE phone type).
DefaultCurrency
string
—
Default currency code (e.g., USD, EUR).
BankAccountDetails
string
—
Bank account details for the contact.
Xero Upload Attachment
Xero Upload AttachmentIntegration name: XERO_UPLOAD_ATTACHMENT
Upload a file attachment to a Xero entity (invoice, contact, etc.). Supports PDF, images, and documents.
Parameters
Your Toolhouse AI worker will automatically pass these parameters as input when the tool is called.
filename
string
✅
—
Filename for the attachment as it will appear in Xero (e.g., 'invoice-receipt.pdf'). Must include the file extension.
entity_id
string
✅
—
UUID of the entity to attach the file to (e.g., InvoiceID, ContactID, BankTransactionID).
tenant_id
string
—
Xero tenant/organization ID. If not provided, uses the first connected tenant.
entity_type
string
✅
—
Entity type to attach to. Valid values: Invoices, Contacts, BankTransactions, CreditNotes, Accounts, ManualJournals, PurchaseOrders, Quotes, Receipts, RepeatingInvoices.
file_to_upload
object
✅
—
File to upload as attachment.
include_online
boolean
—
Set to true to include the attachment when sending online invoices to customers. Only applicable when entity_type is 'Invoices'.