---
title: Xero API Integration on Truto
slug: xero
category: Accounting
canonical: "https://truto.one/integrations/detail/xero/"
---

# Xero API Integration on Truto



**Category:** Accounting  
**Status:** Generally available

## Unified APIs

### 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
- **Expenses** — Expenses represents the expenses 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
- **Vendor Credits** — VendorCredits represents the vendor credits of the company

## MCP-ready AI tools

Truto exposes 292 tools for Xero that AI agents can call directly.

- **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.

## How it works

1. **Link your customer's Xero account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Xero.** The Proxy API is a 1-to-1 mapping of the Xero API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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

- **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.

## FAQs

### 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.

## Related reading

- [End-to-End Developer Tutorial: Integrating the Brex API with QBO, Xero, and NetSuite](https://truto.one/blog/end-to-end-developer-tutorial-integrating-the-brex-api-with-qbo-xero-and-netsuite/) — A complete engineering tutorial on integrating the Brex API with QuickBooks Online, Xero, and NetSuite. Learn ledger mapping, idempotency, and rate limiting.
- [Does Truto Support QuickBooks and Xero Integration? (2026 Architecture Guide)](https://truto.one/blog/does-truto-support-quickbooks-and-xero-integration-2026-guide/) — Evaluate how Truto's Unified Accounting API normalizes QuickBooks and Xero schemas, handles rate limits, and enables zero data retention integrations.
- [Unified APIs for Accounting: Architecting QuickBooks, Xero, and NetSuite Integrations](https://truto.one/blog/unified-apis-for-accounting-architecting-quickbooks-xero-netsuite-integrations/) — Architectural guide to unified APIs for QuickBooks, Xero, and NetSuite integrations. Learn how real-time passthrough solves rate limits and ERP complexity.
- [How to Integrate the Brex API with Xero and QuickBooks (2026 Developer Guide)](https://truto.one/blog/developer-tutorial-how-to-integrate-brex-with-xero-and-quickbooks/) — A unified API guide to syncing Brex transactions into QuickBooks Online, Xero, and NetSuite. Covers rate limits, OAuth token refresh, Retry-After handling, observability, and double-entry ledger mapping.
- [How to Integrate with the Xero API: A Guide for B2B SaaS](https://truto.one/blog/how-do-i-integrate-with-the-xero-api-a-guide-for-b2b-saas/) — A technical guide to building a production-grade Xero API integration, covering OAuth 2.0 token management, rate limits, webhook validation, and the 2026 pricing shift.
- [Connect Xero to ChatGPT: Sync Invoices, Payments & Financial Reports](https://truto.one/blog/connect-xero-to-chatgpt-sync-invoices-payments-financial-reports/) — Learn how to connect Xero to ChatGPT using a managed MCP server. Execute financial workflows, sync invoices, and automate payments with AI agents.
