Xero
Xero accounting connector to manage contacts, invoices, payments, bank and manual journal transactions, budgets, attachments, financial reports and Xero Projects.
Tools
Ask an agent for what you need in plain language — it picks the right tool itself. You can also limit which of these an agent may use, and require your approval before any of them runs.
Get the connected Xero organisation: name, base currency, country, timezone, financial year end, tax basis, default tax rates and lock dates.
Takes no parameters.
Search Xero contacts (customers and suppliers) by name, email or number and return contact summaries.
| Parameter | Type | Description |
|---|---|---|
| searchTerm | string | Case-insensitive match on name, first/last name, email address, contact number or account number. |
| isCustomer | boolean | Only customers (contacts with sales invoices). |
| isSupplier | boolean | Only suppliers (contacts with bills). |
| includeArchived | boolean | Include archived contacts; defaults to false. |
| page | integer | Page number (1-based); defaults to 1. |
| pageSize | integer | Items per page (1-100); defaults to 50. |
| where | string | Advanced: raw Xero "where" filter combined (AND) with the other filters, e.g. 'AmountDue>0'. |
| order | string | Advanced: Xero order clause, e.g. "Date DESC". |
Get a Xero contact with addresses, phones, contact persons, default accounts, payment terms and outstanding/overdue balances.
| Parameter | Type | Description |
|---|---|---|
| contactIdrequired | string | Contact ID (GUID) from searchContacts. |
Create a new Xero contact (customer or supplier). Returns the created contact.
| Parameter | Type | Description |
|---|---|---|
| namerequired | string | Contact name (must be unique in the organisation). |
| firstName | string | First name of the primary person. |
| lastName | string | Last name of the primary person. |
| emailAddress | string | Email address (used when emailing invoices). |
| phone | string | Default phone number. |
| companyNumber | string | Company registration number. |
| taxNumber | string | Tax number (VAT/GST/ABN). |
| accountNumber | string | Your internal account number for this contact. |
| defaultCurrency | string | ISO 4217 currency code, e.g. "USD". |
| postalAddress | object | Postal address (shown on invoices). |
| postalAddress.line1 | string | Address line 1. |
| postalAddress.line2 | string | Address line 2. |
| postalAddress.city | string | City. |
| postalAddress.region | string | Region or state. |
| postalAddress.postalCode | string | Postal code. |
| postalAddress.country | string | Country. |
| streetAddress | object | Physical street address. |
| streetAddress.line1 | string | Address line 1. |
| streetAddress.line2 | string | Address line 2. |
| streetAddress.city | string | City. |
| streetAddress.region | string | Region or state. |
| streetAddress.postalCode | string | Postal code. |
| streetAddress.country | string | Country. |
Update fields of an existing Xero contact; omitted fields are left unchanged. Returns the updated contact.
| Parameter | Type | Description |
|---|---|---|
| contactIdrequired | string | Contact ID (GUID) of the contact to update. |
| name | string | New contact name. |
| firstName | string | First name of the primary person. |
| lastName | string | Last name of the primary person. |
| emailAddress | string | Email address (used when emailing invoices). |
| phone | string | Default phone number. |
| companyNumber | string | Company registration number. |
| taxNumber | string | Tax number (VAT/GST/ABN). |
| accountNumber | string | Your internal account number for this contact. |
| defaultCurrency | string | ISO 4217 currency code, e.g. "USD". |
| postalAddress | object | Postal address (shown on invoices). |
| postalAddress.line1 | string | Address line 1. |
| postalAddress.line2 | string | Address line 2. |
| postalAddress.city | string | City. |
| postalAddress.region | string | Region or state. |
| postalAddress.postalCode | string | Postal code. |
| postalAddress.country | string | Country. |
| streetAddress | object | Physical street address. |
| streetAddress.line1 | string | Address line 1. |
| streetAddress.line2 | string | Address line 2. |
| streetAddress.city | string | City. |
| streetAddress.region | string | Region or state. |
| streetAddress.postalCode | string | Postal code. |
| streetAddress.country | string | Country. |
| contactStatus | "ACTIVE" | "ARCHIVED" | Archive (ARCHIVED) or restore (ACTIVE) the contact. |
List Xero sales invoices or bills with optional type, status, contact, date and amount-due filters (newest first). Returns summaries without line items; use getInvoice for full details.
| Parameter | Type | Description |
|---|---|---|
| type | "ACCREC" | "ACCPAY" | ACCREC = sales invoices (accounts receivable); ACCPAY = bills (accounts payable). |
| statuses | "DRAFT" | "SUBMITTED" | "AUTHORISED" | "PAID" | "VOIDED" | "DELETED"[] | Restrict to these statuses. |
| contactId | string | Only invoices of this contact (GUID). |
| invoiceNumbers | string[] | Only these invoice numbers. |
| fromDate | string | Only invoices dated on or after this date (YYYY-MM-DD). |
| toDate | string | Only invoices dated on or before this date (YYYY-MM-DD). |
| dueFromDate | string | Only invoices due on or after this date (YYYY-MM-DD). |
| dueToDate | string | Only invoices due on or before this date (YYYY-MM-DD). |
| outstandingOnly | boolean | Only invoices with an amount still due. |
| searchTerm | string | Case-insensitive match on invoice number, reference or contact name. |
| page | integer | Page number (1-based); defaults to 1. |
| pageSize | integer | Items per page (1-100); defaults to 50. |
| where | string | Advanced: raw Xero "where" filter combined (AND) with the other filters, e.g. 'AmountDue>0'. |
| order | string | Advanced: Xero order clause, e.g. "Date DESC". |
Get a Xero invoice or bill with its line items, totals, amounts due and payments.
| Parameter | Type | Description |
|---|---|---|
| invoiceIdrequired | string | Invoice ID (GUID) or invoice number (e.g. "INV-0001"). |
Create a Xero sales invoice or bill for a contact with one or more line items. Use listAccounts, listItems and listTaxRates for valid account codes, item codes and tax types.
| Parameter | Type | Description |
|---|---|---|
| type | "ACCREC" | "ACCPAY" | ACCREC = sales invoice (default); ACCPAY = bill from a supplier. |
| contactIdrequired | string | Contact ID (GUID) of the customer or supplier. |
| lineItemsrequired | object[] | Invoice lines (at least one). |
| lineItems[].descriptionrequired | string | Line description. |
| lineItems[].quantityrequired | number | Quantity (use 1 for a flat amount). |
| lineItems[].unitAmountrequired | number | Unit price; negative for credits. |
| lineItems[].accountCode | string | Account code from listAccounts (required unless itemCode supplies a default account). |
| lineItems[].itemCode | string | Item code from listItems. |
| lineItems[].taxType | string | Tax type from listTaxRates (e.g. "OUTPUT2"); defaults to the account's tax type. |
| lineItems[].discountRate | number | Discount percentage (0-100). |
| date | string | Invoice date (YYYY-MM-DD); defaults to today. |
| dueDate | string | Due date (YYYY-MM-DD); defaults to the contact's or organisation's payment terms. |
| reference | string | Free-text reference (e.g. a purchase order number). |
| invoiceNumber | string | Custom invoice number; Xero assigns the next number in sequence when omitted. |
| status | "DRAFT" | "SUBMITTED" | "AUTHORISED" | DRAFT (default), SUBMITTED (awaiting approval) or AUTHORISED (approved, awaiting payment). |
| lineAmountTypes | "Exclusive" | "Inclusive" | "NoTax" | Whether line amounts exclude tax (default), include tax, or have no tax. |
| currencyCode | string | ISO 4217 currency code; defaults to the base currency. |
Update a Xero invoice or bill: change its status (approve, void, delete), dates, reference, number or line items. Omitted fields are left unchanged.
| Parameter | Type | Description |
|---|---|---|
| invoiceIdrequired | string | Invoice ID (GUID) of the invoice to update. |
| status | "DRAFT" | "SUBMITTED" | "AUTHORISED" | "PAID" | "VOIDED" | "DELETED" | New status. Allowed transitions: DRAFT → SUBMITTED → AUTHORISED; DRAFT/SUBMITTED → DELETED; AUTHORISED (unpaid) → VOIDED. |
| date | string | New invoice date (YYYY-MM-DD). |
| dueDate | string | New due date (YYYY-MM-DD). |
| reference | string | New reference. |
| invoiceNumber | string | New invoice number. |
| lineItems | object[] | Replacement line items (all existing lines are replaced). Only for DRAFT/SUBMITTED invoices. |
| lineItems[].descriptionrequired | string | Line description. |
| lineItems[].quantityrequired | number | Quantity (use 1 for a flat amount). |
| lineItems[].unitAmountrequired | number | Unit price; negative for credits. |
| lineItems[].accountCode | string | Account code from listAccounts (required unless itemCode supplies a default account). |
| lineItems[].itemCode | string | Item code from listItems. |
| lineItems[].taxType | string | Tax type from listTaxRates (e.g. "OUTPUT2"); defaults to the account's tax type. |
| lineItems[].discountRate | number | Discount percentage (0-100). |
| lineAmountTypes | "Exclusive" | "Inclusive" | "NoTax" | Whether line amounts exclude/include tax. |
Email an AUTHORISED Xero sales invoice to its contact using the organisation's invoice email template. The contact must have an email address.
| Parameter | Type | Description |
|---|---|---|
| invoiceIdrequired | string | Invoice ID (GUID) of the sales invoice to email. |
List payments recorded in Xero against invoices, bills and credit notes, with optional invoice, type, status and date filters (newest first).
| Parameter | Type | Description |
|---|---|---|
| invoiceId | string | Only payments applied to this invoice (GUID). |
| status | "AUTHORISED" | "DELETED" | Restrict to this status. |
| paymentType | "ACCRECPAYMENT" | "ACCPAYPAYMENT" | "ARCREDITPAYMENT" | "APCREDITPAYMENT" | "AROVERPAYMENTPAYMENT" | "ARPREPAYMENTPAYMENT" | "APPREPAYMENTPAYMENT" | "APOVERPAYMENTPAYMENT" | Restrict to a payment type (ACCRECPAYMENT = customer payment, ACCPAYPAYMENT = bill payment). |
| fromDate | string | Only payments dated on or after this date (YYYY-MM-DD). |
| toDate | string | Only payments dated on or before this date (YYYY-MM-DD). |
| page | integer | Page number (1-based); defaults to 1. |
| pageSize | integer | Items per page (1-100); defaults to 50. |
| where | string | Advanced: raw Xero "where" filter combined (AND) with the other filters, e.g. 'AmountDue>0'. |
| order | string | Advanced: Xero order clause, e.g. "Date DESC". |
Record a payment against an AUTHORISED Xero invoice or bill from a bank account (or an account with "payments enabled"). Returns the created payment.
| Parameter | Type | Description |
|---|---|---|
| invoiceIdrequired | string | Invoice ID (GUID) of the AUTHORISED invoice or bill being paid. |
| accountId | string | Account ID (GUID) of the bank account the payment went through (from listAccounts). |
| accountCode | string | Alternative to accountId: the account code. |
| amountrequired | number | Amount paid, in the invoice currency. |
| date | string | Payment date (YYYY-MM-DD); defaults to today. |
| reference | string | Payment reference. |
List spend and receive money transactions of the organisation's bank accounts, with optional account, type, contact, reconciliation and date filters (newest first).
| Parameter | Type | Description |
|---|---|---|
| bankAccountId | string | Only transactions of this bank account (account GUID from listAccounts). |
| type | "RECEIVE" | "RECEIVE-OVERPAYMENT" | "RECEIVE-PREPAYMENT" | "SPEND" | "SPEND-OVERPAYMENT" | "SPEND-PREPAYMENT" | "RECEIVE-TRANSFER" | "SPEND-TRANSFER" | Restrict to a transaction type (SPEND, RECEIVE, ...). |
| status | "AUTHORISED" | "DELETED" | Restrict to this status. |
| contactId | string | Only transactions with this contact (GUID). |
| isReconciled | boolean | Only reconciled (true) or unreconciled (false) transactions. |
| fromDate | string | Only transactions dated on or after this date (YYYY-MM-DD). |
| toDate | string | Only transactions dated on or before this date (YYYY-MM-DD). |
| page | integer | Page number (1-based); defaults to 1. |
| pageSize | integer | Items per page (1-100); defaults to 50. |
| where | string | Advanced: raw Xero "where" filter combined (AND) with the other filters, e.g. 'AmountDue>0'. |
| order | string | Advanced: Xero order clause, e.g. "Date DESC". |
Get a Xero spend or receive money transaction with its line items, totals and bank account.
| Parameter | Type | Description |
|---|---|---|
| bankTransactionIdrequired | string | Bank transaction ID (GUID). |
Record a spend or receive money transaction against a Xero bank account. Use listAccounts for the bank account and line account codes. Returns the created transaction.
| Parameter | Type | Description |
|---|---|---|
| typerequired | "SPEND" | "RECEIVE" | SPEND for money paid out of the bank account, RECEIVE for money paid in. |
| bankAccountId | string | Bank account GUID from listAccounts; required unless bankAccountCode is given. |
| bankAccountCode | string | Bank account code, as an alternative to bankAccountId. |
| contactIdrequired | string | Contact ID (GUID) the money was paid to or received from. |
| lineItemsrequired | object[] | Transaction lines (at least one). |
| lineItems[].descriptionrequired | string | Line description. |
| lineItems[].quantityrequired | number | Quantity (use 1 for a flat amount). |
| lineItems[].unitAmountrequired | number | Unit price; negative for credits. |
| lineItems[].accountCode | string | Account code from listAccounts (required unless itemCode supplies a default account). |
| lineItems[].itemCode | string | Item code from listItems. |
| lineItems[].taxType | string | Tax type from listTaxRates (e.g. "OUTPUT2"); defaults to the account's tax type. |
| lineItems[].discountRate | number | Discount percentage (0-100). |
| date | string | Transaction date (YYYY-MM-DD); defaults to today. |
| reference | string | Free-text reference shown on the bank statement line. |
| status | "AUTHORISED" | "DELETED" | AUTHORISED (default) or DELETED to void the transaction. |
| lineAmountTypes | "Exclusive" | "Inclusive" | "NoTax" | Whether line amounts exclude tax (default), include tax, or have no tax. |
| currencyCode | string | ISO 4217 currency code; defaults to the base currency. |
Update a Xero spend or receive money transaction: change its date, reference, contact or lines, or set status DELETED to void it. Omitted fields are left unchanged. Reconciled transactions cannot have their amounts changed.
| Parameter | Type | Description |
|---|---|---|
| bankTransactionIdrequired | string | Bank transaction ID (GUID) to update. |
| contactId | string | New contact ID (GUID). |
| lineItems | object[] | Replacement transaction lines; replaces every existing line. |
| lineItems[].descriptionrequired | string | Line description. |
| lineItems[].quantityrequired | number | Quantity (use 1 for a flat amount). |
| lineItems[].unitAmountrequired | number | Unit price; negative for credits. |
| lineItems[].accountCode | string | Account code from listAccounts (required unless itemCode supplies a default account). |
| lineItems[].itemCode | string | Item code from listItems. |
| lineItems[].taxType | string | Tax type from listTaxRates (e.g. "OUTPUT2"); defaults to the account's tax type. |
| lineItems[].discountRate | number | Discount percentage (0-100). |
| date | string | Transaction date (YYYY-MM-DD); defaults to today. |
| reference | string | Free-text reference shown on the bank statement line. |
| status | "AUTHORISED" | "DELETED" | AUTHORISED (default) or DELETED to void the transaction. |
| lineAmountTypes | "Exclusive" | "Inclusive" | "NoTax" | Whether line amounts exclude tax (default), include tax, or have no tax. |
| currencyCode | string | ISO 4217 currency code; defaults to the base currency. |
List money transfers between the organisation's own bank accounts, with optional date filters (newest first).
| Parameter | Type | Description |
|---|---|---|
| fromDate | string | Only transfers dated on or after this date (YYYY-MM-DD). |
| toDate | string | Only transfers dated on or before this date (YYYY-MM-DD). |
| where | string | Advanced: raw Xero "where" filter combined (AND) with the date filters. |
| order | string | Advanced: Xero order clause, e.g. "Date DESC". |
Transfer money between two of the organisation's own Xero bank accounts. Returns the created transfer.
| Parameter | Type | Description |
|---|---|---|
| fromBankAccountIdrequired | string | Bank account GUID the money leaves (listAccounts). |
| toBankAccountIdrequired | string | Bank account GUID the money arrives in (listAccounts). |
| amountrequired | number | Amount to transfer, in the source account's currency. |
| date | string | Transfer date (YYYY-MM-DD); defaults to today. |
| reference | string | Free-text reference for the transfer. |
List Xero manual journals with optional status and date filters (newest first). Returns summaries without journal lines; use getManualJournal for the lines.
| Parameter | Type | Description |
|---|---|---|
| status | "DRAFT" | "POSTED" | "DELETED" | "VOIDED" | "ARCHIVED" | Restrict to this status. |
| fromDate | string | Only journals dated on or after this date (YYYY-MM-DD). |
| toDate | string | Only journals dated on or before this date (YYYY-MM-DD). |
| page | integer | Page number (1-based); defaults to 1. |
| pageSize | integer | Items per page (1-100); defaults to 50. |
| where | string | Advanced: raw Xero "where" filter combined (AND) with the other filters, e.g. 'AmountDue>0'. |
| order | string | Advanced: Xero order clause, e.g. "Date DESC". |
Get a Xero manual journal with its debit and credit lines.
| Parameter | Type | Description |
|---|---|---|
| manualJournalIdrequired | string | Manual journal ID (GUID). |
Create a Xero manual journal from balanced debit and credit lines. Use listAccounts for valid account codes and listTaxRates for tax types. Returns the created journal.
| Parameter | Type | Description |
|---|---|---|
| narrationrequired | string | Description of the journal, shown on reports. |
| journalLinesrequired | object[] | Debit and credit lines; the signed amounts must sum to zero. |
| journalLines[].lineAmountrequired | number | Signed amount: positive debits the account, negative credits it. Lines must sum to zero. |
| journalLines[].accountCoderequired | string | Account code from listAccounts. |
| journalLines[].description | string | Line description. |
| journalLines[].taxType | string | Tax type from listTaxRates (e.g. "NONE"); defaults to the account's tax type. |
| date | string | Journal date (YYYY-MM-DD); defaults to today. |
| status | "DRAFT" | "POSTED" | DRAFT (default) or POSTED (recorded in the general ledger). |
| lineAmountTypes | "Exclusive" | "Inclusive" | "NoTax" | Whether line amounts exclude tax (default), include tax, or have no tax. |
| showOnCashBasisReports | boolean | Include this journal in cash-basis reports. |
Update a Xero manual journal: post a draft, void it, or change its narration, date or lines. Omitted fields are left unchanged. Only DRAFT journals can have their lines changed.
| Parameter | Type | Description |
|---|---|---|
| manualJournalIdrequired | string | Manual journal ID (GUID) to update. |
| narration | string | New description of the journal. |
| journalLines | object[] | Replacement debit and credit lines; the signed amounts must sum to zero. |
| journalLines[].lineAmountrequired | number | Signed amount: positive debits the account, negative credits it. Lines must sum to zero. |
| journalLines[].accountCoderequired | string | Account code from listAccounts. |
| journalLines[].description | string | Line description. |
| journalLines[].taxType | string | Tax type from listTaxRates (e.g. "NONE"); defaults to the account's tax type. |
| date | string | Journal date (YYYY-MM-DD); defaults to today. |
| status | "DRAFT" | "POSTED" | "VOIDED" | "DELETED" | DRAFT, POSTED (record in the general ledger), VOIDED or DELETED. |
| lineAmountTypes | "Exclusive" | "Inclusive" | "NoTax" | Whether line amounts exclude tax (default), include tax, or have no tax. |
| showOnCashBasisReports | boolean | Include this journal in cash-basis reports. |
List the organisation's chart of accounts (codes, names, types, classes, tax types and bank accounts). Use it to find account codes for invoice lines and bank accounts for payments.
| Parameter | Type | Description |
|---|---|---|
| type | string | Restrict to an account type, e.g. BANK, REVENUE, SALES, EXPENSE, DIRECTCOSTS, OVERHEADS, CURRENT, CURRLIAB, FIXED, EQUITY. |
| class | "ASSET" | "EQUITY" | "EXPENSE" | "LIABILITY" | "REVENUE" | Restrict to an account class. |
| status | "ACTIVE" | "ARCHIVED" | Restrict to this status; defaults to ACTIVE. |
| enablePaymentsToAccount | boolean | Only accounts that can receive payments (bank accounts and payment-enabled accounts). |
| where | string | Advanced: raw Xero "where" filter combined (AND) with the other filters. |
| order | string | Advanced: Xero order clause; defaults to "Code". |
List the organisation's products and services (item codes, prices, default accounts and tax types) for use on invoice lines.
| Parameter | Type | Description |
|---|---|---|
| code | string | Only the item with this code. |
| isSold | boolean | Only items that are sold. |
| isPurchased | boolean | Only items that are purchased. |
| where | string | Advanced: raw Xero "where" filter combined (AND) with the other filters. |
| order | string | Advanced: Xero order clause; defaults to "Code". |
List the organisation's tax rates (name, tax type code, rate and where each applies) for use on invoice lines.
| Parameter | Type | Description |
|---|---|---|
| status | "ACTIVE" | "ARCHIVED" | "DELETED" | Restrict to this status; defaults to ACTIVE. |
| where | string | Advanced: raw Xero "where" filter combined (AND) with the other filters. |
| order | string | Advanced: Xero order clause; defaults to "Name". |
List the organisation's budgets (overall and tracking-category budgets). Returns summaries without budget lines; use getBudget for the budgeted amounts.
| Parameter | Type | Description |
|---|---|---|
| budgetIds | string[] | Restrict to these budget IDs (GUIDs). |
Get a Xero budget with its budgeted amounts per account and period. Compare it against getProfitAndLossReport to report on budget versus actual.
| Parameter | Type | Description |
|---|---|---|
| budgetIdrequired | string | Budget ID (GUID) from listBudgets. |
| fromDate | string | Only budget periods on or after this date (YYYY-MM-DD). |
| toDate | string | Only budget periods on or before this date (YYYY-MM-DD). |
List the files attached to a Xero record (invoice, bill, credit note, bank transaction, contact, manual journal and so on). Use downloadAttachment to fetch one.
| Parameter | Type | Description |
|---|---|---|
| entityTyperequired | "invoice" | "creditNote" | "purchaseOrder" | "quote" | "repeatingInvoice" | "bankTransaction" | "bankTransfer" | "manualJournal" | "receipt" | "contact" | "account" | Which kind of record the attachments belong to. |
| entityIdrequired | string | ID (GUID) of that record. |
Download a file attached to a Xero record into agent file storage.
| Parameter | Type | Description |
|---|---|---|
| entityTyperequired | "invoice" | "creditNote" | "purchaseOrder" | "quote" | "repeatingInvoice" | "bankTransaction" | "bankTransfer" | "manualJournal" | "receipt" | "contact" | "account" | Which kind of record the attachment belongs to. |
| entityIdrequired | string | ID (GUID) of that record. |
| attachmentIdrequired | string | Attachment ID (GUID) from listAttachments. |
| destinationPath | string | Destination path in agent storage (e.g. "/xero/receipt.pdf"). Defaults to "/xero/<file name>". |
Attach a file from agent storage to a Xero record. Returns the created attachment.
| Parameter | Type | Description |
|---|---|---|
| entityTyperequired | "invoice" | "creditNote" | "purchaseOrder" | "quote" | "repeatingInvoice" | "bankTransaction" | "bankTransfer" | "manualJournal" | "receipt" | "contact" | "account" | Which kind of record to attach the file to. |
| entityIdrequired | string | ID (GUID) of that record. |
| filePathrequired | string | Absolute path to the file in agent storage (e.g. "/xero/receipt.pdf"). |
| fileName | string | Name for the file in Xero. Defaults to the source file name. |
| includeOnline | boolean | Show the attachment to the contact on the online invoice (sales invoices only). |
Get the Profit and Loss (income statement) report for a period: revenue, expenses and net profit by account, optionally with comparison periods.
| Parameter | Type | Description |
|---|---|---|
| fromDate | string | Start of the period (YYYY-MM-DD); defaults to the current month. |
| toDate | string | End of the period (YYYY-MM-DD); defaults to today. |
| periods | integer | Number of comparison periods to include (1-12), one column each. |
| timeframe | "MONTH" | "QUARTER" | "YEAR" | Length of each comparison period. |
| standardLayout | boolean | Use the standard layout instead of a custom report layout; defaults to true. |
| paymentsOnly | boolean | Cash basis: only include invoices that have been paid. |
Get the Balance Sheet report as at a date: assets, liabilities and equity by account, optionally with comparison periods.
| Parameter | Type | Description |
|---|---|---|
| date | string | Balance date (YYYY-MM-DD); defaults to today. |
| periods | integer | Number of comparison periods to include (1-12), one column each. |
| timeframe | "MONTH" | "QUARTER" | "YEAR" | Length of each comparison period. |
| standardLayout | boolean | Use the standard layout instead of a custom report layout; defaults to true. |
| paymentsOnly | boolean | Cash basis: only include invoices that have been paid. |
Get the Trial Balance report as at a date: every account with its year-to-date and period debit and credit movements.
| Parameter | Type | Description |
|---|---|---|
| date | string | Balance date (YYYY-MM-DD); defaults to today. |
| paymentsOnly | boolean | Cash basis: only include invoices that have been paid. |
Get the aged receivables or aged payables report for one contact: outstanding invoices by age bracket with totals.
| Parameter | Type | Description |
|---|---|---|
| kindrequired | "receivables" | "payables" | receivables = what the contact owes you (aged receivables); payables = what you owe them. |
| contactIdrequired | string | Contact ID (GUID) the report is for. |
| date | string | Report date (YYYY-MM-DD); defaults to today. |
| fromDate | string | Only include invoices dated on or after this date (YYYY-MM-DD). |
| toDate | string | Only include invoices dated on or before this date (YYYY-MM-DD). |
Get the Bank Summary report for a period: opening balance, money in, money out and closing balance for each bank account.
| Parameter | Type | Description |
|---|---|---|
| fromDate | string | Start of the period (YYYY-MM-DD); defaults to the month start. |
| toDate | string | End of the period (YYYY-MM-DD); defaults to today. |
Get the Budget Summary report: budgeted amounts per account across a number of periods.
| Parameter | Type | Description |
|---|---|---|
| date | string | Start date of the first period (YYYY-MM-DD); defaults to the current month. |
| periods | integer | Number of periods to include (1-12). |
| timeframe | "MONTH" | "QUARTER" | "YEAR" | Length of each period. |
Get the Executive Summary report for a month: cash, profitability, income, performance and position metrics with the prior month and year-to-date for comparison.
| Parameter | Type | Description |
|---|---|---|
| date | string | Any date in the month to report on (YYYY-MM-DD); defaults to the current month. |
Get the 1099 report for a tax year: each contact to be reported with their tax details and address. US organisations only.
| Parameter | Type | Description |
|---|---|---|
| reportYear | string | Tax year as four digits, e.g. "2025"; defaults to last year. |
List Xero Projects with optional contact and status filters. Returns summaries; use getProject for the full invoicing breakdown.
| Parameter | Type | Description |
|---|---|---|
| contactId | string | Only projects for this contact (GUID). |
| status | "INPROGRESS" | "CLOSED" | Restrict to in-progress or closed projects. |
| projectIds | string[] | Restrict to these project IDs (GUIDs). |
| page | integer | Page number (1-based); defaults to 1. |
| pageSize | integer | Items per page (1-100); defaults to 50. |
Get a Xero project with its estimate, time logged and the task and expense amounts invoiced or still to be invoiced.
| Parameter | Type | Description |
|---|---|---|
| projectIdrequired | string | Project ID (GUID). |
Create a Xero project for a contact, optionally with an estimate and deadline.
| Parameter | Type | Description |
|---|---|---|
| namerequired | string | Project name. |
| contactId | string | Contact ID (GUID) the project is billed to. |
| estimateAmount | number | Estimated project value in the base currency. |
| deadlineUtc | string | Deadline as an ISO-8601 UTC timestamp. |
Update a Xero project: rename it, change its contact, estimate or deadline, or close and reopen it. Omitted fields are left unchanged.
| Parameter | Type | Description |
|---|---|---|
| projectIdrequired | string | Project ID (GUID) to update. |
| name | string | New project name. |
| status | "INPROGRESS" | "CLOSED" | CLOSED to close the project, INPROGRESS to reopen it. |
| contactId | string | Contact ID (GUID) the project is billed to. |
| estimateAmount | number | Estimated project value in the base currency. |
| deadlineUtc | string | Deadline as an ISO-8601 UTC timestamp. |
List the staff who can log time on Xero Projects. Use it to find the userId that createProjectTimeEntry requires.
| Parameter | Type | Description |
|---|---|---|
| page | integer | Page number (1-based); defaults to 1. |
| pageSize | integer | Items per page (1-100); defaults to 50. |
List the tasks of a Xero project with their rates, estimates and the time logged, invoiced and still to be invoiced.
| Parameter | Type | Description |
|---|---|---|
| projectIdrequired | string | Project ID (GUID) whose tasks to list. |
| chargeType | "TIME" | "FIXED" | "NON_CHARGEABLE" | Restrict to tasks with this charge type. |
| page | integer | Page number (1-based); defaults to 1. |
| pageSize | integer | Items per page (1-100); defaults to 50. |
Get one task of a Xero project with its rate, estimate and invoicing totals.
| Parameter | Type | Description |
|---|---|---|
| projectIdrequired | string | Project ID (GUID) the task belongs to. |
| taskIdrequired | string | Task ID (GUID). |
Add a task to a Xero project. Time is logged against tasks, so create one before recording time.
| Parameter | Type | Description |
|---|---|---|
| projectIdrequired | string | Project ID (GUID) to add the task to. |
| namerequired | string | Task name. |
| raterequired | number | Charge rate: per hour for TIME tasks, the total for FIXED tasks. |
| chargeTyperequired | "TIME" | "FIXED" | "NON_CHARGEABLE" | TIME charges per hour, FIXED charges a flat amount, NON_CHARGEABLE is not billed. |
| estimateMinutes | integer | Estimated effort in minutes. |
Update a task of a Xero project. Xero replaces the whole task, so pass the name, rate and charge type even when only one of them changes — read the current values with getProjectTask first.
| Parameter | Type | Description |
|---|---|---|
| projectIdrequired | string | Project ID (GUID) the task belongs to. |
| taskIdrequired | string | Task ID (GUID) to update. |
| namerequired | string | Task name (Xero requires it on every update). |
| raterequired | number | Charge rate: per hour for TIME tasks, the total for FIXED tasks. |
| chargeTyperequired | "TIME" | "FIXED" | "NON_CHARGEABLE" | TIME charges per hour, FIXED charges a flat amount, NON_CHARGEABLE is not billed. |
| estimateMinutes | integer | Estimated effort in minutes. |
List time logged against a Xero project, with optional task, user, contact, chargeability and date filters.
| Parameter | Type | Description |
|---|---|---|
| projectIdrequired | string | Project ID (GUID) whose time entries to list. |
| taskId | string | Only entries logged against this task (GUID). |
| userId | string | Only entries logged by this user (GUID from listProjectUsers). |
| contactId | string | Only entries for this contact (GUID). |
| isChargeable | boolean | Only chargeable (true) or non-chargeable (false) entries. |
| fromDateUtc | string | Only entries after this ISO-8601 UTC timestamp. |
| toDateUtc | string | Only entries before this ISO-8601 UTC timestamp. |
| page | integer | Page number (1-based); defaults to 1. |
| pageSize | integer | Items per page (1-100); defaults to 50. |
Log time against a task of a Xero project. Find the task with listProjectTasks and the user with listProjectUsers.
| Parameter | Type | Description |
|---|---|---|
| projectIdrequired | string | Project ID (GUID) to log the time against. |
| taskIdrequired | string | Task ID (GUID) from listProjectTasks. |
| userIdrequired | string | User ID (GUID) from listProjectUsers who did the work. |
| dateUtcrequired | string | When the time was spent, as an ISO-8601 UTC timestamp. |
| durationrequired | integer | Time logged, in minutes. |
| description | string | What the time was spent on. |
Update a time entry on a Xero project. Xero replaces the whole entry, so pass the task, user, date and duration even when only one of them changes — read the current values with listProjectTimeEntries first. Invoiced or locked entries cannot be changed.
| Parameter | Type | Description |
|---|---|---|
| projectIdrequired | string | Project ID (GUID) the time entry belongs to. |
| timeEntryIdrequired | string | Time entry ID (GUID) to update. |
| taskIdrequired | string | Task ID (GUID) the time is logged against. |
| userIdrequired | string | User ID (GUID) who did the work. |
| dateUtcrequired | string | When the time was spent, as an ISO-8601 UTC timestamp. |
| durationrequired | integer | Time logged, in minutes. |
| description | string | What the time was spent on. |
Permissions
You choose what to grant on the provider's consent screen. A tool is only available to your agents if you granted the permission it needs, so granting less simply means fewer tools.
- accounting.attachments
- accounting.banktransactions
- accounting.budgets.read
- accounting.contacts
- accounting.invoices
- accounting.manualjournals
- accounting.payments
- accounting.reports.aged.read
- accounting.reports.balancesheet.read
- accounting.reports.banksummary.read
- accounting.reports.budgetsummary.read
- accounting.reports.executivesummary.read
- accounting.reports.profitandloss.read
- accounting.reports.tenninetynine.read
- accounting.reports.trialbalance.read
- accounting.settings
- projects