Xero Accounting MCP Server for Cloudflare Workers
Test Xero tools directly in your browser. Select a tool and provide inputs to see the results.
Create a free account to test Xero tools interactively. No credit card required.
xero_test_connectionTest the connection to the Xero API and return the connected organisation name.
xero_delete_invoiceDelete a draft invoice. Args: - invoiceId: Invoice ID to delete
xero_list_itemsList items/products from Xero. Args: - where: Filter expression
xero_get_itemGet details for a specific item. Args: - itemId: Item ID
xero_list_overpaymentsList overpayments from Xero. Args: - page: Page number - where: Filter expression
xero_list_accountsList accounts from the Chart of Accounts. Args: - where: Filter expression - classType: Filter by account class (ASSET, EQUITY, EXPENSE, LIABILITY, REVENUE)
xero_get_accountGet details for a specific account. Args: - accountId: The account ID
xero_create_accountCreate a new account in the Chart of Accounts. Args: - code: Account code - name: Account name - type: Account type - description: Account description - taxType: Tax type - enablePaymentsToAccount: Allow payments to this account - showInExpenseClaims: Show in expense claims
xero_update_accountUpdate an existing account. Args: - accountId: Account ID to update - code: Account code - name: Account name - description: Account description - status: Account status (ACTIVE or ARCHIVED)
xero_delete_accountDelete an account from the Chart of Accounts. Only accounts without transactions can be deleted. Args: - accountId: Account ID to delete
xero_list_bank_transactionsList bank transactions (spend/receive money) from Xero. Args: - page: Page number - where: Filter expression - order: Sort order
xero_get_bank_transactionGet details for a specific bank transaction. Args: - bankTransactionId: Bank transaction ID
xero_create_bank_transactionCreate a bank transaction (spend or receive money). Args: - type: Transaction type (RECEIVE, SPEND, RECEIVE-OVERPAYMENT, SPEND-OVERPAYMENT, RECEIVE-PREPAYMENT, SPEND-PREPAYMENT) - contactId: Contact ID - bankAccountId: Bank account ID - lineItems: Array of line items - date: Transaction date - reference: Reference
xero_update_bank_transactionUpdate a bank transaction. Args: - bankTransactionId: Transaction ID to update - reference: Reference - date: Transaction date
xero_list_bank_transfersList bank transfers from Xero. Args: - page: Page number - where: Filter expression
xero_get_bank_transferGet details for a specific bank transfer. Args: - bankTransferId: Bank transfer ID
xero_create_bank_transferCreate a bank transfer between two bank accounts. Args: - fromBankAccountId: Source bank account ID - toBankAccountId: Destination bank account ID - amount: Transfer amount - date: Transfer date
xero_list_contactsList contacts (customers and suppliers) from Xero. Returns a paginated list of contacts with basic details. Args: - page: Page number (1-based) - where: Filter expression (e.g., 'ContactStatus=="ACTIVE"') - order: Sort order (e.g., 'Name ASC') - includeArchived: Include archived contacts
xero_get_contactGet details for a specific contact. Args: - contactId: The Xero contact ID
xero_allocate_prepaymentAllocate a prepayment to an invoice. Args: - prepaymentId: Prepayment ID - invoiceId: Invoice ID to allocate to - amount: Amount to allocate - date: Allocation date
xero_create_contactCreate a new contact in Xero. Args: - name: Contact name (required) - firstName: First name - lastName: Last name - emailAddress: Email address - isSupplier: Whether contact is a supplier - isCustomer: Whether contact is a customer - taxNumber: Tax/VAT number - defaultCurrency: Default currency code
xero_update_contactUpdate an existing contact. Args: - contactId: Contact ID to update - name: Contact name - firstName: First name - lastName: Last name - emailAddress: Email address - isSupplier: Whether contact is a supplier - isCustomer: Whether contact is a customer - contactStatus: Status (ACTIVE or ARCHIVED)
xero_archive_contactArchive a contact. Args: - contactId: Contact ID to archive
xero_list_contact_groupsList all contact groups.
xero_create_contact_groupCreate a new contact group. Args: - name: Group name
xero_add_contacts_to_groupAdd contacts to a contact group. Args: - contactGroupId: Contact group ID - contactIds: Array of contact IDs to add
xero_list_invoicesList invoices from Xero. Args: - page: Page number (1-based) - where: Filter expression (e.g., 'Status=="AUTHORISED"') - order: Sort order (e.g., 'Date DESC') - statuses: Filter by status (DRAFT, SUBMITTED, AUTHORISED, PAID, VOIDED)
xero_get_invoiceGet details for a specific invoice. Args: - invoiceId: The invoice ID
xero_create_invoiceCreate a new invoice in Xero. Args: - type: ACCREC (sales invoice) or ACCPAY (bill) - contactId: Contact ID - lineItems: Array of line items - date: Invoice date (YYYY-MM-DD) - dueDate: Due date (YYYY-MM-DD) - reference: Invoice reference - status: Status (DRAFT, SUBMITTED, AUTHORISED) - lineAmountTypes: Exclusive, Inclusive, or NoTax
xero_update_invoiceUpdate an existing invoice. Args: - invoiceId: Invoice ID to update - reference: Invoice reference - date: Invoice date - dueDate: Due date - status: Status (DRAFT, SUBMITTED, AUTHORISED)
xero_void_invoiceVoid an invoice. Args: - invoiceId: Invoice ID to void
xero_create_itemCreate a new item/product. Args: - code: Item code (required) - name: Item name - description: Sales description - purchaseDescription: Purchase description - salesUnitPrice: Sales unit price - salesAccountCode: Sales account code - salesTaxType: Sales tax type - purchaseUnitPrice: Purchase unit price - purchaseAccountCode: Purchase account code - purchaseTaxType: Purchase tax type - isTrackedAsInventory: Track as inventory - inventoryAssetAccountCode: Inventory asset account code
xero_update_itemUpdate an existing item. Args: - itemId: Item ID to update - code: Item code - name: Item name - description: Sales description - purchaseDescription: Purchase description
xero_delete_itemDelete an item. Args: - itemId: Item ID to delete
xero_list_journalsList system journals from Xero. These are automatically created journals for all transactions. Args: - offset: Offset for pagination (journal number to start from) - where: Filter expression - order: Sort order
xero_get_journalGet details for a specific journal. Args: - journalId: Journal ID
xero_list_manual_journalsList manual journals from Xero. Args: - page: Page number - where: Filter expression - order: Sort order
xero_get_manual_journalGet details for a specific manual journal. Args: - manualJournalId: Manual journal ID
xero_create_manual_journalCreate a manual journal entry. Journal lines must balance to zero. Args: - narration: Description of the journal entry (required) - journalLines: Array of journal lines (must balance to zero) - date: Journal date - status: Status (DRAFT or POSTED) - showOnCashBasisReports: Show on cash basis reports
xero_update_manual_journalUpdate an existing manual journal. Args: - manualJournalId: Manual journal ID to update - narration: Description - date: Journal date - status: Status (DRAFT or POSTED)
xero_list_linked_transactionsList linked transactions from Xero. Linked transactions link billable expenses to sales invoices. Args: - page: Page number - sourceTransactionId: Filter by source transaction ID - contactId: Filter by contact ID
xero_get_linked_transactionGet details for a specific linked transaction. Args: - linkedTransactionId: Linked transaction ID
xero_create_linked_transactionCreate a linked transaction to link a billable expense to a sales invoice. Args: - sourceTransactionId: Source transaction ID (bill or expense claim) - sourceLineItemId: Source line item ID - contactId: Contact ID to invoice - targetTransactionId: Target invoice ID (optional, can link later) - targetLineItemId: Target line item ID (optional)
xero_update_linked_transactionUpdate a linked transaction. Args: - linkedTransactionId: Linked transaction ID to update - sourceLineItemId: Source line item ID - contactId: Contact ID - targetTransactionId: Target transaction ID - targetLineItemId: Target line item ID
xero_delete_linked_transactionDelete a linked transaction. Args: - linkedTransactionId: Linked transaction ID to delete
xero_get_organisationGet details about the connected Xero organisation. Returns organisation information including name, country, currency, and settings.
xero_list_paymentsList payments from Xero. Args: - page: Page number - where: Filter expression - order: Sort order
xero_get_paymentGet details for a specific payment. Args: - paymentId: Payment ID
xero_create_paymentCreate a payment for an invoice. Args: - invoiceId: Invoice ID to pay - accountId: Bank account ID - amount: Payment amount - date: Payment date (YYYY-MM-DD) - reference: Payment reference - isReconciled: Mark as reconciled
xero_delete_paymentDelete a payment. Args: - paymentId: Payment ID to delete
xero_list_credit_notesList credit notes from Xero. Args: - page: Page number - where: Filter expression - order: Sort order
xero_get_credit_noteGet details for a specific credit note. Args: - creditNoteId: Credit note ID
xero_create_credit_noteCreate a credit note. Args: - type: ACCRECCREDIT (customer) or ACCPAYCREDIT (supplier) - contactId: Contact ID - lineItems: Array of line items - date: Credit note date - reference: Reference
xero_allocate_credit_noteAllocate a credit note to an invoice. Args: - creditNoteId: Credit note ID - invoiceId: Invoice ID to allocate to - amount: Amount to allocate - date: Allocation date
xero_list_prepaymentsList prepayments from Xero. Args: - page: Page number - where: Filter expression
xero_allocate_overpaymentAllocate an overpayment to an invoice. Args: - overpaymentId: Overpayment ID - invoiceId: Invoice ID to allocate to - amount: Amount to allocate - date: Allocation date
xero_list_batch_paymentsList batch payments from Xero. Args: - page: Page number - where: Filter expression
xero_list_purchase_ordersList purchase orders from Xero. Args: - page: Page number - where: Filter expression - order: Sort order - status: Filter by status (DRAFT, SUBMITTED, AUTHORISED, BILLED, DELETED)
xero_get_purchase_orderGet details for a specific purchase order. Args: - purchaseOrderId: Purchase order ID
xero_create_purchase_orderCreate a new purchase order. Args: - contactId: Supplier contact ID - lineItems: Array of line items - date: Order date - deliveryDate: Expected delivery date - reference: Reference - deliveryAddress: Delivery address - attentionTo: Attention to - telephone: Telephone - deliveryInstructions: Delivery instructions - status: Status (DRAFT, SUBMITTED, AUTHORISED)
xero_update_purchase_orderUpdate an existing purchase order. Args: - purchaseOrderId: Purchase order ID to update - reference: Reference - date: Order date - deliveryDate: Delivery date - status: Status
xero_delete_purchase_orderDelete a purchase order. Args: - purchaseOrderId: Purchase order ID to delete
xero_list_quotesList quotes from Xero. Args: - page: Page number - where: Filter expression - order: Sort order - status: Filter by status (DRAFT, SENT, DECLINED, ACCEPTED, INVOICED, DELETED)
xero_get_quoteGet details for a specific quote. Args: - quoteId: Quote ID
xero_create_quoteCreate a new quote. Args: - contactId: Contact ID - lineItems: Array of line items - date: Quote date - expiryDate: Expiry date - reference: Reference - title: Quote title - summary: Quote summary - terms: Terms and conditions - status: Status (DRAFT, SENT)
xero_update_quoteUpdate an existing quote. Args: - quoteId: Quote ID to update - reference: Reference - date: Quote date - expiryDate: Expiry date - title: Title - summary: Summary - terms: Terms and conditions - status: Status
xero_delete_quoteDelete a quote. Args: - quoteId: Quote ID to delete
xero_list_repeating_invoicesList repeating invoices from Xero.
xero_get_repeating_invoiceGet details for a specific repeating invoice. Args: - repeatingInvoiceId: Repeating invoice ID
xero_create_repeating_invoiceCreate a new repeating invoice. Args: - type: Invoice type (ACCPAY for bills, ACCREC for invoices) - contactId: Contact ID - lineItems: Array of line items - schedule: Schedule configuration with period, unit, dueDate, etc. - reference: Reference - brandingThemeId: Branding theme ID - currencyCode: Currency code - status: Status (DRAFT, AUTHORISED)
xero_update_repeating_invoiceUpdate an existing repeating invoice. Args: - repeatingInvoiceId: Repeating invoice ID to update - reference: Reference - status: Status (DRAFT, AUTHORISED, DELETED)
xero_delete_repeating_invoiceDelete a repeating invoice. Args: - repeatingInvoiceId: Repeating invoice ID to delete
xero_get_balance_sheetGet the Balance Sheet report. Args: - date: Report date (YYYY-MM-DD) - periods: Number of periods to compare - timeframe: Timeframe (MONTH, QUARTER, YEAR) - trackingOptionId1: First tracking option ID - trackingOptionId2: Second tracking option ID - standardLayout: Use standard layout - paymentsOnly: Cash basis (payments only)
xero_delete_tracking_optionDelete a tracking option. Args: - trackingCategoryId: Tracking category ID - trackingOptionId: Tracking option ID to delete
xero_list_tax_ratesList tax rates from Xero.
xero_get_profit_and_lossGet the Profit and Loss report. Args: - fromDate: Start date (YYYY-MM-DD) - toDate: End date (YYYY-MM-DD) - periods: Number of periods to compare - timeframe: Timeframe (MONTH, QUARTER, YEAR) - trackingCategoryId: Tracking category ID - trackingOptionId: Tracking option ID - standardLayout: Use standard layout - paymentsOnly: Cash basis (payments only)
xero_get_trial_balanceGet the Trial Balance report. Args: - date: Report date (YYYY-MM-DD) - paymentsOnly: Cash basis (payments only)
xero_get_bank_summaryGet the Bank Summary report. Args: - fromDate: Start date (YYYY-MM-DD) - toDate: End date (YYYY-MM-DD)
xero_get_aged_receivables_by_contactGet the Aged Receivables by Contact report. Args: - contactId: Contact ID (required) - date: Report date (YYYY-MM-DD) - fromDate: From date - toDate: To date
xero_get_aged_payables_by_contactGet the Aged Payables by Contact report. Args: - contactId: Contact ID (required) - date: Report date (YYYY-MM-DD) - fromDate: From date - toDate: To date
xero_get_budget_summaryGet the Budget Summary report. Args: - date: Report date - periods: Number of periods - timeframe: Timeframe
xero_get_executive_summaryGet the Executive Summary report. Args: - date: Report date
xero_get_reportGet any Xero report by name with custom parameters. Args: - reportName: Report name (e.g., 'BalanceSheet', 'ProfitAndLoss', 'TrialBalance', 'BankSummary', 'BudgetSummary', 'ExecutiveSummary', 'AgedReceivablesByContact', 'AgedPayablesByContact', '1099Report', 'TenNinetyNine') - params: Report parameters as key-value pairs
xero_list_tracking_categoriesList tracking categories from Xero.
xero_get_tracking_categoryGet details for a specific tracking category. Args: - trackingCategoryId: Tracking category ID
xero_create_tracking_categoryCreate a new tracking category. Args: - name: Category name (required)
xero_update_tracking_categoryUpdate a tracking category. Args: - trackingCategoryId: Tracking category ID - name: Category name
xero_delete_tracking_categoryDelete a tracking category. Args: - trackingCategoryId: Tracking category ID to delete
xero_create_tracking_optionCreate a tracking option within a category. Args: - trackingCategoryId: Tracking category ID - name: Option name (required)
xero_update_tracking_optionUpdate a tracking option. Args: - trackingCategoryId: Tracking category ID - trackingOptionId: Tracking option ID - name: Option name
xero_get_tax_rateGet details for a specific tax rate. Args: - taxType: Tax type identifier
xero_create_tax_rateCreate a new tax rate. Args: - name: Tax rate name (required) - taxComponents: Array of tax components with name and rate - status: Status (ACTIVE, DELETED, ARCHIVED) - reportTaxType: Report tax type (e.g., OUTPUT, INPUT, EXEMPTOUTPUT, EXEMPTINPUT)
xero_update_tax_rateUpdate a tax rate. Args: - taxType: Tax type to update - name: Tax rate name - status: Status (ACTIVE, DELETED, ARCHIVED) - reportTaxType: Report tax type
xero_list_currenciesList currencies from Xero.
xero_create_currencyAdd a currency to the organisation. Args: - code: Currency code (required, e.g., USD, EUR, GBP) - description: Currency description
xero_list_branding_themesList branding themes from Xero.
xero_get_branding_themeGet details for a specific branding theme. Args: - brandingThemeId: Branding theme ID
xero_list_usersList users from Xero.
xero_get_userGet details for a specific user. Args: - userId: User ID
xero_test_connection{}xero_delete_invoice{
"invoiceId": "example_invoiceId"
}xero_list_items{
"where": "example_where",
"format": "example_format"
}