Xero

Connect your AI agents to Xero.

Available Tools

list_accounts

List all chart of accounts. Filter by Type or Class using ‘where’ parameter. Returns account codes needed for invoice…

get_account

Get a single account by ID with full details including reporting codes.

create_account

Create a new account in the chart of accounts. Requires Name, Code (unique), and Type. Use list_accounts to check exi…

list_bank_transactions

List bank transactions with pagination (100 per page). Filter by type (RECEIVE/SPEND) using ‘where’ parameter.

get_bank_transaction

Get a single bank transaction by ID with full details including line items.

create_bank_transaction

Create a bank transaction. Requires Type (RECEIVE/SPEND), Contact, BankAccount, and LineItems. Use list_accounts to f…

update_bank_transaction

Update a bank transaction. Only AUTHORISED transactions can be updated. Use get_bank_transaction to check status.

list_contacts

List contacts with pagination (100 per page). Supports filtering via ‘where’ parameter. Use page_info.has_next_page t…

get_contact

Get a single contact by ID with full details including addresses and phone numbers.

create_contact

Create a new contact. Name is required. Use list_contacts to check for duplicates first.

update_contact

Update an existing contact. Only provided fields are updated. Use get_contact to see current values.

archive_contact

Archive a contact by setting its status to ARCHIVED. Archived contacts can be restored.

list_credit_notes

List credit notes with pagination (100 per page). ACCRECCREDIT=sales credits, ACCPAYCREDIT=purchase credits.

get_credit_note

Get a single credit note by ID with full details including line items and remaining credit.

create_credit_note

Create a credit note. Requires Type (ACCRECCREDIT/ACCPAYCREDIT), Contact, and LineItems. Use list_contacts for Contac…

update_credit_note

Update a credit note. Only DRAFT or SUBMITTED credit notes can be updated. Use get_credit_note to check status.

list_invoices

List invoices with pagination (100 per page). Filter by status or type. ACCREC=sales invoices, ACCPAY=bills.

get_invoice

Get a single invoice by ID with full details including line items, amounts, and payment status.

create_invoice

Create a new invoice. Requires Type (ACCREC/ACCPAY), Contact, and LineItems. Use list_contacts to find ContactIDs.

update_invoice

Update an existing invoice. Only DRAFT or SUBMITTED invoices can be fully updated. Use get_invoice to check status.

void_invoice

Void an invoice. Only AUTHORISED or SUBMITTED invoices can be voided. This cannot be undone.

email_invoice

Email an invoice to the contact. Invoice must be AUTHORISED before it can be emailed.

list_items

List all items (products/services). Returns item codes that can be used on invoices and purchase orders.

get_item

Get a single item by ID with full details including purchase and sales details.

create_item

Create a new item (product/service). Code is required and must be unique. Use list_items to check existing codes.

delete_item

Delete an item. This permanently removes the item. Use list_items to find item IDs.

list_manual_journals

List manual journals with pagination (100 per page). Filter by status using ‘where’ parameter.

get_manual_journal

Get a single manual journal by ID with full details including journal lines.

create_manual_journal

Create a manual journal. Requires Narration and JournalLines (min 2 lines, debits/credits must balance). Use list_acc…

update_manual_journal

Update a manual journal. Only DRAFT journals can be updated. Use get_manual_journal to check status.

get_organisation

Get the current Xero organisation details including name, currency, country, and financial year settings.

list_connections

List all connected Xero organisations (tenants). Use this to discover available tenant IDs.

list_payments

List payments with pagination. Supports filtering via ‘where’ parameter. Use page_info.has_next_page to check for mor…

get_payment

Get a single payment by ID with full details including related invoice and account info.

create_payment

Create a payment against an invoice or credit note. Requires Account (bank) and Amount. Use list_invoices and list_ac…

list_purchase_orders

List purchase orders with pagination (100 per page). Filter by status using ‘where’ parameter.

get_purchase_order

Get a single purchase order by ID with full details including line items and delivery info.

create_purchase_order

Create a purchase order. Requires Contact (supplier) and LineItems. Use list_contacts for supplier ContactIDs.

update_purchase_order

Update a purchase order. Only DRAFT or SUBMITTED orders can be updated. Use get_purchase_order to check status.

list_quotes

List quotes with pagination (100 per page). Filter by status using ‘where’ parameter.

get_quote

Get a single quote by ID with full details including line items and terms.

create_quote

Create a quote. Requires Contact and LineItems. Use list_contacts to find ContactIDs.

update_quote

Update a quote. Xero requires Contact, Date, and LineItems on every update. Use get_quote to get current values first.

list_tax_rates

List all tax rates configured in the organisation. Returns TaxType codes needed for invoices and transactions.

list_tracking_categories

List all tracking categories and their options. Used for cost center and department tracking on transactions.

list_currencies

List all currencies enabled in the organisation. Returns currency codes for multi-currency invoices.

list_branding_themes

List all branding themes. Returns theme IDs that can be applied to invoices, quotes, and purchase orders.

validate_credential

Validate Xero credentials by listing connected organisations.