Accounting
Xero
API integration
Ship Accounting features without building the integration. Full Xero API access via Proxy, normalized data through Unified APIs, and 290+ MCP-ready tools for AI agents — all extensible to your exact use case.
Talk to usUse Cases
Why integrate with Xero
Common scenarios for SaaS companies building Xero integrations for their customers.
Automate invoice creation from your SaaS into Xero
If your platform handles billing, project completion, or service delivery, you can automatically push invoices into your users' Xero accounts — eliminating dual data entry and keeping their accounts receivable current in real time.
Pull financial data for underwriting and credit decisioning
Lending, financing, and fintech platforms can read their users' Xero reports, transactions, and account balances to algorithmically assess business health — replacing manual CSV and PDF uploads with a live, authenticated data connection.
Sync expenses and receipts into the general ledger
Spend management and corporate card platforms can push categorized transactions into Xero with receipt attachments, mapped to the correct chart of accounts and tracking categories, so month-end close is effortless for the user's accountant.
Keep CRM contacts and payment status in sync with Xero
CRM and sales platforms can sync contacts bidirectionally and surface outstanding invoice and payment data from Xero directly inside the sales workflow, giving reps real-time visibility into customer financial status.
Manage subscription revenue recognition in Xero
Billing and subscription platforms can generate invoices, credit notes, and payments in Xero whenever subscriptions change — ensuring the general ledger accurately mirrors the subscription engine across currencies and tax jurisdictions.
What You Can Build
Ship these features with Truto + Xero
Concrete product features your team can ship faster by leveraging Truto’s Xero integration instead of building from scratch.
Chart of Accounts Mapping UI
Let your users map your product's categories to their specific Xero accounts, tax rates, and tracking categories before any data is synced, ensuring every transaction lands in the right place on the ledger.
Automated Invoice and Payment Sync
Push invoices into Xero when work is completed or deals close, and automatically reconcile them by creating payments when funds are collected through your platform.
Real-Time Financial Health Dashboard
Pull P&L statements, balance sheets, and company info from Xero to populate analytics dashboards or feed proprietary scoring models inside your product.
Receipt Attachment Pipeline
Attach receipt images and supporting documents directly to Xero transactions and invoices via the Attachments resource, making audit prep seamless for your users' accountants.
Bi-Directional Contact and Vendor Sync
Sync customers and vendors between your platform and Xero using Contacts and Contact Groups, keeping records consistent across systems without manual reconciliation.
Daily Sales Journal Entry Aggregation
Aggregate POS or e-commerce transactions into summarized journal entries in Xero — avoiding thousands of individual line items while maintaining accurate revenue and tax reporting.
SuperAI
Xero AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_xero_contacts
List all contacts in a Xero organisation. Returns: ContactID, Name, EmailAddress, ContactStatus, IsSupplier, IsCustomer, Addresses, Phones, Balances, UpdatedDateUTC, HasAttachments. Optionally filter by where clause, IDs, searchTerm, or includeArchived.
get_single_xero_contact_by_id
Get a specific Xero contact by id. Returns: ContactID, Name, EmailAddress, ContactStatus, Addresses, Phones, Balances, PaymentTerms, BrandingTheme, ContactPersons, IsSupplier, IsCustomer, UpdatedDateUTC. Required: id.
create_a_xero_contact
Create or update one or more contacts in a Xero organisation. Returns: ContactID, Name, EmailAddress, ContactStatus, Addresses, Phones, IsSupplier, IsCustomer, PaymentTerms, UpdatedDateUTC, HasValidationErrors. Required: Contacts.
update_a_xero_contact_by_id
Update an existing Xero contact by id. Returns: Contacts (array containing the updated contact record), Status, DateTimeUTC. Required: id, Contacts.
delete_a_xero_contact_by_id
Delete a specific contact from a Xero contact group by id. Returns an empty 204 response on success. Required: contact_group_id, id.
xero_contacts_bulk_delete
Delete all contacts from a specific Xero contact group. Returns an empty 204 response on success. Required: contact_group_id.
xero_contacts_bulk_update
Add contacts to a specific Xero contact group. Returns contact objects including ContactID and Name. Required: contact_group_id.
xero_contacts_list_attachments
List attachments for a specific Xero contact. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: id.
xero_contacts_list_history
List history records for a specific Xero contact. Returns: Details, Changes, User, DateUTC. Required: id.
xero_contacts_update_history
Create a new history record for a specific Xero contact. Returns the created history record including Details, Changes, User, and DateUTC. Required: id.
list_all_xero_tracking_categories
List all tracking categories and options in Xero. Returns: Name, Status, TrackingCategoryID, Options. Use where and order to filter and sort results; set includeArchived to true to include ARCHIVED categories.
get_single_xero_tracking_category_by_id
Get a specific Xero tracking category by its unique identifier. Returns: Name, Status, TrackingCategoryID, Options. Required: id.
create_a_xero_tracking_category
Create a new tracking category in Xero. Returns: Name, Status, TrackingCategoryID, Options. Required: name.
update_a_xero_tracking_category_by_id
Update a specific tracking category in Xero by its unique identifier. Returns: Name, Status, TrackingCategoryID, Options. Required: id, Name.
delete_a_xero_tracking_category_by_id
Delete a specific tracking category in Xero by its unique identifier. Returns the deleted category including Name, Status (set to DELETED), TrackingCategoryID, and Options. Required: id.
list_all_xero_payments
List payments for invoices and credit notes in xero. Returns: PaymentID, Amount, Status, Date, PaymentType, Account, Invoice, IsReconciled, UpdatedDateUTC, HasValidationErrors. Use `where` to filter and `order` to sort results.
get_single_xero_payment_by_id
Retrieve a specific xero payment by id. Returns: PaymentID, Amount, Status, Date, Account, Invoice, BatchPayment, PaymentType, CurrencyRate, IsReconciled, UpdatedDateUTC, HasValidationErrors. Required: id.
create_a_xero_payment
Create one or more payments for invoices or credit notes in xero. Returns: PaymentID, Amount, Status, Date, Account, Invoice, PaymentType, IsReconciled, UpdatedDateUTC, HasValidationErrors. Required: Payments array; each entry requires Invoice (InvoiceID), Account, Date, and Amount.
update_a_xero_payment_by_id
Update a specific xero payment by id. Returns: PaymentID, Amount, Status, Date, Account, Invoice, PaymentType, IsReconciled, UpdatedDateUTC, HasValidationErrors. Required: id.
xero_payments_list_history
List history records for a specific xero payment by id. Returns: Details, DateUTC, User, Changes. Required: id.
xero_payments_update_history
Create a history record for a specific Xero payment. Returns the created history record including Details, DateUTCString, DateUTC, Changes, and User. Required: id.
list_all_xero_bank_transactions
List spent or received money transactions in Xero. Returns: BankTransactionID, Type, Status, BankAccount, Contact, SubTotal, Total, CurrencyCode, IsReconciled, LineAmountTypes, UpdatedDateUTC.
get_single_xero_bank_transaction_by_id
Get a single Xero bank transaction by id. Returns: BankTransactionID, Type, Status, BankAccount, Contact, LineItems, SubTotal, Total, CurrencyCode, IsReconciled, Attachments, UpdatedDateUTC. Required: id.
create_a_xero_bank_transaction
Create one or more Xero bank transactions. Returns: BankTransactionID, Type, Status, BankAccount, Contact, LineItems, SubTotal, Total, CurrencyCode, ValidationErrors. Required: BankTransactions array with Type, Contact, LineItems, and BankAccount per entry.
xero_bank_transactions_list_attachments
List attachments for a specific Xero bank transaction by id. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: id.
xero_bank_transactions_list_history
List history records for a specific Xero bank transaction by id. Returns: Changes, DateUTCString, DateUTC, User, Details. Required: id.
xero_bank_transactions_update_history
Create a history record for a specific Xero bank transaction. Returns: Details, DateUTCString, DateUTC, User, Changes. Required: id.
update_a_xero_bank_transaction_by_id
Update a specific Xero bank transaction by id. Returns the updated transaction including BankTransactionID, Type, Status, Contact, LineItems, BankAccount, SubTotal, TotalTax, Total, CurrencyCode, and IsReconciled. Required: id.
xero_bank_transactions_bulk_update
Create or update one or more Xero bank transactions in a single request. Returns the processed transactions including BankTransactionID, Type, Status, Contact, LineItems, BankAccount, SubTotal, TotalTax, Total, CurrencyCode, and IsReconciled. Required: BankTransactions.
list_all_xero_connections
List Xero connections (tenants) that the authenticated user has authorised access to. Returns: id, tenantId, tenantType, tenantName, createdDateUtc, updatedDateUtc.
list_all_xero_users
List all users in the xero organisation. Returns: UserID, EmailAddress, FirstName, LastName, UpdatedDateUTC, IsSubscriber, OrganisationRole. Optionally filter results with `where` or sort with `order`.
get_single_xero_user_by_id
Get a specific xero user by UserID. Returns: UserID, EmailAddress, FirstName, LastName, UpdatedDateUTC, IsSubscriber, OrganisationRole. Required: id.
list_all_xero_credit_notes
List credit notes in Xero. Returns: CreditNoteID, CreditNoteNumber, Type, Status, Date, Contact, SubTotal, TotalTax, Total, CurrencyCode, RemainingCredit, UpdatedDateUTC.
get_single_xero_credit_note_by_id
Get a single Xero credit note by id. Returns: CreditNoteID, CreditNoteNumber, Type, Status, Date, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, RemainingCredit, UpdatedDateUTC. Required: id.
list_all_xero_purchase_orders
List purchase orders in Xero. Returns: PurchaseOrderID, PurchaseOrderNumber, Status, Contact, DateString, SubTotal, TotalTax, Total, CurrencyCode, LineItems, and UpdatedDateUTC.
get_single_xero_purchase_order_by_id
Get a single Xero purchase order by id. Returns: PurchaseOrderID, PurchaseOrderNumber, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, DateString, DeliveryDateString, UpdatedDateUTC, SentToContact, and HasAttachments. Required: id.
list_all_xero_invoices
List Xero sales invoices or purchase bills. Returns: InvoiceID, InvoiceNumber, Status, Type, Contact, Total, AmountDue, AmountPaid, CurrencyCode, LineItems, and UpdatedDateUTC. Supports filtering by IDs, InvoiceNumbers, ContactIDs, Statuses, or a free-form where clause.
get_single_xero_invoice_by_id
Get a specific Xero sales invoice or purchase bill by id. Returns the invoice object including InvoiceID, InvoiceNumber, Status, Type, Contact, LineItems, SubTotal, TotalTax, Total, AmountDue, AmountPaid, CurrencyCode, Attachments, and UpdatedDateUTC. Required: id.
create_a_xero_invoice
Create one or more Xero sales invoices or purchase bills. Returns the created invoice including InvoiceID, InvoiceNumber, Status, Type, Contact, LineItems, SubTotal, TotalTax, Total, AmountDue, AmountPaid, CurrencyCode, and UpdatedDateUTC.
update_a_xero_invoice_by_id
Update a specific Xero sales invoice or purchase bill by id. Returns the updated invoice including InvoiceID, InvoiceNumber, Status, Type, Contact, LineItems, SubTotal, TotalTax, Total, AmountDue, AmountPaid, CurrencyCode, and UpdatedDateUTC. Required: id.
delete_a_xero_invoice_by_id
Void a Xero invoice by id, setting its Status to VOIDED. Returns the voided invoice including InvoiceID, InvoiceNumber, Status, Type, Contact, Total, AmountDue, AmountPaid, CurrencyCode, and UpdatedDateUTC. Required: id.
xero_invoices_download
Download a Xero invoice as a PDF file from GET /Invoices/{id}/pdf. Returns binary PDF content (application/pdf). Required: invoice_id.
xero_invoices_list_attachments
List attachments for a specific Xero invoice or purchase bill. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: id.
xero_invoices_list_history
Retrieve history records for a specific Xero invoice. Returns: Details, DateUTC, User, Changes. Required: id.
xero_invoices_update_history
Create a history note for a specific Xero invoice. Returns: Details, DateUTC, User, Changes. Required: id, HistoryRecords.
xero_invoices_bulk_update
Update multiple Xero invoices in a single batch request. Returns a list of updated invoice objects including InvoiceID, Type, Status, InvoiceNumber, Total, AmountDue, Contact. Required: Invoices.
list_all_xero_tax_rates
List tax rates configured in Xero. Returns: Name, TaxType, Status, DisplayTaxRate, EffectiveTaxRate, EffectiveTaxRate, ReportTaxType, and TaxComponents for each tax rate record.
list_all_xero_organizations
List Xero organisations connected to the authenticated account. Returns: OrganisationID, Name, LegalName, BaseCurrency, CountryCode, OrganisationType, OrganisationStatus, IsDemoCompany, Timezone, CreatedDateUTC, FinancialYearEndDay, and FinancialYearEndMonth.
list_all_xero_accounts
List the full chart of accounts in xero. Returns: AccountID, Code, Name, Type, TaxType, EnablePaymentsToAccount, BankAccountNumber, CurrencyCode, and Description. Optionally filter with `where` or sort with `order`.
get_single_xero_account_by_id
Get a single xero account by its AccountID. Returns: AccountID, Code, Name, Status, Type, TaxType, Description, Class, EnablePaymentsToAccount, ShowInExpenseClaims, ReportingCode, ReportingCodeName, UpdatedDateUTC. Required: id.
create_a_xero_account
Create a new xero account. Returns the full response envelope including Id, Status, ProviderName, DateTimeUTC, and an Accounts array containing the created account with AccountID, Code, Name, Status, Type, TaxType, and other account fields.
delete_a_xero_account_by_id
Delete a xero account by its AccountID. Returns the deleted account record including AccountID, Code, Name, Status, Type, TaxType, Description, Class, EnablePaymentsToAccount, ShowInExpenseClaims, ReportingCode, ReportingCodeName, and UpdatedDateUTC. Required: id.
xero_accounts_list_attachments
List attachments for a specific xero account by its AccountID. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: id.
list_all_xero_items
List all Xero inventory items. Returns: ItemID, Code, Name, Description, IsSold, IsPurchased, IsTrackedAsInventory, SalesDetails, PurchaseDetails, UpdatedDateUTC.
get_single_xero_item_by_id
Get a specific Xero inventory item by id. Returns: ItemID, Code, Name, Description, PurchaseDescription, IsTrackedAsInventory, InventoryAssetAccountCode, TotalCostPool, QuantityOnHand, IsSold, IsPurchased, SalesDetails, PurchaseDetails, UpdatedDateUTC. Required: id.
create_a_xero_item
Create one or more Xero inventory items. Returns: ItemID, Code, Name, Description, IsSold, IsPurchased, IsTrackedAsInventory, SalesDetails, PurchaseDetails, UpdatedDateUTC, ValidationErrors. Required: Items (each item must include Code).
update_a_xero_item_by_id
Update a specific Xero inventory item by id. Returns: ItemID, Code, Name, Description, IsSold, IsPurchased, IsTrackedAsInventory, SalesDetails, PurchaseDetails, UpdatedDateUTC, ValidationErrors. Required: id.
delete_a_xero_item_by_id
Delete a specific Xero inventory item by id. Returns an empty 204 response on success. Required: id.
xero_items_bulk_update
Create or update multiple items in Xero in a single request. Returns: ItemID, Code, Name, UpdatedDateUTC, PurchaseDetails, SalesDetails. Required: Items (each item object requires Code).
xero_items_list_history
Retrieve history records for a specific item in Xero. Returns: HistoryRecordID, Details, DateUTC, User, Changes. Required: id.
xero_items_update_history
Create a history record for a specific item in Xero. Returns: HistoryRecordID, Details, DateUTC, User, Changes. Required: id.
create_a_xero_attachment
Upload an attachment to a Xero entity via multipart file upload. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: entity, entity_id, file_name.
list_all_xero_attachments
List all attachments for a Xero entity. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: entity, entity_id.
get_single_xero_attachment_by_id
Download the raw binary content of a specific Xero entity attachment by attachment id. Returns the file as binary data (application/octet-stream). Required: entity, entity_id, id.
xero_attachments_bulk_update
Upload or replace an attachment on a Xero repeating invoice by filename. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: repeating_invoice_id, file_name.
create_a_xero_manual_journal
Create a manual journal in Xero. Returns the created journal including ManualJournalID, Narration, Date, Status, LineAmountTypes, JournalLines, and UpdatedDateUTC. Required: Narration, JournalLines.
list_all_xero_manual_journals
List all manual journals in Xero. Returns an array of manual journal records each containing ManualJournalID, Narration, Date, Status, LineAmountTypes, JournalLines, and UpdatedDateUTC.
get_single_xero_manual_journal_by_id
Get a single manual journal in Xero by id. Returns ManualJournalID, Narration, Date, Status, LineAmountTypes, JournalLines, HasAttachments, and UpdatedDateUTC. Required: id.
list_all_xero_journals
List Xero journals ordered by JournalNumber. Returns: JournalID, JournalDate, JournalNumber, CreatedDateUTC, SourceID, SourceType, and JournalLines with per-line NetAmount and TaxAmount details.
get_single_xero_journal_by_id
Get a specific Xero journal by id. Returns: JournalID, JournalDate, JournalNumber, CreatedDateUTC, Reference, SourceID, SourceType, and JournalLines with per-line NetAmount and TaxAmount details. Required: id.
list_all_xero_balance_sheet
List the Xero Balance Sheet report for a given date and period configuration. Returns: ReportID, ReportName, ReportType, ReportDate, UpdatedDateUTC, ReportTitles, and Rows containing hierarchical line-item data. All parameters are optional; omitting date defaults to the current date.
list_all_xero_profit_and_loss
List the Profit and Loss report from Xero. Returns: ReportID, ReportName, ReportType, ReportDate, UpdatedDateUTC, ReportTitles, and Rows containing the financial line-item data. All parameters are optional; omitting date filters returns the current period.
list_all_xero_currencies
List all currencies configured for a Xero organisation. Returns: Code, Description. Optionally filter results with where or sort with order.
create_a_xero_currency
Create a new currency for a Xero organisation. Returns: Code, Description. Required: Code.
list_all_xero_contact_groups
List all xero contact groups. Returns: ContactGroupID, Name, Status, Contacts, HasValidationErrors. Optionally filter results with `where` or sort with `order`.
get_single_xero_contact_group_by_id
Get a specific xero contact group by id, including its full list of member contacts. Returns: ContactGroupID, Name, Status, Contacts, HasValidationErrors. Required: id.
create_a_xero_contact_group
Create a new xero contact group. Returns: ContactGroupID, Name, Status, Contacts, HasValidationErrors. Required: ContactGroups (each entry requires Name).
update_a_xero_contact_group_by_id
Update a specific xero contact group by id. Returns: ContactGroupID, Name, Status, Contacts, HasValidationErrors. Required: id, ContactGroups (each entry requires Name).
delete_a_xero_contact_group_by_id
Delete a xero contact group by id by setting its status to DELETED. Returns the deleted group's ContactGroupID, Name, Status, Contacts, HasValidationErrors. Required: id.
xero_contact_groups_bulk_update
Bulk create or update multiple contact groups in Xero in a single PUT request. Returns: ContactGroupID, Name, Status, Contacts for each affected group. Required: ContactGroups array with at least one entry containing Name.
list_all_xero_repeating_invoices
List all repeating invoice templates in Xero. Returns: RepeatingInvoiceID, Type, Status, Schedule, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, HasAttachments, ApprovedForSending, MarkAsSent.
get_single_xero_repeating_invoice_by_id
Get a single repeating invoice template in Xero by id. Returns: RepeatingInvoiceID, Type, Status, Schedule, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, Attachments. Required: id.
create_a_xero_repeating_invoice
Create one or more repeating invoice templates in Xero. Returns: RepeatingInvoiceID, Type, Status, Schedule, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, ApprovedForSending, MarkAsSent. Required: RepeatingInvoices.
delete_a_xero_repeating_invoice_by_id
Delete a repeating invoice template in Xero by setting its status to DELETED. Returns: RepeatingInvoiceID, Type, Status, Schedule, Contact, LineItems, SubTotal, Total, CurrencyCode. Required: id.
xero_repeating_invoices_bulk_update
Bulk update one or more repeating invoice templates in Xero. Returns: RepeatingInvoiceID, Type, Status, Schedule, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, ApprovedForSending, MarkAsSent. Required: RepeatingInvoices.
xero_repeating_invoices_list_attachments
List all attachments for a specific xero repeating invoice. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: id.
xero_repeating_invoices_list_history
Retrieve history records for a specific xero repeating invoice. Returns: Details, Changes, User, DateUTC. Required: id.
xero_repeating_invoices_update_history
Create a history note on a specific xero repeating invoice. Returns: Details, Changes, User, DateUTC. Required: id, HistoryRecords.
list_all_xero_budgets
List Xero budgets. Returns: BudgetID, Status, Description, Type, UpdatedDateUTC, BudgetLines, and Tracking for each budget. Optionally filter by IDs, DateFrom, or DateTo.
get_single_xero_budget_by_id
Retrieve a specific Xero budget by id, including full budget lines and tracking category assignments. Returns: BudgetID, Type, Description, UpdatedDateUTC, BudgetLines (with BudgetBalances per period), and Tracking. Required: id.
list_all_xero_bank_transfers
List all bank transfers in Xero. Returns: BankTransferID, Amount, FromBankAccount, ToBankAccount, Date, Reference, FromIsReconciled, ToIsReconciled, FromBankTransactionID, ToBankTransactionID, HasAttachments. Supports filtering via where and result ordering via order.
get_single_xero_bank_transfer_by_id
Get a specific Xero bank transfer by id. Returns: BankTransferID, Amount, FromBankAccount, ToBankAccount, Date, Reference, CurrencyRate, FromIsReconciled, ToIsReconciled, HasAttachments, Attachments. Required: id.
create_a_xero_bank_transfer
Create a new bank transfer in Xero between two bank accounts. Returns: BankTransferID, Amount, FromBankAccount, ToBankAccount, Date, Reference, FromIsReconciled, ToIsReconciled, FromBankTransactionID, ToBankTransactionID, HasAttachments. Required: FromBankAccount, ToBankAccount, Amount.
xero_bank_transfers_list_attachments
List attachments for a specific Xero bank transfer. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: id.
xero_bank_transfers_list_history
Retrieve the history of changes for a specific Xero bank transfer. Returns: Changes, Details, DateUTCString, DateUTC, User. Required: id.
xero_bank_transfers_update_history
Create a history note on a specific Xero bank transfer. Returns the created history record including Details, Changes, DateUTC, User, and ValidationErrors. Required: id.
list_all_xero_reports
List Xero reports by report name, returning the organisation's report data in ReportWithRows format. Returns: ReportID, ReportName, ReportType, ReportTitles, ReportDate, UpdatedDateUTC, and Rows (report-type-specific row data). Required: report_name.
list_all_xero_branding_themes
List all branding themes configured in Xero. Returns BrandingThemeID, Name, SortOrder, Type, LogoUrl, and CreatedDateUTC for each theme.
get_single_xero_branding_theme_by_id
Get a single Xero branding theme by id. Returns BrandingThemeID, Name, LogoUrl, Type, SortOrder, and CreatedDateUTC. Required: id.
list_all_xero_payment_services
List payment services associated with a specific xero branding theme. Returns: PaymentServiceID, PaymentServiceName, PaymentServiceUrl. Required: branding_theme_id.
list_all_xero_linked_transactions
List all linked transactions in Xero. Returns: LinkedTransactionID, SourceTransactionID, SourceLineItemID, Status, Type, UpdatedDateUTC.
get_single_xero_linked_transaction_by_id
Get a single linked transaction in Xero by id. Returns: LinkedTransactionID, SourceTransactionID, SourceLineItemID, ContactID, TargetTransactionID, TargetLineItemID, Status, Type, UpdatedDateUTC. Required: id.
create_a_xero_linked_transaction
Create a new linked transaction in Xero. Returns: LinkedTransactionID, SourceTransactionID, SourceLineItemID, ContactID, TargetTransactionID, TargetLineItemID, Status, Type, UpdatedDateUTC.
update_a_xero_linked_transaction_by_id
Update an existing linked transaction in Xero by id. Returns: LinkedTransactionID, SourceTransactionID, SourceLineItemID, ContactID, TargetTransactionID, TargetLineItemID, Status, Type, UpdatedDateUTC. Required: id.
list_all_xero_overpayments
List xero overpayments. Returns: OverpaymentID, Type, Status, Reference, RemainingCredit, Contact, SubTotal, TotalTax, Total, CurrencyCode, Date, UpdatedDateUTC, HasAttachments, LineItems, Allocations.
get_single_xero_overpayment_by_id
Get a specific xero overpayment by id. Returns: OverpaymentID, Type, Status, Reference, RemainingCredit, CurrencyRate, Contact, Allocations, Attachments, LineItems, SubTotal, TotalTax, Total, CurrencyCode, UpdatedDateUTC. Required: id.
xero_overpayments_list_history
Retrieve history records for a specific xero overpayment. Returns: HistoryRecordID, Details, DateUTC, Changes, User. Required: id.
xero_overpayments_bulk_update
Add history notes to a specific xero overpayment. Returns: HistoryRecordID, Details, DateUTC, Changes, User. Required: id, HistoryRecords.
list_all_xero_prepayments
List all Xero prepayments. Returns: PrepaymentID, Type, Status, Contact, Date, SubTotal, TotalTax, Total, RemainingCredit, CurrencyCode, and LineItems. Optionally filter by where clause or InvoiceNumbers.
get_single_xero_prepayment_by_id
Get a single Xero prepayment by id. Returns: PrepaymentID, Type, Status, Contact, LineItems, SubTotal, TotalTax, Total, RemainingCredit, Allocations, Attachments, and CurrencyCode. Required: id.
xero_prepayments_list_history
Retrieve history records for a specific Xero prepayment. Returns: Changes, DateUTC, Details, User, and ValidationErrors for each history entry. Required: id.
xero_prepayments_bulk_update
Create history notes for a specific Xero prepayment. Returns: Changes, DateUTC, Details, User, and ValidationErrors for each created history record. Required: id, HistoryRecords.
list_all_xero_quotes
List Xero sales quotes with optional filtering by date range, expiry date, contact, status, and quote number. Returns: QuoteID, QuoteNumber, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, ExpiryDate, UpdatedDateUTC.
get_single_xero_quote_by_id
Get a single Xero quote by its QuoteID. Returns: QuoteID, QuoteNumber, Reference, Terms, Contact, LineItems, Status, SubTotal, TotalTax, Total, CurrencyCode, ExpiryDate, UpdatedDateUTC. Required: id.
create_a_xero_quote
Create or update one or more Xero quotes. Returns: Id, Status, ProviderName, and a Quotes array of created or updated quote objects (each containing QuoteID, QuoteNumber, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, UpdatedDateUTC). Required: Quotes array; each item requires Contact (with ContactID) and LineItems.
xero_quotes_download
Download a Xero quote as a PDF file from GET /Quotes/{id}/pdf. Returns binary PDF content (application/pdf). Required: quote_id.
update_a_xero_quote_by_id
Update a specific Xero quote by its QuoteID. Returns: QuoteID, QuoteNumber, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, UpdatedDateUTC, LineAmountTypes. Required: id.
xero_quotes_bulk_update
Bulk create or update one or more Xero quotes in a single request. Returns the processed Quote objects including QuoteID, Status, Total, SubTotal, and UpdatedDateUTC. Required: Quotes.
xero_quotes_list_attachments
Retrieve all attachments for a specific Xero quote. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: id.
xero_quotes_list_history
Retrieve all history records for a specific Xero quote. Returns: Changes, DateUTC, User, Details. Required: id.
xero_quotes_update_history
Create a history record for a specific Xero quote. Returns the created HistoryRecord including Changes, DateUTC, User, and Details. Required: id, HistoryRecords.
list_all_xero_history_and_notes
List history records and notes for a Xero resource identified by its endpoint type and GUID. Returns an array of history records including Details, Changes, User, and DateUTC. Required: endpoint_name, endpoint_guid.
create_a_xero_history_and_note
Create a history note on a Xero resource identified by its endpoint type and GUID. Returns the created history record including Details, Changes, User, and DateUTC. Required: endpoint_name, endpoint_guid.
list_all_xero_receipts
List draft expense claim receipts in Xero. Returns: ReceiptID, ReceiptNumber, Status, User, Contact, Date, UpdatedDateUTC, Reference, LineAmountTypes, LineItems, SubTotal, TotalTax, Total, HasAttachments.
get_single_xero_receipt_by_id
Get a specific draft expense claim receipt in Xero by id. Returns: ReceiptID, ReceiptNumber, Status, User, Contact, Date, UpdatedDateUTC, Reference, LineItems, SubTotal, TotalTax, Total, HasAttachments, Attachments. Required: id.
create_a_xero_receipt
Update a specific draft expense claim receipt in Xero by id. Returns: ReceiptID, ReceiptNumber, Status, User, Contact, Date, UpdatedDateUTC, Reference, LineItems, SubTotal, TotalTax, Total, HasAttachments. Required: id.
xero_receipts_bulk_update
Create or update multiple draft expense claim receipts in Xero in bulk. Returns: ReceiptID, ReceiptNumber, Status, User, Contact, Date, UpdatedDateUTC, Reference, LineItems, SubTotal, TotalTax, Total, HasAttachments.
xero_receipts_list_attachments
List attachments for a specific draft expense claim receipt in Xero. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: id.
xero_receipts_list_history
List history records for a specific receipt in Xero. Returns: Details, Changes, User, DateUTC, DateUTCString for each recorded event. Required: id.
xero_receipts_update_history
Create a history record for a specific receipt in Xero. Returns: Details, Changes, User, DateUTC, DateUTCString. Required: id and a HistoryRecords request body.
list_all_xero_expense_claims
List all expense claims in Xero. Returns: ExpenseClaimID, Status, Total, AmountDue, AmountPaid, User, Receipts, Payments, UpdatedDateUTC, ReportingDate. Optionally filter results with where or sort with order.
get_single_xero_expense_claim_by_id
Get a specific expense claim in Xero by id. Returns: ExpenseClaimID, Status, Total, AmountDue, AmountPaid, User, Receipts (with full LineItems detail), Payments, UpdatedDateUTC, ReportingDate. Required: id.
create_a_xero_expense_claim
Update a specific expense claim in Xero by id. Returns: ExpenseClaimID, Status, Total, AmountDue, AmountPaid, User, Receipts, Payments, UpdatedDateUTC, ReportingDate. Required: id, ExpenseClaims.
xero_expense_claims_bulk_update
Create or update multiple expense claims in Xero in bulk. Returns: ExpenseClaimID, Status, Total, AmountDue, AmountPaid, User, Receipts, Payments, UpdatedDateUTC, ReportingDate. Required: ExpenseClaims.
xero_expense_claims_list_history
Retrieve history records for a specific expense claim in Xero. Returns: HistoryRecordID, Details, Changes, User, DateUTC. Required: id.
xero_expense_claims_update_history
Create a history record for a specific expense claim in Xero. Returns the created history record including Details, Changes, User, and DateUTC. Required: id.
list_all_xero_accounts_accounts
List Xero accounts. Returns: id, attributes.
get_single_xero_accounts_account_by_id
Get a single Xero account by id. Returns: id, attributes. Required: id.
create_a_xero_accounts_account
Create a Xero account. Returns the created account record. Returns: id, attributes. Required: id.
get_single_xero_attachments_account_by_id
Get a specific attachment for a xero account by id. Returns: id. Required: account_id, id.
create_a_xero_attachments_account
Upload a new attachment to a xero account via multipart form data. Returns: id. Required: account_id, file_name.
xero_attachments_accounts_bulk_update
Update an existing attachment on a xero account via multipart form data, identified by file name. Returns: id. Required: account_id, file_name.
get_single_xero_attachments_banktransaction_by_id
Get a specific attachment for a bank transaction in Xero by attachment id. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: bank_transaction_id, id.
create_a_xero_attachments_banktransaction
Upload a new attachment to a bank transaction in Xero using a multipart request. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: bank_transaction_id, file_name.
xero_attachments_banktransactions_bulk_update
Replace an existing attachment on a bank transaction in Xero using a multipart request. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: bank_transaction_id, file_name.
get_single_xero_attachments_banktransfer_by_id
Download the file content of an attachment from a Xero bank transfer by attachment ID. Returns the raw file content as an opaque binary blob, not a structured JSON response. Required: bank_transfer_id, id.
create_a_xero_attachments_banktransfer
Upload a new attachment to a Xero bank transfer. Returns the created attachment object including AttachmentID, FileName, Url, MimeType, and ContentLength. Required: bank_transfer_id, file_name.
xero_attachments_banktransfers_bulk_update
Update (replace) an existing attachment on a Xero bank transfer by filename. Returns the updated attachment object including AttachmentID, FileName, Url, MimeType, and ContentLength. Required: bank_transfer_id, file_name.
get_single_xero_attachments_contact_by_id
Get a single attachment for a Xero contact by attachment id. Returns: AttachmentID, FileName. Required: contact_id, id.
create_a_xero_attachments_contact
Upload a new attachment to a Xero contact using multipart form data. Returns: AttachmentID, FileName. Required: contact_id, file_name.
xero_attachments_contacts_bulk_update
Update an existing attachment on a Xero contact using multipart form data. Returns: AttachmentID, FileName. Required: contact_id, file_name.
get_single_xero_attachments_creditnote_by_id
Get a specific attachment on a Xero credit note by its identifier. Returns: AttachmentID, FileName, Url, MimeType, ContentLength, IncludeOnline. Required: credit_note_id, id.
create_a_xero_attachments_creditnote
Upload a new attachment to a Xero credit note using multipart file upload. Returns: AttachmentID, FileName, Url, MimeType, ContentLength, IncludeOnline. Required: credit_note_id, file_name.
xero_attachments_creditnotes_bulk_update
Update an existing attachment on a Xero credit note by uploading replacement file content via multipart. Returns: AttachmentID, FileName, Url, MimeType, ContentLength, IncludeOnline. Required: credit_note_id, file_name.
get_single_xero_attachments_invoice_by_id
Get a single attachment for a Xero invoice by attachment id. Returns: id, FileName. Required: invoice_id, id.
create_a_xero_attachments_invoice
Upload a new file attachment to a Xero invoice. Returns: id, FileName. Required: invoice_id, file_name.
xero_attachments_invoices_bulk_update
Replace the content of an existing attachment on a Xero invoice. Returns: id, FileName. Required: invoice_id, file_name.
get_single_xero_attachments_manualjournal_by_id
Get a specific attachment for a Xero manual journal by attachment ID. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: manual_journal_id, id.
create_a_xero_attachments_manualjournal
Upload a new attachment to a Xero manual journal. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: manual_journal_id, file_name, file.
xero_attachments_manualjournals_bulk_update
Replace an existing attachment on a Xero manual journal with new file content. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: manual_journal_id, file_name, file.
get_single_xero_attachments_purchaseorder_by_id
Get an attachment for a Xero purchase order by attachment id, returning the raw binary file content. Required: purchase_order_id, id.
create_a_xero_attachments_purchaseorder
Upload a new attachment to a Xero purchase order. Returns: AttachmentID, FileName, Url, MimeType, ContentLength, IncludeOnline. Required: purchase_order_id, file_name.
xero_attachments_purchaseorders_bulk_update
Replace (update) an existing attachment on a Xero purchase order by file name. Returns: AttachmentID, FileName, Url, MimeType, ContentLength, IncludeOnline. Required: purchase_order_id, file_name.
get_single_xero_attachments_quote_by_id
Get a specific attachment on a Xero quote by attachment id. Returns: AttachmentID, FileName. Required: quote_id, id.
create_a_xero_attachments_quote
Upload a new attachment to a Xero quote using multipart file upload. Returns: AttachmentID, FileName. Required: quote_id, file_name.
xero_attachments_quotes_bulk_update
Replace an existing attachment on a Xero quote by uploading new file content via multipart. Returns: AttachmentID, FileName. Required: quote_id, file_name.
get_single_xero_attachments_receipt_by_id
Get a specific attachment for a Xero receipt by attachment ID. Returns: AttachmentID, FileName, Url, MimeType, ContentLength, IncludeOnline. Required: receipt_id, id.
create_a_xero_attachments_receipt
Upload a new attachment to a Xero receipt via multipart file upload, using the file name in the path. Returns: AttachmentID, FileName, Url, MimeType, ContentLength, IncludeOnline. Required: receipt_id, file_name.
xero_attachments_receipts_bulk_update
Replace an existing attachment on a Xero receipt via multipart file upload, identified by file name. Returns: AttachmentID, FileName, Url, MimeType, ContentLength, IncludeOnline. Required: receipt_id, file_name.
get_single_xero_attachments_repeatinginvoice_by_id
Get a single attachment for a Xero repeating invoice by attachment id. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: repeating_invoice_id, id.
create_a_xero_attachments_repeatinginvoice
Upload a file attachment to a Xero repeating invoice via multipart request. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: repeating_invoice_id, file_name.
get_single_xero_bank_transactions_banktransaction_by_id
Get a single Xero bank transaction by id. Returns the full transaction record including BankTransactionID, Type, Status, Contact, LineItems, BankAccount, IsReconciled, Date, Reference, CurrencyCode, SubTotal, TotalTax, Total, UpdatedDateUTC, and HasAttachments. Required: id.
list_all_xero_bank_transactions_banktransactions
List all Xero bank transactions. Returns an array of transaction records each including BankTransactionID, Type, Status, Contact, LineItems, BankAccount, IsReconciled, Date, Reference, CurrencyCode, SubTotal, TotalTax, Total, UpdatedDateUTC, and HasAttachments.
create_a_xero_bank_transactions_banktransaction
Create a new Xero bank transaction. Returns the created transaction record including BankTransactionID, Type, Status, Contact, LineItems, BankAccount, IsReconciled, Date, Reference, SubTotal, TotalTax, Total, and UpdatedDateUTC. Required: Type, Contact, LineItems, BankAccount.
list_all_xero_batch_payments
List batch payments in Xero, returning an array of batch payment objects. Returns: BatchPaymentID, Account, Reference, Status, TotalAmount, Type, Payments, UpdatedDateUTC, IsReconciled. Use `where` to filter by any element or `order` to sort results.
get_single_xero_batch_payment_by_id
Get a specific Xero batch payment by id. Returns: BatchPaymentID, Account, Reference, Status, TotalAmount, Type, Date, Payments, UpdatedDateUTC, IsReconciled. Required: id.
create_a_xero_batch_payment
Update the status of a batch payment in Xero (for example, marking it as DELETED). Returns: BatchPaymentID, Account, Status, TotalAmount, Type, Date, IsReconciled. Required: BatchPaymentID, Status.
update_a_xero_batch_payment_by_id
Update a specific Xero batch payment's status by id, for example setting it to DELETED. Returns: BatchPaymentID, Account, Status, TotalAmount, Type, Date, IsReconciled. Required: id, Status.
xero_batch_payments_bulk_update
Create one or many batch payments for invoices in Xero. Returns: BatchPaymentID, Account, Reference, Status, TotalAmount, Type, Date, Payments, UpdatedDateUTC, IsReconciled. Required: BatchPayments.
xero_batch_payments_list_history
Retrieve history records for a specific batch payment in Xero. Returns: Changes, User, Details, DateUTC, DateUTCString. Required: id.
xero_batch_payments_update_history
Create a history record for a specific batch payment in Xero. Returns: Details, DateUTC, DateUTCString, ValidationErrors. Required: id, HistoryRecords.
list_all_xero_bank_transfers_banktransfers
List all bank transfers in Xero. Returns: BankTransferID, Amount, Date, FromBankAccount, ToBankAccount, CurrencyRate, Reference, FromIsReconciled, ToIsReconciled, HasAttachments, and CreatedDateUTC.
get_single_xero_bank_transfers_banktransfer_by_id
Get a single Xero bank transfer by id. Returns: BankTransferID, Amount, Date, FromBankAccount, ToBankAccount, CurrencyRate, Reference, FromIsReconciled, ToIsReconciled, HasAttachments, and CreatedDateUTC. Required: id.
list_all_xero_branding_themes
List all branding themes in Xero. Returns: BrandingThemeID, Name, SortOrder, CreatedDateUTC.
get_single_xero_branding_theme_by_id
Get a specific Xero branding theme by its unique identifier. Returns: BrandingThemeID, Name, SortOrder, CreatedDateUTC. Required: id.
list_all_xero_payment_services
List payment services associated with a specific Xero branding theme. Returns: PaymentServiceID, PaymentServiceName, PaymentServiceType, PaymentServiceUrl, PayNowText. Required: branding_theme_id.
create_a_xero_payment_service
Create a new custom payment service for a specific Xero branding theme. Returns: PaymentServiceID, PaymentServiceName, PaymentServiceType, PaymentServiceUrl, PayNowText. Required: branding_theme_id.
xero_payment_services_bulk_update
Bulk update payment services in Xero. Returns: PaymentServiceID, PaymentServiceName, PaymentServiceType, PaymentServiceUrl, PayNowText.
list_all_xero_payment_services_paymentservices
List all payment services configured in Xero. Returns: PaymentServiceID, PaymentServiceName, PaymentServiceUrl, PaymentServiceType, and PayNowText for each configured payment service.
list_all_xero_budgets_budgets
List all budgets in Xero. Returns: BudgetID, Type, Description, UpdatedDateUTC, BudgetLines, and Tracking details for each budget.
get_single_xero_budgets_budget_by_id
Get a single Xero budget by id. Returns: BudgetID, Type, Description, UpdatedDateUTC, BudgetLines, and Tracking details. Required: id.
list_all_xero_credit_notes
List credit notes in Xero. Returns: CreditNoteID, CreditNoteNumber, Type, Status, Contact, Date, SubTotal, TotalTax, Total, RemainingCredit, CurrencyCode, and UpdatedDateUTC. Optionally filter with where and sort with order.
get_single_xero_credit_note_by_id
Get a specific Xero credit note by id. Returns: CreditNoteID, CreditNoteNumber, Type, Status, Contact, LineItems, SubTotal, TotalTax, Total, Attachments, CurrencyCode, and UpdatedDateUTC. Required: id.
create_a_xero_credit_note
Create or update one or more credit notes in Xero. Returns: CreditNoteID, Type, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, RemainingCredit, and UpdatedDateUTC.
update_a_xero_credit_note_by_id
Update a specific Xero credit note by id via POST. Returns: CreditNoteID, Type, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, RemainingCredit, and UpdatedDateUTC. Required: id.
xero_credit_notes_bulk_update
Create new credit notes in bulk in Xero via PUT. Returns: CreditNoteID, Type, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, RemainingCredit, and UpdatedDateUTC.
xero_credit_notes_list_attachments
List all attachments for a specific Xero credit note. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: id.
xero_credit_notes_list_history
Retrieve history records for a specific Xero credit note. Returns: Changes, DateUTCString, Details, User. Required: id.
xero_credit_notes_update_history
Add a history note to a specific Xero credit note. Returns: Changes, DateUTCString, Details, User. Required: id, HistoryRecords.
list_all_xero_contact_groups_contactgroups
List all contact groups in Xero. Returns a collection of contact group records; each record includes id.
get_single_xero_contact_groups_contactgroup_by_id
Get a single Xero contact group by id. Returns: id. Required: id.
create_a_xero_contact_groups_contactgroup
Create or update a Xero contact group identified by id. Returns: id. Required: id.
list_all_xero_contacts_contacts
List contacts in xero. Returns contact records including ContactID, Name, EmailAddress, ContactStatus, IsSupplier, IsCustomer, and UpdatedDateUTC.
create_a_xero_contacts_contact
Create a new contact in xero. Returns the created contact including ContactID, Name, EmailAddress, ContactStatus, IsSupplier, IsCustomer, and UpdatedDateUTC. Required: Name.
update_a_xero_contacts_contact_by_id
Update an existing xero contact by id. Returns the updated contact including ContactID, Name, EmailAddress, ContactStatus, IsSupplier, IsCustomer, and UpdatedDateUTC. Required: id.
xero_contacts_contacts_bulk_update
Bulk upsert multiple contacts in xero in a single request. Returns the resulting contact records including ContactID, Name, EmailAddress, ContactStatus, IsSupplier, IsCustomer, and UpdatedDateUTC.
list_all_xero_cis_settings
List CIS settings for a specific contact in Xero. Returns: CISContractorEnabled, CISSubContractorEnabled, Rate. Required: contact_id.
list_all_xero_cis_settings_cissettings
List CIS (Construction Industry Scheme) settings for a Xero organisation. Returns: CISEnabled, IsContractor, IsSubcontractor. Required: organisation_id.
list_all_xero_pdfs
Download a Xero credit note as a PDF file. Returns binary PDF data (application/pdf) for the specified credit note. Required: credit_note_id.
list_all_xero_pdfs_pdf
Download the PDF representation of a Xero invoice. Returns the invoice as binary PDF content (application/pdf), which cannot be enumerated as structured fields. Required: invoice_id.
delete_a_xero_allocation_by_id
Delete an allocation from a xero overpayment by id. Returns the soft-deleted allocation record including AllocationID, Date, Invoice, and IsDeleted (set to true). Required: overpayment_id, id.
xero_allocations_bulk_update
Create or update allocations for a xero overpayment in bulk. Returns the resulting allocation records including AllocationID, Date, Invoice, and IsDeleted. Required: overpayment_id.
delete_a_xero_allocations_creditnote_by_id
Delete a specific allocation from a xero credit note. Returns an empty 204 response on success. Required: credit_note_id, id.
xero_allocations_creditnotes_bulk_update
Bulk update allocations on a xero credit note by replacing the full allocation set via PUT. Returns updated allocation records including id. Required: credit_note_id.
delete_a_xero_allocations_prepayment_by_id
Delete a specific allocation from a prepayment in Xero. Returns an empty 204 response on success. Required: prepayment_id, id.
xero_allocations_prepayments_bulk_update
Bulk update (replace) allocations for a prepayment in Xero by submitting the full allocation set via PUT. Returns the updated allocation objects including AllocationID, Amount, and Date. Required: prepayment_id.
list_all_xero_currencies_currencies
List all currencies configured in the xero organisation. Returns: Code, Description.
list_all_xero_expense_claims_expenseclaims
List expense claims in Xero. Returns: ExpenseClaimID, Status, Total, AmountDue, AmountPaid, User, Receipts, UpdatedDateUTC, PaymentDueDate, ApprovalDate.
list_all_xero_invoices_invoices
List invoices from Xero. Returns: InvoiceID, Type, Status, Contact, Total, AmountDue, AmountPaid, InvoiceNumber, CurrencyCode, LineItems, and UpdatedDateUTC.
get_single_xero_invoices_invoice_by_id
Get a single Xero invoice by id. Returns: InvoiceID, Type, Status, Contact, LineItems, SubTotal, TotalTax, Total, AmountDue, AmountPaid, InvoiceNumber, CurrencyCode, and UpdatedDateUTC. Required: id.
create_a_xero_invoices_invoice
Create a new invoice in Xero. Returns: InvoiceID, Type, Status, Contact, LineItems, SubTotal, TotalTax, Total, AmountDue, InvoiceNumber, and CurrencyCode. Required: Type, Contact, LineItems.
update_a_xero_invoices_invoice_by_id
Update an existing invoice in Xero by id. Returns: InvoiceID, Type, Status, Contact, LineItems, SubTotal, TotalTax, Total, AmountDue, InvoiceNumber, CurrencyCode, and UpdatedDateUTC. Required: id.
list_all_xero_online_invoices
List online invoice URLs for a Xero invoice. Returns: OnlineInvoiceUrl (the publicly accessible URL to view the invoice online). Required: invoice_id.
create_a_xero_email
Send a copy of a specific Xero invoice to the related contact via email. Returns an empty 204 response on success. Required: invoice_id.
list_all_xero_invoice_reminders_settings
List invoice reminder settings in Xero. Returns: Enabled (whether invoice reminders are switched on). No required parameters.
list_all_xero_items_items
List all inventory items in Xero. Returns: ItemID, Code, Name, Description, IsSold, IsPurchased, QuantityOnHand, UpdatedDateUTC, SalesDetails, and PurchaseDetails.
get_single_xero_items_item_by_id
Get a single Xero inventory item by id. Returns: ItemID, Code, Name, Description, IsSold, IsPurchased, QuantityOnHand, UpdatedDateUTC, SalesDetails, and PurchaseDetails. Required: id.
create_a_xero_items_item
Create a new inventory item in Xero. Returns: ItemID, Code, Name, Description, IsSold, IsPurchased, QuantityOnHand, UpdatedDateUTC, SalesDetails, and PurchaseDetails. Required: Code.
list_all_xero_journals_journals
List all journals in Xero. Returns journal records including JournalID, JournalDate, JournalNumber, CreatedDateUTC, Reference, SourceType, ShowOnCashBasisReports, and JournalLines.
get_single_xero_journals_journal_by_id
Get a single Xero journal by id. Returns: JournalID, JournalDate, JournalNumber, CreatedDateUTC, Reference, SourceType, ShowOnCashBasisReports, and JournalLines. Required: id.
list_all_xero_linked_transactions
List xero linked transactions (billable expenses) with optional filters. Returns: LinkedTransactionID, SourceTransactionID, SourceLineItemID, ContactID, TargetTransactionID, TargetLineItemID, Status, Type, UpdatedDateUTC, SourceTransactionTypeCode.
get_single_xero_linked_transaction_by_id
Get a specific xero linked transaction (billable expense) by id. Returns: LinkedTransactionID, SourceTransactionID, SourceLineItemID, ContactID, TargetTransactionID, TargetLineItemID, Status, Type, UpdatedDateUTC, SourceTransactionTypeCode. Required: id.
delete_a_xero_linked_transaction_by_id
Delete a specific xero linked transaction (billable expense) by id. Returns an empty 204 response on success. Required: id.
xero_linked_transactions_bulk_update
Create or update multiple xero linked transactions (billable expenses) in a single call. Returns: LinkedTransactionID, SourceTransactionID, SourceLineItemID, ContactID, TargetTransactionID, TargetLineItemID, Status, Type, UpdatedDateUTC, SourceTransactionTypeCode.
update_a_xero_linked_transaction_by_id
Update a specific xero linked transaction (billable expense) identified by id. Returns: LinkedTransactionID, SourceTransactionID, SourceLineItemID, ContactID, TargetTransactionID, TargetLineItemID, Status, Type, UpdatedDateUTC, SourceTransactionTypeCode. Required: id.
list_all_xero_manual_journals
List manual journals in Xero. Returns: ManualJournalID, Narration, Status, Date, UpdatedDateUTC, JournalLines, ShowOnCashBasisReports, HasAttachments. Use `where` to filter by any element and `order` to sort results.
get_single_xero_manual_journal_by_id
Get a specific manual journal in Xero by id. Returns: ManualJournalID, Narration, Status, Date, JournalLines, Attachments, ShowOnCashBasisReports, HasAttachments, UpdatedDateUTC. Required: id.
create_a_xero_manual_journal
Create a manual journal in Xero. Returns: ManualJournalID, Narration, Status, Date, JournalLines, ShowOnCashBasisReports, UpdatedDateUTC, Warnings, ValidationErrors. Required: Narration, JournalLines.
update_a_xero_manual_journal_by_id
Update a specific manual journal in Xero by id. Returns: ManualJournalID, Narration, Status, Date, JournalLines, UpdatedDateUTC, ShowOnCashBasisReports, HasAttachments, Warnings, ValidationErrors. Required: id.
xero_manual_journals_bulk_update
Create or update one or more manual journals in Xero in a single request. Returns: ManualJournalID, Narration, Status, Date, JournalLines, ShowOnCashBasisReports, UpdatedDateUTC, Warnings, ValidationErrors. Required: Narration, JournalLines in each journal entry.
xero_manual_journals_list_attachments
List all attachments for a specific xero manual journal. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: id.
xero_manual_journals_list_history
Retrieve history records for a specific xero manual journal. Returns: Details, Changes, User, DateUTC. Required: id.
xero_manual_journals_update_history
Create a history record for a specific xero manual journal. Returns: Details, Changes, User, DateUTC. Required: id, HistoryRecords.
list_all_xero_organisations
List Xero organisations associated with the authenticated account. Returns: OrganisationID, Name, LegalName, BaseCurrency, CountryCode, OrganisationStatus, Edition, Class, PaysTax, OrganisationType, Timezone, CreatedDateUTC, and additional financial and address details.
list_all_xero_organisation_actions
List the key actions the connected Xero organisation permits the app to perform. Returns each action's Name and Status (e.g., ALLOWED).
list_all_xero_overpayments_overpayments
List all overpayments in Xero. Returns: OverpaymentID, Type, Status, Contact, Date, Total, SubTotal, TotalTax, RemainingCredit, CurrencyCode, UpdatedDateUTC, Allocations, Payments, HasAttachments.
get_single_xero_overpayments_overpayment_by_id
Get a single Xero overpayment by id. Returns: OverpaymentID, Type, Status, Contact, Date, Total, SubTotal, TotalTax, RemainingCredit, CurrencyCode, LineItems, Allocations, Payments, HasAttachments. Required: id.
list_all_xero_payments_payments
List all payments in Xero. Returns: PaymentID, Date, Amount, Status, Reference, CurrencyRate, PaymentType, Invoice, Account, IsReconciled, UpdatedDateUTC.
get_single_xero_payments_payment_by_id
Get a single Xero payment by id. Returns: PaymentID, Date, Amount, Status, Reference, CurrencyRate, PaymentType, Invoice, Account, IsReconciled, UpdatedDateUTC. Required: id.
create_a_xero_payments_payment
Create a payment in Xero against an invoice or credit note. Returns: PaymentID, Date, Amount, Status, Reference, Invoice, Account, IsReconciled, UpdatedDateUTC. Required: Invoice, Account, Date, Amount.
list_all_xero_prepayments_prepayments
List xero prepayments. Returns: PrepaymentID, Type, Contact, Date, Status, SubTotal, TotalTax, Total, CurrencyCode, RemainingCredit, HasAttachments, UpdatedDateUTC.
get_single_xero_prepayments_prepayment_by_id
Get a single xero prepayment by id. Returns: PrepaymentID, Type, Contact, Date, Status, SubTotal, TotalTax, Total, CurrencyCode, RemainingCredit, HasAttachments, UpdatedDateUTC, LineItems, Allocations, Reference. Required: id.
list_all_xero_purchase_orders
List xero purchase orders, optionally filtering by status or date range. Returns: PurchaseOrderID, PurchaseOrderNumber, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, UpdatedDateUTC, HasAttachments.
get_single_xero_purchase_order_by_id
Get a single xero purchase order by id. Returns: PurchaseOrderID, PurchaseOrderNumber, Status, Contact, LineItems, SubTotal, TotalTax, Total, DeliveryDate, DeliveryAddress, Reference, BrandingThemeID, HasAttachments, Attachments. Required: id.
create_a_xero_purchase_order
Create one or more purchase orders in xero. Returns: PurchaseOrderID, PurchaseOrderNumber, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, UpdatedDateUTC, ValidationErrors. Required: PurchaseOrders array, each item containing Contact with ContactID.
update_a_xero_purchase_order_by_id
Update a specific xero purchase order by id. Returns: PurchaseOrderID, PurchaseOrderNumber, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, UpdatedDateUTC, ValidationErrors. Required: id.
xero_purchase_orders_bulk_update
Create one or more xero purchase orders in bulk using PUT. Returns: PurchaseOrderID, PurchaseOrderNumber, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, UpdatedDateUTC, ValidationErrors. Required: PurchaseOrders array, each item containing Contact with ContactID.
xero_purchase_orders_list_attachments
List attachments for a specific Xero purchase order. Returns: AttachmentID, FileName, Url, MimeType, ContentLength. Required: id.
xero_purchase_orders_list_history
List history records for a specific Xero purchase order. Returns: Changes, DateUTC, Details, User, ValidationErrors. Required: id.
xero_purchase_orders_update_history
Create a history note on a specific Xero purchase order. Returns: Changes, DateUTC, Details, User, ValidationErrors. Required: id.
xero_purchase_orders_download
Download a Xero purchase order as a PDF file from GET /PurchaseOrders/{id}/pdf. Returns binary PDF content (application/pdf). Required: purchase_order_id.
list_all_xero_quotes_quotes
List quotes in Xero. Returns: QuoteID, QuoteNumber, Status, Contact, Date, ExpiryDate, SubTotal, TotalTax, Total, CurrencyCode, LineItems, and UpdatedDateUTC. Optionally filter by ContactID, Status, date ranges, or QuoteNumber.
get_single_xero_quotes_quote_by_id
Get a single Xero quote by id. Returns: QuoteID, QuoteNumber, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, Date, ExpiryDate, and UpdatedDateUTC. Required: id.
create_a_xero_quotes_quote
Create a new quote in Xero. Returns: QuoteID, QuoteNumber, Status, Contact, LineItems, SubTotal, TotalTax, Total, CurrencyCode, Date, ExpiryDate, and UpdatedDateUTC. Required: Contact, LineItems.
list_all_xero_receipts_receipts
List receipts from the Xero Accounting API. Returns receipt objects comprising id and attributes; the attributes object contains receipt-specific fields defined by the Xero accounting schema — consult Xero's official Receipts documentation for the full field-level breakdown.
list_all_xero_repeating_invoices_repeatinginvoices
List all repeating invoices in Xero. Returns a collection of repeating invoice records including RepeatingInvoiceID, Type, Contact, Schedule, Status, SubTotal, TotalTax, and Total.
get_single_xero_repeating_invoices_repeatinginvoice_by_id
Get a single Xero repeating invoice by id. Returns the full repeating invoice record including RepeatingInvoiceID, Type, Contact, Schedule, LineItems, Status, SubTotal, TotalTax, and Total. Required: id.
create_a_xero_repeating_invoices_repeatinginvoice
Create a new repeating invoice in Xero. Returns the created repeating invoice including RepeatingInvoiceID, Type, Contact, Schedule, Status, SubTotal, TotalTax, and Total. Required: Type, Contact, Schedule, LineItems.
list_all_xero_reports_ten_ninety_nines
List 1099 reports from Xero. Returns: ReportName, ReportDate, Fields, and Contacts (including Box1–Box14 amounts, Name, TaxID, ContactId, LegalName, BusinessName, FederalTaxIDType, and FederalTaxClassification). Optionally filter by reportYear.
list_all_xero_reports_aged_payables_by_contacts
Retrieve the Aged Payables by Contact report in xero for a specific contact. Returns: ReportName, ReportType, ReportDate, ReportTitles, UpdatedDateUTC, Fields, and Rows containing invoice line data grouped by date section. Required: contact_id.
list_all_xero_reports_aged_receivables_by_contacts
Retrieve the Aged Receivables By Contact report from Xero for a specific contact. Returns: ReportName, ReportType, ReportDate, UpdatedDateUTC, ReportTitles, Fields, and Rows containing invoice transaction data (dates, amounts, paid, credited, and due balances). Required: contact_id.
list_all_xero_reports_balance_sheets
Retrieve the Xero Balance Sheet report for an organisation. Returns a report object including ReportName, ReportType, ReportTitles, ReportDate, UpdatedDateUTC, Fields, and Rows containing sectioned financial data (assets, liabilities, equity). All parameters are optional.
list_all_xero_reports_bank_summaries
List the Bank Summary report from Xero showing bank account activity over a date range. Returns: ReportName, ReportType, ReportDate, UpdatedDateUTC, ReportTitles, Fields, and Rows containing per-account opening balance, cash received, cash spent, and closing balance. Optionally filter by fromDate and toDate.
list_all_xero_reports_budget_summaries
List Xero budget summary reports comparing budget data across periods. Returns: ReportName, ReportType, ReportTitles, ReportDate, UpdatedDateUTC, Fields, and Rows containing period-by-period budget values (gross profit, total expenses, net profit). All filter parameters are optional.
list_all_xero_reports_executive_summaries
List xero Executive Summary reports for a given date. Returns: ReportName, ReportType, ReportTitles, ReportDate, UpdatedDateUTC, Fields, and Rows containing sectioned financial data (Cash, Profitability, Balance Sheet, Income, Performance, Position).
list_all_xero_reports_profit_and_loses
Retrieve the Profit and Loss report from Xero. Returns: ReportID, ReportName, ReportType, ReportDate, UpdatedDateUTC, ReportTitles, and Rows. All parameters are optional; filter by date range, periods, timeframe, or tracking category and option IDs.
list_all_xero_reports_trial_balances
Retrieve the Trial Balance report from Xero. Returns: ReportName, ReportType, ReportDate, ReportTitles, UpdatedDateUTC, Fields, and Rows containing sectioned account debit/credit data. No parameters are required; optionally filter by date or restrict to cash-only basis using paymentsOnly.
create_a_xero_setup
Set the chart of accounts, conversion date, and conversion balances for a Xero organisation. Returns: Id, Status, ProviderName, DateTimeUTC, and ImportSummary containing account-level counts (Total, New, Updated, Deleted, Errored, NewOrUpdated) and an Organisation presence indicator.
list_all_xero_tax_rates
List tax rates in Xero, with optional filtering and ordering. Returns: Name, TaxType, ReportTaxType, Status, DisplayTaxRate, EffectiveRate, and TaxComponents per rate.
create_a_xero_tax_rate
Create tax rates in Xero. Returns: Name, TaxType, ReportTaxType, Status, DisplayTaxRate, EffectiveRate, and TaxComponents for each created rate. Required: TaxRates.
xero_tax_rates_bulk_update
Bulk update tax rates in Xero. Returns: Name, TaxType, ReportTaxType, Status, DisplayTaxRate, EffectiveRate, and TaxComponents for each updated rate. Required: TaxRates.
list_all_xero_tax_rates_taxrates
List Xero tax rates filtered by tax type. Returns: Name, TaxType, Status, DisplayTaxRate, EffectiveRate, TaxComponents, CanApplyToAssets, CanApplyToExpenses, CanApplyToRevenue. Required: tax_type.
xero_options_bulk_update
Create one or more tracking options for a tracking category (PUT /TrackingCategories/{id}/Options). Returns: TrackingOptionID, Name, Status, HasValidationErrors, IsDeleted, IsArchived, and IsActive for each option. Required: tracking_category_id.
delete_a_xero_option_by_id
Delete a specific tracking option from a Xero tracking category. Returns the full response envelope including Id, Status, DateTimeUTC, and the remaining Options array with each option's TrackingOptionID, Name, Status, IsDeleted, IsArchived, and IsActive. Required: tracking_category_id, tracking_option_id.
update_a_xero_option_by_id
Update a specific tracking option for a tracking category (POST /TrackingCategories/{id}/Options/{optionId}). Returns: TrackingOptionID, Name, Status, HasValidationErrors, IsDeleted, IsArchived, and IsActive. Required: tracking_category_id, id.
list_all_xero_reports_reports
List available reports in Xero. Returns a collection of report objects; the fields of each report object are specific to the report type — consult the Xero API documentation for a full field-level breakdown. No required parameters.
list_all_xero_tracking_categories_trackingcategories
List all tracking categories in Xero. Returns: TrackingCategoryID, Name, Status, and Options for each category in the organisation.
get_single_xero_tracking_categories_trackingcategory_by_id
Get a single Xero tracking category by id. Returns: TrackingCategoryID, Name, Status, and Options. Required: id.
create_a_xero_tracking_categories_trackingcategory
Create or update a tracking category in Xero. Returns: TrackingCategoryID, Name, Status, and Options for the resulting record. Required: id.
delete_a_xero_tracking_categories_trackingcategory_by_id
Delete a Xero tracking category by id. Returns an empty 204 response on success. Required: id.
list_all_xero_users_users
List all users in the Xero organization. Returns: UserID, EmailAddress, FirstName, LastName, IsSubscriber, OrganisationRole, UpdatedDateUTC.
get_single_xero_users_user_by_id
Get a single Xero user by id. Returns: UserID, EmailAddress, FirstName, LastName, IsSubscriber, OrganisationRole, UpdatedDateUTC. Required: id.
Why Truto
Why use Truto’s MCP server for Xero
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
Unified APIs
Unified APIs for Xero
Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.
Unified User Directory API
Users
The User object represents a User.
Unified Accounting API
Accounts
Account represents bank accounts or a general ledger account
Attachments
Attachment represents the company's attachment
Budgets
Budget represents the budgets set for a company
Company Info
Company Info represents the company's information
Contact Groups
ContactGroup represents the groupings used by the company for their contacts
Contacts
Contacts represents the company's vendor or a customer
Credit Notes
Credit Notes represents the credit notes of the company
Currencies
Currency represents the currencies used by the company
Employees
Employee represents an employee of the company
Invoices
Invoices represents the invoices of the company
Items
Items represents the items of the company
Journal Entries
Journal Entries represents the journal entries of the company
Payments
Payments represents the payments of the company
Purchase Orders
Purchase Orders represents the purchase orders of the company
Repeating Transactions
RepeatingTransaction represents the repeating transactions of the company
Reports
Report gets you the various reports available in the accounting software
Tax Rates
TaxRates represents the tax rates of the company
Tracking Categories
TrackingCategories represents the tracking categories of the company
Transactions
Transactions represents the transactions of the company
How It Works
From zero to integrated
Go live with Xero in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Xero account
Use Truto’s frontend SDK to connect your customer’s Xero account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Xero
Truto’s Proxy API is a 1-to-1 mapping of the Xero API. You call us, we call Xero, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Xero’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Xero on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
What authentication method does Xero use?
Xero uses OAuth 2.0 for authentication. Truto handles the full OAuth flow — including token refresh — so your team doesn't need to manage auth lifecycle or deal with token expiry for your end users' connections.
Which Xero data models can I access through Truto's Unified Accounting API?
Truto's Unified Accounting API supports Accounts, Attachments, Budgets, Company Info, Contact Groups, Contacts, Credit Notes, Currencies, Employees, Invoices, Items, Journal Entries, Payments, Purchase Orders, Repeating Transactions, Reports, Tax Rates, Tracking Categories, and Transactions. A Unified User Directory API is also available for Users.
Can I both read and write data to Xero through Truto?
Yes. The Unified Accounting API supports both read and write operations across supported resources — for example, you can create invoices, push payments, and attach receipts, as well as read reports and transaction history.
Does Truto handle Xero's API rate limits and pagination?
Yes. Truto abstracts away Xero's rate limiting and pagination logic. You query Truto's unified endpoints, and Truto manages retries, backoff, and cursor-based pagination under the hood so you don't have to build that plumbing yourself.
Can I access Xero's Tracking Categories for department or location-level reporting?
Yes. Tracking Categories are a supported resource in the Unified Accounting API. You can read your users' configured tracking categories and options, then apply them when creating invoices, journal entries, or transactions to ensure data is tagged by department, location, or any custom dimension the user has set up in Xero.
Does the integration support multi-currency Xero organizations?
Yes. The Currencies resource is available through the Unified Accounting API, allowing you to read which currencies are enabled in your user's Xero organization and reference them when creating invoices, payments, or other financial records.
From the Blog
Xero integration guides
Deep dives, architecture guides, and practical tutorials for building Xero integrations.
Xero
Get Xero integrated into your app
Our team understands what it takes to make a Xero integration successful. A short, crisp 30 minute call with folks who understand the problem.