Search documentation

Search guides, connectors and tools

Xero

Xero

Xero accounting connector to manage contacts, invoices, payments, bank and manual journal transactions, budgets, attachments, financial reports and Xero Projects.

xeroOAuth50 tools

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 Organisation

getOrganisation€0.01 per call

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 Contacts

searchContacts€0.01 per call

Search Xero contacts (customers and suppliers) by name, email or number and return contact summaries.

ParameterTypeDescription
searchTermstringCase-insensitive match on name, first/last name, email address, contact number or account number.
isCustomerbooleanOnly customers (contacts with sales invoices).
isSupplierbooleanOnly suppliers (contacts with bills).
includeArchivedbooleanInclude archived contacts; defaults to false.
pageintegerPage number (1-based); defaults to 1.
pageSizeintegerItems per page (1-100); defaults to 50.
wherestringAdvanced: raw Xero "where" filter combined (AND) with the other filters, e.g. 'AmountDue>0'.
orderstringAdvanced: Xero order clause, e.g. "Date DESC".

Get Contact

getContact€0.01 per call

Get a Xero contact with addresses, phones, contact persons, default accounts, payment terms and outstanding/overdue balances.

ParameterTypeDescription
contactIdrequiredstringContact ID (GUID) from searchContacts.

Create Contact

createContact€0.01 per call

Create a new Xero contact (customer or supplier). Returns the created contact.

ParameterTypeDescription
namerequiredstringContact name (must be unique in the organisation).
firstNamestringFirst name of the primary person.
lastNamestringLast name of the primary person.
emailAddressstringEmail address (used when emailing invoices).
phonestringDefault phone number.
companyNumberstringCompany registration number.
taxNumberstringTax number (VAT/GST/ABN).
accountNumberstringYour internal account number for this contact.
defaultCurrencystringISO 4217 currency code, e.g. "USD".
postalAddressobjectPostal address (shown on invoices).
postalAddress.line1stringAddress line 1.
postalAddress.line2stringAddress line 2.
postalAddress.citystringCity.
postalAddress.regionstringRegion or state.
postalAddress.postalCodestringPostal code.
postalAddress.countrystringCountry.
streetAddressobjectPhysical street address.
streetAddress.line1stringAddress line 1.
streetAddress.line2stringAddress line 2.
streetAddress.citystringCity.
streetAddress.regionstringRegion or state.
streetAddress.postalCodestringPostal code.
streetAddress.countrystringCountry.

Update Contact

updateContact€0.01 per call

Update fields of an existing Xero contact; omitted fields are left unchanged. Returns the updated contact.

ParameterTypeDescription
contactIdrequiredstringContact ID (GUID) of the contact to update.
namestringNew contact name.
firstNamestringFirst name of the primary person.
lastNamestringLast name of the primary person.
emailAddressstringEmail address (used when emailing invoices).
phonestringDefault phone number.
companyNumberstringCompany registration number.
taxNumberstringTax number (VAT/GST/ABN).
accountNumberstringYour internal account number for this contact.
defaultCurrencystringISO 4217 currency code, e.g. "USD".
postalAddressobjectPostal address (shown on invoices).
postalAddress.line1stringAddress line 1.
postalAddress.line2stringAddress line 2.
postalAddress.citystringCity.
postalAddress.regionstringRegion or state.
postalAddress.postalCodestringPostal code.
postalAddress.countrystringCountry.
streetAddressobjectPhysical street address.
streetAddress.line1stringAddress line 1.
streetAddress.line2stringAddress line 2.
streetAddress.citystringCity.
streetAddress.regionstringRegion or state.
streetAddress.postalCodestringPostal code.
streetAddress.countrystringCountry.
contactStatus"ACTIVE" | "ARCHIVED"Archive (ARCHIVED) or restore (ACTIVE) the contact.

List Invoices

listInvoices€0.01 per call

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.

ParameterTypeDescription
type"ACCREC" | "ACCPAY"ACCREC = sales invoices (accounts receivable); ACCPAY = bills (accounts payable).
statuses"DRAFT" | "SUBMITTED" | "AUTHORISED" | "PAID" | "VOIDED" | "DELETED"[]Restrict to these statuses.
contactIdstringOnly invoices of this contact (GUID).
invoiceNumbersstring[]Only these invoice numbers.
fromDatestringOnly invoices dated on or after this date (YYYY-MM-DD).
toDatestringOnly invoices dated on or before this date (YYYY-MM-DD).
dueFromDatestringOnly invoices due on or after this date (YYYY-MM-DD).
dueToDatestringOnly invoices due on or before this date (YYYY-MM-DD).
outstandingOnlybooleanOnly invoices with an amount still due.
searchTermstringCase-insensitive match on invoice number, reference or contact name.
pageintegerPage number (1-based); defaults to 1.
pageSizeintegerItems per page (1-100); defaults to 50.
wherestringAdvanced: raw Xero "where" filter combined (AND) with the other filters, e.g. 'AmountDue>0'.
orderstringAdvanced: Xero order clause, e.g. "Date DESC".

Get Invoice

getInvoice€0.01 per call

Get a Xero invoice or bill with its line items, totals, amounts due and payments.

ParameterTypeDescription
invoiceIdrequiredstringInvoice ID (GUID) or invoice number (e.g. "INV-0001").

Create Invoice

createInvoice€0.01 per call

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.

ParameterTypeDescription
type"ACCREC" | "ACCPAY"ACCREC = sales invoice (default); ACCPAY = bill from a supplier.
contactIdrequiredstringContact ID (GUID) of the customer or supplier.
lineItemsrequiredobject[]Invoice lines (at least one).
lineItems[].descriptionrequiredstringLine description.
lineItems[].quantityrequirednumberQuantity (use 1 for a flat amount).
lineItems[].unitAmountrequirednumberUnit price; negative for credits.
lineItems[].accountCodestringAccount code from listAccounts (required unless itemCode supplies a default account).
lineItems[].itemCodestringItem code from listItems.
lineItems[].taxTypestringTax type from listTaxRates (e.g. "OUTPUT2"); defaults to the account's tax type.
lineItems[].discountRatenumberDiscount percentage (0-100).
datestringInvoice date (YYYY-MM-DD); defaults to today.
dueDatestringDue date (YYYY-MM-DD); defaults to the contact's or organisation's payment terms.
referencestringFree-text reference (e.g. a purchase order number).
invoiceNumberstringCustom 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.
currencyCodestringISO 4217 currency code; defaults to the base currency.

Update Invoice

updateInvoice€0.01 per call

Update a Xero invoice or bill: change its status (approve, void, delete), dates, reference, number or line items. Omitted fields are left unchanged.

ParameterTypeDescription
invoiceIdrequiredstringInvoice 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.
datestringNew invoice date (YYYY-MM-DD).
dueDatestringNew due date (YYYY-MM-DD).
referencestringNew reference.
invoiceNumberstringNew invoice number.
lineItemsobject[]Replacement line items (all existing lines are replaced). Only for DRAFT/SUBMITTED invoices.
lineItems[].descriptionrequiredstringLine description.
lineItems[].quantityrequirednumberQuantity (use 1 for a flat amount).
lineItems[].unitAmountrequirednumberUnit price; negative for credits.
lineItems[].accountCodestringAccount code from listAccounts (required unless itemCode supplies a default account).
lineItems[].itemCodestringItem code from listItems.
lineItems[].taxTypestringTax type from listTaxRates (e.g. "OUTPUT2"); defaults to the account's tax type.
lineItems[].discountRatenumberDiscount percentage (0-100).
lineAmountTypes"Exclusive" | "Inclusive" | "NoTax"Whether line amounts exclude/include tax.

Email Invoice

emailInvoice€0.01 per call

Email an AUTHORISED Xero sales invoice to its contact using the organisation's invoice email template. The contact must have an email address.

ParameterTypeDescription
invoiceIdrequiredstringInvoice ID (GUID) of the sales invoice to email.

List Payments

listPayments€0.01 per call

List payments recorded in Xero against invoices, bills and credit notes, with optional invoice, type, status and date filters (newest first).

ParameterTypeDescription
invoiceIdstringOnly 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).
fromDatestringOnly payments dated on or after this date (YYYY-MM-DD).
toDatestringOnly payments dated on or before this date (YYYY-MM-DD).
pageintegerPage number (1-based); defaults to 1.
pageSizeintegerItems per page (1-100); defaults to 50.
wherestringAdvanced: raw Xero "where" filter combined (AND) with the other filters, e.g. 'AmountDue>0'.
orderstringAdvanced: Xero order clause, e.g. "Date DESC".

Create Payment

createPayment€0.01 per call

Record a payment against an AUTHORISED Xero invoice or bill from a bank account (or an account with "payments enabled"). Returns the created payment.

ParameterTypeDescription
invoiceIdrequiredstringInvoice ID (GUID) of the AUTHORISED invoice or bill being paid.
accountIdstringAccount ID (GUID) of the bank account the payment went through (from listAccounts).
accountCodestringAlternative to accountId: the account code.
amountrequirednumberAmount paid, in the invoice currency.
datestringPayment date (YYYY-MM-DD); defaults to today.
referencestringPayment reference.

List Bank Transactions

listBankTransactions€0.01 per call

List spend and receive money transactions of the organisation's bank accounts, with optional account, type, contact, reconciliation and date filters (newest first).

ParameterTypeDescription
bankAccountIdstringOnly 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.
contactIdstringOnly transactions with this contact (GUID).
isReconciledbooleanOnly reconciled (true) or unreconciled (false) transactions.
fromDatestringOnly transactions dated on or after this date (YYYY-MM-DD).
toDatestringOnly transactions dated on or before this date (YYYY-MM-DD).
pageintegerPage number (1-based); defaults to 1.
pageSizeintegerItems per page (1-100); defaults to 50.
wherestringAdvanced: raw Xero "where" filter combined (AND) with the other filters, e.g. 'AmountDue>0'.
orderstringAdvanced: Xero order clause, e.g. "Date DESC".

Get Bank Transaction

getBankTransaction€0.01 per call

Get a Xero spend or receive money transaction with its line items, totals and bank account.

ParameterTypeDescription
bankTransactionIdrequiredstringBank transaction ID (GUID).

Create Bank Transaction

createBankTransaction€0.01 per call

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.

ParameterTypeDescription
typerequired"SPEND" | "RECEIVE"SPEND for money paid out of the bank account, RECEIVE for money paid in.
bankAccountIdstringBank account GUID from listAccounts; required unless bankAccountCode is given.
bankAccountCodestringBank account code, as an alternative to bankAccountId.
contactIdrequiredstringContact ID (GUID) the money was paid to or received from.
lineItemsrequiredobject[]Transaction lines (at least one).
lineItems[].descriptionrequiredstringLine description.
lineItems[].quantityrequirednumberQuantity (use 1 for a flat amount).
lineItems[].unitAmountrequirednumberUnit price; negative for credits.
lineItems[].accountCodestringAccount code from listAccounts (required unless itemCode supplies a default account).
lineItems[].itemCodestringItem code from listItems.
lineItems[].taxTypestringTax type from listTaxRates (e.g. "OUTPUT2"); defaults to the account's tax type.
lineItems[].discountRatenumberDiscount percentage (0-100).
datestringTransaction date (YYYY-MM-DD); defaults to today.
referencestringFree-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.
currencyCodestringISO 4217 currency code; defaults to the base currency.

Update Bank Transaction

updateBankTransaction€0.01 per call

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.

ParameterTypeDescription
bankTransactionIdrequiredstringBank transaction ID (GUID) to update.
contactIdstringNew contact ID (GUID).
lineItemsobject[]Replacement transaction lines; replaces every existing line.
lineItems[].descriptionrequiredstringLine description.
lineItems[].quantityrequirednumberQuantity (use 1 for a flat amount).
lineItems[].unitAmountrequirednumberUnit price; negative for credits.
lineItems[].accountCodestringAccount code from listAccounts (required unless itemCode supplies a default account).
lineItems[].itemCodestringItem code from listItems.
lineItems[].taxTypestringTax type from listTaxRates (e.g. "OUTPUT2"); defaults to the account's tax type.
lineItems[].discountRatenumberDiscount percentage (0-100).
datestringTransaction date (YYYY-MM-DD); defaults to today.
referencestringFree-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.
currencyCodestringISO 4217 currency code; defaults to the base currency.

List Bank Transfers

listBankTransfers€0.01 per call

List money transfers between the organisation's own bank accounts, with optional date filters (newest first).

ParameterTypeDescription
fromDatestringOnly transfers dated on or after this date (YYYY-MM-DD).
toDatestringOnly transfers dated on or before this date (YYYY-MM-DD).
wherestringAdvanced: raw Xero "where" filter combined (AND) with the date filters.
orderstringAdvanced: Xero order clause, e.g. "Date DESC".

Create Bank Transfer

createBankTransfer€0.01 per call

Transfer money between two of the organisation's own Xero bank accounts. Returns the created transfer.

ParameterTypeDescription
fromBankAccountIdrequiredstringBank account GUID the money leaves (listAccounts).
toBankAccountIdrequiredstringBank account GUID the money arrives in (listAccounts).
amountrequirednumberAmount to transfer, in the source account's currency.
datestringTransfer date (YYYY-MM-DD); defaults to today.
referencestringFree-text reference for the transfer.

List Manual Journals

listManualJournals€0.01 per call

List Xero manual journals with optional status and date filters (newest first). Returns summaries without journal lines; use getManualJournal for the lines.

ParameterTypeDescription
status"DRAFT" | "POSTED" | "DELETED" | "VOIDED" | "ARCHIVED"Restrict to this status.
fromDatestringOnly journals dated on or after this date (YYYY-MM-DD).
toDatestringOnly journals dated on or before this date (YYYY-MM-DD).
pageintegerPage number (1-based); defaults to 1.
pageSizeintegerItems per page (1-100); defaults to 50.
wherestringAdvanced: raw Xero "where" filter combined (AND) with the other filters, e.g. 'AmountDue>0'.
orderstringAdvanced: Xero order clause, e.g. "Date DESC".

Get Manual Journal

getManualJournal€0.01 per call

Get a Xero manual journal with its debit and credit lines.

ParameterTypeDescription
manualJournalIdrequiredstringManual journal ID (GUID).

Create Manual Journal

createManualJournal€0.01 per call

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.

ParameterTypeDescription
narrationrequiredstringDescription of the journal, shown on reports.
journalLinesrequiredobject[]Debit and credit lines; the signed amounts must sum to zero.
journalLines[].lineAmountrequirednumberSigned amount: positive debits the account, negative credits it. Lines must sum to zero.
journalLines[].accountCoderequiredstringAccount code from listAccounts.
journalLines[].descriptionstringLine description.
journalLines[].taxTypestringTax type from listTaxRates (e.g. "NONE"); defaults to the account's tax type.
datestringJournal 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.
showOnCashBasisReportsbooleanInclude this journal in cash-basis reports.

Update Manual Journal

updateManualJournal€0.01 per call

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.

ParameterTypeDescription
manualJournalIdrequiredstringManual journal ID (GUID) to update.
narrationstringNew description of the journal.
journalLinesobject[]Replacement debit and credit lines; the signed amounts must sum to zero.
journalLines[].lineAmountrequirednumberSigned amount: positive debits the account, negative credits it. Lines must sum to zero.
journalLines[].accountCoderequiredstringAccount code from listAccounts.
journalLines[].descriptionstringLine description.
journalLines[].taxTypestringTax type from listTaxRates (e.g. "NONE"); defaults to the account's tax type.
datestringJournal 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.
showOnCashBasisReportsbooleanInclude this journal in cash-basis reports.

List Accounts

listAccounts€0.01 per call

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.

ParameterTypeDescription
typestringRestrict 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.
enablePaymentsToAccountbooleanOnly accounts that can receive payments (bank accounts and payment-enabled accounts).
wherestringAdvanced: raw Xero "where" filter combined (AND) with the other filters.
orderstringAdvanced: Xero order clause; defaults to "Code".

List Items

listItems€0.01 per call

List the organisation's products and services (item codes, prices, default accounts and tax types) for use on invoice lines.

ParameterTypeDescription
codestringOnly the item with this code.
isSoldbooleanOnly items that are sold.
isPurchasedbooleanOnly items that are purchased.
wherestringAdvanced: raw Xero "where" filter combined (AND) with the other filters.
orderstringAdvanced: Xero order clause; defaults to "Code".

List Tax Rates

listTaxRates€0.01 per call

List the organisation's tax rates (name, tax type code, rate and where each applies) for use on invoice lines.

ParameterTypeDescription
status"ACTIVE" | "ARCHIVED" | "DELETED"Restrict to this status; defaults to ACTIVE.
wherestringAdvanced: raw Xero "where" filter combined (AND) with the other filters.
orderstringAdvanced: Xero order clause; defaults to "Name".

List Budgets

listBudgets€0.01 per call

List the organisation's budgets (overall and tracking-category budgets). Returns summaries without budget lines; use getBudget for the budgeted amounts.

ParameterTypeDescription
budgetIdsstring[]Restrict to these budget IDs (GUIDs).

Get Budget

getBudget€0.01 per call

Get a Xero budget with its budgeted amounts per account and period. Compare it against getProfitAndLossReport to report on budget versus actual.

ParameterTypeDescription
budgetIdrequiredstringBudget ID (GUID) from listBudgets.
fromDatestringOnly budget periods on or after this date (YYYY-MM-DD).
toDatestringOnly budget periods on or before this date (YYYY-MM-DD).

List Attachments

listAttachments€0.01 per call

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.

ParameterTypeDescription
entityTyperequired"invoice" | "creditNote" | "purchaseOrder" | "quote" | "repeatingInvoice" | "bankTransaction" | "bankTransfer" | "manualJournal" | "receipt" | "contact" | "account"Which kind of record the attachments belong to.
entityIdrequiredstringID (GUID) of that record.

Download Attachment

downloadAttachment€0.01 per call

Download a file attached to a Xero record into agent file storage.

ParameterTypeDescription
entityTyperequired"invoice" | "creditNote" | "purchaseOrder" | "quote" | "repeatingInvoice" | "bankTransaction" | "bankTransfer" | "manualJournal" | "receipt" | "contact" | "account"Which kind of record the attachment belongs to.
entityIdrequiredstringID (GUID) of that record.
attachmentIdrequiredstringAttachment ID (GUID) from listAttachments.
destinationPathstringDestination path in agent storage (e.g. "/xero/receipt.pdf"). Defaults to "/xero/<file name>".

Upload Attachment

uploadAttachment€0.01 per call

Attach a file from agent storage to a Xero record. Returns the created attachment.

ParameterTypeDescription
entityTyperequired"invoice" | "creditNote" | "purchaseOrder" | "quote" | "repeatingInvoice" | "bankTransaction" | "bankTransfer" | "manualJournal" | "receipt" | "contact" | "account"Which kind of record to attach the file to.
entityIdrequiredstringID (GUID) of that record.
filePathrequiredstringAbsolute path to the file in agent storage (e.g. "/xero/receipt.pdf").
fileNamestringName for the file in Xero. Defaults to the source file name.
includeOnlinebooleanShow the attachment to the contact on the online invoice (sales invoices only).

Get Profit and Loss Report

getProfitAndLossReport€0.01 per call

Get the Profit and Loss (income statement) report for a period: revenue, expenses and net profit by account, optionally with comparison periods.

ParameterTypeDescription
fromDatestringStart of the period (YYYY-MM-DD); defaults to the current month.
toDatestringEnd of the period (YYYY-MM-DD); defaults to today.
periodsintegerNumber of comparison periods to include (1-12), one column each.
timeframe"MONTH" | "QUARTER" | "YEAR"Length of each comparison period.
standardLayoutbooleanUse the standard layout instead of a custom report layout; defaults to true.
paymentsOnlybooleanCash basis: only include invoices that have been paid.

Get Balance Sheet Report

getBalanceSheetReport€0.01 per call

Get the Balance Sheet report as at a date: assets, liabilities and equity by account, optionally with comparison periods.

ParameterTypeDescription
datestringBalance date (YYYY-MM-DD); defaults to today.
periodsintegerNumber of comparison periods to include (1-12), one column each.
timeframe"MONTH" | "QUARTER" | "YEAR"Length of each comparison period.
standardLayoutbooleanUse the standard layout instead of a custom report layout; defaults to true.
paymentsOnlybooleanCash basis: only include invoices that have been paid.

Get Trial Balance Report

getTrialBalanceReport€0.01 per call

Get the Trial Balance report as at a date: every account with its year-to-date and period debit and credit movements.

ParameterTypeDescription
datestringBalance date (YYYY-MM-DD); defaults to today.
paymentsOnlybooleanCash basis: only include invoices that have been paid.

Get Aged Balances Report

getAgedBalancesReport€0.01 per call

Get the aged receivables or aged payables report for one contact: outstanding invoices by age bracket with totals.

ParameterTypeDescription
kindrequired"receivables" | "payables"receivables = what the contact owes you (aged receivables); payables = what you owe them.
contactIdrequiredstringContact ID (GUID) the report is for.
datestringReport date (YYYY-MM-DD); defaults to today.
fromDatestringOnly include invoices dated on or after this date (YYYY-MM-DD).
toDatestringOnly include invoices dated on or before this date (YYYY-MM-DD).

Get Bank Summary Report

getBankSummaryReport€0.01 per call

Get the Bank Summary report for a period: opening balance, money in, money out and closing balance for each bank account.

ParameterTypeDescription
fromDatestringStart of the period (YYYY-MM-DD); defaults to the month start.
toDatestringEnd of the period (YYYY-MM-DD); defaults to today.

Get Budget Summary Report

getBudgetSummaryReport€0.01 per call

Get the Budget Summary report: budgeted amounts per account across a number of periods.

ParameterTypeDescription
datestringStart date of the first period (YYYY-MM-DD); defaults to the current month.
periodsintegerNumber of periods to include (1-12).
timeframe"MONTH" | "QUARTER" | "YEAR"Length of each period.

Get Executive Summary Report

getExecutiveSummaryReport€0.01 per call

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.

ParameterTypeDescription
datestringAny date in the month to report on (YYYY-MM-DD); defaults to the current month.

Get 1099 Report

get1099Report€0.01 per call

Get the 1099 report for a tax year: each contact to be reported with their tax details and address. US organisations only.

ParameterTypeDescription
reportYearstringTax year as four digits, e.g. "2025"; defaults to last year.

List Projects

listProjects€0.01 per call

List Xero Projects with optional contact and status filters. Returns summaries; use getProject for the full invoicing breakdown.

ParameterTypeDescription
contactIdstringOnly projects for this contact (GUID).
status"INPROGRESS" | "CLOSED"Restrict to in-progress or closed projects.
projectIdsstring[]Restrict to these project IDs (GUIDs).
pageintegerPage number (1-based); defaults to 1.
pageSizeintegerItems per page (1-100); defaults to 50.

Get Project

getProject€0.01 per call

Get a Xero project with its estimate, time logged and the task and expense amounts invoiced or still to be invoiced.

ParameterTypeDescription
projectIdrequiredstringProject ID (GUID).

Create Project

createProject€0.01 per call

Create a Xero project for a contact, optionally with an estimate and deadline.

ParameterTypeDescription
namerequiredstringProject name.
contactIdstringContact ID (GUID) the project is billed to.
estimateAmountnumberEstimated project value in the base currency.
deadlineUtcstringDeadline as an ISO-8601 UTC timestamp.

Update Project

updateProject€0.01 per call

Update a Xero project: rename it, change its contact, estimate or deadline, or close and reopen it. Omitted fields are left unchanged.

ParameterTypeDescription
projectIdrequiredstringProject ID (GUID) to update.
namestringNew project name.
status"INPROGRESS" | "CLOSED"CLOSED to close the project, INPROGRESS to reopen it.
contactIdstringContact ID (GUID) the project is billed to.
estimateAmountnumberEstimated project value in the base currency.
deadlineUtcstringDeadline as an ISO-8601 UTC timestamp.

List Project Users

listProjectUsers€0.01 per call

List the staff who can log time on Xero Projects. Use it to find the userId that createProjectTimeEntry requires.

ParameterTypeDescription
pageintegerPage number (1-based); defaults to 1.
pageSizeintegerItems per page (1-100); defaults to 50.

List Project Tasks

listProjectTasks€0.01 per call

List the tasks of a Xero project with their rates, estimates and the time logged, invoiced and still to be invoiced.

ParameterTypeDescription
projectIdrequiredstringProject ID (GUID) whose tasks to list.
chargeType"TIME" | "FIXED" | "NON_CHARGEABLE"Restrict to tasks with this charge type.
pageintegerPage number (1-based); defaults to 1.
pageSizeintegerItems per page (1-100); defaults to 50.

Get Project Task

getProjectTask€0.01 per call

Get one task of a Xero project with its rate, estimate and invoicing totals.

ParameterTypeDescription
projectIdrequiredstringProject ID (GUID) the task belongs to.
taskIdrequiredstringTask ID (GUID).

Create Project Task

createProjectTask€0.01 per call

Add a task to a Xero project. Time is logged against tasks, so create one before recording time.

ParameterTypeDescription
projectIdrequiredstringProject ID (GUID) to add the task to.
namerequiredstringTask name.
raterequirednumberCharge 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.
estimateMinutesintegerEstimated effort in minutes.

Update Project Task

updateProjectTask€0.01 per call

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.

ParameterTypeDescription
projectIdrequiredstringProject ID (GUID) the task belongs to.
taskIdrequiredstringTask ID (GUID) to update.
namerequiredstringTask name (Xero requires it on every update).
raterequirednumberCharge 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.
estimateMinutesintegerEstimated effort in minutes.

List Project Time Entries

listProjectTimeEntries€0.01 per call

List time logged against a Xero project, with optional task, user, contact, chargeability and date filters.

ParameterTypeDescription
projectIdrequiredstringProject ID (GUID) whose time entries to list.
taskIdstringOnly entries logged against this task (GUID).
userIdstringOnly entries logged by this user (GUID from listProjectUsers).
contactIdstringOnly entries for this contact (GUID).
isChargeablebooleanOnly chargeable (true) or non-chargeable (false) entries.
fromDateUtcstringOnly entries after this ISO-8601 UTC timestamp.
toDateUtcstringOnly entries before this ISO-8601 UTC timestamp.
pageintegerPage number (1-based); defaults to 1.
pageSizeintegerItems per page (1-100); defaults to 50.

Create Project Time Entry

createProjectTimeEntry€0.01 per call

Log time against a task of a Xero project. Find the task with listProjectTasks and the user with listProjectUsers.

ParameterTypeDescription
projectIdrequiredstringProject ID (GUID) to log the time against.
taskIdrequiredstringTask ID (GUID) from listProjectTasks.
userIdrequiredstringUser ID (GUID) from listProjectUsers who did the work.
dateUtcrequiredstringWhen the time was spent, as an ISO-8601 UTC timestamp.
durationrequiredintegerTime logged, in minutes.
descriptionstringWhat the time was spent on.

Update Project Time Entry

updateProjectTimeEntry€0.01 per call

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.

ParameterTypeDescription
projectIdrequiredstringProject ID (GUID) the time entry belongs to.
timeEntryIdrequiredstringTime entry ID (GUID) to update.
taskIdrequiredstringTask ID (GUID) the time is logged against.
userIdrequiredstringUser ID (GUID) who did the work.
dateUtcrequiredstringWhen the time was spent, as an ISO-8601 UTC timestamp.
durationrequiredintegerTime logged, in minutes.
descriptionstringWhat 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