Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Xero Accounting API

The Accounting API from Xero — 140 operation(s) for accounting.

Xero Accounting API is one of 10 APIs that Xero publishes on the APIs.io network, described by a machine-readable OpenAPI specification and an AsyncAPI event-driven specification.

Tagged areas include Accounting. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an AsyncAPI specification.

This API exposes 237 operations across 140 paths, and defines 135 schemas. It is described by OpenAPI 3.0.0, at version 11.1.0.

Requests are made against a single base URL, https://api.xero.com/api.xro/2.0.

237 operations 140 paths 135 schemas 10 DELETE128 GET45 POST54 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.0
API Version
11.1.0
Base URL
https://api.xero.com/api.xro/2.0
Authentication
OAuth 2.0
Terms of Service
Resource Areas
1

Authentication & Security 1

Xero Accounting API declares 1 security scheme for authenticating requests. It supports OAuth 2.0 (OAuth2) using the authorizationCode flow, exposing 16 scopes.

  • OAuth2 — For more information

Paths & Operations 237

Across 140 paths, the API surfaces 237 operations — 10 DELETE, 128 GET, 45 POST, 54 PUT. Each is listed below with its method, path, parameters, and response codes.

Accounting 237
GET
/Accounts
Xero Retrieves the full chart of accounts
getAccounts 4 params → 200
PUT
/Accounts
Xero Creates a new chart of accounts
createAccount 2 params body → 200400
GET
/Accounts/{AccountID}
Xero Retrieves a single chart of accounts by using a unique account Id
getAccount 2 params → 200
POST
/Accounts/{AccountID}
Xero Updates a chart of accounts
updateAccount 3 params body → 200400
DELETE
/Accounts/{AccountID}
Xero Deletes a chart of accounts
deleteAccount 2 params → 200400
GET
/Accounts/{AccountID}/Attachments
Xero Retrieves attachments for a specific accounts by using a unique account Id
getAccountAttachments 2 params → 200
GET
/Accounts/{AccountID}/Attachments/{AttachmentID}
Xero Retrieves a specific attachment from a specific account using a unique attachment Id
getAccountAttachmentById 4 params → 200
GET
/Accounts/{AccountID}/Attachments/{FileName}
Xero Retrieves an attachment for a specific account by filename
getAccountAttachmentByFileName 4 params → 200
POST
/Accounts/{AccountID}/Attachments/{FileName}
Xero Updates attachment on a specific account by filename
updateAccountAttachmentByFileName 4 params body → 200400
PUT
/Accounts/{AccountID}/Attachments/{FileName}
Xero Creates an attachment on a specific account
createAccountAttachmentByFileName 4 params body → 200400
GET
/BatchPayments
Xero Retrieves either one or many batch payments for invoices
getBatchPayments 4 params → 200
PUT
/BatchPayments
Xero Creates one or many batch payments for invoices
createBatchPayment 3 params body → 200400
POST
/BatchPayments
Xero Updates a specific batch payment for invoices and credit notes
deleteBatchPayment 2 params body → 200400
GET
/BatchPayments/{BatchPaymentID}
Xero Retrieves a specific batch payment using a unique batch payment Id
getBatchPayment 2 params → 200
POST
/BatchPayments/{BatchPaymentID}
Xero Updates a specific batch payment for invoices and credit notes
deleteBatchPaymentByUrlParam 3 params body → 200400
GET
/BatchPayments/{BatchPaymentID}/History
Xero Retrieves history from a specific batch payment
getBatchPaymentHistory 2 params → 200
PUT
/BatchPayments/{BatchPaymentID}/History
Xero Creates a history record for a specific batch payment
createBatchPaymentHistoryRecord 3 params body → 200400
GET
/BankTransactions
Xero Retrieves any spent or received money transactions
getBankTransactions 7 params → 200
PUT
/BankTransactions
Xero Creates one or more spent or received money transaction
createBankTransactions 4 params body → 200400
POST
/BankTransactions
Xero Updates or creates one or more spent or received money transaction
updateOrCreateBankTransactions 4 params body → 200400
GET
/BankTransactions/{BankTransactionID}
Xero Retrieves a single spent or received money transaction by using a unique bank transaction Id
getBankTransaction 3 params → 200
POST
/BankTransactions/{BankTransactionID}
Xero Updates a single spent or received money transaction
updateBankTransaction 4 params body → 200400
GET
/BankTransactions/{BankTransactionID}/Attachments
Xero Retrieves any attachments from a specific bank transactions
getBankTransactionAttachments 2 params → 200
GET
/BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}
Xero Retrieves specific attachments from a specific BankTransaction using a unique attachment Id
getBankTransactionAttachmentById 4 params → 200
GET
/BankTransactions/{BankTransactionID}/Attachments/{FileName}
Xero Retrieves a specific attachment from a specific bank transaction by filename
getBankTransactionAttachmentByFileName 4 params → 200
POST
/BankTransactions/{BankTransactionID}/Attachments/{FileName}
Xero Updates a specific attachment from a specific bank transaction by filename
updateBankTransactionAttachmentByFileName 4 params body → 200400
PUT
/BankTransactions/{BankTransactionID}/Attachments/{FileName}
Xero Creates an attachment for a specific bank transaction by filename
createBankTransactionAttachmentByFileName 4 params body → 200400
GET
/BankTransactions/{BankTransactionID}/History
Xero Retrieves history from a specific bank transaction using a unique bank transaction Id
getBankTransactionsHistory 2 params → 200
PUT
/BankTransactions/{BankTransactionID}/History
Xero Creates a history record for a specific bank transactions
createBankTransactionHistoryRecord 3 params body → 200400
GET
/BankTransfers
Xero Retrieves all bank transfers
getBankTransfers 4 params → 200
PUT
/BankTransfers
Xero Creates a bank transfer
createBankTransfer 2 params body → 200400
GET
/BankTransfers/{BankTransferID}
Xero Retrieves specific bank transfers by using a unique bank transfer Id
getBankTransfer 2 params → 200
GET
/BankTransfers/{BankTransferID}/Attachments
Xero Retrieves attachments from a specific bank transfer
getBankTransferAttachments 2 params → 200
GET
/BankTransfers/{BankTransferID}/Attachments/{AttachmentID}
Xero Retrieves a specific attachment from a specific bank transfer using a unique attachment ID
getBankTransferAttachmentById 4 params → 200
GET
/BankTransfers/{BankTransferID}/Attachments/{FileName}
Xero Retrieves a specific attachment on a specific bank transfer by file name
getBankTransferAttachmentByFileName 4 params → 200
POST
/BankTransfers/{BankTransferID}/Attachments/{FileName}
updateBankTransferAttachmentByFileName 4 params body → 200400
PUT
/BankTransfers/{BankTransferID}/Attachments/{FileName}
createBankTransferAttachmentByFileName 4 params body → 200400
GET
/BankTransfers/{BankTransferID}/History
Xero Retrieves history from a specific bank transfer using a unique bank transfer Id
getBankTransferHistory 2 params → 200
PUT
/BankTransfers/{BankTransferID}/History
Xero Creates a history record for a specific bank transfer
createBankTransferHistoryRecord 3 params body → 200400
GET
/BrandingThemes
Xero Retrieves all the branding themes
getBrandingThemes 1 param → 200
GET
/BrandingThemes/{BrandingThemeID}
Xero Retrieves a specific branding theme using a unique branding theme Id
getBrandingTheme 2 params → 200
GET
/BrandingThemes/{BrandingThemeID}/PaymentServices
Xero Retrieves the payment services for a specific branding theme
getBrandingThemePaymentServices 2 params → 200
POST
/BrandingThemes/{BrandingThemeID}/PaymentServices
Xero Creates a new custom payment service for a specific branding theme
createBrandingThemePaymentServices 3 params body → 200400
GET
/Budgets
Xero Retrieve a list of budgets
getBudgets 4 params → 200
GET
/Budgets/{BudgetID}
Xero Retrieves a specific budget, which includes budget lines
getBudget 4 params → 200
GET
/Contacts
Retrieves all contacts in a Xero organisation
getContacts 10 params → 200
PUT
/Contacts
Creates multiple contacts (bulk) in a Xero organisation
createContacts 3 params body → 200400
POST
/Contacts
Updates or creates one or more contacts in a Xero organisation
updateOrCreateContacts 3 params body → 200400
GET
/Contacts/{ContactNumber}
Retrieves a specific contact by contact number in a Xero organisation
getContactByContactNumber 2 params → 200
GET
/Contacts/{ContactID}
Retrieves a specific contacts in a Xero organisation using a unique contact Id
getContact 2 params → 200
POST
/Contacts/{ContactID}
Updates a specific contact in a Xero organisation
updateContact 3 params body → 200400
GET
/Contacts/{ContactID}/Attachments
Retrieves attachments for a specific contact in a Xero organisation
getContactAttachments 2 params → 200
GET
/Contacts/{ContactID}/Attachments/{AttachmentID}
Xero Retrieves a specific attachment from a specific contact using a unique attachment Id
getContactAttachmentById 4 params → 200
GET
/Contacts/{ContactID}/Attachments/{FileName}
Xero Retrieves a specific attachment from a specific contact by file name
getContactAttachmentByFileName 4 params → 200
POST
/Contacts/{ContactID}/Attachments/{FileName}
updateContactAttachmentByFileName 4 params body → 200400
PUT
/Contacts/{ContactID}/Attachments/{FileName}
createContactAttachmentByFileName 4 params body → 200400
GET
/Contacts/{ContactID}/CISSettings
Retrieves CIS settings for a specific contact in a Xero organisation
getContactCISSettings 2 params → 200
GET
/Contacts/{ContactID}/History
Xero Retrieves history records for a specific contact
getContactHistory 2 params → 200
PUT
/Contacts/{ContactID}/History
Xero Creates a new history record for a specific contact
createContactHistory 3 params body → 200400
GET
/ContactGroups
Xero Retrieves the contact Id and name of each contact group
getContactGroups 3 params → 200
PUT
/ContactGroups
Xero Creates a contact group
createContactGroup 2 params body → 200400
GET
/ContactGroups/{ContactGroupID}
Xero Retrieves a specific contact group by using a unique contact group Id
getContactGroup 2 params → 200
POST
/ContactGroups/{ContactGroupID}
Xero Updates a specific contact group
updateContactGroup 3 params body → 200400
PUT
/ContactGroups/{ContactGroupID}/Contacts
Xero Creates contacts to a specific contact group
createContactGroupContacts 3 params body → 200400
DELETE
/ContactGroups/{ContactGroupID}/Contacts
Xero Deletes all contacts from a specific contact group
deleteContactGroupContacts 2 params → 204
DELETE
/ContactGroups/{ContactGroupID}/Contacts/{ContactID}
Xero Deletes a specific contact from a contact group using a unique contact Id
deleteContactGroupContact 3 params → 204400
GET
/CreditNotes
Xero Retrieves any credit notes
getCreditNotes 7 params → 200
PUT
/CreditNotes
Xero Creates a new credit note
createCreditNotes 4 params body → 200400
POST
/CreditNotes
Xero Updates or creates one or more credit notes
updateOrCreateCreditNotes 4 params body → 200400
GET
/CreditNotes/{CreditNoteID}
Xero Retrieves a specific credit note using a unique credit note Id
getCreditNote 3 params → 200
POST
/CreditNotes/{CreditNoteID}
Xero Updates a specific credit note
updateCreditNote 4 params body → 200400
GET
/CreditNotes/{CreditNoteID}/Attachments
Xero Retrieves attachments for a specific credit notes
getCreditNoteAttachments 2 params → 200
GET
/CreditNotes/{CreditNoteID}/Attachments/{AttachmentID}
Xero Retrieves a specific attachment from a specific credit note using a unique attachment Id
getCreditNoteAttachmentById 4 params → 200
GET
/CreditNotes/{CreditNoteID}/Attachments/{FileName}
Xero Retrieves a specific attachment on a specific credit note by file name
getCreditNoteAttachmentByFileName 4 params → 200
POST
/CreditNotes/{CreditNoteID}/Attachments/{FileName}
Xero Updates attachments on a specific credit note by file name
updateCreditNoteAttachmentByFileName 4 params body → 200400
PUT
/CreditNotes/{CreditNoteID}/Attachments/{FileName}
Xero Creates an attachment for a specific credit note
createCreditNoteAttachmentByFileName 5 params body → 200400
GET
/CreditNotes/{CreditNoteID}/pdf
Xero Retrieves credit notes as PDF files
getCreditNoteAsPdf 2 params → 200
PUT
/CreditNotes/{CreditNoteID}/Allocations
Xero Creates allocation for a specific credit note
createCreditNoteAllocation 4 params body → 200400
DELETE
/CreditNotes/{CreditNoteID}/Allocations/{AllocationID}
Xero Deletes an Allocation from a Credit Note
deleteCreditNoteAllocations 3 params → 200
GET
/CreditNotes/{CreditNoteID}/History
Xero Retrieves history records of a specific credit note
getCreditNoteHistory 2 params → 200
PUT
/CreditNotes/{CreditNoteID}/History
Xero Retrieves history records of a specific credit note
createCreditNoteHistory 3 params body → 200400
GET
/Currencies
Retrieves currencies for your Xero organisation
getCurrencies 3 params → 200
PUT
/Currencies
Create a new currency for a Xero organisation
createCurrency 2 params body → 200
GET
/Employeesdeprecated
Retrieves employees used in Xero payrun
getEmployees 4 params → 200
PUT
/Employeesdeprecated
Creates new employees used in Xero payrun
createEmployees 3 params body → 200400
POST
/Employeesdeprecated
Creates a single new employees used in Xero payrun
updateOrCreateEmployees 3 params body → 200400
GET
/Employees/{EmployeeID}deprecated
Retrieves a specific employee used in Xero payrun using a unique employee Id
getEmployee 2 params → 200
GET
/ExpenseClaims
Xero Retrieves expense claims
getExpenseClaims 4 params → 200
PUT
/ExpenseClaims
Xero Creates expense claims
createExpenseClaims 2 params body → 200400
GET
/ExpenseClaims/{ExpenseClaimID}
Xero Retrieves a specific expense claim using a unique expense claim Id
getExpenseClaim 2 params → 200
POST
/ExpenseClaims/{ExpenseClaimID}
Xero Updates a specific expense claims
updateExpenseClaim 3 params body → 200400
GET
/ExpenseClaims/{ExpenseClaimID}/History
Xero Retrieves history records of a specific expense claim
getExpenseClaimHistory 2 params → 200
PUT
/ExpenseClaims/{ExpenseClaimID}/History
Xero Creates a history record for a specific expense claim
createExpenseClaimHistory 3 params body → 200
GET
/Invoices
Xero Retrieves sales invoices or purchase bills
getInvoices 15 params → 200
PUT
/Invoices
Xero Creates one or more sales invoices or purchase bills
createInvoices 4 params body → 200400
POST
/Invoices
Xero Updates or creates one or more sales invoices or purchase bills
updateOrCreateInvoices 4 params body → 200400
GET
/Invoices/{InvoiceID}
Xero Retrieves a specific sales invoice or purchase bill using a unique invoice Id
getInvoice 3 params → 200
POST
/Invoices/{InvoiceID}
Xero Updates a specific sales invoices or purchase bills
updateInvoice 4 params body → 200400
GET
/Invoices/{InvoiceID}/pdf
Xero Retrieves invoices or purchase bills as PDF files
getInvoiceAsPdf 2 params → 200
GET
/Invoices/{InvoiceID}/Attachments
Xero Retrieves attachments for a specific invoice or purchase bill
getInvoiceAttachments 2 params → 200
GET
/Invoices/{InvoiceID}/Attachments/{AttachmentID}
Xero Retrieves a specific attachment from a specific invoices or purchase bills by using a unique attachment Id
getInvoiceAttachmentById 4 params → 200
GET
/Invoices/{InvoiceID}/Attachments/{FileName}
Xero Retrieves an attachment from a specific invoice or purchase bill by filename
getInvoiceAttachmentByFileName 4 params → 200
POST
/Invoices/{InvoiceID}/Attachments/{FileName}
Xero Updates an attachment from a specific invoices or purchase bill by filename
updateInvoiceAttachmentByFileName 4 params body → 200400
PUT
/Invoices/{InvoiceID}/Attachments/{FileName}
Xero Creates an attachment for a specific invoice or purchase bill by filename
createInvoiceAttachmentByFileName 5 params body → 200400
GET
/Invoices/{InvoiceID}/OnlineInvoice
Xero Retrieves a URL to an online invoice
getOnlineInvoice 2 params → 200
POST
/Invoices/{InvoiceID}/Email
Xero Sends a copy of a specific invoice to related contact via email
emailInvoice 3 params body → 204400
GET
/Invoices/{InvoiceID}/History
Xero Retrieves history records for a specific invoice
getInvoiceHistory 2 params → 200
PUT
/Invoices/{InvoiceID}/History
Xero Creates a history record for a specific invoice
createInvoiceHistory 3 params body → 200400
GET
/InvoiceReminders/Settings
Xero Retrieves invoice reminder settings
getInvoiceReminders 1 param → 200
GET
/Items
Xero Retrieves items
getItems 5 params → 200
PUT
/Items
Xero Creates one or more items
createItems 4 params body → 200400
POST
/Items
Xero Updates or creates one or more items
updateOrCreateItems 4 params body → 200400
GET
/Items/{ItemID}
Xero Retrieves a specific item using a unique item Id
getItem 3 params → 200
POST
/Items/{ItemID}
Xero Updates a specific item
updateItem 4 params body → 200400
DELETE
/Items/{ItemID}
Xero Deletes a specific item
deleteItem 2 params → 204400
GET
/Items/{ItemID}/History
Xero Retrieves history for a specific item
getItemHistory 2 params → 200
PUT
/Items/{ItemID}/History
Xero Creates a history record for a specific item
createItemHistory 3 params body → 200
GET
/Journals
Xero Retrieves journals
getJournals 4 params → 200
GET
/Journals/{JournalID}
Xero Retrieves a specific journal using a unique journal Id.
getJournal 2 params → 200
GET
/Journals/{JournalNumber}
Xero Retrieves a specific journal using a unique journal number.
getJournalByNumber 2 params → 200
GET
/LinkedTransactions
Xero Retrieves linked transactions (billable expenses)
getLinkedTransactions 7 params → 200
PUT
/LinkedTransactions
Xero Creates linked transactions (billable expenses)
createLinkedTransaction 2 params body → 200400
GET
/LinkedTransactions/{LinkedTransactionID}
Xero Retrieves a specific linked transaction (billable expenses) using a unique linked transaction Id
getLinkedTransaction 2 params → 200
POST
/LinkedTransactions/{LinkedTransactionID}
Xero Updates a specific linked transactions (billable expenses)
updateLinkedTransaction 3 params body → 200400
DELETE
/LinkedTransactions/{LinkedTransactionID}
Xero Deletes a specific linked transactions (billable expenses)
deleteLinkedTransaction 2 params → 204400
GET
/ManualJournals
Xero Retrieves manual journals
getManualJournals 6 params → 200
PUT
/ManualJournals
Xero Creates one or more manual journals
createManualJournals 3 params body → 200400
POST
/ManualJournals
Xero Updates or creates a single manual journal
updateOrCreateManualJournals 3 params body → 200400
GET
/ManualJournals/{ManualJournalID}
Xero Retrieves a specific manual journal
getManualJournal 2 params → 200
POST
/ManualJournals/{ManualJournalID}
Xero Updates a specific manual journal
updateManualJournal 3 params body → 200400
GET
/ManualJournals/{ManualJournalID}/Attachments
Xero Retrieves attachment for a specific manual journal
getManualJournalAttachments 2 params → 200
GET
/ManualJournals/{ManualJournalID}/Attachments/{AttachmentID}
Xero Allows you to retrieve a specific attachment from a specific manual journal using a unique attachment Id
getManualJournalAttachmentById 4 params → 200
GET
/ManualJournals/{ManualJournalID}/Attachments/{FileName}
Xero Retrieves a specific attachment from a specific manual journal by file name
getManualJournalAttachmentByFileName 4 params → 200
POST
/ManualJournals/{ManualJournalID}/Attachments/{FileName}
Xero Updates a specific attachment from a specific manual journal by file name
updateManualJournalAttachmentByFileName 4 params body → 200400
PUT
/ManualJournals/{ManualJournalID}/Attachments/{FileName}
Xero Creates a specific attachment for a specific manual journal by file name
createManualJournalAttachmentByFileName 4 params body → 200400
GET
/ManualJournals/{ManualJournalID}/History
Xero Retrieves history for a specific manual journal
getManualJournalsHistory 2 params → 200
PUT
/ManualJournals/{ManualJournalID}/History
Xero Creates a history record for a specific manual journal
createManualJournalHistoryRecord 3 params body → 200400
GET
/Organisation
Retrieves Xero organisation details
getOrganisations 1 param → 200
GET
/Organisation/Actions
Retrieves a list of the key actions your app has permission to perform in the connected Xero organisation.
getOrganisationActions 1 param → 200
GET
/Organisation/{OrganisationID}/CISSettings
Retrieves the CIS settings for the Xero organistaion.
getOrganisationCISSettings 2 params → 200
GET
/Overpayments
Xero Retrieves overpayments
getOverpayments 8 params → 200
GET
/Overpayments/{OverpaymentID}
Xero Retrieves a specific overpayment using a unique overpayment Id
getOverpayment 2 params → 200
PUT
/Overpayments/{OverpaymentID}/Allocations
Xero Creates a single allocation for a specific overpayment
createOverpaymentAllocations 4 params body → 200400
DELETE
/Overpayments/{OverpaymentID}/Allocations/{AllocationID}
Xero Deletes an Allocation from an overpayment
deleteOverpaymentAllocations 3 params → 200
GET
/Overpayments/{OverpaymentID}/History
Xero Retrieves history records of a specific overpayment
getOverpaymentHistory 2 params → 200
PUT
/Overpayments/{OverpaymentID}/History
Xero Creates a history record for a specific overpayment
createOverpaymentHistory 3 params body → 200400
GET
/Payments
Xero Retrieves payments for invoices and credit notes
getPayments 6 params → 200
PUT
/Payments
Xero Creates multiple payments for invoices or credit notes
createPayments 3 params body → 200400
POST
/Payments
Xero Creates a single payment for invoice or credit notes
createPayment 2 params body → 200400
GET
/Payments/{PaymentID}
Xero Retrieves a specific payment for invoices and credit notes using a unique payment Id
getPayment 2 params → 200
POST
/Payments/{PaymentID}
Xero Updates a specific payment for invoices and credit notes
deletePayment 3 params body → 200400
GET
/Payments/{PaymentID}/History
Xero Retrieves history records of a specific payment
getPaymentHistory 2 params → 200
PUT
/Payments/{PaymentID}/History
Xero Creates a history record for a specific payment
createPaymentHistory 3 params body → 200400
GET
/PaymentServices
Xero Retrieves payment services
getPaymentServices 1 param → 200
PUT
/PaymentServices
Xero Creates a payment service
createPaymentService 2 params body → 200400
GET
/Prepayments
Xero Retrieves prepayments
getPrepayments 8 params → 200
GET
/Prepayments/{PrepaymentID}
Xero Allows you to retrieve a specified prepayments
getPrepayment 2 params → 200
PUT
/Prepayments/{PrepaymentID}/Allocations
Xero Allows you to create an Allocation for prepayments
createPrepaymentAllocations 4 params body → 200400
DELETE
/Prepayments/{PrepaymentID}/Allocations/{AllocationID}
Xero Deletes an Allocation from a Prepayment
deletePrepaymentAllocations 3 params → 200
GET
/Prepayments/{PrepaymentID}/History
Xero Retrieves history record for a specific prepayment
getPrepaymentHistory 2 params → 200
PUT
/Prepayments/{PrepaymentID}/History
Xero Creates a history record for a specific prepayment
createPrepaymentHistory 3 params body → 200400
GET
/PurchaseOrders
Xero Retrieves purchase orders
getPurchaseOrders 8 params → 200
PUT
/PurchaseOrders
Xero Creates one or more purchase orders
createPurchaseOrders 3 params body → 200400
POST
/PurchaseOrders
Xero Updates or creates one or more purchase orders
updateOrCreatePurchaseOrders 3 params body → 200400
GET
/PurchaseOrders/{PurchaseOrderID}/pdf
Xero Retrieves specific purchase order as PDF files using a unique purchase order Id
getPurchaseOrderAsPdf 2 params → 200
GET
/PurchaseOrders/{PurchaseOrderID}
Xero Retrieves a specific purchase order using a unique purchase order Id
getPurchaseOrder 2 params → 200
POST
/PurchaseOrders/{PurchaseOrderID}
Xero Updates a specific purchase order
updatePurchaseOrder 3 params body → 200400
GET
/PurchaseOrders/{PurchaseOrderNumber}
Xero Retrieves a specific purchase order using purchase order number
getPurchaseOrderByNumber 2 params → 200
GET
/PurchaseOrders/{PurchaseOrderID}/History
Xero Retrieves history for a specific purchase order
getPurchaseOrderHistory 2 params → 200
PUT
/PurchaseOrders/{PurchaseOrderID}/History
Xero Creates a history record for a specific purchase orders
createPurchaseOrderHistory 3 params body → 200400
GET
/PurchaseOrders/{PurchaseOrderID}/Attachments
Xero Retrieves attachments for a specific purchase order
getPurchaseOrderAttachments 2 params → 200
GET
/PurchaseOrders/{PurchaseOrderID}/Attachments/{AttachmentID}
Xero Retrieves specific attachment for a specific purchase order using a unique attachment Id
getPurchaseOrderAttachmentById 4 params → 200
GET
/PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}
Xero Retrieves a specific attachment for a specific purchase order by filename
getPurchaseOrderAttachmentByFileName 4 params → 200
POST
/PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}
Xero Updates a specific attachment for a specific purchase order by filename
updatePurchaseOrderAttachmentByFileName 4 params body → 200400
PUT
/PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}
Xero Creates attachment for a specific purchase order
createPurchaseOrderAttachmentByFileName 4 params body → 200400
GET
/Quotes
Xero Retrieves sales quotes
getQuotes 11 params → 200
PUT
/Quotes
Xero Create one or more quotes
createQuotes 3 params body → 200400
POST
/Quotes
Xero Updates or creates one or more quotes
updateOrCreateQuotes 3 params body → 200400
GET
/Quotes/{QuoteID}
Xero Retrieves a specific quote using a unique quote Id
getQuote 2 params → 200
POST
/Quotes/{QuoteID}
Xero Updates a specific quote
updateQuote 3 params body → 200400
GET
/Quotes/{QuoteID}/History
Xero Retrieves history records of a specific quote
getQuoteHistory 2 params → 200
PUT
/Quotes/{QuoteID}/History
Xero Creates a history record for a specific quote
createQuoteHistory 3 params body → 200400
GET
/Quotes/{QuoteID}/pdf
Xero Retrieves a specific quote as a PDF file using a unique quote Id
getQuoteAsPdf 2 params → 200
GET
/Quotes/{QuoteID}/Attachments
Xero Retrieves attachments for a specific quote
getQuoteAttachments 2 params → 200
GET
/Quotes/{QuoteID}/Attachments/{AttachmentID}
Xero Retrieves a specific attachment from a specific quote using a unique attachment Id
getQuoteAttachmentById 4 params → 200
GET
/Quotes/{QuoteID}/Attachments/{FileName}
Xero Retrieves a specific attachment from a specific quote by filename
getQuoteAttachmentByFileName 4 params → 200
POST
/Quotes/{QuoteID}/Attachments/{FileName}
Xero Updates a specific attachment from a specific quote by filename
updateQuoteAttachmentByFileName 4 params body → 200400
PUT
/Quotes/{QuoteID}/Attachments/{FileName}
Xero Creates attachment for a specific quote
createQuoteAttachmentByFileName 4 params body → 200400
GET
/Receipts
Xero Retrieves draft expense claim receipts for any user
getReceipts 5 params → 200
PUT
/Receipts
Xero Creates draft expense claim receipts for any user
createReceipt 3 params body → 200400
GET
/Receipts/{ReceiptID}
Xero Retrieves a specific draft expense claim receipt by using a unique receipt Id
getReceipt 3 params → 200
POST
/Receipts/{ReceiptID}
Xero Updates a specific draft expense claim receipts
updateReceipt 4 params body → 200400
GET
/Receipts/{ReceiptID}/Attachments
Xero Retrieves attachments for a specific expense claim receipt
getReceiptAttachments 2 params → 200
GET
/Receipts/{ReceiptID}/Attachments/{AttachmentID}
Xero Retrieves a specific attachments from a specific expense claim receipts by using a unique attachment Id
getReceiptAttachmentById 4 params → 200
GET
/Receipts/{ReceiptID}/Attachments/{FileName}
Xero Retrieves a specific attachment from a specific expense claim receipts by file name
getReceiptAttachmentByFileName 4 params → 200
POST
/Receipts/{ReceiptID}/Attachments/{FileName}
Xero Updates a specific attachment on a specific expense claim receipts by file name
updateReceiptAttachmentByFileName 4 params body → 200400
PUT
/Receipts/{ReceiptID}/Attachments/{FileName}
Xero Creates an attachment on a specific expense claim receipts by file name
createReceiptAttachmentByFileName 4 params body → 200400
GET
/Receipts/{ReceiptID}/History
Xero Retrieves a history record for a specific receipt
getReceiptHistory 2 params → 200
PUT
/Receipts/{ReceiptID}/History
Xero Creates a history record for a specific receipt
createReceiptHistory 3 params body → 200400
GET
/RepeatingInvoices
Xero Retrieves repeating invoices
getRepeatingInvoices 3 params → 200
PUT
/RepeatingInvoices
Xero Creates one or more repeating invoice templates
createRepeatingInvoices 3 params body → 200400
POST
/RepeatingInvoices
Xero Creates or deletes one or more repeating invoice templates
updateOrCreateRepeatingInvoices 3 params body → 200400
GET
/RepeatingInvoices/{RepeatingInvoiceID}
Xero Retrieves a specific repeating invoice by using a unique repeating invoice Id
getRepeatingInvoice 2 params → 200
POST
/RepeatingInvoices/{RepeatingInvoiceID}
Xero Deletes a specific repeating invoice template
updateRepeatingInvoice 3 params body → 200400
GET
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments
Xero Retrieves attachments from a specific repeating invoice
getRepeatingInvoiceAttachments 2 params → 200
GET
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{AttachmentID}
Xero Retrieves a specific attachment from a specific repeating invoice
getRepeatingInvoiceAttachmentById 4 params → 200
GET
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}
Xero Retrieves a specific attachment from a specific repeating invoices by file name
getRepeatingInvoiceAttachmentByFileName 4 params → 200
POST
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}
Xero Updates a specific attachment from a specific repeating invoices by file name
updateRepeatingInvoiceAttachmentByFileName 4 params body → 200400
PUT
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}
Xero Creates an attachment from a specific repeating invoices by file name
createRepeatingInvoiceAttachmentByFileName 4 params body → 200400
GET
/RepeatingInvoices/{RepeatingInvoiceID}/History
Xero Retrieves history record for a specific repeating invoice
getRepeatingInvoiceHistory 2 params → 200
PUT
/RepeatingInvoices/{RepeatingInvoiceID}/History
Xero Creates a history record for a specific repeating invoice
createRepeatingInvoiceHistory 3 params body → 200400
GET
/Reports/TenNinetyNine
Xero Retrieve reports for 1099
getReportTenNinetyNine 2 params → 200
GET
/Reports/AgedPayablesByContact
Xero Retrieves report for aged payables by contact
getReportAgedPayablesByContact 5 params → 200
GET
/Reports/AgedReceivablesByContact
Xero Retrieves report for aged receivables by contact
getReportAgedReceivablesByContact 5 params → 200
GET
/Reports/BalanceSheet
Xero Retrieves report for balancesheet
getReportBalanceSheet 8 params → 200
GET
/Reports/BankSummary
Xero Retrieves report for bank summary
getReportBankSummary 3 params → 200
GET
/Reports/{ReportID}
Xero Retrieves a specific report using a unique ReportID
getReportFromId 2 params → 200
GET
/Reports/BudgetSummary
Xero Retrieves report for budget summary
getReportBudgetSummary 4 params → 200
GET
/Reports/ExecutiveSummary
Xero Retrieves report for executive summary
getReportExecutiveSummary 2 params → 200
GET
/Reports
Xero Retrieves a list of the organistaions unique reports that require a uuid to fetch
getReportsList 1 param → 200
GET
/Reports/ProfitAndLoss
Xero Retrieves report for profit and loss
getReportProfitAndLoss 11 params → 200
GET
/Reports/TrialBalance
Xero Retrieves report for trial balance
getReportTrialBalance 3 params → 200
POST
/Setup
Xero Sets the chart of accounts, the conversion date and conversion balances
postSetup 2 params body → 200
GET
/TaxRates
Xero Retrieves tax rates
getTaxRates 3 params → 200
PUT
/TaxRates
Xero Creates one or more tax rates
createTaxRates 2 params body → 200400
POST
/TaxRates
Xero Updates tax rates
updateTaxRate 2 params body → 200400
GET
/TaxRates/{TaxType}
Xero Retrieves a specific tax rate according to given TaxType code
getTaxRateByTaxType 2 params → 200
GET
/TrackingCategories
Xero Retrieves tracking categories and options
getTrackingCategories 4 params → 200
PUT
/TrackingCategories
Xero Create tracking categories
createTrackingCategory 2 params body → 200400
GET
/TrackingCategories/{TrackingCategoryID}
Xero Retrieves specific tracking categories and options using a unique tracking category Id
getTrackingCategory 2 params → 200
POST
/TrackingCategories/{TrackingCategoryID}
Xero Updates a specific tracking category
updateTrackingCategory 3 params body → 200400
DELETE
/TrackingCategories/{TrackingCategoryID}
Xero Deletes a specific tracking category
deleteTrackingCategory 2 params → 200400
PUT
/TrackingCategories/{TrackingCategoryID}/Options
Xero Creates options for a specific tracking category
createTrackingOptions 3 params body → 200400
POST
/TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID}
Xero Updates a specific option for a specific tracking category
updateTrackingOptions 4 params body → 200400
DELETE
/TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID}
Xero Deletes a specific option for a specific tracking category
deleteTrackingOptions 3 params → 200400
GET
/Users
Xero Retrieves users
getUsers 4 params → 200
GET
/Users/{UserID}
Xero Retrieves a specific user
getUser 2 params → 200

Schemas 135

The contract defines 135 schemas that model the data the API accepts and returns. The most detailed are Contact (43 properties), Invoice (41 properties), Organisation (33 properties), CreditNote (31 properties). Each schema is shown below with its type and property counts.

Bill
object
2 properties
Pagination
object
4 properties
CurrencyCode
string
3 letter alpha code for the currency – see list of currency codes
Users
object
1 property
Setup
object
3 properties
PaymentService
object
6 properties
BatchPaymentDetails
object
Bank details for use on a batch payment stored with each contact
5 properties
InvoiceReminder
object
1 property
InvoiceAddress
object
9 properties
Accounts
object
1 property
ReportRow
object
3 properties
BatchPayment
object
17 properties
InvoiceReminders
object
1 property
RepeatingInvoice
object
20 properties
Prepayment
object
21 properties
Phone
object
4 properties
CreditNotes
object
3 properties
Currencies
object
1 property
Overpayment
object
20 properties
RequestEmpty
object
1 property
Payments
object
3 properties
TimeZone
string
Timezone specifications
PaymentServices
object
1 property
LineItemTracking
object
4 properties
Organisation
object
33 properties
PaymentTermType
string
ContactPerson
object
4 properties
PurchaseOrders
object
3 properties
ValidationError
object
1 property
BankTransactions
object
3 properties
User
object
7 properties
Error
object
4 properties
OnlineInvoice
object
1 property
AddressForOrganisation
object
10 properties
Currency
object
2 properties
Budget
object
6 properties
TaxBreakdownComponent
object
10 properties
OnlineInvoices
object
1 property
ImportSummaryOrganisation
object
1 property
CISSettings
object
1 property
BatchPaymentDeleteByUrlParam
object
1 property 1 required
HistoryRecords
object
1 property
LinkedTransaction
object
11 properties
ImportSummary
object
A summary of the import from setup endpoint
2 properties
Contact
object
43 properties
Attachment
object
6 properties
ManualJournals
object
3 properties
BudgetBalance
object
4 properties
ManualJournalLine
object
8 properties
Invoices
object
3 properties
Allocations
object
1 property
BrandingThemes
object
1 property
Journals
object
2 properties
Journal
object
8 properties
Budgets
object
1 property
Employee
object
8 properties
TaxRates
object
1 property
Employees
object
1 property
ReportWithRow
object
9 properties
Contacts
object
3 properties
Quote
object
24 properties
ReportRows
object
4 properties
BalanceDetails
object
An array to specify multiple currency balances of an account
3 properties
TaxRate
object
12 properties
CISOrgSetting
object
3 properties
CountryCode
string
Reports
object
1 property
CreditNote
object
31 properties
BankTransfers
object
1 property
TenNinetyNineContact
object
25 properties
Quotes
object
1 property
Balances
object
The raw AccountsReceivable(sales invoices) and AccountsPayable(bills) outstanding and overdue amounts, not converted to base currency (read only)
2 properties
ConversionDate
object
The date when the organisation starts using Xero
2 properties
ExpenseClaims
object
1 property
ContactGroups
object
1 property
Invoice
object
41 properties
ImportSummaryAccounts
object
A summary of the accounts changes
9 properties
ReportAttribute
object
2 properties
QuoteLineAmountTypes
string
Line amounts are exclusive of tax by default if you don’t specify this element. See Line Amount Types
HistoryRecord
object
4 properties
Overpayments
object
3 properties
ContactGroup
object
4 properties
SalesTrackingCategory
object
2 properties
Payment
object
28 properties
Receipt
object
18 properties
Attachments
object
1 property
Allocation
object
10 properties 3 required
ExpenseClaim
object
12 properties
Purchase
object
4 properties
CISOrgSettings
object
1 property
LineItem
object
18 properties
TrackingOption
object
4 properties
LinkedTransactions
object
1 property
TrackingCategories
object
1 property
LineAmountTypes
string
Line amounts are exclusive of tax by default if you don’t specify this element. See Line Amount Types
Report
object
6 properties
ReportWithRows
object
1 property
Account
object
20 properties
Actions
object
1 property
QuoteStatusCodes
string
The status of the quote.
ReportFields
object
3 properties
BatchPayments
object
1 property
PurchaseOrder
object
28 properties
AccountType
string
See Account Types
Item
object
16 properties 1 required
RowType
string
Receipts
object
1 property
ConversionBalances
object
Balance supplied for each account that has a value as at the conversion date.
3 properties
Schedule
object
7 properties
BankTransfer
object
14 properties 3 required
BudgetLine
object
3 properties
ManualJournal
object
14 properties 1 required
TrackingOptions
object
1 property
AccountsPayable
object
2 properties
Action
object
2 properties
Organisations
object
1 property
TaxComponent
object
4 properties
ExternalLink
object
3 properties
ImportSummaryObject
object
1 property
BankTransaction
object
22 properties 3 required
BrandingTheme
object
6 properties
Prepayments
object
3 properties
RepeatingInvoices
object
1 property
TrackingCategory
object
6 properties
Items
object
1 property
JournalLine
object
12 properties
Element
object
8 properties
PaymentTerm
object
2 properties
CISSetting
object
2 properties
BatchPaymentDelete
object
2 properties 2 required
PaymentDelete
object
1 property 1 required
Address
object
10 properties
ReportCell
object
2 properties
AccountsReceivable
object
2 properties
LineItemItem
object
3 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

xero-accounting-api-openapi.yml Raw ↑

Other APIs Xero publishes across the network.

Xero Asset API
Xero BankFeeds API
Xero Files API
Xero Finance API
Xero Identity API
Xero PayrollAu API
Xero PayrollNz API
Xero PayrollUk API
Xero Project API