Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.xero.com/api.xro/2.0
/Accounts
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of type Accounts array with 0 to n Account
GET /Accounts
/Accounts/{AccountID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| AccountID | path | optional | string | Unique identifier for Account object |
Success - return response of type Accounts array with one Account
GET /Accounts/{AccountID}
/Accounts/{AccountID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| AccountID | path | optional | string | Unique identifier for Account object |
Success - return response of type Attachments array of Attachment
GET /Accounts/{AccountID}/Attachments
/Accounts/{AccountID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| AccountID | path | optional | string | Unique identifier for Account object |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Account as binary data
GET /Accounts/{AccountID}/Attachments/{AttachmentID}
/Accounts/{AccountID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| AccountID | path | optional | string | Unique identifier for Account object |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Account as binary data
GET /Accounts/{AccountID}/Attachments/{FileName}
/BankTransactions
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
| page | query | optional | integer | Up to 100 bank transactions will be returned in a single API call with line items details |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type BankTransactions array with 0 to n BankTransaction
GET /BankTransactions
/BankTransactions/{BankTransactionID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type BankTransactions array with a specific BankTransaction
GET /BankTransactions/{BankTransactionID}
/BankTransactions/{BankTransactionID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
Success - return response of type Attachments array with 0 to n Attachment
GET /BankTransactions/{BankTransactionID}/Attachments
/BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for BankTransaction as binary data
GET /BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}
/BankTransactions/{BankTransactionID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for BankTransaction as binary data
GET /BankTransactions/{BankTransactionID}/Attachments/{FileName}
/BankTransactions/{BankTransactionID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransactionID | path | optional | string | Xero generated unique identifier for a bank transaction |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /BankTransactions/{BankTransactionID}/History
/BankTransfers
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of BankTransfers array of 0 to N BankTransfer
GET /BankTransfers
/BankTransfers/{BankTransferID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
Success - return response of BankTransfers array with one BankTransfer
GET /BankTransfers/{BankTransferID}
/BankTransfers/{BankTransferID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
Success - return response of Attachments array of 0 to N Attachment for a Bank Transfer
GET /BankTransfers/{BankTransferID}/Attachments
/BankTransfers/{BankTransferID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of binary data from the Attachment to a Bank Transfer
GET /BankTransfers/{BankTransferID}/Attachments/{AttachmentID}
/BankTransfers/{BankTransferID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of binary data from the Attachment to a Bank Transfer
GET /BankTransfers/{BankTransferID}/Attachments/{FileName}
/BankTransfers/{BankTransferID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BankTransferID | path | optional | string | Xero generated unique identifier for a bank transfer |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /BankTransfers/{BankTransferID}/History
/BatchPayments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of type BatchPayments array of BatchPayment objects
GET /BatchPayments
/BatchPayments/{BatchPaymentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BatchPaymentID | path | optional | string | Unique identifier for BatchPayment |
Success - return response of type BatchPayments array with matching batch payment Id
GET /BatchPayments/{BatchPaymentID}
/BatchPayments/{BatchPaymentID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BatchPaymentID | path | optional | string | Unique identifier for BatchPayment |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /BatchPayments/{BatchPaymentID}/History
/BrandingThemes
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
Success - return response of type BrandingThemes
GET /BrandingThemes
/BrandingThemes/{BrandingThemeID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BrandingThemeID | path | optional | string | Unique identifier for a Branding Theme |
Success - return response of type BrandingThemes with one BrandingTheme
GET /BrandingThemes/{BrandingThemeID}
/BrandingThemes/{BrandingThemeID}/PaymentServices
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BrandingThemeID | path | optional | string | Unique identifier for a Branding Theme |
Success - return response of type PaymentServices array with 0 to N PaymentService
GET /BrandingThemes/{BrandingThemeID}/PaymentServices
/Budgets
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| IDs | query | optional | string | Filter by BudgetID. Allows you to retrieve a specific individual budget. |
| DateTo | query | optional | string | Filter by start date |
| DateFrom | query | optional | string | Filter by end date |
Success - return response of type Budgets array with 0 to N Budgets
GET /Budgets
/Budgets/{BudgetID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| BudgetID | path | optional | string | Unique identifier for Budgets |
| DateTo | query | optional | string | Filter by start date |
| DateFrom | query | optional | string | Filter by end date |
Success - return response of type Invoices array with specified Invoices
GET /Budgets/{BudgetID}
/ContactGroups
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of type Contact Groups array of Contact Group
GET /ContactGroups
/ContactGroups/{ContactGroupID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ContactGroupID | path | optional | string | Unique identifier for a Contact Group |
Success - return response of type Contact Groups array with a specific Contact Group
GET /ContactGroups/{ContactGroupID}
/Contacts
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
| IDs | query | optional | array | Filter by a comma separated list of ContactIDs. Allows you to retrieve a specific set of contacts in a single call. |
| page | query | optional | integer | e.g. page=1 - Up to 100 contacts will be returned in a single API call. |
| includeArchived | query | optional | boolean | e.g. includeArchived=true - Contacts with a status of ARCHIVED will be included in the response |
| summaryOnly | query | optional | boolean | Use summaryOnly=true in GET Contacts and Invoices endpoint to retrieve a smaller version of the response object. This returns only lightweight fields, excluding computation-heavy fields from the response, making the API calls quick and efficient. |
| searchTerm | query | optional | string | Search parameter that performs a case-insensitive text search across the Name, FirstName, LastName, ContactNumber and EmailAddress fields. |
Success - return response of type Contacts array with 0 to N Contact
GET /Contacts
/Contacts/{ContactID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ContactID | path | optional | string | Unique identifier for a Contact |
Success - return response of type Contacts array with a unique Contact
GET /Contacts/{ContactID}
/Contacts/{ContactID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ContactID | path | optional | string | Unique identifier for a Contact |
Success - return response of type Attachments array with 0 to N Attachment
GET /Contacts/{ContactID}/Attachments
/Contacts/{ContactID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ContactID | path | optional | string | Unique identifier for a Contact |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Contact as binary data
GET /Contacts/{ContactID}/Attachments/{AttachmentID}
/Contacts/{ContactID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ContactID | path | optional | string | Unique identifier for a Contact |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Contact as binary data
GET /Contacts/{ContactID}/Attachments/{FileName}
/Contacts/{ContactID}/CISSettings
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ContactID | path | optional | string | Unique identifier for a Contact |
Success - return response of type CISSettings for a specific Contact
GET /Contacts/{ContactID}/CISSettings
/Contacts/{ContactID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ContactID | path | optional | string | Unique identifier for a Contact |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /Contacts/{ContactID}/History
/Contacts/{ContactNumber}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ContactNumber | path | required | string | This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50). |
Success - return response of type Contacts array with a unique Contact
GET /Contacts/{ContactNumber}
/CreditNotes
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
| page | query | optional | integer | e.g. page=1 – Up to 100 credit notes will be returned in a single API call with line items shown for each credit note |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type Credit Notes array of CreditNote
GET /CreditNotes
/CreditNotes/{CreditNoteID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| CreditNoteID | path | optional | string | Unique identifier for a Credit Note |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type Credit Notes array with a unique CreditNote
GET /CreditNotes/{CreditNoteID}
/CreditNotes/{CreditNoteID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| CreditNoteID | path | optional | string | Unique identifier for a Credit Note |
Success - return response of type Attachments array with all Attachment for specific Credit Note
GET /CreditNotes/{CreditNoteID}/Attachments
/CreditNotes/{CreditNoteID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| CreditNoteID | path | optional | string | Unique identifier for a Credit Note |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Credit Note as binary data
GET /CreditNotes/{CreditNoteID}/Attachments/{AttachmentID}
/CreditNotes/{CreditNoteID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| CreditNoteID | path | optional | string | Unique identifier for a Credit Note |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Credit Note as binary data
GET /CreditNotes/{CreditNoteID}/Attachments/{FileName}
/CreditNotes/{CreditNoteID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| CreditNoteID | path | optional | string | Unique identifier for a Credit Note |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /CreditNotes/{CreditNoteID}/History
/CreditNotes/{CreditNoteID}/pdf
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| CreditNoteID | path | optional | string | Unique identifier for a Credit Note |
Success - return response of binary data from the Attachment to a Credit Note
GET /CreditNotes/{CreditNoteID}/pdf
/Currencies
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of type Currencies array with all Currencies
GET /Currencies
/Employees
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of type Employees array with all Employee
GET /Employees
/Employees/{EmployeeID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| EmployeeID | path | optional | string | Unique identifier for a Employee |
Success - return response of type Employees array with specified Employee
GET /Employees/{EmployeeID}
/ExpenseClaims
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of type ExpenseClaims array with all ExpenseClaims
GET /ExpenseClaims
/ExpenseClaims/{ExpenseClaimID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ExpenseClaimID | path | optional | string | Unique identifier for a ExpenseClaim |
Success - return response of type ExpenseClaims array with specified ExpenseClaim
GET /ExpenseClaims/{ExpenseClaimID}
/ExpenseClaims/{ExpenseClaimID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ExpenseClaimID | path | optional | string | Unique identifier for a ExpenseClaim |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /ExpenseClaims/{ExpenseClaimID}/History
/InvoiceReminders/Settings
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
Success - return response of Invoice Reminders
GET /InvoiceReminders/Settings
/Invoices
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
| IDs | query | optional | array | Filter by a comma-separated list of InvoicesIDs. |
| InvoiceNumbers | query | optional | array | Filter by a comma-separated list of InvoiceNumbers. |
| ContactIDs | query | optional | array | Filter by a comma-separated list of ContactIDs. |
| Statuses | query | optional | array | Filter by a comma-separated list Statuses. For faster response times we recommend using these explicit parameters instead of passing OR conditions into the Where filter. |
| page | query | optional | integer | e.g. page=1 – Up to 100 invoices will be returned in a single API call with line items shown for each invoice |
| includeArchived | query | optional | boolean | e.g. includeArchived=true - Invoices with a status of ARCHIVED will be included in the response |
| createdByMyApp | query | optional | boolean | When set to true you’ll only retrieve Invoices created by your app |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
| summaryOnly | query | optional | boolean | Use summaryOnly=true in GET Contacts and Invoices endpoint to retrieve a smaller version of the response object. This returns only lightweight fields, excluding computation-heavy fields from the response, making the API calls quick and efficient. |
Success - return response of type Invoices array with all Invoices
GET /Invoices
/Invoices/{InvoiceID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| InvoiceID | path | optional | string | Unique identifier for an Invoice |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type Invoices array with specified Invoices
GET /Invoices/{InvoiceID}
/Invoices/{InvoiceID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| InvoiceID | path | optional | string | Unique identifier for an Invoice |
Success - return response of type Attachments array of Attachments for specified Invoices
GET /Invoices/{InvoiceID}/Attachments
/Invoices/{InvoiceID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| InvoiceID | path | optional | string | Unique identifier for an Invoice |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Invoice as binary data
GET /Invoices/{InvoiceID}/Attachments/{AttachmentID}
/Invoices/{InvoiceID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| InvoiceID | path | optional | string | Unique identifier for an Invoice |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Invoice as binary data
GET /Invoices/{InvoiceID}/Attachments/{FileName}
/Invoices/{InvoiceID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| InvoiceID | path | optional | string | Unique identifier for an Invoice |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /Invoices/{InvoiceID}/History
/Invoices/{InvoiceID}/OnlineInvoice
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| InvoiceID | path | optional | string | Unique identifier for an Invoice |
Success - return response of type OnlineInvoice array with one OnlineInvoice
GET /Invoices/{InvoiceID}/OnlineInvoice
/Invoices/{InvoiceID}/pdf
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| InvoiceID | path | optional | string | Unique identifier for an Invoice |
Success - return response of byte array pdf version of specified Invoices
GET /Invoices/{InvoiceID}/pdf
/Items
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type Items array with all Item
GET /Items
/Items/{ItemID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ItemID | path | optional | string | Unique identifier for an Item |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type Items array with specified Item
GET /Items/{ItemID}
/Items/{ItemID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ItemID | path | optional | string | Unique identifier for an Item |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /Items/{ItemID}/History
/Journals
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| offset | query | optional | integer | Offset by a specified journal number. e.g. journals with a JournalNumber greater than the offset will be returned |
| paymentsOnly | query | optional | boolean | Filter to retrieve journals on a cash basis. Journals are returned on an accrual basis by default. |
Success - return response of type Journals array with all Journals
GET /Journals
/Journals/{JournalID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| JournalID | path | optional | string | Unique identifier for a Journal |
Success - return response of type Journals array with specified Journal
GET /Journals/{JournalID}
/Journals/{JournalNumber}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| JournalNumber | path | optional | integer | Number of a Journal |
Success - return response of type Journals array with specified Journal
GET /Journals/{JournalNumber}
/LinkedTransactions
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| page | query | optional | integer | Up to 100 linked transactions will be returned in a single API call. Use the page parameter to specify the page to be returned e.g. page=1. |
| LinkedTransactionID | query | optional | string | The Xero identifier for an Linked Transaction |
| SourceTransactionID | query | optional | string | Filter by the SourceTransactionID. Get the linked transactions created from a particular ACCPAY invoice |
| ContactID | query | optional | string | Filter by the ContactID. Get all the linked transactions that have been assigned to a particular customer. |
| Status | query | optional | string | Filter by the combination of ContactID and Status. Get the linked transactions associated to a customer and with a status |
| TargetTransactionID | query | optional | string | Filter by the TargetTransactionID. Get all the linked transactions allocated to a particular ACCREC invoice |
Success - return response of type LinkedTransactions array with all LinkedTransaction
GET /LinkedTransactions
/LinkedTransactions/{LinkedTransactionID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| LinkedTransactionID | path | optional | string | Unique identifier for a LinkedTransaction |
Success - return response of type LinkedTransactions array with a specified LinkedTransaction
GET /LinkedTransactions/{LinkedTransactionID}
/ManualJournals
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
| page | query | optional | integer | e.g. page=1 – Up to 100 manual journals will be returned in a single API call with line items shown for each overpayment |
Success - return response of type ManualJournals array with a all ManualJournals
GET /ManualJournals
/ManualJournals/{ManualJournalID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ManualJournalID | path | optional | string | Unique identifier for a ManualJournal |
Success - return response of type ManualJournals array with a specified ManualJournals
GET /ManualJournals/{ManualJournalID}
/ManualJournals/{ManualJournalID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ManualJournalID | path | optional | string | Unique identifier for a ManualJournal |
Success - return response of type Attachments array with all Attachments for a ManualJournals
GET /ManualJournals/{ManualJournalID}/Attachments
/ManualJournals/{ManualJournalID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ManualJournalID | path | optional | string | Unique identifier for a ManualJournal |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Manual Journal as binary data
GET /ManualJournals/{ManualJournalID}/Attachments/{AttachmentID}
/ManualJournals/{ManualJournalID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ManualJournalID | path | optional | string | Unique identifier for a ManualJournal |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Manual Journal as binary data
GET /ManualJournals/{ManualJournalID}/Attachments/{FileName}
/ManualJournals/{ManualJournalID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ManualJournalID | path | optional | string | Unique identifier for a ManualJournal |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /ManualJournals/{ManualJournalID}/History
/Organisation
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
Success - return response of type Organisation array with all Organisation
GET /Organisation
/Organisation/Actions
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
Success - return response of type Actions array with all key actions
GET /Organisation/Actions
/Organisation/{OrganisationID}/CISSettings
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| OrganisationID | path | optional | string | The unique Xero identifier for an organisation |
Success - return response of type Organisation array with specified Organisation
GET /Organisation/{OrganisationID}/CISSettings
/Overpayments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
| page | query | optional | integer | e.g. page=1 – Up to 100 overpayments will be returned in a single API call with line items shown for each overpayment |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type Overpayments array with all Overpayments
GET /Overpayments
/Overpayments/{OverpaymentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| OverpaymentID | path | optional | string | Unique identifier for a Overpayment |
Success - return response of type Overpayments array with specified Overpayments
GET /Overpayments/{OverpaymentID}
/Overpayments/{OverpaymentID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| OverpaymentID | path | optional | string | Unique identifier for a Overpayment |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /Overpayments/{OverpaymentID}/History
/PaymentServices
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
Success - return response of type PaymentServices array for all PaymentService
GET /PaymentServices
/Payments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
| page | query | optional | integer | Up to 100 payments will be returned in a single API call |
Success - return response of type Payments array for all Payments
GET /Payments
/Payments/{PaymentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| PaymentID | path | optional | string | Unique identifier for a Payment |
Success - return response of type Payments array for specified Payment
GET /Payments/{PaymentID}
/Payments/{PaymentID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| PaymentID | path | optional | string | Unique identifier for a Payment |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /Payments/{PaymentID}/History
/Prepayments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
| page | query | optional | integer | e.g. page=1 – Up to 100 prepayments will be returned in a single API call with line items shown for each overpayment |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type Prepayments array for all Prepayment
GET /Prepayments
/Prepayments/{PrepaymentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| PrepaymentID | path | optional | string | Unique identifier for a PrePayment |
Success - return response of type Prepayments array for a specified Prepayment
GET /Prepayments/{PrepaymentID}
/Prepayments/{PrepaymentID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| PrepaymentID | path | optional | string | Unique identifier for a PrePayment |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /Prepayments/{PrepaymentID}/History
/PurchaseOrders
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| Status | query | optional | string | Filter by purchase order status |
| DateFrom | query | optional | string | Filter by purchase order date (e.g. GET https://…/PurchaseOrders?DateFrom=2015-12-01&DateTo=2015-12-31 |
| DateTo | query | optional | string | Filter by purchase order date (e.g. GET https://…/PurchaseOrders?DateFrom=2015-12-01&DateTo=2015-12-31 |
| order | query | optional | string | Order by an any element |
| page | query | optional | integer | To specify a page, append the page parameter to the URL e.g. ?page=1. If there are 100 records in the response you will need to check if there is any more data by fetching the next page e.g ?page=2 and continuing this process until no more results are returned. |
Success - return response of type PurchaseOrder array of all PurchaseOrder
GET /PurchaseOrders
/PurchaseOrders/{PurchaseOrderID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| PurchaseOrderID | path | optional | string | Unique identifier for an Purchase Order |
Success - return response of type PurchaseOrder array for specified PurchaseOrder
GET /PurchaseOrders/{PurchaseOrderID}
/PurchaseOrders/{PurchaseOrderID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| PurchaseOrderID | path | optional | string | Unique identifier for an Purchase Order |
Success - return response of type Attachments array of Purchase Orders
GET /PurchaseOrders/{PurchaseOrderID}/Attachments
/PurchaseOrders/{PurchaseOrderID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| PurchaseOrderID | path | optional | string | Unique identifier for an Purchase Order |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Account as binary data
GET /PurchaseOrders/{PurchaseOrderID}/Attachments/{AttachmentID}
/PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| PurchaseOrderID | path | optional | string | Unique identifier for an Purchase Order |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Purchase Order as binary data
GET /PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}
/PurchaseOrders/{PurchaseOrderID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| PurchaseOrderID | path | optional | string | Unique identifier for an Purchase Order |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /PurchaseOrders/{PurchaseOrderID}/History
/PurchaseOrders/{PurchaseOrderID}/pdf
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| PurchaseOrderID | path | optional | string | Unique identifier for an Purchase Order |
Success - return response of byte array pdf version of specified Purchase Orders
GET /PurchaseOrders/{PurchaseOrderID}/pdf
/PurchaseOrders/{PurchaseOrderNumber}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| PurchaseOrderNumber | path | required | string | Unique identifier for a PurchaseOrder |
Success - return response of type PurchaseOrder array for specified PurchaseOrder
GET /PurchaseOrders/{PurchaseOrderNumber}
/Quotes
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| DateFrom | query | optional | string | Filter for quotes after a particular date |
| DateTo | query | optional | string | Filter for quotes before a particular date |
| ExpiryDateFrom | query | optional | string | Filter for quotes expiring after a particular date |
| ExpiryDateTo | query | optional | string | Filter for quotes before a particular date |
| ContactID | query | optional | string | Filter for quotes belonging to a particular contact |
| Status | query | optional | string | Filter for quotes of a particular Status |
| page | query | optional | integer | e.g. page=1 – Up to 100 Quotes will be returned in a single API call with line items shown for each quote |
| order | query | optional | string | Order by an any element |
| QuoteNumber | query | optional | string | Filter by quote number (e.g. GET https://…/Quotes?QuoteNumber=QU-0001) |
Success - return response of type quotes array with all quotes
GET /Quotes
/Quotes/{QuoteID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| QuoteID | path | optional | string | Unique identifier for an Quote |
Success - return response of type Quotes array with specified Quote
GET /Quotes/{QuoteID}
/Quotes/{QuoteID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| QuoteID | path | optional | string | Unique identifier for an Quote |
Success - return response of type Attachments array of Attachment
GET /Quotes/{QuoteID}/Attachments
/Quotes/{QuoteID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| QuoteID | path | optional | string | Unique identifier for an Quote |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Quote as binary data
GET /Quotes/{QuoteID}/Attachments/{AttachmentID}
/Quotes/{QuoteID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| QuoteID | path | optional | string | Unique identifier for an Quote |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Quote as binary data
GET /Quotes/{QuoteID}/Attachments/{FileName}
/Quotes/{QuoteID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| QuoteID | path | optional | string | Unique identifier for an Quote |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /Quotes/{QuoteID}/History
/Quotes/{QuoteID}/pdf
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| QuoteID | path | optional | string | Unique identifier for an Quote |
Success - return response of byte array pdf version of specified Quotes
GET /Quotes/{QuoteID}/pdf
/Receipts
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type Receipts array for all Receipt
GET /Receipts
/Receipts/{ReceiptID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ReceiptID | path | optional | string | Unique identifier for a Receipt |
| unitdp | query | optional | integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
Success - return response of type Receipts array for a specified Receipt
GET /Receipts/{ReceiptID}
/Receipts/{ReceiptID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ReceiptID | path | optional | string | Unique identifier for a Receipt |
Success - return response of type Attachments array of Attachments for a specified Receipt
GET /Receipts/{ReceiptID}/Attachments
/Receipts/{ReceiptID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ReceiptID | path | optional | string | Unique identifier for a Receipt |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Receipt as binary data
GET /Receipts/{ReceiptID}/Attachments/{AttachmentID}
/Receipts/{ReceiptID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ReceiptID | path | optional | string | Unique identifier for a Receipt |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Receipt as binary data
GET /Receipts/{ReceiptID}/Attachments/{FileName}
/Receipts/{ReceiptID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ReceiptID | path | optional | string | Unique identifier for a Receipt |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /Receipts/{ReceiptID}/History
/RepeatingInvoices
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of type Repeating Invoices array for all Repeating Invoice
GET /RepeatingInvoices
/RepeatingInvoices/{RepeatingInvoiceID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| RepeatingInvoiceID | path | optional | string | Unique identifier for a Repeating Invoice |
Success - return response of type Repeating Invoices array with a specified Repeating Invoice
GET /RepeatingInvoices/{RepeatingInvoiceID}
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| RepeatingInvoiceID | path | optional | string | Unique identifier for a Repeating Invoice |
Success - return response of type Attachments array with all Attachments for a specified Repeating Invoice
GET /RepeatingInvoices/{RepeatingInvoiceID}/Attachments
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{AttachmentID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| RepeatingInvoiceID | path | optional | string | Unique identifier for a Repeating Invoice |
| AttachmentID | path | optional | string | Unique identifier for Attachment object |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Repeating Invoice as binary data
GET /RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{AttachmentID}
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| RepeatingInvoiceID | path | optional | string | Unique identifier for a Repeating Invoice |
| FileName | path | optional | string | Name of the attachment |
| contentType | header | optional | string | The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf |
Success - return response of attachment for Repeating Invoice as binary data
GET /RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}
/RepeatingInvoices/{RepeatingInvoiceID}/History
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| RepeatingInvoiceID | path | optional | string | Unique identifier for a Repeating Invoice |
Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /RepeatingInvoices/{RepeatingInvoiceID}/History
/Reports
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
Success - return response of type ReportWithRows
GET /Reports
/Reports/AgedPayablesByContact
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| contactId | query | required | string | Unique identifier for a Contact |
| date | query | optional | string | The date of the Aged Payables By Contact report |
| fromDate | query | optional | string | filter by the from date of the report e.g. 2021-02-01 |
| toDate | query | optional | string | filter by the to date of the report e.g. 2021-02-28 |
Success - return response of type ReportWithRows
GET /Reports/AgedPayablesByContact
/Reports/AgedReceivablesByContact
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| contactId | query | required | string | Unique identifier for a Contact |
| date | query | optional | string | The date of the Aged Receivables By Contact report |
| fromDate | query | optional | string | filter by the from date of the report e.g. 2021-02-01 |
| toDate | query | optional | string | filter by the to date of the report e.g. 2021-02-28 |
Success - return response of type ReportWithRows
GET /Reports/AgedReceivablesByContact
/Reports/BalanceSheet
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| date | query | optional | string | The date of the Balance Sheet report |
| periods | query | optional | integer | The number of periods for the Balance Sheet report |
| timeframe | query | optional | string | The period size to compare to (MONTH, QUARTER, YEAR) |
| trackingOptionID1 | query | optional | string | The tracking option 1 for the Balance Sheet report |
| trackingOptionID2 | query | optional | string | The tracking option 2 for the Balance Sheet report |
| standardLayout | query | optional | boolean | The standard layout boolean for the Balance Sheet report |
| paymentsOnly | query | optional | boolean | return a cash basis for the Balance Sheet report |
Success - return response of type ReportWithRows
GET /Reports/BalanceSheet
/Reports/BankSummary
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| fromDate | query | optional | string | filter by the from date of the report e.g. 2021-02-01 |
| toDate | query | optional | string | filter by the to date of the report e.g. 2021-02-28 |
Success - return response of type ReportWithRows
GET /Reports/BankSummary
/Reports/BudgetSummary
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| date | query | optional | string | The date for the Bank Summary report e.g. 2018-03-31 |
| periods | query | optional | integer | The number of periods to compare (integer between 1 and 12) |
| timeframe | query | optional | integer | The period size to compare to (1=month, 3=quarter, 12=year) |
success- return a Report with Rows object
GET /Reports/BudgetSummary
/Reports/ExecutiveSummary
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| date | query | optional | string | The date for the Bank Summary report e.g. 2018-03-31 |
Success - return response of type ReportWithRows
GET /Reports/ExecutiveSummary
/Reports/ProfitAndLoss
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| fromDate | query | optional | string | filter by the from date of the report e.g. 2021-02-01 |
| toDate | query | optional | string | filter by the to date of the report e.g. 2021-02-28 |
| periods | query | optional | integer | The number of periods to compare (integer between 1 and 12) |
| timeframe | query | optional | string | The period size to compare to (MONTH, QUARTER, YEAR) |
| trackingCategoryID | query | optional | string | The trackingCategory 1 for the ProfitAndLoss report |
| trackingCategoryID2 | query | optional | string | The trackingCategory 2 for the ProfitAndLoss report |
| trackingOptionID | query | optional | string | The tracking option 1 for the ProfitAndLoss report |
| trackingOptionID2 | query | optional | string | The tracking option 2 for the ProfitAndLoss report |
| standardLayout | query | optional | boolean | Return the standard layout for the ProfitAndLoss report |
| paymentsOnly | query | optional | boolean | Return cash only basis for the ProfitAndLoss report |
Success - return response of type ReportWithRows
GET /Reports/ProfitAndLoss
/Reports/TenNinetyNine
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| reportYear | query | optional | string | The year of the 1099 report |
Success - return response of type Reports
GET /Reports/TenNinetyNine
/Reports/TrialBalance
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| date | query | optional | string | The date for the Trial Balance report e.g. 2018-03-31 |
| paymentsOnly | query | optional | boolean | Return cash only basis for the Trial Balance report |
Success - return response of type ReportWithRows
GET /Reports/TrialBalance
/Reports/{ReportID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| ReportID | path | required | string | Unique identifier for a Report |
Success - return response of type ReportWithRows
GET /Reports/{ReportID}
/TaxRates
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of type TaxRates array with TaxRates
GET /TaxRates
/TaxRates/{TaxType}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| TaxType | path | optional | string | A valid TaxType code |
Success - return response of type TaxRates array with one TaxRate
GET /TaxRates/{TaxType}
/TrackingCategories
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
| includeArchived | query | optional | boolean | e.g. includeArchived=true - Categories and options with a status of ARCHIVED will be included in the response |
Success - return response of type TrackingCategories array of TrackingCategory
GET /TrackingCategories
/TrackingCategories/{TrackingCategoryID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| TrackingCategoryID | path | optional | string | Unique identifier for a TrackingCategory |
Success - return response of type TrackingCategories array of specified TrackingCategory
GET /TrackingCategories/{TrackingCategoryID}
/Users
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| If-Modified-Since | header | optional | string | Only records created or modified since this timestamp will be returned |
| where | query | optional | string | Filter by an any element |
| order | query | optional | string | Order by an any element |
Success - return response of type Users array of all User
GET /Users
/Users/{UserID}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| xero-tenant-id | header | optional | string | Xero identifier for Tenant |
| UserID | path | optional | string | Unique identifier for a User |
Success - return response of type Users array of specified User
GET /Users/{UserID}
Account
{
"type": "object",
"properties": {
"Code": {
"type": "string",
"example": 4400,
"description": "Customer defined alpha numeric account code e.g 200 or SALES (max length = 10)"
},
"Name": {
"type": "string",
"example": "Food Sales",
"maxLength": 150,
"description": "Name of account (max length = 150)"
},
"Type": {
"$ref": "#/components/schemas/AccountType",
"type": "string"
},
"Class": {
"enum": [
"ASSET",
"EQUITY",
"EXPENSE",
"LIABILITY",
"REVENUE"
],
"type": "string",
"readOnly": true,
"description": "See Account Class Types"
},
"Status": {
"enum": [
"ACTIVE",
"ARCHIVED",
"DELETED"
],
"type": "string",
"description": "Accounts with a status of ACTIVE can be updated to ARCHIVED. See Account Status Codes"
},
"TaxType": {
"type": "string",
"description": "The tax type from taxRates"
},
"AccountID": {
"type": "string",
"format": "uuid",
"example": "00000000-0000-0000-0000-000000000000",
"description": "The Xero identifier for an account – specified as a string following the endpoint name e.g. /297c2dc5-cc47-4afd-8ec8-74990b8761e9"
},
"Description": {
"type": "string",
"description": "Description of the Account. Valid for all types of accounts except bank accounts (max length = 4000)"
},
"CurrencyCode": {
"$ref": "#/components/schemas/CurrencyCode",
"type": "string"
},
"ReportingCode": {
"type": "string",
"description": "Shown if set"
},
"SystemAccount": {
"enum": [
"DEBTORS",
"CREDITORS",
"BANKCURRENCYGAIN",
"GST",
"GSTONIMPORTS",
"HISTORICAL",
"REALISEDCURRENCYGAIN",
"RETAINEDEARNINGS",
"ROUNDING",
"TRACKINGTRANSFERS",
"UNPAIDEXPCLM",
"UNREALISEDCURRENCYGAIN",
"WAGEPAYABLES",
"CISASSETS",
"CISASSET",
"CISLABOUR",
"CISLABOUREXPENSE",
"CISLABOURINCOME",
"CISLIABILITY",
"CISMATERIALS",
""
],
"type": "string",
"readOnly": true,
"description": "If this is a system account then this element is returned. See System Account types. Note that non-system accounts may have this element set as either “” or null."
},
"AddToWatchlist": {
"type": "boolean",
"description": "Boolean – describes whether the account is shown in the watchlist widget on the dashboard"
},
"HasAttachments": {
"type": "boolean",
"default": "false",
"example": false,
"readOnly": true,
"description": "boolean to indicate if an account has an attachment (read only)"
},
"UpdatedDateUTC": {
"type": "string",
"example": "/Date(1573755038314)/",
"readOnly": true,
"description": "Last modified date UTC format",
"x-is-msdate-time": true
},
"BankAccountType": {
"enum": [
"BANK",
"CREDITCARD",
"PAYPAL",
"NONE",
""
],
"type": "string",
"description": "For bank accounts only. See Bank Account types"
},
"ValidationErrors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"description": "Displays array of validation error messages from the API"
},
"BankAccountNumber": {
"type": "string",
"description": "For bank accounts only (Account Type BANK)"
},
"ReportingCodeName": {
"type": "string",
"readOnly": true,
"description": "Shown if set"
},
"ShowInExpenseClaims": {
"type": "boolean",
"description": "Boolean – describes whether account code is available for use with expense claims"
},
"EnablePaymentsToAccount": {
"type": "boolean",
"description": "Boolean – describes whether account can have payments applied to it"
}
},
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/accounts/"
}
}
AccountType
{
"enum": [
"BANK",
"CURRENT",
"CURRLIAB",
"DEPRECIATN",
"DIRECTCOSTS",
"EQUITY",
"EXPENSE",
"FIXED",
"INVENTORY",
"LIABILITY",
"NONCURRENT",
"OTHERINCOME",
"OVERHEADS",
"PREPAYMENT",
"REVENUE",
"SALES",
"TERMLIAB",
"PAYG"
],
"type": "string",
"description": "See Account Types"
}
AccountingCreateAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingCreateAttachmentRequest1
{
"type": "string",
"format": "byte"
}
AccountingCreateBankTransactionAttachmentByFilenameRequest
{
"type": "string",
"format": "byte"
}
AccountingCreatePurchaseOrderAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingCreateQuoteAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingCreateReceiptAttachmentByFileNameRequest
{
"type": "string",
"format": "byte"
}
AccountingCreateRepeatingInvoiceAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingCreateSpecificAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingGetAttachment200Response
{
"type": "string",
"format": "binary"
}
AccountingGetAttachmentByFileName200Response
{
"type": "string",
"format": "binary"
}
AccountingGetAttachmentByFileNameResponse
{
"type": "string",
"format": "binary"
}
AccountingGetAttachmentByFilenameResponse
{
"type": "string",
"format": "binary"
}
AccountingGetAttachmentByIdResponse
{
"type": "string",
"format": "binary"
}
AccountingGetAttachmentResponse
{
"type": "string",
"format": "binary"
}
AccountingGetCreditNoteAttachmentResponse
{
"type": "string",
"format": "binary"
}
AccountingGetCreditNotePdfResponse
{
"type": "string",
"format": "binary"
}
AccountingGetExpenseClaimsAttachmentResponse
{
"type": "string",
"format": "binary"
}
AccountingGetInvoicePdfResponse
{
"type": "string",
"format": "binary"
}
AccountingGetPurchaseOrderPdfResponse
{
"type": "string",
"format": "binary"
}
AccountingGetQuoteAttachmentResponse
{
"type": "string",
"format": "binary"
}
AccountingGetQuotePdfResponse
{
"type": "string",
"format": "binary"
}
AccountingGetRepeatingInvoiceAttachmentResponse
{
"type": "string",
"format": "binary"
}
AccountingGetSpecificAttachment200Response
{
"type": "string",
"format": "binary"
}
AccountingGetSpecificAttachmentResponse
{
"type": "string",
"format": "binary"
}
AccountingUpdateAttachmentByFilenameRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateAttachmentsByFileNameRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateBankTransactionAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateBankTransferAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateCreditNoteAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdatePurchaseOrderAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateQuoteAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateRepeatingInvoiceAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateSpecificAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUpdateSpecificAttachmentRequest1
{
"type": "string",
"format": "byte"
}
AccountingUploadAttachmentRequest
{
"type": "string",
"format": "byte"
}
AccountingUploadAttachmentRequest1
{
"type": "string",
"format": "byte"
}
AccountingUploadBankTransferAttachmentRequest
{
"type": "string",
"format": "byte"
}
Accounts
{
"type": "object",
"properties": {
"Accounts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Account"
}
}
},
"x-isObjectArray": true
}
AccountsPayable
{
"type": "object",
"properties": {
"Overdue": {
"type": "number",
"format": "double",
"x-is-money": true
},
"Outstanding": {
"type": "number",
"format": "double",
"x-is-money": true
}
}
}
AccountsReceivable
{
"type": "object",
"properties": {
"Overdue": {
"type": "number",
"format": "double",
"x-is-money": true
},
"Outstanding": {
"type": "number",
"format": "double",
"x-is-money": true
}
}
}
Action
{
"properties": {
"Name": {
"type": "string",
"example": "UseMulticurrency",
"description": "Name of the actions for this organisation"
},
"Status": {
"enum": [
"ALLOWED",
"NOT-ALLOWED"
],
"type": "string",
"description": "Status of the action for this organisation"
}
},
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/organisation/"
}
}
Actions
{
"type": "object",
"properties": {
"Actions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Action"
}
}
},
"x-isObjectArray": true
}
Address
{
"type": "object",
"properties": {
"City": {
"type": "string",
"maxLength": 255,
"description": "max length = 255"
},
"Region": {
"type": "string",
"maxLength": 255,
"description": "max length = 255"
},
"Country": {
"type": "string",
"maxLength": 50,
"description": "max length = 50, [A-Z], [a-z] only"
},
"PostalCode": {
"type": "string",
"maxLength": 50,
"description": "max length = 50"
},
"AddressType": {
"enum": [
"POBOX",
"STREET"
],
"type": "string",
"description": "define the type of address"
},
"AttentionTo": {
"type": "string",
"maxLength": 255,
"description": "max length = 255"
},
"AddressLine1": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
},
"AddressLine2": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
},
"AddressLine3": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
},
"AddressLine4": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
}
},
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/types"
}
}
AddressForOrganisation
{
"type": "object",
"properties": {
"City": {
"type": "string",
"maxLength": 255,
"description": "max length = 255"
},
"Region": {
"type": "string",
"maxLength": 255,
"description": "max length = 255"
},
"Country": {
"type": "string",
"maxLength": 50,
"description": "max length = 50, [A-Z], [a-z] only"
},
"PostalCode": {
"type": "string",
"maxLength": 50,
"description": "max length = 50"
},
"AddressType": {
"enum": [
"POBOX",
"STREET",
"DELIVERY"
],
"type": "string",
"description": "define the type of address"
},
"AttentionTo": {
"type": "string",
"maxLength": 255,
"description": "max length = 255"
},
"AddressLine1": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
},
"AddressLine2": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
},
"AddressLine3": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
},
"AddressLine4": {
"type": "string",
"maxLength": 500,
"description": "max length = 500"
}
},
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/types"
}
}
Allocation
{
"type": "object",
"required": [
"Amount",
"Invoice",
"Date"
],
"properties": {
"Date": {
"type": "string",
"description": "the date the allocation is applied YYYY-MM-DD.",
"x-is-msdate": true
},
"Amount": {
"type": "number",
"format": "double",
"x-is-money": true,
"description": "the amount being applied to the invoice"
},
"Invoice": {
"$ref": "#/components/schemas/Invoice"
},
"IsDeleted": {
"type": "boolean",
"readOnly": true,
"description": "A flag that returns true when the allocation is succesfully deleted"
},
"CreditNote": {
"$ref": "#/components/schemas/CreditNote"
},
"Prepayment": {
"$ref": "#/components/schemas/Prepayment"
},
"Overpayment": {
"$ref": "#/components/schemas/Overpayment"
},
"AllocationID": {
"type": "string",
"format": "uuid",
"description": "Xero generated unique identifier"
},
"ValidationErrors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"description": "Displays array of validation error messages from the API"
},
"StatusAttributeString": {
"type": "string",
"description": "A string to indicate if a invoice status"
}
},
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/prepayments/"
}
}
Allocations
{
"type": "object",
"properties": {
"Allocations": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Allocation"
}
}
},
"x-isObjectArray": true
}
Attachment
{
"type": "object",
"properties": {
"Url": {
"type": "string",
"example": "https://api.xero.com/api.xro/2.0/Accounts/da962997-a8bd-4dff-9616-01cdc199283f/Attachments/sample5.jpg",
"description": "URL to the file on xero.com"
},
"FileName": {
"type": "string",
"example": "xero-dev.jpg",
"description": "Name of the file"
},
"MimeType": {
"type": "string",
"example": "image/jpg",
"description": "Type of file"
},
"AttachmentID": {
"type": "string",
"format": "uuid",
"example": "00000000-0000-0000-0000-000000000000",
"description": "Unique ID for the file"
},
"ContentLength": {
"type": "integer",
"description": "Length of the file content"
},
"IncludeOnline": {
"type": "boolean",
"description": "Include the file with the online invoice"
}
},
"externalDocs": {
"url": "http://developer.xero.com/documentation/api/attachments/"
}
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 3.0.1 | 237 | 171 | 2026-05-11 | current |
| 3.0.1 | 237 | 171 | 2026-04-16 |