Xero Accounting

Cloud accounting software API

developer.xero.com/documentation ↗
Version
3.0.1
OpenAPI
3.0.0
Endpoints
237
Schemas
171
Updated
3 days ago
Finance accounting finance invoicing
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.xero.com/api.xro/2.0

Authentication

oauth2

Endpoints

Clear filters

Accounting 128 endpoints

GET /Accounts
operationId: Accounting_getFullChartOfAccounts

Parameters

Name In Required Type Description
optional
where query optional string Filter by an any element
order query optional string Order by an any element

Responses

200 Success - return response of type Accounts array with 0 to n Account
GET /Accounts
GET /Accounts/{AccountID}
operationId: Accounting_getChartOfAccountsById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Accounts array with one Account
GET /Accounts/{AccountID}
GET /Accounts/{AccountID}/Attachments
operationId: Accounting_getAttachments

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Attachments array of Attachment
GET /Accounts/{AccountID}/Attachments
GET /Accounts/{AccountID}/Attachments/{AttachmentID}
operationId: Accounting_getAttachmentById

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Account as binary data
GET /Accounts/{AccountID}/Attachments/{AttachmentID}
GET /Accounts/{AccountID}/Attachments/{FileName}
operationId: Accounting_getAttachmentByFilename

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Account as binary data
GET /Accounts/{AccountID}/Attachments/{FileName}
GET /BankTransactions
operationId: Accounting_getMoneyTransactions

Parameters

Name In Required Type Description
optional
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
optional

Responses

200 Success - return response of type BankTransactions array with 0 to n BankTransaction
GET /BankTransactions
GET /BankTransactions/{BankTransactionID}
operationId: Accounting_getBankTransactionById

Parameters

Name In Required Type Description
optional
optional

Responses

200 Success - return response of type BankTransactions array with a specific BankTransaction
GET /BankTransactions/{BankTransactionID}
GET /BankTransactions/{BankTransactionID}/Attachments
operationId: Accounting_getBankTransactionAttachments

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Attachments array with 0 to n Attachment
GET /BankTransactions/{BankTransactionID}/Attachments
GET /BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}
operationId: Accounting_getAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for BankTransaction as binary data
GET /BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}
GET /BankTransactions/{BankTransactionID}/Attachments/{FileName}
operationId: Accounting_getAttachmentByFileName

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for BankTransaction as binary data
GET /BankTransactions/{BankTransactionID}/Attachments/{FileName}
GET /BankTransactions/{BankTransactionID}/History
operationId: Accounting_getBankTransactionHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /BankTransactions/{BankTransactionID}/History
GET /BankTransfers
operationId: Accounting_getBankTransfers

Parameters

Name In Required Type Description
optional
where query optional string Filter by an any element
order query optional string Order by an any element

Responses

200 Success - return response of BankTransfers array of 0 to N BankTransfer
GET /BankTransfers
GET /BankTransfers/{BankTransferID}
operationId: Accounting_getBankTransferById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of BankTransfers array with one BankTransfer
GET /BankTransfers/{BankTransferID}
GET /BankTransfers/{BankTransferID}/Attachments
operationId: Accounting_getBankTransferAttachments

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of Attachments array of 0 to N Attachment for a Bank Transfer
GET /BankTransfers/{BankTransferID}/Attachments
GET /BankTransfers/{BankTransferID}/Attachments/{AttachmentID}
operationId: Accounting_getAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of binary data from the Attachment to a Bank Transfer
GET /BankTransfers/{BankTransferID}/Attachments/{AttachmentID}
GET /BankTransfers/{BankTransferID}/Attachments/{FileName}
operationId: Accounting_getSpecificAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of binary data from the Attachment to a Bank Transfer
GET /BankTransfers/{BankTransferID}/Attachments/{FileName}
GET /BankTransfers/{BankTransferID}/History
operationId: Accounting_getBankTransferHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /BankTransfers/{BankTransferID}/History
GET /BatchPayments
operationId: Accounting_getBatchPayments

Parameters

Name In Required Type Description
optional
where query optional string Filter by an any element
order query optional string Order by an any element

Responses

200 Success - return response of type BatchPayments array of BatchPayment objects
GET /BatchPayments
GET /BatchPayments/{BatchPaymentID}
operationId: Accounting_getBatchPayment

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type BatchPayments array with matching batch payment Id
GET /BatchPayments/{BatchPaymentID}
GET /BatchPayments/{BatchPaymentID}/History
operationId: Accounting_getBatchPaymentHistory

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of HistoryRecords array of 0 to N HistoryRecord
GET /BatchPayments/{BatchPaymentID}/History
GET /BrandingThemes
operationId: Accounting_getBrandingThemes

Responses

200 Success - return response of type BrandingThemes
GET /BrandingThemes
GET /BrandingThemes/{BrandingThemeID}
operationId: Accounting_getBrandingThemeById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type BrandingThemes with one BrandingTheme
GET /BrandingThemes/{BrandingThemeID}
GET /BrandingThemes/{BrandingThemeID}/PaymentServices
operationId: Accounting_getPaymentServices

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type PaymentServices array with 0 to N PaymentService
GET /BrandingThemes/{BrandingThemeID}/PaymentServices
GET /Budgets
operationId: Accounting_getBudgetsList

Parameters

Name In Required Type Description
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

Responses

200 Success - return response of type Budgets array with 0 to N Budgets
GET /Budgets
GET /Budgets/{BudgetID}
operationId: Accounting_getBudget

Parameters

Name In Required Type Description
optional
DateTo query optional string Filter by start date
DateFrom query optional string Filter by end date

Responses

200 Success - return response of type Invoices array with specified Invoices
GET /Budgets/{BudgetID}
GET /ContactGroups
operationId: Accounting_getContactGroupDetails

Parameters

Name In Required Type Description
where query optional string Filter by an any element
order query optional string Order by an any element

Responses

200 Success - return response of type Contact Groups array of Contact Group
GET /ContactGroups
GET /ContactGroups/{ContactGroupID}
operationId: Accounting_getContactGroupById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Contact Groups array with a specific Contact Group
GET /ContactGroups/{ContactGroupID}
GET /Contacts
operationId: Accounting_listContacts

Parameters

Name In Required Type Description
optional
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
optional
searchTerm query optional string Search parameter that performs a case-insensitive text search across the Name, FirstName, LastName, ContactNumber and EmailAddress fields.

Responses

200 Success - return response of type Contacts array with 0 to N Contact
GET /Contacts
GET /Contacts/{ContactID}
operationId: Accounting_getContactById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Contacts array with a unique Contact
GET /Contacts/{ContactID}
GET /Contacts/{ContactID}/Attachments
operationId: Accounting_getContactAttachments

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Attachments array with 0 to N Attachment
GET /Contacts/{ContactID}/Attachments
GET /Contacts/{ContactID}/Attachments/{AttachmentID}
operationId: Accounting_getSpecificAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Contact as binary data
GET /Contacts/{ContactID}/Attachments/{AttachmentID}
GET /Contacts/{ContactID}/Attachments/{FileName}
operationId: Accounting_getAttachmentByFileName

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Contact as binary data
GET /Contacts/{ContactID}/Attachments/{FileName}
GET /Contacts/{ContactID}/CISSettings
operationId: Accounting_getCisSettings

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type CISSettings for a specific Contact
GET /Contacts/{ContactID}/CISSettings
GET /Contacts/{ContactID}/History
operationId: Accounting_getContactHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /Contacts/{ContactID}/History
GET /Contacts/{ContactNumber}
operationId: Accounting_getContactByNumber

Parameters

Name In Required Type Description
ContactNumber path required string This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50).

Responses

200 Success - return response of type Contacts array with a unique Contact
GET /Contacts/{ContactNumber}
GET /CreditNotes
operationId: Accounting_getCreditNotes

Parameters

Name In Required Type Description
optional
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
optional

Responses

200 Success - return response of type Credit Notes array of CreditNote
GET /CreditNotes
GET /CreditNotes/{CreditNoteID}
operationId: Accounting_getCreditNoteById

Parameters

Name In Required Type Description
optional
optional

Responses

200 Success - return response of type Credit Notes array with a unique CreditNote
GET /CreditNotes/{CreditNoteID}
GET /CreditNotes/{CreditNoteID}/Attachments
operationId: Accounting_getCreditNoteAttachments

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Attachments array with all Attachment for specific Credit Note
GET /CreditNotes/{CreditNoteID}/Attachments
GET /CreditNotes/{CreditNoteID}/Attachments/{AttachmentID}
operationId: Accounting_getCreditNoteAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Credit Note as binary data
GET /CreditNotes/{CreditNoteID}/Attachments/{AttachmentID}
GET /CreditNotes/{CreditNoteID}/Attachments/{FileName}
operationId: Accounting_getSpecificAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Credit Note as binary data
GET /CreditNotes/{CreditNoteID}/Attachments/{FileName}
GET /CreditNotes/{CreditNoteID}/History
operationId: Accounting_getCreditNoteHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /CreditNotes/{CreditNoteID}/History
GET /CreditNotes/{CreditNoteID}/pdf
operationId: Accounting_getCreditNotePdf

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of binary data from the Attachment to a Credit Note
GET /CreditNotes/{CreditNoteID}/pdf
GET /Currencies
operationId: Accounting_getCurrencies

Parameters

Name In Required Type Description
where query optional string Filter by an any element
order query optional string Order by an any element

Responses

200 Success - return response of type Currencies array with all Currencies
GET /Currencies
GET /Employees
operationId: Accounting_getPayrunEmployees

Parameters

Name In Required Type Description
optional
where query optional string Filter by an any element
order query optional string Order by an any element

Responses

200 Success - return response of type Employees array with all Employee
GET /Employees
GET /Employees/{EmployeeID}
operationId: Accounting_getEmployeeById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Employees array with specified Employee
GET /Employees/{EmployeeID}
GET /ExpenseClaims
operationId: Accounting_getExpenseClaims

Parameters

Name In Required Type Description
optional
where query optional string Filter by an any element
order query optional string Order by an any element

Responses

200 Success - return response of type ExpenseClaims array with all ExpenseClaims
GET /ExpenseClaims
GET /ExpenseClaims/{ExpenseClaimID}
operationId: Accounting_getExpenseClaimById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type ExpenseClaims array with specified ExpenseClaim
GET /ExpenseClaims/{ExpenseClaimID}
GET /ExpenseClaims/{ExpenseClaimID}/History
operationId: Accounting_getExpenseClaimHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /ExpenseClaims/{ExpenseClaimID}/History
GET /InvoiceReminders/Settings
operationId: Accounting_getInvoiceReminderSettings

Responses

200 Success - return response of Invoice Reminders
GET /InvoiceReminders/Settings
GET /Invoices
operationId: Accounting_getSalesInvoices

Parameters

Name In Required Type Description
optional
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
optional
optional

Responses

200 Success - return response of type Invoices array with all Invoices
GET /Invoices
GET /Invoices/{InvoiceID}
operationId: Accounting_getInvoiceById

Parameters

Name In Required Type Description
optional
optional

Responses

200 Success - return response of type Invoices array with specified Invoices
GET /Invoices/{InvoiceID}
GET /Invoices/{InvoiceID}/Attachments
operationId: Accounting_getInvoiceAttachments

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Attachments array of Attachments for specified Invoices
GET /Invoices/{InvoiceID}/Attachments
GET /Invoices/{InvoiceID}/Attachments/{AttachmentID}
operationId: Accounting_getAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Invoice as binary data
GET /Invoices/{InvoiceID}/Attachments/{AttachmentID}
GET /Invoices/{InvoiceID}/Attachments/{FileName}
operationId: Accounting_getAttachmentByFileName

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Invoice as binary data
GET /Invoices/{InvoiceID}/Attachments/{FileName}
GET /Invoices/{InvoiceID}/History
operationId: Accounting_getInvoiceHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /Invoices/{InvoiceID}/History
GET /Invoices/{InvoiceID}/OnlineInvoice
operationId: Accounting_getOnlineInvoiceUrl

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type OnlineInvoice array with one OnlineInvoice
GET /Invoices/{InvoiceID}/OnlineInvoice
GET /Invoices/{InvoiceID}/pdf
operationId: Accounting_getInvoicePdf

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of byte array pdf version of specified Invoices
GET /Invoices/{InvoiceID}/pdf
GET /Items
operationId: Accounting_getItems

Parameters

Name In Required Type Description
optional
where query optional string Filter by an any element
order query optional string Order by an any element
optional

Responses

200 Success - return response of type Items array with all Item
GET /Items
GET /Items/{ItemID}
operationId: Accounting_getItemById

Parameters

Name In Required Type Description
optional
optional

Responses

200 Success - return response of type Items array with specified Item
GET /Items/{ItemID}
GET /Items/{ItemID}/History
operationId: Accounting_getItemHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /Items/{ItemID}/History
GET /Journals
operationId: Accounting_getJournals

Parameters

Name In Required Type Description
optional
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.

Responses

200 Success - return response of type Journals array with all Journals
GET /Journals
GET /Journals/{JournalID}
operationId: Accounting_getJournalById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Journals array with specified Journal
GET /Journals/{JournalID}
GET /Journals/{JournalNumber}
operationId: Accounting_getJournalByNumber

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Journals array with specified Journal
GET /Journals/{JournalNumber}
GET /LinkedTransactions
operationId: Accounting_getLinkedTransactions

Parameters

Name In Required Type Description
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

Responses

200 Success - return response of type LinkedTransactions array with all LinkedTransaction
GET /LinkedTransactions
GET /LinkedTransactions/{LinkedTransactionID}
operationId: Accounting_getLinkedTransaction

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type LinkedTransactions array with a specified LinkedTransaction
GET /LinkedTransactions/{LinkedTransactionID}
GET /ManualJournals
operationId: Accounting_getManualJournals

Parameters

Name In Required Type Description
optional
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

Responses

200 Success - return response of type ManualJournals array with a all ManualJournals
GET /ManualJournals
GET /ManualJournals/{ManualJournalID}
operationId: Accounting_getManualJournal

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type ManualJournals array with a specified ManualJournals
GET /ManualJournals/{ManualJournalID}
GET /ManualJournals/{ManualJournalID}/Attachments
operationId: Accounting_getManualJournalAttachments

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Attachments array with all Attachments for a ManualJournals
GET /ManualJournals/{ManualJournalID}/Attachments
GET /ManualJournals/{ManualJournalID}/Attachments/{AttachmentID}
operationId: Accounting_getAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Manual Journal as binary data
GET /ManualJournals/{ManualJournalID}/Attachments/{AttachmentID}
GET /ManualJournals/{ManualJournalID}/Attachments/{FileName}
operationId: Accounting_getSpecificAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Manual Journal as binary data
GET /ManualJournals/{ManualJournalID}/Attachments/{FileName}
GET /ManualJournals/{ManualJournalID}/History
operationId: Accounting_getManualJournalHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /ManualJournals/{ManualJournalID}/History
GET /Organisation
operationId: Accounting_getOrganisationDetails

Responses

200 Success - return response of type Organisation array with all Organisation
GET /Organisation
GET /Organisation/Actions
operationId: Accounting_getOrganisationActions

Responses

200 Success - return response of type Actions array with all key actions
GET /Organisation/Actions
GET /Organisation/{OrganisationID}/CISSettings
operationId: Accounting_getCisSettings

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Organisation array with specified Organisation
GET /Organisation/{OrganisationID}/CISSettings
GET /Overpayments
operationId: Accounting_getOverpayments

Parameters

Name In Required Type Description
optional
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
optional

Responses

200 Success - return response of type Overpayments array with all Overpayments
GET /Overpayments
GET /Overpayments/{OverpaymentID}
operationId: Accounting_getOverpaymentById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Overpayments array with specified Overpayments
GET /Overpayments/{OverpaymentID}
GET /Overpayments/{OverpaymentID}/History
operationId: Accounting_getOverpaymentHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /Overpayments/{OverpaymentID}/History
GET /PaymentServices
operationId: Accounting_getPaymentServices

Responses

200 Success - return response of type PaymentServices array for all PaymentService
GET /PaymentServices
GET /Payments
operationId: Accounting_getPaymentsForInvoicesAndCreditNotes

Parameters

Name In Required Type Description
optional
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

Responses

200 Success - return response of type Payments array for all Payments
GET /Payments
GET /Payments/{PaymentID}
operationId: Accounting_getPaymentById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Payments array for specified Payment
GET /Payments/{PaymentID}
GET /Payments/{PaymentID}/History
operationId: Accounting_getPaymentHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /Payments/{PaymentID}/History
GET /Prepayments
operationId: Accounting_getPrepayments

Parameters

Name In Required Type Description
optional
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
optional

Responses

200 Success - return response of type Prepayments array for all Prepayment
GET /Prepayments
GET /Prepayments/{PrepaymentID}
operationId: Accounting_getPrepayment

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Prepayments array for a specified Prepayment
GET /Prepayments/{PrepaymentID}
GET /Prepayments/{PrepaymentID}/History
operationId: Accounting_getPrepaymentHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /Prepayments/{PrepaymentID}/History
GET /PurchaseOrders
operationId: Accounting_getPurchaseOrders

Parameters

Name In Required Type Description
optional
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.

Responses

200 Success - return response of type PurchaseOrder array of all PurchaseOrder
GET /PurchaseOrders
GET /PurchaseOrders/{PurchaseOrderID}
operationId: Accounting_getPurchaseOrderById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type PurchaseOrder array for specified PurchaseOrder
GET /PurchaseOrders/{PurchaseOrderID}
GET /PurchaseOrders/{PurchaseOrderID}/Attachments
operationId: Accounting_getPurchaseOrderAttachments

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Attachments array of Purchase Orders
GET /PurchaseOrders/{PurchaseOrderID}/Attachments
GET /PurchaseOrders/{PurchaseOrderID}/Attachments/{AttachmentID}
operationId: Accounting_getAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Account as binary data
GET /PurchaseOrders/{PurchaseOrderID}/Attachments/{AttachmentID}
GET /PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}
operationId: Accounting_getAttachmentByFileName

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Purchase Order as binary data
GET /PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}
GET /PurchaseOrders/{PurchaseOrderID}/History
operationId: Accounting_getPurchaseOrderHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /PurchaseOrders/{PurchaseOrderID}/History
GET /PurchaseOrders/{PurchaseOrderID}/pdf
operationId: Accounting_getPurchaseOrderPdf

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of byte array pdf version of specified Purchase Orders
GET /PurchaseOrders/{PurchaseOrderID}/pdf
GET /PurchaseOrders/{PurchaseOrderNumber}
operationId: Accounting_getPurchaseOrderByNumber

Parameters

Name In Required Type Description
PurchaseOrderNumber path required string Unique identifier for a PurchaseOrder

Responses

200 Success - return response of type PurchaseOrder array for specified PurchaseOrder
GET /PurchaseOrders/{PurchaseOrderNumber}
GET /Quotes
operationId: Accounting_getSalesQuotes

Parameters

Name In Required Type Description
optional
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)

Responses

200 Success - return response of type quotes array with all quotes
GET /Quotes
GET /Quotes/{QuoteID}
operationId: Accounting_getQuoteById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Quotes array with specified Quote
GET /Quotes/{QuoteID}
GET /Quotes/{QuoteID}/Attachments
operationId: Accounting_getQuoteAttachments

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Attachments array of Attachment
GET /Quotes/{QuoteID}/Attachments
GET /Quotes/{QuoteID}/Attachments/{AttachmentID}
operationId: Accounting_getSpecificAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Quote as binary data
GET /Quotes/{QuoteID}/Attachments/{AttachmentID}
GET /Quotes/{QuoteID}/Attachments/{FileName}
operationId: Accounting_getQuoteAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Quote as binary data
GET /Quotes/{QuoteID}/Attachments/{FileName}
GET /Quotes/{QuoteID}/History
operationId: Accounting_getQuoteHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /Quotes/{QuoteID}/History
GET /Quotes/{QuoteID}/pdf
operationId: Accounting_getQuotePdf

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of byte array pdf version of specified Quotes
GET /Quotes/{QuoteID}/pdf
GET /Receipts
operationId: Accounting_getDraftExpenseClaimsReceipts

Parameters

Name In Required Type Description
optional
where query optional string Filter by an any element
order query optional string Order by an any element
optional

Responses

200 Success - return response of type Receipts array for all Receipt
GET /Receipts
GET /Receipts/{ReceiptID}
operationId: Accounting_getSpecificDraftExpenseClaimReceiptByReceiptId

Parameters

Name In Required Type Description
optional
optional

Responses

200 Success - return response of type Receipts array for a specified Receipt
GET /Receipts/{ReceiptID}
GET /Receipts/{ReceiptID}/Attachments
operationId: Accounting_getReceiptAttachments

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Attachments array of Attachments for a specified Receipt
GET /Receipts/{ReceiptID}/Attachments
GET /Receipts/{ReceiptID}/Attachments/{AttachmentID}
operationId: Accounting_getExpenseClaimsAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Receipt as binary data
GET /Receipts/{ReceiptID}/Attachments/{AttachmentID}
GET /Receipts/{ReceiptID}/Attachments/{FileName}
operationId: Accounting_getSpecificAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Receipt as binary data
GET /Receipts/{ReceiptID}/Attachments/{FileName}
GET /Receipts/{ReceiptID}/History
operationId: Accounting_getReceiptHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /Receipts/{ReceiptID}/History
GET /RepeatingInvoices
operationId: Accounting_getRepeatingInvoices

Parameters

Name In Required Type Description
where query optional string Filter by an any element
order query optional string Order by an any element

Responses

200 Success - return response of type Repeating Invoices array for all Repeating Invoice
GET /RepeatingInvoices
GET /RepeatingInvoices/{RepeatingInvoiceID}
operationId: Accounting_getRepeatingInvoiceById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Repeating Invoices array with a specified Repeating Invoice
GET /RepeatingInvoices/{RepeatingInvoiceID}
GET /RepeatingInvoices/{RepeatingInvoiceID}/Attachments
operationId: Accounting_getRepeatingInvoiceAttachments

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Attachments array with all Attachments for a specified Repeating Invoice
GET /RepeatingInvoices/{RepeatingInvoiceID}/Attachments
GET /RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{AttachmentID}
operationId: Accounting_getSpecificAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Repeating Invoice as binary data
GET /RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{AttachmentID}
GET /RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}
operationId: Accounting_getRepeatingInvoiceAttachment

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200 Success - return response of attachment for Repeating Invoice as binary data
GET /RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}
GET /RepeatingInvoices/{RepeatingInvoiceID}/History
operationId: Accounting_getRepeatingInvoiceHistory

Parameters

Name In Required Type Description
optional

Responses

200
GET /RepeatingInvoices/{RepeatingInvoiceID}/History
GET /Reports
operationId: Accounting_getUniqueReportsByUuid

Responses

200 Success - return response of type ReportWithRows
GET /Reports
GET /Reports/AgedPayablesByContact
operationId: Accounting_getAgedPayablesByContact

Parameters

Name In Required Type Description
contactId query required string Unique identifier for a Contact
date query optional string The date of the Aged Payables By Contact report
optional
optional

Responses

200 Success - return response of type ReportWithRows
GET /Reports/AgedPayablesByContact
GET /Reports/AgedReceivablesByContact
operationId: Accounting_getAgedReceivablesByContact

Parameters

Name In Required Type Description
contactId query required string Unique identifier for a Contact
date query optional string The date of the Aged Receivables By Contact report
optional
optional

Responses

200 Success - return response of type ReportWithRows
GET /Reports/AgedReceivablesByContact
GET /Reports/BalanceSheet
operationId: Accounting_getBalanceSheetReport

Parameters

Name In Required Type Description
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

Responses

200 Success - return response of type ReportWithRows
GET /Reports/BalanceSheet
GET /Reports/BankSummary
operationId: Accounting_getBankSummary

Parameters

Name In Required Type Description
optional
optional

Responses

200 Success - return response of type ReportWithRows
GET /Reports/BankSummary
GET /Reports/BudgetSummary
operationId: Accounting_getBudgetSummaryReport

Parameters

Name In Required Type Description
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)

Responses

200 success- return a Report with Rows object
GET /Reports/BudgetSummary
GET /Reports/ExecutiveSummary
operationId: Accounting_getExecutiveSummaryReport

Parameters

Name In Required Type Description
date query optional string The date for the Bank Summary report e.g. 2018-03-31

Responses

200 Success - return response of type ReportWithRows
GET /Reports/ExecutiveSummary
GET /Reports/ProfitAndLoss
operationId: Accounting_getProfitAndLossReport

Parameters

Name In Required Type Description
optional
optional
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

Responses

200 Success - return response of type ReportWithRows
GET /Reports/ProfitAndLoss
GET /Reports/TenNinetyNine
operationId: Accounting_get1099Reports

Parameters

Name In Required Type Description
reportYear query optional string The year of the 1099 report

Responses

200 Success - return response of type Reports
GET /Reports/TenNinetyNine
GET /Reports/TrialBalance
operationId: Accounting_getTrialBalanceReport

Parameters

Name In Required Type Description
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

Responses

200 Success - return response of type ReportWithRows
GET /Reports/TrialBalance
GET /Reports/{ReportID}
operationId: Accounting_getReportByReportId

Parameters

Name In Required Type Description
ReportID path required string Unique identifier for a Report

Responses

200 Success - return response of type ReportWithRows
GET /Reports/{ReportID}
GET /TaxRates
operationId: Accounting_getTaxRates

Parameters

Name In Required Type Description
where query optional string Filter by an any element
order query optional string Order by an any element

Responses

200 Success - return response of type TaxRates array with TaxRates
GET /TaxRates
GET /TaxRates/{TaxType}
operationId: Accounting_getTaxRateByType

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type TaxRates array with one TaxRate
GET /TaxRates/{TaxType}
GET /TrackingCategories
operationId: Accounting_getTrackingCategoriesOptions

Parameters

Name In Required Type Description
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

Responses

200 Success - return response of type TrackingCategories array of TrackingCategory
GET /TrackingCategories
GET /TrackingCategories/{TrackingCategoryID}
operationId: Accounting_getTrackingCategoriesById

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type TrackingCategories array of specified TrackingCategory
GET /TrackingCategories/{TrackingCategoryID}
GET /Users
operationId: Accounting_getUsers

Parameters

Name In Required Type Description
optional
where query optional string Filter by an any element
order query optional string Order by an any element

Responses

200 Success - return response of type Users array of all User
GET /Users
GET /Users/{UserID}
operationId: Accounting_getSpecificUser

Parameters

Name In Required Type Description
optional

Responses

200 Success - return response of type Users array of specified User
GET /Users/{UserID}

Schemas

object 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/"
  }
}
string 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"
}
string AccountingCreateAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingCreateAttachmentRequest1
{
  "type": "string",
  "format": "byte"
}
string AccountingCreateBankTransactionAttachmentByFilenameRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingCreatePurchaseOrderAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingCreateQuoteAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingCreateReceiptAttachmentByFileNameRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingCreateRepeatingInvoiceAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingCreateSpecificAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingGetAttachment200Response
{
  "type": "string",
  "format": "binary"
}
string AccountingGetAttachmentByFileName200Response
{
  "type": "string",
  "format": "binary"
}
string AccountingGetAttachmentByFileNameResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetAttachmentByFilenameResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetAttachmentByIdResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetAttachmentResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetCreditNoteAttachmentResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetCreditNotePdfResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetExpenseClaimsAttachmentResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetInvoicePdfResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetPurchaseOrderPdfResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetQuoteAttachmentResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetQuotePdfResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetRepeatingInvoiceAttachmentResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingGetSpecificAttachment200Response
{
  "type": "string",
  "format": "binary"
}
string AccountingGetSpecificAttachmentResponse
{
  "type": "string",
  "format": "binary"
}
string AccountingUpdateAttachmentByFilenameRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateAttachmentsByFileNameRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateBankTransactionAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateBankTransferAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateCreditNoteAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdatePurchaseOrderAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateQuoteAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateRepeatingInvoiceAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateSpecificAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUpdateSpecificAttachmentRequest1
{
  "type": "string",
  "format": "byte"
}
string AccountingUploadAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
string AccountingUploadAttachmentRequest1
{
  "type": "string",
  "format": "byte"
}
string AccountingUploadBankTransferAttachmentRequest
{
  "type": "string",
  "format": "byte"
}
object Accounts
{
  "type": "object",
  "properties": {
    "Accounts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Account"
      }
    }
  },
  "x-isObjectArray": true
}
object AccountsPayable
{
  "type": "object",
  "properties": {
    "Overdue": {
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "Outstanding": {
      "type": "number",
      "format": "double",
      "x-is-money": true
    }
  }
}
object AccountsReceivable
{
  "type": "object",
  "properties": {
    "Overdue": {
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "Outstanding": {
      "type": "number",
      "format": "double",
      "x-is-money": true
    }
  }
}
object 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/"
  }
}
object Actions
{
  "type": "object",
  "properties": {
    "Actions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Action"
      }
    }
  },
  "x-isObjectArray": true
}
object 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"
  }
}
object 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"
  }
}
object 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/"
  }
}
object Allocations
{
  "type": "object",
  "properties": {
    "Allocations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Allocation"
      }
    }
  },
  "x-isObjectArray": true
}
object 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/"
  }
}
object Attachments
{
  "type": "object",
  "properties": {
    "Attachments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Attachment"
      }
    }
  },
  "x-isObjectArray": true
}
object BalanceDetails
{
  "type": "object",
  "properties": {
    "Balance": {
      "type": "number",
      "format": "double",
      "description": "The opening balances of the account. Debits are positive, credits are negative values"
    },
    "CurrencyCode": {
      "type": "string",
      "description": "The currency of the balance (Not required for base currency)"
    },
    "CurrencyRate": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "(Optional) Exchange rate to base currency when money is spent or received. If not specified, XE rate for the day is applied"
    }
  },
  "description": "An array to specify multiple currency balances of an account"
}
object Balances
{
  "type": "object",
  "properties": {
    "AccountsPayable": {
      "$ref": "#/components/schemas/AccountsPayable"
    },
    "AccountsReceivable": {
      "$ref": "#/components/schemas/AccountsReceivable"
    }
  },
  "description": "The raw AccountsReceivable(sales invoices) and AccountsPayable(bills) outstanding and overdue amounts, not converted to base currency (read only)"
}
object BankTransaction
{
  "type": "object",
  "required": [
    "Type",
    "LineItems",
    "BankAccount"
  ],
  "properties": {
    "Url": {
      "type": "string",
      "description": "URL link to a source document – shown as “Go to App Name”"
    },
    "Date": {
      "type": "string",
      "description": "Date of transaction – YYYY-MM-DD",
      "x-is-msdate": true
    },
    "Type": {
      "enum": [
        "RECEIVE",
        "RECEIVE-OVERPAYMENT",
        "RECEIVE-PREPAYMENT",
        "SPEND",
        "SPEND-OVERPAYMENT",
        "SPEND-PREPAYMENT",
        "RECEIVE-TRANSFER",
        "SPEND-TRANSFER"
      ],
      "type": "string",
      "description": "See Bank Transaction Types"
    },
    "Total": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Total of bank transaction tax inclusive"
    },
    "Status": {
      "enum": [
        "AUTHORISED",
        "DELETED",
        "VOIDED"
      ],
      "type": "string",
      "description": "See Bank Transaction Status Codes"
    },
    "Contact": {
      "$ref": "#/components/schemas/Contact"
    },
    "SubTotal": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Total of bank transaction excluding taxes"
    },
    "TotalTax": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Total tax on bank transaction"
    },
    "LineItems": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItem"
      },
      "description": "See LineItems"
    },
    "Reference": {
      "type": "string",
      "description": "Reference for the transaction. Only supported for SPEND and RECEIVE transactions."
    },
    "BankAccount": {
      "$ref": "#/components/schemas/Account"
    },
    "CurrencyCode": {
      "$ref": "#/components/schemas/CurrencyCode",
      "type": "string"
    },
    "CurrencyRate": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Exchange rate to base currency when money is spent or received. e.g.0.7500 Only used for bank transactions in non base currency. If this isn’t specified for non base currency accounts then either the user-defined rate (preference) or the XE.com day rate will be used. Setting currency is only supported on overpayments."
    },
    "IsReconciled": {
      "type": "boolean",
      "description": "Boolean to show if transaction is reconciled"
    },
    "PrepaymentID": {
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000",
      "readOnly": true,
      "description": "Xero generated unique identifier for a Prepayment. This will be returned on BankTransactions with a Type of SPEND-PREPAYMENT or RECEIVE-PREPAYMENT"
    },
    "OverpaymentID": {
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000",
      "readOnly": true,
      "description": "Xero generated unique identifier for an Overpayment. This will be returned on BankTransactions with a Type of SPEND-OVERPAYMENT or RECEIVE-OVERPAYMENT"
    },
    "HasAttachments": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "readOnly": true,
      "description": "Boolean to indicate if a bank transaction has an attachment"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Last modified date UTC format",
      "x-is-msdate-time": true
    },
    "LineAmountTypes": {
      "$ref": "#/components/schemas/LineAmountTypes",
      "type": "string"
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of validation error messages from the API"
    },
    "BankTransactionID": {
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000",
      "description": "Xero generated unique identifier for bank transaction"
    },
    "StatusAttributeString": {
      "type": "string",
      "description": "A string to indicate if a invoice status"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/banktransactions/"
  }
}
object BankTransactions
{
  "type": "object",
  "properties": {
    "BankTransactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BankTransaction"
      }
    }
  },
  "x-isObjectArray": true
}
object BankTransfer
{
  "type": "object",
  "required": [
    "FromBankAccount",
    "ToBankAccount",
    "Amount"
  ],
  "properties": {
    "Date": {
      "type": "string",
      "description": "The date of the Transfer YYYY-MM-DD",
      "x-is-msdate": true
    },
    "Amount": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "amount of the transaction"
    },
    "Reference": {
      "type": "string",
      "description": "Reference for the transactions."
    },
    "CurrencyRate": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "The currency rate"
    },
    "ToBankAccount": {
      "$ref": "#/components/schemas/Account"
    },
    "BankTransferID": {
      "type": "string",
      "format": "uuid",
      "readOnly": true,
      "description": "The identifier of the Bank Transfer"
    },
    "CreatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "UTC timestamp of creation date of bank transfer",
      "x-is-msdate-time": true
    },
    "HasAttachments": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "readOnly": true,
      "description": "Boolean to indicate if a Bank Transfer has an attachment"
    },
    "ToIsReconciled": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "The Bank Transaction boolean to show if it is reconciled for the destination account"
    },
    "FromBankAccount": {
      "$ref": "#/components/schemas/Account"
    },
    "FromIsReconciled": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "The Bank Transaction boolean to show if it is reconciled for the source account"
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of validation error messages from the API"
    },
    "ToBankTransactionID": {
      "type": "string",
      "format": "uuid",
      "readOnly": true,
      "description": "The Bank Transaction ID for the destination account"
    },
    "FromBankTransactionID": {
      "type": "string",
      "format": "uuid",
      "readOnly": true,
      "description": "The Bank Transaction ID for the source account"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/bank-transfers/"
  }
}
object BankTransfers
{
  "type": "object",
  "properties": {
    "BankTransfers": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BankTransfer"
      }
    }
  },
  "x-isObjectArray": true
}
object BatchPayment
{
  "type": "object",
  "properties": {
    "Code": {
      "type": "string",
      "maxLength": 12,
      "description": "(NZ Only) Optional references for the batch payment transaction. It will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement you import into Xero."
    },
    "Date": {
      "type": "string",
      "description": "Date the payment is being made (YYYY-MM-DD) e.g. 2009-09-06",
      "x-is-msdate": true
    },
    "Type": {
      "enum": [
        "PAYBATCH",
        "RECBATCH"
      ],
      "type": "string",
      "readOnly": true,
      "description": "PAYBATCH for bill payments or RECBATCH for sales invoice payments (read-only)"
    },
    "Amount": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The amount of the payment. Must be less than or equal to the outstanding amount owing on the invoice e.g. 200.00"
    },
    "Status": {
      "enum": [
        "AUTHORISED",
        "DELETED"
      ],
      "type": "string",
      "readOnly": true,
      "description": "AUTHORISED or DELETED (read-only). New batch payments will have a status of AUTHORISED. It is not possible to delete batch payments via the API."
    },
    "Account": {
      "$ref": "#/components/schemas/Account"
    },
    "Details": {
      "type": "string",
      "description": "(Non-NZ Only) These details are sent to the org’s bank as a reference for the batch payment transaction. They will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement imported into Xero. Maximum field length = 18"
    },
    "Payments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Payment"
      },
      "description": "An array of payments"
    },
    "Narrative": {
      "type": "string",
      "maxLength": 18,
      "description": "(UK Only) Only shows on the statement line in Xero. Max length =18"
    },
    "Reference": {
      "type": "string",
      "maxLength": 255,
      "description": "(NZ Only) Optional references for the batch payment transaction. It will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement you import into Xero."
    },
    "DateString": {
      "type": "string",
      "description": "Date the payment is being made (YYYY-MM-DD) e.g. 2009-09-06"
    },
    "Particulars": {
      "type": "string",
      "maxLength": 12,
      "description": "(NZ Only) Optional references for the batch payment transaction. It will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement you import into Xero."
    },
    "TotalAmount": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "The total of the payments that make up the batch (read-only)"
    },
    "IsReconciled": {
      "type": "boolean",
      "readOnly": true,
      "description": "Booelan that tells you if the batch payment has been reconciled (read-only)"
    },
    "BatchPaymentID": {
      "type": "string",
      "format": "uuid",
      "readOnly": true,
      "description": "The Xero generated unique identifier for the bank transaction (read-only)"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "UTC timestamp of last update to the payment",
      "x-is-msdate-time": true
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of validation error messages from the API"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/BatchPayments/"
  }
}
object BatchPaymentDelete
{
  "type": "object",
  "required": [
    "Status",
    "BatchPaymentID"
  ],
  "properties": {
    "Status": {
      "type": "string",
      "default": "DELETED",
      "description": "The status of the batch payment."
    },
    "BatchPaymentID": {
      "type": "string",
      "format": "uuid",
      "description": "The Xero generated unique identifier for the bank transaction (read-only)"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/accounting/batchpayments"
  }
}
object BatchPaymentDeleteByUrlParam
{
  "type": "object",
  "required": [
    "Status"
  ],
  "properties": {
    "Status": {
      "type": "string",
      "default": "DELETED",
      "description": "The status of the batch payment."
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/accounting/batchpayments"
  }
}
object BatchPaymentDetails
{
  "properties": {
    "Code": {
      "type": "string",
      "example": "ABC",
      "maxLength": 12,
      "description": "(NZ Only) Optional references for the batch payment transaction. It will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement you import into Xero."
    },
    "Details": {
      "type": "string",
      "example": "Hello World",
      "description": "(Non-NZ Only) These details are sent to the org’s bank as a reference for the batch payment transaction. They will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement imported into Xero. Maximum field length = 18"
    },
    "Reference": {
      "type": "string",
      "example": "Foobar",
      "maxLength": 12,
      "description": "(NZ Only) Optional references for the batch payment transaction. It will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement you import into Xero."
    },
    "BankAccountName": {
      "type": "string",
      "example": "ACME Bank",
      "description": "Name of bank for use with Batch Payments"
    },
    "BankAccountNumber": {
      "type": "string",
      "example": "123-456-1111111",
      "description": "Bank account number for use with Batch Payments"
    }
  },
  "description": "Bank details for use on a batch payment stored with each contact",
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/Contact/"
  }
}
object BatchPayments
{
  "type": "object",
  "properties": {
    "BatchPayments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BatchPayment"
      }
    }
  },
  "x-isObjectArray": true
}
object Bill
{
  "type": "object",
  "properties": {
    "Day": {
      "type": "integer",
      "description": "Day of Month (0-31)"
    },
    "Type": {
      "$ref": "#/components/schemas/PaymentTermType"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/organisation/"
  }
}
object BrandingTheme
{
  "type": "object",
  "properties": {
    "Name": {
      "type": "string",
      "description": "Name of branding theme"
    },
    "Type": {
      "enum": [
        "INVOICE"
      ],
      "type": "string",
      "description": "Always INVOICE"
    },
    "LogoUrl": {
      "type": "string",
      "description": "The location of the image file used as the logo on this branding theme"
    },
    "SortOrder": {
      "type": "integer",
      "description": "Integer – ranked order of branding theme. The default branding theme has a value of 0"
    },
    "CreatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "UTC timestamp of creation date of branding theme",
      "x-is-msdate-time": true
    },
    "BrandingThemeID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero identifier"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/branding-themes/"
  }
}
object BrandingThemes
{
  "type": "object",
  "properties": {
    "BrandingThemes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BrandingTheme"
      }
    }
  },
  "x-isObjectArray": true
}
object Budget
{
  "type": "object",
  "properties": {
    "Type": {
      "enum": [
        "OVERALL",
        "TRACKING"
      ],
      "type": "string",
      "description": "Type of Budget. OVERALL or TRACKING"
    },
    "BudgetID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero identifier"
    },
    "Tracking": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TrackingCategory"
      }
    },
    "BudgetLines": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BudgetLine"
      }
    },
    "Description": {
      "type": "string",
      "maxLength": 255,
      "description": "The Budget description"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "UTC timestamp of last update to budget",
      "x-is-msdate-time": true
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/budgets/"
  }
}
object BudgetBalance
{
  "type": "object",
  "properties": {
    "Notes": {
      "type": "string",
      "maxLength": 255,
      "description": "Any footnotes associated with this balance"
    },
    "Amount": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "LineItem Quantity"
    },
    "Period": {
      "type": "string",
      "description": "Period the amount applies to (e.g. “2019-08”)",
      "x-is-msdate": true
    },
    "UnitAmount": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Budgeted amount"
    }
  }
}
object BudgetLine
{
  "type": "object",
  "properties": {
    "AccountID": {
      "type": "string",
      "format": "uuid",
      "description": "See Accounts"
    },
    "AccountCode": {
      "type": "string",
      "example": 90,
      "description": "See Accounts"
    },
    "BudgetBalances": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BudgetBalance"
      }
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/budgets/"
  }
}
object Budgets
{
  "type": "object",
  "properties": {
    "Budgets": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Budget"
      }
    }
  },
  "x-isObjectArray": true
}
object CISOrgSetting
{
  "properties": {
    "Rate": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "CIS Deduction rate for the organisation"
    },
    "CISContractorEnabled": {
      "type": "boolean",
      "description": "true or false - Boolean that describes if the organisation is a CIS Contractor"
    },
    "CISSubContractorEnabled": {
      "type": "boolean",
      "description": "true or false - Boolean that describes if the organisation is a CIS SubContractor"
    }
  },
  "externalDocs": {
    "url": "https://developer.xero.com/documentation/api/organisation"
  }
}
object CISOrgSettings
{
  "type": "object",
  "properties": {
    "CISSettings": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CISOrgSetting"
      }
    }
  },
  "x-isObjectArray": true
}
object CISSetting
{
  "properties": {
    "Rate": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "CIS Deduction rate for the contact if he is a subcontractor. If the contact is not CISEnabled, then the rate is not returned"
    },
    "CISEnabled": {
      "type": "boolean",
      "description": "Boolean that describes if the contact is a CIS Subcontractor"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/contacts/"
  }
}
object CISSettings
{
  "type": "object",
  "properties": {
    "CISSettings": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CISSetting"
      }
    }
  },
  "x-isObjectArray": true
}
object Contact
{
  "type": "object",
  "properties": {
    "Name": {
      "type": "string",
      "maxLength": 255,
      "description": "Full name of contact/organisation (max length = 255)"
    },
    "Phones": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Phone"
      },
      "description": "Store certain phone types for a contact – see phone types"
    },
    "Website": {
      "type": "string",
      "readOnly": true,
      "description": "Website address for contact (read only)"
    },
    "Balances": {
      "$ref": "#/components/schemas/Balances"
    },
    "Discount": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "The default discount rate for the contact (read only)"
    },
    "LastName": {
      "type": "string",
      "maxLength": 255,
      "description": "Last name of contact person (max length = 255)"
    },
    "Addresses": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Address"
      },
      "description": "Store certain address types for a contact – see address types"
    },
    "ContactID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero identifier"
    },
    "FirstName": {
      "type": "string",
      "maxLength": 255,
      "description": "First name of contact person (max length = 255)"
    },
    "TaxNumber": {
      "type": "string",
      "maxLength": 50,
      "description": "Tax number of contact – this is also known as the ABN (Australia), GST Number (New Zealand), VAT Number (UK) or Tax ID Number (US and global) in the Xero UI depending on which regionalized version of Xero you are using (max length = 50)"
    },
    "IsCustomer": {
      "type": "boolean",
      "description": "true or false – Boolean that describes if a contact has any AR invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts receivable invoice is generated against this contact."
    },
    "IsSupplier": {
      "type": "boolean",
      "description": "true or false – Boolean that describes if a contact that has any AP  invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts payable invoice is generated against this contact."
    },
    "Attachments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Attachment"
      },
      "description": "Displays array of attachments from the API"
    },
    "EmailAddress": {
      "type": "string",
      "maxLength": 255,
      "description": "Email address of contact person (umlauts not supported) (max length  = 255)"
    },
    "PaymentTerms": {
      "$ref": "#/components/schemas/PaymentTerm"
    },
    "AccountNumber": {
      "type": "string",
      "maxLength": 50,
      "description": "A user defined account number. This can be updated via the API and the Xero UI (max length = 50)"
    },
    "BatchPayments": {
      "$ref": "#/components/schemas/BatchPaymentDetails"
    },
    "BrandingTheme": {
      "$ref": "#/components/schemas/BrandingTheme"
    },
    "CompanyNumber": {
      "type": "string",
      "maxLength": 50,
      "description": "Company registration number (max length = 50)"
    },
    "ContactGroups": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ContactGroup"
      },
      "description": "Displays which contact groups a contact is included in"
    },
    "ContactNumber": {
      "type": "string",
      "maxLength": 50,
      "description": "This can be updated via the API only i.e. This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50). If the Contact Number is used, this is displayed as Contact Code in the Contacts UI in Xero."
    },
    "ContactStatus": {
      "enum": [
        "ACTIVE",
        "ARCHIVED",
        "GDPRREQUEST"
      ],
      "type": "string",
      "description": "Current status of a contact – see contact status types"
    },
    "ContactPersons": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ContactPerson"
      },
      "description": "See contact persons"
    },
    "HasAttachments": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "A boolean to indicate if a contact has an attachment"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "UTC timestamp of last update to contact",
      "x-is-msdate-time": true
    },
    "XeroNetworkKey": {
      "type": "string",
      "description": "Store XeroNetworkKey for contacts."
    },
    "DefaultCurrency": {
      "$ref": "#/components/schemas/CurrencyCode",
      "type": "string"
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays validation errors returned from the API"
    },
    "MergedToContactID": {
      "type": "string",
      "format": "uuid",
      "description": "ID for the destination of a merged contact. Only returned when using paging or when fetching a contact by ContactId or ContactNumber."
    },
    "BankAccountDetails": {
      "type": "string",
      "description": "Bank account number of contact"
    },
    "HasValidationErrors": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "A boolean to indicate if a contact has an validation errors"
    },
    "TrackingCategoryName": {
      "type": "string",
      "description": "The name of the Tracking Category assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories"
    },
    "StatusAttributeString": {
      "type": "string",
      "description": "Status of object"
    },
    "AccountsPayableTaxType": {
      "type": "string",
      "description": "The tax type from TaxRates"
    },
    "TrackingCategoryOption": {
      "type": "string",
      "description": "The name of the Tracking Option assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories"
    },
    "SalesDefaultAccountCode": {
      "type": "string",
      "description": "The default sales account code for contacts"
    },
    "SalesTrackingCategories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SalesTrackingCategory"
      },
      "description": "The default sales tracking categories for contacts"
    },
    "AccountsReceivableTaxType": {
      "type": "string",
      "description": "The tax type from TaxRates"
    },
    "SalesDefaultLineAmountType": {
      "enum": [
        "INCLUSIVE",
        "EXCLUSIVE",
        "NONE"
      ],
      "type": "string",
      "description": "The default sales line amount type for a contact. Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber."
    },
    "PurchasesDefaultAccountCode": {
      "type": "string",
      "description": "The default purchases account code for contacts"
    },
    "PurchasesTrackingCategories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SalesTrackingCategory"
      },
      "description": "The default purchases tracking categories for contacts"
    },
    "PurchasesDefaultLineAmountType": {
      "enum": [
        "INCLUSIVE",
        "EXCLUSIVE",
        "NONE"
      ],
      "type": "string",
      "description": "The default purchases line amount type for a contact Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber."
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/contacts/"
  }
}
object ContactGroup
{
  "type": "object",
  "properties": {
    "Name": {
      "type": "string",
      "description": "The Name of the contact group. Required when creating a new contact  group"
    },
    "Status": {
      "enum": [
        "ACTIVE",
        "DELETED"
      ],
      "type": "string",
      "description": "The Status of a contact group. To delete a contact group update the status to DELETED. Only contact groups with a status of ACTIVE are returned on GETs."
    },
    "Contacts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Contact"
      },
      "description": "The ContactID and Name of Contacts in a contact group. Returned on GETs when the ContactGroupID is supplied in the URL."
    },
    "ContactGroupID": {
      "type": "string",
      "format": "uuid",
      "description": "The Xero identifier for an contact group – specified as a string following the endpoint name. e.g. /297c2dc5-cc47-4afd-8ec8-74990b8761e9"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/contactgroups/"
  }
}
object ContactGroups
{
  "type": "object",
  "properties": {
    "ContactGroups": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ContactGroup"
      }
    }
  },
  "x-isObjectArray": true
}
object ContactPerson
{
  "type": "object",
  "properties": {
    "LastName": {
      "type": "string",
      "description": "Last name of person"
    },
    "FirstName": {
      "type": "string",
      "description": "First name of person"
    },
    "EmailAddress": {
      "type": "string",
      "description": "Email address of person"
    },
    "IncludeInEmails": {
      "type": "boolean",
      "description": "boolean to indicate whether contact should be included on emails with invoices etc."
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/contacts/"
  }
}
object Contacts
{
  "type": "object",
  "properties": {
    "Contacts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Contact"
      }
    }
  },
  "x-isObjectArray": true
}
object ConversionBalances
{
  "type": "object",
  "properties": {
    "Balance": {
      "type": "number",
      "format": "double",
      "description": "The opening balances of the account. Debits are positive, credits are negative values"
    },
    "AccountCode": {
      "type": "string",
      "description": "The account code for a account"
    },
    "BalanceDetails": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/BalanceDetails"
      }
    }
  },
  "description": "Balance supplied for each account that has a value as at the conversion date."
}
object ConversionDate
{
  "type": "object",
  "properties": {
    "Year": {
      "type": "integer",
      "example": 2020,
      "description": "The year the organisation starts using Xero. Value is an integer greater than 2006"
    },
    "Month": {
      "type": "integer",
      "example": 1,
      "description": "The month the organisation starts using Xero. Value is an integer between 1 and 12"
    }
  },
  "description": "The date when the organisation starts using Xero"
}
string CountryCode
{
  "enum": [
    "AD",
    "AE",
    "AF",
    "AG",
    "AI",
    "AL",
    "AM",
    "AN",
    "AO",
    "AQ",
    "AR",
    "AS",
    "AT",
    "AU",
    "AW",
    "AZ",
    "BA",
    "BB",
    "BD",
    "BE",
    "BF",
    "BG",
    "BH",
    "BI",
    "BJ",
    "BL",
    "BM",
    "BN",
    "BO",
    "BR",
    "BS",
    "BT",
    "BW",
    "BY",
    "BZ",
    "CA",
    "CC",
    "CD",
    "CF",
    "CG",
    "CH",
    "CI",
    "CK",
    "CL",
    "CM",
    "CN",
    "CO",
    "CR",
    "CU",
    "CV",
    "CW",
    "CX",
    "CY",
    "CZ",
    "DE",
    "DJ",
    "DK",
    "DM",
    "DO",
    "DZ",
    "EC",
    "EE",
    "EG",
    "EH",
    "ER",
    "ES",
    "ET",
    "FI",
    "FJ",
    "FK",
    "FM",
    "FO",
    "FR",
    "GA",
    "GB",
    "GD",
    "GE",
    "GG",
    "GH",
    "GI",
    "GL",
    "GM",
    "GN",
    "GQ",
    "GR",
    "GT",
    "GU",
    "GW",
    "GY",
    "HK",
    "HN",
    "HR",
    "HT",
    "HU",
    "ID",
    "IE",
    "IL",
    "IM",
    "IN",
    "IO",
    "IQ",
    "IR",
    "IS",
    "IT",
    "JE",
    "JM",
    "JO",
    "JP",
    "KE",
    "KG",
    "KH",
    "KI",
    "KM",
    "KN",
    "KP",
    "KR",
    "KW",
    "KY",
    "KZ",
    "LA",
    "LB",
    "LC",
    "LI",
    "LK",
    "LR",
    "LS",
    "LT",
    "LU",
    "LV",
    "LY",
    "MA",
    "MC",
    "MD",
    "ME",
    "MF",
    "MG",
    "MH",
    "MK",
    "ML",
    "MM",
    "MN",
    "MO",
    "MP",
    "MR",
    "MS",
    "MT",
    "MU",
    "MV",
    "MW",
    "MX",
    "MY",
    "MZ",
    "NA",
    "NC",
    "NE",
    "NG",
    "NI",
    "NL",
    "NO",
    "NP",
    "NR",
    "NU",
    "NZ",
    "OM",
    "PA",
    "PE",
    "PF",
    "PG",
    "PH",
    "PK",
    "PL",
    "PM",
    "PN",
    "PR",
    "PS",
    "PT",
    "PW",
    "PY",
    "QA",
    "RE",
    "RO",
    "RS",
    "RU",
    "RW",
    "SA",
    "SB",
    "SC",
    "SD",
    "SE",
    "SG",
    "SH",
    "SI",
    "SJ",
    "SK",
    "SL",
    "SM",
    "SN",
    "SO",
    "SR",
    "SS",
    "ST",
    "SV",
    "SX",
    "SY",
    "SZ",
    "TC",
    "TD",
    "TG",
    "TH",
    "TJ",
    "TK",
    "TL",
    "TM",
    "TN",
    "TO",
    "TR",
    "TT",
    "TV",
    "TW",
    "TZ",
    "UA",
    "UG",
    "US",
    "UY",
    "UZ",
    "VA",
    "VC",
    "VE",
    "VG",
    "VI",
    "VN",
    "VU",
    "WF",
    "WS",
    "XK",
    "YE",
    "YT",
    "ZA",
    "ZM",
    "ZW"
  ],
  "type": "string"
}
object CreditNote
{
  "type": "object",
  "properties": {
    "Date": {
      "type": "string",
      "description": "The date the credit note is issued YYYY-MM-DD. If the Date element is not specified then it will default to the current date based on the timezone setting of the organisation",
      "x-is-msdate": true
    },
    "Type": {
      "enum": [
        "ACCPAYCREDIT",
        "ACCRECCREDIT"
      ],
      "type": "string",
      "description": "See Credit Note Types"
    },
    "Total": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The total of the Credit Note(subtotal + total tax)"
    },
    "Status": {
      "enum": [
        "DRAFT",
        "SUBMITTED",
        "DELETED",
        "AUTHORISED",
        "PAID",
        "VOIDED"
      ],
      "type": "string",
      "description": "See Credit Note Status Codes"
    },
    "CISRate": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "CIS Deduction rate for the organisation"
    },
    "Contact": {
      "$ref": "#/components/schemas/Contact"
    },
    "DueDate": {
      "type": "string",
      "description": "Date invoice is due – YYYY-MM-DD",
      "x-is-msdate": true
    },
    "Payments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Payment"
      },
      "description": "See Payments"
    },
    "SubTotal": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The subtotal of the credit note excluding taxes"
    },
    "TotalTax": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The total tax on the credit note"
    },
    "Warnings": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of warning messages from the API"
    },
    "HasErrors": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "A boolean to indicate if a credit note has an validation errors"
    },
    "LineItems": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItem"
      },
      "description": "See Invoice Line Items"
    },
    "Reference": {
      "type": "string",
      "description": "ACCRECCREDIT only – additional reference number"
    },
    "Allocations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Allocation"
      },
      "description": "See Allocations"
    },
    "CISDeduction": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "CIS deduction for UK contractors"
    },
    "CreditNoteID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero generated unique identifier"
    },
    "CurrencyCode": {
      "$ref": "#/components/schemas/CurrencyCode",
      "type": "string",
      "description": "The specified currency code"
    },
    "CurrencyRate": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The currency rate for a multicurrency invoice. If no rate is specified, the XE.com day rate is used"
    },
    "AppliedAmount": {
      "type": "number",
      "format": "double",
      "example": 2,
      "x-is-money": true,
      "description": "The amount of applied to an invoice"
    },
    "SentToContact": {
      "type": "boolean",
      "readOnly": true,
      "description": "boolean to indicate if a credit note has been sent to a contact via  the Xero app (currently read only)"
    },
    "HasAttachments": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "boolean to indicate if a credit note has an attachment"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "UTC timestamp of last update to the credit note",
      "x-is-msdate-time": true
    },
    "BrandingThemeID": {
      "type": "string",
      "format": "uuid",
      "description": "See BrandingThemes"
    },
    "FullyPaidOnDate": {
      "type": "string",
      "description": "Date when credit note was fully paid(UTC format)",
      "x-is-msdate": true
    },
    "LineAmountTypes": {
      "$ref": "#/components/schemas/LineAmountTypes",
      "type": "string"
    },
    "RemainingCredit": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The remaining credit balance on the Credit Note"
    },
    "CreditNoteNumber": {
      "type": "string",
      "description": "ACCRECCREDIT – Unique alpha numeric code identifying credit note (when missing will auto-generate from your Organisation Invoice Settings)"
    },
    "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/credit-notes/"
  }
}
object CreditNotes
{
  "type": "object",
  "properties": {
    "CreditNotes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreditNote"
      }
    }
  },
  "x-isObjectArray": true
}
object Currencies
{
  "type": "object",
  "properties": {
    "Currencies": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Currency"
      }
    }
  },
  "x-isObjectArray": true
}
object Currency
{
  "type": "object",
  "properties": {
    "Code": {
      "$ref": "#/components/schemas/CurrencyCode",
      "type": "string"
    },
    "Description": {
      "type": "string",
      "description": "Name of Currency"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/currencies/"
  }
}
string CurrencyCode
{
  "enum": [
    "AED",
    "AFN",
    "ALL",
    "AMD",
    "ANG",
    "AOA",
    "ARS",
    "AUD",
    "AWG",
    "AZN",
    "BAM",
    "BBD",
    "BDT",
    "BGN",
    "BHD",
    "BIF",
    "BMD",
    "BND",
    "BOB",
    "BRL",
    "BSD",
    "BTN",
    "BWP",
    "BYN",
    "BYR",
    "BZD",
    "CAD",
    "CDF",
    "CHF",
    "CLF",
    "CLP",
    "CNY",
    "COP",
    "CRC",
    "CUC",
    "CUP",
    "CVE",
    "CZK",
    "DJF",
    "DKK",
    "DOP",
    "DZD",
    "EEK",
    "EGP",
    "ERN",
    "ETB",
    "EUR",
    "FJD",
    "FKP",
    "GBP",
    "GEL",
    "GHS",
    "GIP",
    "GMD",
    "GNF",
    "GTQ",
    "GYD",
    "HKD",
    "HNL",
    "HRK",
    "HTG",
    "HUF",
    "IDR",
    "ILS",
    "INR",
    "IQD",
    "IRR",
    "ISK",
    "JMD",
    "JOD",
    "JPY",
    "KES",
    "KGS",
    "KHR",
    "KMF",
    "KPW",
    "KRW",
    "KWD",
    "KYD",
    "KZT",
    "LAK",
    "LBP",
    "LKR",
    "LRD",
    "LSL",
    "LTL",
    "LVL",
    "LYD",
    "MAD",
    "MDL",
    "MGA",
    "MKD",
    "MMK",
    "MNT",
    "MOP",
    "MRO",
    "MRU",
    "MUR",
    "MVR",
    "MWK",
    "MXN",
    "MXV",
    "MYR",
    "MZN",
    "NAD",
    "NGN",
    "NIO",
    "NOK",
    "NPR",
    "NZD",
    "OMR",
    "PAB",
    "PEN",
    "PGK",
    "PHP",
    "PKR",
    "PLN",
    "PYG",
    "QAR",
    "RON",
    "RSD",
    "RUB",
    "RWF",
    "SAR",
    "SBD",
    "SCR",
    "SDG",
    "SEK",
    "SGD",
    "SHP",
    "SKK",
    "SLE",
    "SLL",
    "SOS",
    "SRD",
    "STD",
    "STN",
    "SVC",
    "SYP",
    "SZL",
    "THB",
    "TJS",
    "TMT",
    "TND",
    "TOP",
    "TRY",
    "TTD",
    "TWD",
    "TZS",
    "UAH",
    "UGX",
    "USD",
    "UYU",
    "UZS",
    "VEF",
    "VES",
    "VND",
    "VUV",
    "WST",
    "XAF",
    "XCD",
    "XOF",
    "XPF",
    "YER",
    "ZAR",
    "ZMW",
    "ZMK",
    "ZWD"
  ],
  "type": "string",
  "description": "3 letter alpha code for the currency – see list of currency codes",
  "x-enum-varnames": [
    "AED",
    "AFN",
    "ALL",
    "AMD",
    "ANG",
    "AOA",
    "ARS",
    "AUD",
    "AWG",
    "AZN",
    "BAM",
    "BBD",
    "BDT",
    "BGN",
    "BHD",
    "BIF",
    "BMD",
    "BND",
    "BOB",
    "BRL",
    "BSD",
    "BTN",
    "BWP",
    "BYN",
    "BYR",
    "BZD",
    "CAD",
    "CDF",
    "CHF",
    "CLF",
    "CLP",
    "CNY",
    "COP",
    "CRC",
    "CUC",
    "CUP",
    "CVE",
    "CZK",
    "DJF",
    "DKK",
    "DOP",
    "DZD",
    "EEK",
    "EGP",
    "ERN",
    "ETB",
    "EUR",
    "FJD",
    "FKP",
    "GBP",
    "GEL",
    "GHS",
    "GIP",
    "GMD",
    "GNF",
    "GTQ",
    "GYD",
    "HKD",
    "HNL",
    "HRK",
    "HTG",
    "HUF",
    "IDR",
    "ILS",
    "INR",
    "IQD",
    "IRR",
    "ISK",
    "JMD",
    "JOD",
    "JPY",
    "KES",
    "KGS",
    "KHR",
    "KMF",
    "KPW",
    "KRW",
    "KWD",
    "KYD",
    "KZT",
    "LAK",
    "LBP",
    "LKR",
    "LRD",
    "LSL",
    "LTL",
    "LVL",
    "LYD",
    "MAD",
    "MDL",
    "MGA",
    "MKD",
    "MMK",
    "MNT",
    "MOP",
    "MRO",
    "MRU",
    "MUR",
    "MVR",
    "MWK",
    "MXN",
    "MXV",
    "MYR",
    "MZN",
    "NAD",
    "NGN",
    "NIO",
    "NOK",
    "NPR",
    "NZD",
    "OMR",
    "PAB",
    "PEN",
    "PGK",
    "PHP",
    "PKR",
    "PLN",
    "PYG",
    "QAR",
    "RON",
    "RSD",
    "RUB",
    "RWF",
    "SAR",
    "SBD",
    "SCR",
    "SDG",
    "SEK",
    "SGD",
    "SHP",
    "SKK",
    "SLE",
    "SLL",
    "SOS",
    "SRD",
    "STN",
    "STD",
    "SVC",
    "SYP",
    "SZL",
    "THB",
    "TJS",
    "TMT",
    "TND",
    "TOP",
    "TRY_LIRA",
    "TTD",
    "TWD",
    "TZS",
    "UAH",
    "UGX",
    "USD",
    "UYU",
    "UZS",
    "VEF",
    "VES",
    "VND",
    "VUV",
    "WST",
    "XAF",
    "XCD",
    "XOF",
    "XPF",
    "YER",
    "ZAR",
    "ZMW",
    "ZMK",
    "ZWD",
    "EMPTY_CURRENCY"
  ]
}
object Element
{
  "type": "object",
  "properties": {
    "ItemID": {
      "type": "string",
      "format": "uuid"
    },
    "ContactID": {
      "type": "string",
      "format": "uuid"
    },
    "InvoiceID": {
      "type": "string",
      "format": "uuid"
    },
    "CreditNoteID": {
      "type": "string",
      "format": "uuid"
    },
    "BatchPaymentID": {
      "type": "string",
      "format": "uuid",
      "description": "Unique ID for batch payment object with validation error"
    },
    "PurchaseOrderID": {
      "type": "string",
      "format": "uuid"
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Array of Validation Error message"
    },
    "BankTransactionID": {
      "type": "string",
      "format": "uuid"
    }
  },
  "externalDocs": {
    "url": "https://developer.xero.com/documentation/api/http-response-codes"
  }
}
object Employee
{
  "type": "object",
  "properties": {
    "Status": {
      "enum": [
        "ACTIVE",
        "ARCHIVED",
        "GDPRREQUEST",
        "DELETED"
      ],
      "type": "string",
      "description": "Current status of an employee – see contact status types"
    },
    "LastName": {
      "type": "string",
      "maxLength": 255,
      "description": "Last name of an employee (max length = 255)"
    },
    "FirstName": {
      "type": "string",
      "maxLength": 255,
      "description": "First name of an employee (max length = 255)"
    },
    "EmployeeID": {
      "type": "string",
      "format": "uuid",
      "description": "The Xero identifier for an employee e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9"
    },
    "ExternalLink": {
      "$ref": "#/components/schemas/ExternalLink"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "x-is-msdate-time": true
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of validation error messages from the API"
    },
    "StatusAttributeString": {
      "type": "string",
      "example": "ERROR",
      "description": "A string to indicate if a invoice status"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/employees/"
  }
}
object Employees
{
  "type": "object",
  "properties": {
    "Employees": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Employee"
      }
    }
  },
  "x-isObjectArray": true
}
object Error
{
  "type": "object",
  "properties": {
    "Type": {
      "type": "string",
      "description": "Exception type"
    },
    "Message": {
      "type": "string",
      "description": "Exception message"
    },
    "Elements": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Element"
      },
      "description": "Array of Elements of validation Errors"
    },
    "ErrorNumber": {
      "type": "integer",
      "description": "Exception number"
    }
  },
  "externalDocs": {
    "url": "https://developer.xero.com/documentation/api/http-response-codes"
  }
}
object ExpenseClaim
{
  "type": "object",
  "properties": {
    "User": {
      "$ref": "#/components/schemas/User"
    },
    "Total": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "The total of an expense claim being paid"
    },
    "Status": {
      "enum": [
        "SUBMITTED",
        "AUTHORISED",
        "PAID",
        "VOIDED",
        "DELETED"
      ],
      "type": "string",
      "description": "Current status of an expense claim – see status types"
    },
    "Payments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Payment"
      },
      "description": "See Payments"
    },
    "Receipts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Receipt"
      }
    },
    "AmountDue": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "The amount due to be paid for an expense claim"
    },
    "ReceiptID": {
      "type": "string",
      "format": "uuid",
      "description": "The Xero identifier for the Receipt e.g. e59a2c7f-1306-4078-a0f3-73537afcbba9"
    },
    "AmountPaid": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "The amount still to pay for an expense claim"
    },
    "ReportingDate": {
      "type": "string",
      "readOnly": true,
      "description": "The date the expense claim will be reported in Xero YYYY-MM-DD",
      "x-is-msdate": true
    },
    "ExpenseClaimID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero generated unique identifier for an expense claim"
    },
    "PaymentDueDate": {
      "type": "string",
      "readOnly": true,
      "description": "The date when the expense claim is due to be paid YYYY-MM-DD",
      "x-is-msdate": true
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Last modified date UTC format",
      "x-is-msdate-time": true
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/expense-claims/"
  }
}
object ExpenseClaims
{
  "type": "object",
  "properties": {
    "ExpenseClaims": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ExpenseClaim"
      }
    }
  },
  "x-isObjectArray": true
}
object ExternalLink
{
  "type": "object",
  "properties": {
    "Url": {
      "type": "string",
      "description": "URL for service e.g. http://twitter.com/xeroapi"
    },
    "LinkType": {
      "enum": [
        "Facebook",
        "GooglePlus",
        "LinkedIn",
        "Twitter",
        "Website"
      ],
      "type": "string",
      "description": "See External link types"
    },
    "Description": {
      "type": "string"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/organisation/"
  }
}
object HistoryRecord
{
  "type": "object",
  "properties": {
    "User": {
      "type": "string",
      "description": "has a value of 0"
    },
    "Changes": {
      "type": "string",
      "description": "Name of branding theme"
    },
    "DateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "UTC timestamp of creation date of branding theme",
      "x-is-msdate-time": true
    },
    "Details": {
      "type": "string",
      "description": "details"
    }
  },
  "externalDocs": {
    "url": "https://developer.xero.com/documentation/api/history-and-notes"
  }
}
object HistoryRecords
{
  "type": "object",
  "properties": {
    "HistoryRecords": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/HistoryRecord"
      }
    }
  },
  "x-isObjectArray": true
}
object ImportSummary
{
  "type": "object",
  "properties": {
    "Accounts": {
      "$ref": "#/components/schemas/ImportSummaryAccounts"
    },
    "Organisation": {
      "$ref": "#/components/schemas/ImportSummaryOrganisation"
    }
  },
  "description": "A summary of the import from setup endpoint",
  "externalDocs": {
    "url": "https://developer.xero.com/documentation/api-guides/conversions"
  }
}
object ImportSummaryAccounts
{
  "type": "object",
  "properties": {
    "New": {
      "type": "integer",
      "format": "int32",
      "description": "The number of new accounts created"
    },
    "Total": {
      "type": "integer",
      "format": "int32",
      "description": "The total number of accounts in the org"
    },
    "Locked": {
      "type": "integer",
      "format": "int32",
      "description": "The number of locked accounts"
    },
    "System": {
      "type": "integer",
      "format": "int32",
      "description": "The number of system accounts"
    },
    "Deleted": {
      "type": "integer",
      "format": "int32",
      "description": "The number of accounts deleted"
    },
    "Errored": {
      "type": "integer",
      "format": "int32",
      "description": "The number of accounts that had an error"
    },
    "Present": {
      "type": "boolean"
    },
    "Updated": {
      "type": "integer",
      "format": "int32",
      "description": "The number of accounts updated"
    },
    "NewOrUpdated": {
      "type": "integer",
      "format": "int32",
      "description": "The number of new or updated accounts"
    }
  },
  "description": "A summary of the accounts changes"
}
object ImportSummaryObject
{
  "properties": {
    "ImportSummary": {
      "$ref": "#/components/schemas/ImportSummary"
    }
  },
  "externalDocs": {
    "url": "https://developer.xero.com/documentation/api-guides/conversions"
  }
}
object ImportSummaryOrganisation
{
  "type": "object",
  "properties": {
    "Present": {
      "type": "boolean"
    }
  }
}
object Invoice
{
  "type": "object",
  "properties": {
    "Url": {
      "type": "string",
      "description": "URL link to a source document – shown as “Go to [appName]” in the Xero app"
    },
    "Date": {
      "type": "string",
      "description": "Date invoice was issued – YYYY-MM-DD. If the Date element is not specified it will default to the current date based on the timezone setting of the organisation",
      "x-is-msdate": true
    },
    "Type": {
      "enum": [
        "ACCPAY",
        "ACCPAYCREDIT",
        "APOVERPAYMENT",
        "APPREPAYMENT",
        "ACCREC",
        "ACCRECCREDIT",
        "AROVERPAYMENT",
        "ARPREPAYMENT"
      ],
      "type": "string",
      "description": "See Invoice Types"
    },
    "Total": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Total of Invoice tax inclusive (i.e. SubTotal + TotalTax). This will be ignored if it doesn’t equal the sum of the LineAmounts"
    },
    "Status": {
      "enum": [
        "DRAFT",
        "SUBMITTED",
        "DELETED",
        "AUTHORISED",
        "PAID",
        "VOIDED"
      ],
      "type": "string",
      "description": "See Invoice Status Codes"
    },
    "CISRate": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "CIS Deduction rate for the organisation"
    },
    "Contact": {
      "$ref": "#/components/schemas/Contact"
    },
    "DueDate": {
      "type": "string",
      "description": "Date invoice is due – YYYY-MM-DD",
      "x-is-msdate": true
    },
    "Payments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Payment"
      },
      "readOnly": true,
      "description": "See Payments"
    },
    "SubTotal": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Total of invoice excluding taxes"
    },
    "TotalTax": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Total tax on invoice"
    },
    "Warnings": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of warning messages from the API"
    },
    "AmountDue": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Amount remaining to be paid on invoice"
    },
    "HasErrors": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "A boolean to indicate if a invoice has an validation errors"
    },
    "InvoiceID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero generated unique identifier for invoice"
    },
    "LineItems": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItem"
      },
      "description": "See LineItems"
    },
    "Reference": {
      "type": "string",
      "description": "ACCREC only – additional reference number"
    },
    "AmountPaid": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Sum of payments received for invoice"
    },
    "Attachments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Attachment"
      },
      "description": "Displays array of attachments from the API"
    },
    "CreditNotes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CreditNote"
      },
      "readOnly": true,
      "description": "Details of credit notes that have been applied to an invoice"
    },
    "Prepayments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Prepayment"
      },
      "readOnly": true,
      "description": "See Prepayments"
    },
    "CISDeduction": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "CIS deduction for UK contractors"
    },
    "CurrencyCode": {
      "$ref": "#/components/schemas/CurrencyCode",
      "type": "string"
    },
    "CurrencyRate": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The currency rate for a multicurrency invoice. If no rate is specified, the XE.com day rate is used. (max length = [18].[6])"
    },
    "IsDiscounted": {
      "type": "boolean",
      "readOnly": true,
      "description": "boolean to indicate if an invoice has a discount"
    },
    "Overpayments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Overpayment"
      },
      "readOnly": true,
      "description": "See Overpayments"
    },
    "InvoiceNumber": {
      "type": "string",
      "maxLength": 255,
      "description": "ACCREC – Unique alpha numeric code identifying invoice (when missing will auto-generate from your Organisation Invoice Settings) (max length = 255)"
    },
    "SentToContact": {
      "type": "boolean",
      "description": "Boolean to set whether the invoice in the Xero app should be marked as “sent”. This can be set only on invoices that have been approved"
    },
    "TotalDiscount": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Total of discounts applied on the invoice line items"
    },
    "AmountCredited": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Sum of all credit notes, over-payments and pre-payments applied to invoice"
    },
    "HasAttachments": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "readOnly": true,
      "description": "boolean to indicate if an invoice has an attachment"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Last modified date UTC format",
      "x-is-msdate-time": true
    },
    "BrandingThemeID": {
      "type": "string",
      "format": "uuid",
      "description": "See BrandingThemes"
    },
    "FullyPaidOnDate": {
      "type": "string",
      "readOnly": true,
      "description": "The date the invoice was fully paid. Only returned on fully paid invoices",
      "x-is-msdate": true
    },
    "LineAmountTypes": {
      "$ref": "#/components/schemas/LineAmountTypes",
      "type": "string"
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of validation error messages from the API"
    },
    "PlannedPaymentDate": {
      "type": "string",
      "description": "Shown on bills (Accounts Payable) when this has been set",
      "x-is-msdate": true
    },
    "RepeatingInvoiceID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero generated unique identifier for repeating invoices"
    },
    "ExpectedPaymentDate": {
      "type": "string",
      "description": "Shown on sales invoices (Accounts Receivable) when this has been set",
      "x-is-msdate": true
    },
    "StatusAttributeString": {
      "type": "string",
      "description": "A string to indicate if a invoice status"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/invoices/"
  }
}
object InvoiceReminder
{
  "type": "object",
  "properties": {
    "Enabled": {
      "type": "boolean",
      "description": "setting for on or off"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/invoice-reminders/"
  }
}
object InvoiceReminders
{
  "type": "object",
  "properties": {
    "InvoiceReminders": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/InvoiceReminder"
      }
    }
  },
  "x-isObjectArray": true
}
object Invoices
{
  "type": "object",
  "properties": {
    "Invoices": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Invoice"
      }
    }
  },
  "x-isObjectArray": true
}
object Item
{
  "type": "object",
  "required": [
    "Code"
  ],
  "properties": {
    "Code": {
      "type": "string",
      "maxLength": 30,
      "description": "User defined item code (max length = 30)"
    },
    "Name": {
      "type": "string",
      "maxLength": 50,
      "description": "The name of the item (max length = 50)"
    },
    "IsSold": {
      "type": "boolean",
      "description": "Boolean value, defaults to true. When IsSold is true the item will be available on sales transactions in the Xero UI. If IsSold is updated to false then Description and SalesDetails values will be nulled."
    },
    "ItemID": {
      "type": "string",
      "format": "uuid",
      "description": "The Xero identifier for an Item"
    },
    "Description": {
      "type": "string",
      "maxLength": 4000,
      "description": "The sales description of the item (max length = 4000)"
    },
    "IsPurchased": {
      "type": "boolean",
      "description": "Boolean value, defaults to true. When IsPurchased is true the item is available for purchase transactions in the Xero UI. If IsPurchased is updated to false then PurchaseDescription and PurchaseDetails values will be nulled."
    },
    "SalesDetails": {
      "$ref": "#/components/schemas/Purchase"
    },
    "TotalCostPool": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The value of the item on hand. Calculated using average cost accounting."
    },
    "QuantityOnHand": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The quantity of the item on hand"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Last modified date in UTC format",
      "x-is-msdate-time": true
    },
    "PurchaseDetails": {
      "$ref": "#/components/schemas/Purchase"
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of validation error messages from the API"
    },
    "PurchaseDescription": {
      "type": "string",
      "maxLength": 4000,
      "description": "The purchase description of the item (max length = 4000)"
    },
    "IsTrackedAsInventory": {
      "type": "boolean",
      "description": "True for items that are tracked as inventory. An item will be tracked as inventory if the InventoryAssetAccountCode and COGSAccountCode are set."
    },
    "StatusAttributeString": {
      "type": "string",
      "description": "Status of object"
    },
    "InventoryAssetAccountCode": {
      "type": "string",
      "description": "The inventory asset account for the item. The account must be of type INVENTORY. The  COGSAccountCode in PurchaseDetails is also required to create a tracked item"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/items/"
  }
}
object Items
{
  "type": "object",
  "properties": {
    "Items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Item"
      }
    }
  },
  "x-isObjectArray": true
}
object Journal
{
  "type": "object",
  "properties": {
    "SourceID": {
      "type": "string",
      "format": "uuid",
      "description": "The identifier for the source transaction (e.g. InvoiceID)"
    },
    "JournalID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero identifier"
    },
    "Reference": {
      "type": "string",
      "description": "reference field for additional indetifying information"
    },
    "SourceType": {
      "enum": [
        "ACCREC",
        "ACCPAY",
        "ACCRECCREDIT",
        "ACCPAYCREDIT",
        "ACCRECPAYMENT",
        "ACCPAYPAYMENT",
        "ARCREDITPAYMENT",
        "APCREDITPAYMENT",
        "CASHREC",
        "CASHPAID",
        "TRANSFER",
        "ARPREPAYMENT",
        "APPREPAYMENT",
        "AROVERPAYMENT",
        "APOVERPAYMENT",
        "EXPCLAIM",
        "EXPPAYMENT",
        "MANJOURNAL",
        "PAYSLIP",
        "WAGEPAYABLE",
        "INTEGRATEDPAYROLLPE",
        "INTEGRATEDPAYROLLPT",
        "EXTERNALSPENDMONEY",
        "INTEGRATEDPAYROLLPTPAYMENT",
        "INTEGRATEDPAYROLLCN"
      ],
      "type": "string",
      "description": "The journal source type. The type of transaction that created the journal"
    },
    "JournalDate": {
      "type": "string",
      "description": "Date the journal was posted",
      "x-is-msdate": true
    },
    "JournalLines": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/JournalLine"
      },
      "description": "See JournalLines"
    },
    "JournalNumber": {
      "type": "integer",
      "description": "Xero generated journal number"
    },
    "CreatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Created date UTC format",
      "x-is-msdate-time": true
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/journals/"
  }
}
object JournalLine
{
  "type": "object",
  "properties": {
    "TaxName": {
      "type": "string",
      "example": "Tax Exempt",
      "description": "see TaxRates"
    },
    "TaxType": {
      "type": "string",
      "description": "The tax type from taxRates"
    },
    "AccountID": {
      "type": "string",
      "format": "uuid",
      "example": "ceef66a5-a545-413b-9312-78a53caadbc4",
      "description": "See Accounts"
    },
    "NetAmount": {
      "type": "number",
      "format": "double",
      "example": 4130.98,
      "x-is-money": true,
      "description": "Net amount of journal line. This will be a positive value for a debit and negative for a credit"
    },
    "TaxAmount": {
      "type": "number",
      "format": "double",
      "example": 0,
      "readOnly": true,
      "x-is-money": true,
      "description": "Total tax on a journal line"
    },
    "AccountCode": {
      "type": "string",
      "example": 90,
      "description": "See Accounts"
    },
    "AccountName": {
      "type": "string",
      "example": "Checking Account",
      "description": "See AccountCodes"
    },
    "AccountType": {
      "$ref": "#/components/schemas/AccountType",
      "type": "string"
    },
    "Description": {
      "type": "string",
      "example": "My business checking account",
      "description": "The description from the source transaction line item. Only returned if populated."
    },
    "GrossAmount": {
      "type": "number",
      "format": "double",
      "example": 4130.98,
      "x-is-money": true,
      "description": "Gross amount of journal line (NetAmount + TaxAmount)."
    },
    "JournalLineID": {
      "type": "string",
      "format": "uuid",
      "example": "7be9db36-3598-4755-ba5c-c2dbc8c4a7a2",
      "description": "Xero identifier for Journal"
    },
    "TrackingCategories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TrackingCategory"
      },
      "description": "Optional Tracking Category – see Tracking. Any JournalLine can have a maximum of 2 <TrackingCategory> elements."
    }
  },
  "externalDocs": {
    "url": "https://developer.xero.com/documentation/api/journals#JournalLines"
  }
}
object Journals
{
  "type": "object",
  "properties": {
    "Journals": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Journal"
      }
    }
  },
  "x-isObjectArray": true
}
string LineAmountTypes
{
  "enum": [
    "Exclusive",
    "Inclusive",
    "NoTax"
  ],
  "type": "string",
  "description": "Line amounts are exclusive of tax by default if you don’t specify this element. See Line Amount Types"
}
object LineItem
{
  "type": "object",
  "properties": {
    "Item": {
      "$ref": "#/components/schemas/LineItemItem"
    },
    "TaxType": {
      "type": "string",
      "description": "The tax type from TaxRates"
    },
    "ItemCode": {
      "type": "string",
      "description": "See Items"
    },
    "Quantity": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "LineItem Quantity"
    },
    "Tracking": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItemTracking"
      },
      "description": "Optional Tracking Category – see Tracking.  Any LineItem can have a  maximum of 2 <TrackingCategory> elements."
    },
    "AccountID": {
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000",
      "description": "The associated account ID related to this line item"
    },
    "TaxAmount": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The tax amount is auto calculated as a percentage of the line amount (see below) based on the tax rate. This value can be overriden if the calculated <TaxAmount> is not correct."
    },
    "LineAmount": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "If you wish to omit either the Quantity or UnitAmount you can provide a LineAmount and Xero will calculate the missing amount for you. The line amount reflects the discounted price if either a DiscountRate or DiscountAmount has been used i.e. LineAmount = Quantity * Unit Amount * ((100 - DiscountRate)/100) or LineAmount = (Quantity * UnitAmount) - DiscountAmount"
    },
    "LineItemID": {
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000",
      "description": "LineItem unique ID"
    },
    "UnitAmount": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "LineItem Unit Amount"
    },
    "AccountCode": {
      "type": "string",
      "description": "See Accounts"
    },
    "Description": {
      "type": "string",
      "description": "Description needs to be at least 1 char long. A line item with just a description (i.e no unit amount or quantity) can be created by specifying just a <Description> element that contains at least 1 character"
    },
    "DiscountRate": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Percentage discount being applied to a line item (only supported on  ACCREC invoices – ACC PAY invoices and credit notes in Xero do not support discounts"
    },
    "DiscountAmount": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Discount amount being applied to a line item. Only supported on ACCREC invoices and quotes. ACCPAY invoices and credit notes in Xero do not support discounts."
    },
    "RepeatingInvoiceID": {
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000",
      "description": "The Xero identifier for a Repeating Invoice"
    }
  },
  "externalDocs": {
    "url": "https://developer.xero.com/documentation/api/invoices#post"
  }
}
object LineItemItem
{
  "properties": {
    "Code": {
      "type": "string",
      "maxLength": 30,
      "description": "User defined item code (max length = 30)"
    },
    "Name": {
      "type": "string",
      "maxLength": 50,
      "description": "The name of the item (max length = 50)"
    },
    "ItemID": {
      "type": "string",
      "format": "uuid",
      "description": "The Xero identifier for an Item"
    }
  }
}
object LineItemTracking
{
  "type": "object",
  "properties": {
    "Name": {
      "type": "string",
      "example": "Region",
      "maxLength": 100,
      "description": "The name of the tracking category"
    },
    "Option": {
      "type": "string",
      "example": "North",
      "description": "See Tracking Options"
    },
    "TrackingOptionID": {
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000",
      "description": "The Xero identifier for a tracking category option"
    },
    "TrackingCategoryID": {
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000",
      "description": "The Xero identifier for a tracking category"
    }
  },
  "externalDocs": {
    "url": "https://developer.xero.com/documentation/api/invoices#post"
  }
}
object LinkedTransaction
{
  "type": "object",
  "properties": {
    "Type": {
      "enum": [
        "BILLABLEEXPENSE"
      ],
      "type": "string",
      "description": "This will always be BILLABLEEXPENSE. More types may be added in future."
    },
    "Status": {
      "enum": [
        "APPROVED",
        "DRAFT",
        "ONDRAFT",
        "BILLED",
        "VOIDED"
      ],
      "type": "string",
      "description": "Filter by the combination of ContactID and Status. Get all the linked transactions that have been assigned to a particular customer and have a particular status e.g. GET /LinkedTransactions?ContactID=4bb34b03-3378-4bb2-a0ed-6345abf3224e&Status=APPROVED."
    },
    "ContactID": {
      "type": "string",
      "format": "uuid",
      "description": "Filter by the combination of ContactID and Status. Get all the linked transactions that have been assigned to a particular customer and have a particular status e.g. GET /LinkedTransactions?ContactID=4bb34b03-3378-4bb2-a0ed-6345abf3224e&Status=APPROVED."
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "The last modified date in UTC format",
      "x-is-msdate-time": true
    },
    "SourceLineItemID": {
      "type": "string",
      "format": "uuid",
      "description": "The line item identifier from the source transaction."
    },
    "TargetLineItemID": {
      "type": "string",
      "format": "uuid",
      "description": "The line item identifier from the target transaction. It is possible  to link multiple billable expenses to the same TargetLineItemID."
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of validation error messages from the API"
    },
    "LinkedTransactionID": {
      "type": "string",
      "format": "uuid",
      "description": "The Xero identifier for an Linked Transaction e.g./LinkedTransactions/297c2dc5-cc47-4afd-8ec8-74990b8761e9"
    },
    "SourceTransactionID": {
      "type": "string",
      "format": "uuid",
      "description": "Filter by the SourceTransactionID. Get all the linked transactions created from a particular ACCPAY invoice"
    },
    "TargetTransactionID": {
      "type": "string",
      "format": "uuid",
      "description": "Filter by the TargetTransactionID. Get all the linked transactions  allocated to a particular ACCREC invoice"
    },
    "SourceTransactionTypeCode": {
      "enum": [
        "ACCPAY",
        "SPEND"
      ],
      "type": "string",
      "description": "The Type of the source tranasction. This will be ACCPAY if the linked transaction was created from an invoice and SPEND if it was created from a bank transaction."
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/linked-transactions/"
  }
}
object LinkedTransactions
{
  "type": "object",
  "properties": {
    "LinkedTransactions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LinkedTransaction"
      }
    }
  },
  "x-isObjectArray": true
}
object ManualJournal
{
  "type": "object",
  "required": [
    "Narration"
  ],
  "properties": {
    "Url": {
      "type": "string",
      "description": "Url link to a source document – shown as “Go to [appName]” in the Xero app"
    },
    "Date": {
      "type": "string",
      "description": "Date journal was posted – YYYY-MM-DD",
      "x-is-msdate": true
    },
    "Status": {
      "enum": [
        "DRAFT",
        "POSTED",
        "DELETED",
        "VOIDED",
        "ARCHIVED"
      ],
      "type": "string",
      "description": "See Manual Journal Status Codes"
    },
    "Warnings": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of warning messages from the API"
    },
    "Narration": {
      "type": "string",
      "description": "Description of journal being posted"
    },
    "Attachments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Attachment"
      },
      "description": "Displays array of attachments from the API"
    },
    "JournalLines": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ManualJournalLine"
      },
      "description": "See JournalLines"
    },
    "HasAttachments": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "readOnly": true,
      "description": "Boolean to indicate if a manual journal has an attachment"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Last modified date UTC format",
      "x-is-msdate-time": true
    },
    "LineAmountTypes": {
      "$ref": "#/components/schemas/LineAmountTypes",
      "type": "string"
    },
    "ManualJournalID": {
      "type": "string",
      "format": "uuid",
      "description": "The Xero identifier for a Manual Journal"
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of validation error messages from the API"
    },
    "StatusAttributeString": {
      "type": "string",
      "example": "ERROR",
      "description": "A string to indicate if a invoice status"
    },
    "ShowOnCashBasisReports": {
      "type": "boolean",
      "description": "Boolean – default is true if not specified"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/manual-journals/"
  }
}
object ManualJournalLine
{
  "type": "object",
  "properties": {
    "IsBlank": {
      "type": "boolean",
      "example": false,
      "description": "is the line blank"
    },
    "TaxType": {
      "type": "string",
      "description": "The tax type from TaxRates"
    },
    "Tracking": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TrackingCategory"
      },
      "description": "Optional Tracking Category – see Tracking. Any JournalLine can have a maximum of 2 <TrackingCategory> elements."
    },
    "AccountID": {
      "type": "string",
      "format": "uuid",
      "description": "See Accounts"
    },
    "TaxAmount": {
      "type": "number",
      "format": "double",
      "example": 0,
      "x-is-money": true,
      "description": "The calculated tax amount based on the TaxType and LineAmount"
    },
    "LineAmount": {
      "type": "number",
      "format": "double",
      "example": -2569,
      "x-is-money": true,
      "description": "total for line. Debits are positive, credits are negative value"
    },
    "AccountCode": {
      "type": "string",
      "example": 720,
      "description": "See Accounts"
    },
    "Description": {
      "type": "string",
      "example": "Coded incorrectly Office Equipment should be Computer Equipment",
      "description": "Description for journal line"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/manual-journals/"
  }
}
object ManualJournals
{
  "type": "object",
  "properties": {
    "ManualJournals": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ManualJournal"
      }
    }
  },
  "x-isObjectArray": true
}
object OnlineInvoice
{
  "type": "object",
  "properties": {
    "OnlineInvoiceUrl": {
      "type": "string",
      "description": "the URL to an online invoice"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/invoices/"
  }
}
object OnlineInvoices
{
  "type": "object",
  "properties": {
    "OnlineInvoices": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OnlineInvoice"
      }
    }
  },
  "x-isObjectArray": true
}
object Organisation
{
  "type": "object",
  "properties": {
    "Name": {
      "type": "string",
      "description": "Display name of organisation shown in Xero"
    },
    "Class": {
      "enum": [
        "DEMO",
        "TRIAL",
        "STARTER",
        "STANDARD",
        "PREMIUM",
        "PREMIUM_20",
        "PREMIUM_50",
        "PREMIUM_100",
        "LEDGER",
        "GST_CASHBOOK",
        "NON_GST_CASHBOOK",
        "ULTIMATE",
        "LITE"
      ],
      "type": "string",
      "description": "Organisation Classes describe which plan the Xero organisation is on (e.g. DEMO, TRIAL, PREMIUM)"
    },
    "APIKey": {
      "type": "string",
      "description": "Display a unique key used for Xero-to-Xero transactions"
    },
    "Phones": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Phone"
      },
      "description": "Phones details for organisation – see Phones"
    },
    "Edition": {
      "enum": [
        "BUSINESS",
        "PARTNER"
      ],
      "type": "string",
      "description": "BUSINESS or PARTNER. Partner edition organisations are sold exclusively through accounting partners and have restricted functionality (e.g. no access to invoicing)"
    },
    "PaysTax": {
      "type": "boolean",
      "description": "Boolean to describe if organisation is registered with a local tax authority i.e. true, false"
    },
    "Version": {
      "enum": [
        "AU",
        "NZ",
        "GLOBAL",
        "UK",
        "US",
        "AUONRAMP",
        "NZONRAMP",
        "GLOBALONRAMP",
        "UKONRAMP",
        "USONRAMP"
      ],
      "type": "string",
      "description": "See Version Types"
    },
    "Timezone": {
      "$ref": "#/components/schemas/TimeZone",
      "type": "string"
    },
    "Addresses": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AddressForOrganisation"
      },
      "description": "Address details for organisation – see Addresses"
    },
    "LegalName": {
      "type": "string",
      "description": "Organisation name shown on Reports"
    },
    "ShortCode": {
      "type": "string",
      "description": "A unique identifier for the organisation. Potential uses."
    },
    "TaxNumber": {
      "type": "string",
      "description": "Shown if set. Displays in the Xero UI as Tax File Number (AU), GST Number (NZ), VAT Number (UK) and Tax ID Number (US & Global)."
    },
    "CountryCode": {
      "$ref": "#/components/schemas/CountryCode",
      "type": "string"
    },
    "BaseCurrency": {
      "$ref": "#/components/schemas/CurrencyCode",
      "type": "string"
    },
    "PaymentTerms": {
      "$ref": "#/components/schemas/PaymentTerm"
    },
    "ExternalLinks": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ExternalLink"
      },
      "description": "Organisation profile links for popular services such as Facebook,Twitter, GooglePlus and LinkedIn. You can also add link to your website here. Shown if Organisation settings  is updated in Xero. See ExternalLinks below"
    },
    "IsDemoCompany": {
      "type": "boolean",
      "description": "Boolean to describe if organisation is a demo company."
    },
    "SalesTaxBasis": {
      "enum": [
        "PAYMENTS",
        "INVOICE",
        "NONE",
        "CASH",
        "ACCRUAL",
        "FLATRATECASH",
        "FLATRATEACCRUAL",
        "ACCRUALS"
      ],
      "type": "string",
      "description": "The accounting basis used for tax returns. See Sales Tax Basis"
    },
    "CreatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Timestamp when the organisation was created in Xero",
      "x-is-msdate-time": true
    },
    "LineOfBusiness": {
      "type": "string",
      "description": "Description of business type as defined in Organisation settings"
    },
    "OrganisationID": {
      "type": "string",
      "format": "uuid",
      "example": "8be9db36-3598-4755-ba5c-c2dbc8c4a7a2",
      "description": "Unique Xero identifier"
    },
    "PeriodLockDate": {
      "type": "string",
      "description": "Shown if set. See lock dates",
      "x-is-msdate": true
    },
    "SalesTaxPeriod": {
      "enum": [
        "MONTHLY",
        "QUARTERLY1",
        "QUARTERLY2",
        "QUARTERLY3",
        "ANNUALLY",
        "ONEMONTHS",
        "TWOMONTHS",
        "SIXMONTHS",
        "1MONTHLY",
        "2MONTHLY",
        "3MONTHLY",
        "6MONTHLY",
        "QUARTERLY",
        "YEARLY",
        "NONE"
      ],
      "type": "string",
      "description": "The frequency with which tax returns are processed. See Sales Tax Period"
    },
    "DefaultSalesTax": {
      "type": "string",
      "description": "The default for LineAmountTypes on sales transactions"
    },
    "OrganisationType": {
      "enum": [
        "ACCOUNTING_PRACTICE",
        "COMPANY",
        "CHARITY",
        "CLUB_OR_SOCIETY",
        "INDIVIDUAL",
        "LOOK_THROUGH_COMPANY",
        "NOT_FOR_PROFIT",
        "PARTNERSHIP",
        "S_CORPORATION",
        "SELF_MANAGED_SUPERANNUATION_FUND",
        "SOLE_TRADER",
        "SUPERANNUATION_FUND",
        "TRUST"
      ],
      "type": "string",
      "description": "Organisation Type"
    },
    "EndOfYearLockDate": {
      "type": "string",
      "description": "Shown if set. See lock dates",
      "x-is-msdate": true
    },
    "OrganisationStatus": {
      "type": "string",
      "description": "Will be set to ACTIVE if you can connect to organisation via the Xero API"
    },
    "RegistrationNumber": {
      "type": "string",
      "description": "Shows for New Zealand, Australian and UK organisations"
    },
    "DefaultPurchasesTax": {
      "type": "string",
      "description": "The default for LineAmountTypes on purchase transactions"
    },
    "FinancialYearEndDay": {
      "type": "integer",
      "description": "Calendar day e.g. 0-31"
    },
    "FinancialYearEndMonth": {
      "type": "integer",
      "description": "Calendar Month e.g. 1-12"
    },
    "OrganisationEntityType": {
      "enum": [
        "ACCOUNTING_PRACTICE",
        "COMPANY",
        "CHARITY",
        "CLUB_OR_SOCIETY",
        "INDIVIDUAL",
        "LOOK_THROUGH_COMPANY",
        "NOT_FOR_PROFIT",
        "PARTNERSHIP",
        "S_CORPORATION",
        "SELF_MANAGED_SUPERANNUATION_FUND",
        "SOLE_TRADER",
        "SUPERANNUATION_FUND",
        "TRUST"
      ],
      "type": "string",
      "description": "Organisation Entity Type"
    },
    "EmployerIdentificationNumber": {
      "type": "string",
      "description": "Shown if set. US Only."
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/organisation/"
  }
}
object Organisations
{
  "type": "object",
  "properties": {
    "Organisations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Organisation"
      }
    }
  },
  "x-isObjectArray": true
}
object Overpayment
{
  "type": "object",
  "properties": {
    "Date": {
      "type": "string",
      "description": "The date the overpayment is created YYYY-MM-DD",
      "x-is-msdate": true
    },
    "Type": {
      "enum": [
        "RECEIVE-OVERPAYMENT",
        "SPEND-OVERPAYMENT",
        "AROVERPAYMENT"
      ],
      "type": "string",
      "description": "See Overpayment Types"
    },
    "Total": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The total of the overpayment (subtotal + total tax)"
    },
    "Status": {
      "enum": [
        "AUTHORISED",
        "PAID",
        "VOIDED"
      ],
      "type": "string",
      "description": "See Overpayment Status Codes"
    },
    "Contact": {
      "$ref": "#/components/schemas/Contact"
    },
    "Payments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Payment"
      },
      "description": "See Payments"
    },
    "SubTotal": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The subtotal of the overpayment excluding taxes"
    },
    "TotalTax": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The total tax on the overpayment"
    },
    "LineItems": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItem"
      },
      "description": "See Overpayment Line Items"
    },
    "Allocations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Allocation"
      },
      "description": "See Allocations"
    },
    "Attachments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Attachment"
      },
      "description": "See Attachments"
    },
    "CurrencyCode": {
      "$ref": "#/components/schemas/CurrencyCode",
      "type": "string"
    },
    "CurrencyRate": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The currency rate for a multicurrency overpayment. If no rate is specified, the XE.com day rate is used"
    },
    "AppliedAmount": {
      "type": "number",
      "format": "double",
      "example": 2,
      "description": "The amount of applied to an invoice"
    },
    "OverpaymentID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero generated unique identifier"
    },
    "HasAttachments": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "readOnly": true,
      "description": "boolean to indicate if a overpayment has an attachment"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "UTC timestamp of last update to the overpayment",
      "x-is-msdate-time": true
    },
    "LineAmountTypes": {
      "$ref": "#/components/schemas/LineAmountTypes",
      "type": "string"
    },
    "RemainingCredit": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The remaining credit balance on the overpayment"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/overpayments/"
  }
}
object Overpayments
{
  "type": "object",
  "properties": {
    "Overpayments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Overpayment"
      }
    }
  },
  "x-isObjectArray": true
}
object Payment
{
  "type": "object",
  "properties": {
    "Code": {
      "type": "string",
      "description": "Code of account you are using to make the payment e.g. 001 (note- not all accounts have a code value)"
    },
    "Date": {
      "type": "string",
      "description": "Date the payment is being made (YYYY-MM-DD) e.g. 2009-09-06",
      "x-is-msdate": true
    },
    "Amount": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The amount of the payment. Must be less than or equal to the outstanding amount owing on the invoice e.g. 200.00"
    },
    "Status": {
      "enum": [
        "AUTHORISED",
        "DELETED"
      ],
      "type": "string",
      "description": "The status of the payment."
    },
    "Account": {
      "$ref": "#/components/schemas/Account"
    },
    "Details": {
      "type": "string",
      "description": "The information to appear on the supplier's bank account"
    },
    "Invoice": {
      "$ref": "#/components/schemas/Invoice"
    },
    "Warnings": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of warning messages from the API"
    },
    "PaymentID": {
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000",
      "description": "The Xero identifier for an Payment e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9"
    },
    "Reference": {
      "type": "string",
      "description": "An optional description for the payment e.g. Direct Debit"
    },
    "BankAmount": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The amount of the payment in the currency of the bank account."
    },
    "CreditNote": {
      "$ref": "#/components/schemas/CreditNote"
    },
    "HasAccount": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "A boolean to indicate if a contact has an validation errors"
    },
    "Prepayment": {
      "$ref": "#/components/schemas/Prepayment"
    },
    "Overpayment": {
      "$ref": "#/components/schemas/Overpayment"
    },
    "Particulars": {
      "type": "string",
      "description": "The suppliers bank account number the payment is being made to"
    },
    "PaymentType": {
      "enum": [
        "ACCRECPAYMENT",
        "ACCPAYPAYMENT",
        "ARCREDITPAYMENT",
        "APCREDITPAYMENT",
        "AROVERPAYMENTPAYMENT",
        "ARPREPAYMENTPAYMENT",
        "APPREPAYMENTPAYMENT",
        "APOVERPAYMENTPAYMENT"
      ],
      "type": "string",
      "readOnly": true,
      "description": "See Payment Types."
    },
    "BatchPayment": {
      "$ref": "#/components/schemas/BatchPayment"
    },
    "CurrencyRate": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Exchange rate when payment is received. Only used for non base currency invoices and credit notes e.g. 0.7500"
    },
    "IsReconciled": {
      "type": "boolean",
      "description": "An optional parameter for the payment. A boolean indicating whether you would like the payment to be created as reconciled when using PUT, or whether a payment has been reconciled when using GET"
    },
    "InvoiceNumber": {
      "type": "string",
      "description": "Number of invoice or credit note you are applying payment to e.g.INV-4003"
    },
    "BatchPaymentID": {
      "type": "string",
      "format": "uuid",
      "example": "00000000-0000-0000-0000-000000000000",
      "description": "Present if the payment was created as part of a batch."
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "UTC timestamp of last update to the payment",
      "x-is-msdate-time": true
    },
    "CreditNoteNumber": {
      "type": "string",
      "description": "Number of invoice or credit note you are applying payment to e.g. INV-4003"
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of validation error messages from the API"
    },
    "BankAccountNumber": {
      "type": "string",
      "description": "The suppliers bank account number the payment is being made to"
    },
    "HasValidationErrors": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "A boolean to indicate if a contact has an validation errors"
    },
    "StatusAttributeString": {
      "type": "string",
      "description": "A string to indicate if a invoice status"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/payments/"
  }
}
object PaymentDelete
{
  "type": "object",
  "required": [
    "Status"
  ],
  "properties": {
    "Status": {
      "type": "string",
      "default": "DELETED",
      "description": "The status of the payment."
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/payments/"
  }
}
object PaymentService
{
  "properties": {
    "PayNowText": {
      "type": "string",
      "description": "The text displayed on the Pay Now button in Xero Online Invoicing. If this is not set it will default to Pay by credit card"
    },
    "PaymentServiceID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero identifier"
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of validation error messages from the API"
    },
    "PaymentServiceUrl": {
      "type": "string",
      "description": "The custom payment URL"
    },
    "PaymentServiceName": {
      "type": "string",
      "description": "Name of payment service"
    },
    "PaymentServiceType": {
      "type": "string",
      "description": "This will always be CUSTOM for payment services created via the API."
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/branding-themes/"
  }
}
object PaymentServices
{
  "type": "object",
  "properties": {
    "PaymentServices": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PaymentService"
      }
    }
  },
  "x-isObjectArray": true
}
object PaymentTerm
{
  "type": "object",
  "properties": {
    "Bills": {
      "$ref": "#/components/schemas/Bill"
    },
    "Sales": {
      "$ref": "#/components/schemas/Bill"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/organisation/"
  }
}
string PaymentTermType
{
  "enum": [
    "DAYSAFTERBILLDATE",
    "DAYSAFTERBILLMONTH",
    "OFCURRENTMONTH",
    "OFFOLLOWINGMONTH"
  ],
  "type": "string"
}
object Payments
{
  "type": "object",
  "properties": {
    "Payments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Payment"
      }
    }
  },
  "x-isObjectArray": true
}
object Phone
{
  "type": "object",
  "properties": {
    "PhoneType": {
      "enum": [
        "DEFAULT",
        "DDI",
        "MOBILE",
        "FAX",
        "OFFICE"
      ],
      "type": "string"
    },
    "PhoneNumber": {
      "type": "string",
      "maxLength": 50,
      "description": "max length = 50"
    },
    "PhoneAreaCode": {
      "type": "string",
      "maxLength": 10,
      "description": "max length = 10"
    },
    "PhoneCountryCode": {
      "type": "string",
      "maxLength": 20,
      "description": "max length = 20"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/types"
  }
}
object Prepayment
{
  "type": "object",
  "properties": {
    "Date": {
      "type": "string",
      "description": "The date the prepayment is created YYYY-MM-DD",
      "x-is-msdate": true
    },
    "Type": {
      "enum": [
        "RECEIVE-PREPAYMENT",
        "SPEND-PREPAYMENT",
        "ARPREPAYMENT",
        "APPREPAYMENT"
      ],
      "type": "string",
      "description": "See Prepayment Types"
    },
    "Total": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The total of the prepayment(subtotal + total tax)"
    },
    "Status": {
      "enum": [
        "AUTHORISED",
        "PAID",
        "VOIDED"
      ],
      "type": "string",
      "description": "See Prepayment Status Codes"
    },
    "Contact": {
      "$ref": "#/components/schemas/Contact"
    },
    "Payments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Payment"
      },
      "description": "See Payments"
    },
    "SubTotal": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The subtotal of the prepayment excluding taxes"
    },
    "TotalTax": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The total tax on the prepayment"
    },
    "LineItems": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItem"
      },
      "description": "See Prepayment Line Items"
    },
    "Reference": {
      "type": "string",
      "readOnly": true,
      "description": "Returns Invoice number field. Reference field isn't available."
    },
    "Allocations": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Allocation"
      },
      "description": "See Allocations"
    },
    "Attachments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Attachment"
      },
      "description": "See Attachments"
    },
    "CurrencyCode": {
      "$ref": "#/components/schemas/CurrencyCode",
      "type": "string"
    },
    "CurrencyRate": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The currency rate for a multicurrency prepayment. If no rate is specified, the XE.com day rate is used"
    },
    "PrepaymentID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero generated unique identifier"
    },
    "AppliedAmount": {
      "type": "number",
      "format": "double",
      "example": 2,
      "description": "The amount of applied to an invoice"
    },
    "HasAttachments": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "readOnly": true,
      "description": "boolean to indicate if a prepayment has an attachment"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "UTC timestamp of last update to the prepayment",
      "x-is-msdate-time": true
    },
    "LineAmountTypes": {
      "$ref": "#/components/schemas/LineAmountTypes",
      "type": "string"
    },
    "RemainingCredit": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The remaining credit balance on the prepayment"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/prepayments/"
  }
}
object Prepayments
{
  "type": "object",
  "properties": {
    "Prepayments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Prepayment"
      }
    }
  },
  "x-isObjectArray": true
}
object Purchase
{
  "type": "object",
  "properties": {
    "TaxType": {
      "type": "string",
      "description": "The tax type from TaxRates"
    },
    "UnitPrice": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Unit Price of the item. By default UnitPrice is rounded to two decimal places. You can use 4 decimal places by adding the unitdp=4 querystring parameter to your request."
    },
    "AccountCode": {
      "type": "string",
      "description": "Default account code to be used for purchased/sale. Not applicable to the purchase details of tracked items"
    },
    "COGSAccountCode": {
      "type": "string",
      "description": "Cost of goods sold account. Only applicable to the purchase details of tracked items."
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/items/"
  }
}
object PurchaseOrder
{
  "type": "object",
  "properties": {
    "Date": {
      "type": "string",
      "description": "Date purchase order was issued – YYYY-MM-DD. If the Date element is not specified then it will default to the current date based on the timezone setting of the organisation",
      "x-is-msdate": true
    },
    "Total": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Total of Purchase Order tax inclusive (i.e. SubTotal + TotalTax)"
    },
    "Status": {
      "enum": [
        "DRAFT",
        "SUBMITTED",
        "AUTHORISED",
        "BILLED",
        "DELETED"
      ],
      "type": "string",
      "description": "See Purchase Order Status Codes"
    },
    "Contact": {
      "$ref": "#/components/schemas/Contact"
    },
    "SubTotal": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Total of purchase order excluding taxes"
    },
    "TotalTax": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Total tax on purchase order"
    },
    "Warnings": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of warning messages from the API"
    },
    "LineItems": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItem"
      },
      "description": "See LineItems"
    },
    "Reference": {
      "type": "string",
      "description": "Additional reference number"
    },
    "Telephone": {
      "type": "string",
      "description": "The phone number for the person accepting the delivery"
    },
    "Attachments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Attachment"
      },
      "description": "Displays array of attachments from the API"
    },
    "AttentionTo": {
      "type": "string",
      "description": "The person that the delivery is going to"
    },
    "CurrencyCode": {
      "$ref": "#/components/schemas/CurrencyCode",
      "type": "string"
    },
    "CurrencyRate": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "The currency rate for a multicurrency purchase order. If no rate is specified, the XE.com day rate is used."
    },
    "DeliveryDate": {
      "type": "string",
      "description": "Date the goods are to be delivered – YYYY-MM-DD",
      "x-is-msdate": true
    },
    "SentToContact": {
      "type": "boolean",
      "description": "Boolean to set whether the purchase order should be marked as “sent”. This can be set only on purchase orders that have been approved or billed"
    },
    "TotalDiscount": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Total of discounts applied on the purchase order line items"
    },
    "HasAttachments": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "readOnly": true,
      "description": "boolean to indicate if a purchase order has an attachment"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Last modified date UTC format",
      "x-is-msdate-time": true
    },
    "BrandingThemeID": {
      "type": "string",
      "format": "uuid",
      "description": "See BrandingThemes"
    },
    "DeliveryAddress": {
      "type": "string",
      "description": "The address the goods are to be delivered to"
    },
    "LineAmountTypes": {
      "$ref": "#/components/schemas/LineAmountTypes",
      "type": "string"
    },
    "PurchaseOrderID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero generated unique identifier for purchase order"
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of validation error messages from the API"
    },
    "ExpectedArrivalDate": {
      "type": "string",
      "description": "The date the goods are expected to arrive.",
      "x-is-msdate": true
    },
    "PurchaseOrderNumber": {
      "type": "string",
      "description": "Unique alpha numeric code identifying purchase order (when missing will auto-generate from your Organisation Invoice Settings)"
    },
    "DeliveryInstructions": {
      "type": "string",
      "description": "A free text feild for instructions (500 characters max)"
    },
    "StatusAttributeString": {
      "type": "string",
      "description": "A string to indicate if a invoice status"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/purchase-orders/"
  }
}
object PurchaseOrders
{
  "type": "object",
  "properties": {
    "PurchaseOrders": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PurchaseOrder"
      }
    }
  },
  "x-isObjectArray": true
}
object Quote
{
  "type": "object",
  "properties": {
    "Date": {
      "type": "string",
      "description": "Date quote was issued – YYYY-MM-DD. If the Date element is not specified it will default to the current date based on the timezone setting of the organisation",
      "x-is-msdate": true
    },
    "Terms": {
      "type": "string",
      "maxLength": 4000,
      "description": "Terms of the quote"
    },
    "Title": {
      "type": "string",
      "maxLength": 100,
      "description": "Title text for the quote"
    },
    "Total": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Total of Quote tax inclusive (i.e. SubTotal + TotalTax). This will be ignored if it doesn’t equal the sum of the LineAmounts"
    },
    "Status": {
      "$ref": "#/components/schemas/QuoteStatusCodes",
      "type": "string"
    },
    "Contact": {
      "$ref": "#/components/schemas/Contact",
      "type": "string"
    },
    "QuoteID": {
      "type": "string",
      "format": "uuid",
      "description": "QuoteID GUID is automatically generated and is returned after create or GET."
    },
    "Summary": {
      "type": "string",
      "maxLength": 3000,
      "description": "Summary text for the quote"
    },
    "SubTotal": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Total of quote excluding taxes."
    },
    "TotalTax": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Total tax on quote"
    },
    "LineItems": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItem"
      },
      "description": "See LineItems"
    },
    "Reference": {
      "type": "string",
      "maxLength": 4000,
      "description": "Additional reference number"
    },
    "DateString": {
      "type": "string",
      "description": "Date the quote was issued (YYYY-MM-DD)"
    },
    "ExpiryDate": {
      "type": "string",
      "description": "Date the quote expires – YYYY-MM-DD.",
      "x-is-msdate": true
    },
    "QuoteNumber": {
      "type": "string",
      "maxLength": 255,
      "description": "Unique alpha numeric code identifying a quote (Max Length = 255)"
    },
    "CurrencyCode": {
      "$ref": "#/components/schemas/CurrencyCode",
      "type": "string"
    },
    "CurrencyRate": {
      "type": "number",
      "format": "double",
      "description": "The currency rate for a multicurrency quote"
    },
    "TotalDiscount": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Total of discounts applied on the quote line items"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Last modified date UTC format",
      "x-is-msdate-time": true
    },
    "BrandingThemeID": {
      "type": "string",
      "format": "uuid",
      "description": "See BrandingThemes"
    },
    "LineAmountTypes": {
      "$ref": "#/components/schemas/QuoteLineAmountTypes",
      "type": "string",
      "description": "See Quote Line Amount Types"
    },
    "ExpiryDateString": {
      "type": "string",
      "description": "Date the quote expires – YYYY-MM-DD."
    },
    "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/Quotes/"
  }
}
string QuoteLineAmountTypes
{
  "enum": [
    "EXCLUSIVE",
    "INCLUSIVE",
    "NOTAX"
  ],
  "type": "string",
  "description": "Line amounts are exclusive of tax by default if you don’t specify this element. See Line Amount Types"
}
string QuoteStatusCodes
{
  "enum": [
    "DRAFT",
    "SENT",
    "DECLINED",
    "ACCEPTED",
    "INVOICED",
    "DELETED"
  ],
  "type": "string",
  "description": "The status of the quote."
}
object Quotes
{
  "type": "object",
  "properties": {
    "Quotes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Quote"
      }
    }
  },
  "x-isObjectArray": true
}
object Receipt
{
  "type": "object",
  "properties": {
    "Url": {
      "type": "string",
      "readOnly": true,
      "description": "URL link to a source document – shown as “Go to [appName]” in the Xero app"
    },
    "Date": {
      "type": "string",
      "description": "Date of receipt – YYYY-MM-DD",
      "x-is-msdate": true
    },
    "User": {
      "$ref": "#/components/schemas/User"
    },
    "Total": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Total of receipt tax inclusive (i.e. SubTotal + TotalTax)"
    },
    "Status": {
      "enum": [
        "DRAFT",
        "SUBMITTED",
        "AUTHORISED",
        "DECLINED",
        "VOIDED"
      ],
      "type": "string",
      "description": "Current status of receipt – see status types"
    },
    "Contact": {
      "$ref": "#/components/schemas/Contact"
    },
    "SubTotal": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Total of receipt excluding taxes"
    },
    "TotalTax": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Total tax on receipt"
    },
    "Warnings": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of warning messages from the API"
    },
    "LineItems": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItem"
      }
    },
    "ReceiptID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero generated unique identifier for receipt"
    },
    "Reference": {
      "type": "string",
      "description": "Additional reference number"
    },
    "Attachments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Attachment"
      },
      "description": "Displays array of attachments from the API"
    },
    "ReceiptNumber": {
      "type": "string",
      "readOnly": true,
      "description": "Xero generated sequence number for receipt in current claim for a given user"
    },
    "HasAttachments": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "readOnly": true,
      "description": "boolean to indicate if a receipt has an attachment"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Last modified date UTC format",
      "x-is-msdate-time": true
    },
    "LineAmountTypes": {
      "$ref": "#/components/schemas/LineAmountTypes",
      "type": "string"
    },
    "ValidationErrors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "description": "Displays array of validation error messages from the API"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/receipts/"
  }
}
object Receipts
{
  "type": "object",
  "properties": {
    "Receipts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Receipt"
      }
    }
  },
  "x-isObjectArray": true
}
object RepeatingInvoice
{
  "type": "object",
  "properties": {
    "ID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero generated unique identifier for repeating invoice template"
    },
    "Type": {
      "enum": [
        "ACCPAY",
        "ACCREC"
      ],
      "type": "string",
      "description": "See Invoice Types"
    },
    "Total": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Total of Invoice tax inclusive (i.e. SubTotal + TotalTax)"
    },
    "Status": {
      "enum": [
        "DRAFT",
        "AUTHORISED",
        "DELETED"
      ],
      "type": "string",
      "description": "One of the following - DRAFT or AUTHORISED – See Invoice Status Codes"
    },
    "Contact": {
      "$ref": "#/components/schemas/Contact"
    },
    "Schedule": {
      "$ref": "#/components/schemas/Schedule"
    },
    "SendCopy": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "Boolean to indicate whether a copy is sent to sender's email"
    },
    "SubTotal": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Total of invoice excluding taxes"
    },
    "TotalTax": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Total tax on invoice"
    },
    "LineItems": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItem"
      },
      "description": "See LineItems"
    },
    "Reference": {
      "type": "string",
      "description": "ACCREC only – additional reference number"
    },
    "IncludePDF": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "Boolean to indicate whether to include PDF attachment"
    },
    "MarkAsSent": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "Boolean to indicate whether the invoice in the Xero app displays as \"sent\""
    },
    "Attachments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Attachment"
      },
      "description": "Displays array of attachments from the API"
    },
    "CurrencyCode": {
      "$ref": "#/components/schemas/CurrencyCode",
      "type": "string"
    },
    "HasAttachments": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "readOnly": true,
      "description": "Boolean to indicate if an invoice has an attachment"
    },
    "BrandingThemeID": {
      "type": "string",
      "format": "uuid",
      "description": "See BrandingThemes"
    },
    "LineAmountTypes": {
      "$ref": "#/components/schemas/LineAmountTypes",
      "type": "string"
    },
    "ApprovedForSending": {
      "type": "boolean",
      "default": "false",
      "example": false,
      "description": "Boolean to indicate whether the invoice has been approved for sending"
    },
    "RepeatingInvoiceID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero generated unique identifier for repeating invoice template"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/repeating-invoices/"
  }
}
object RepeatingInvoices
{
  "type": "object",
  "properties": {
    "RepeatingInvoices": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/RepeatingInvoice"
      }
    }
  },
  "x-isObjectArray": true
}
object Report
{
  "properties": {
    "Contacts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TenNinetyNineContact"
      }
    },
    "ReportDate": {
      "type": "string",
      "description": "Date of report"
    },
    "ReportName": {
      "type": "string",
      "description": "See Prepayment Types"
    },
    "ReportType": {
      "enum": [
        "AgedPayablesByContact"
      ],
      "type": "string",
      "description": "See Prepayment Types"
    },
    "ReportTitle": {
      "type": "string",
      "description": "See Prepayment Types"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Updated Date",
      "x-is-msdate-time": true
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/reports/"
  }
}
object ReportAttribute
{
  "properties": {
    "Id": {
      "type": "string"
    },
    "Value": {
      "type": "string"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/reports/"
  }
}
object ReportCell
{
  "type": "object",
  "properties": {
    "Value": {
      "type": "string"
    },
    "Attributes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportAttribute"
      }
    }
  }
}
object ReportFields
{
  "type": "object",
  "properties": {
    "Value": {
      "type": "string"
    },
    "FieldID": {
      "type": "string"
    },
    "Description": {
      "type": "string"
    }
  }
}
object ReportRow
{
  "type": "object",
  "properties": {
    "Cells": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportCell"
      }
    },
    "Title": {
      "type": "string"
    },
    "RowType": {
      "$ref": "#/components/schemas/RowType"
    }
  }
}
object ReportRows
{
  "type": "object",
  "properties": {
    "Rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportRow"
      }
    },
    "Cells": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportCell"
      }
    },
    "Title": {
      "type": "string"
    },
    "RowType": {
      "$ref": "#/components/schemas/RowType"
    }
  }
}
object ReportWithRow
{
  "properties": {
    "Rows": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportRows"
      }
    },
    "Fields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportFields"
      }
    },
    "ReportID": {
      "type": "string",
      "description": "ID of the Report"
    },
    "ReportDate": {
      "type": "string",
      "description": "Date of report"
    },
    "ReportName": {
      "type": "string",
      "description": "Name of the report"
    },
    "ReportType": {
      "type": "string",
      "description": "The type of report (BalanceSheet,ProfitLoss, etc)"
    },
    "ReportTitle": {
      "type": "string",
      "description": "Title of the report"
    },
    "ReportTitles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Report titles array (3 to 4 strings with the report name, orgnisation name and time frame of report)"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Updated Date",
      "x-is-msdate-time": true
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/reports/"
  }
}
object ReportWithRows
{
  "type": "object",
  "properties": {
    "Reports": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ReportWithRow"
      }
    }
  }
}
object Reports
{
  "type": "object",
  "properties": {
    "Reports": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Report"
      }
    }
  },
  "x-isObjectArray": true
}
object RequestEmpty
{
  "type": "object",
  "properties": {
    "Status": {
      "type": "string",
      "description": "Need at least one field to create an empty JSON payload"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/invoice/"
  }
}
string RowType
{
  "enum": [
    "Header",
    "Section",
    "Row",
    "SummaryRow"
  ],
  "type": "string"
}
object SalesTrackingCategory
{
  "type": "object",
  "properties": {
    "TrackingOptionName": {
      "type": "string",
      "description": "The default purchase tracking category name for contacts"
    },
    "TrackingCategoryName": {
      "type": "string",
      "description": "The default sales tracking category name for contacts"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/tracking-categories/"
  }
}
object Schedule
{
  "type": "object",
  "properties": {
    "Unit": {
      "enum": [
        "WEEKLY",
        "MONTHLY"
      ],
      "type": "string",
      "description": "One of the following - WEEKLY or MONTHLY"
    },
    "Period": {
      "type": "integer",
      "description": "Integer used with the unit e.g. 1 (every 1 week), 2 (every 2 months)"
    },
    "DueDate": {
      "type": "integer",
      "description": "Integer used with due date type e.g 20 (of following month), 31 (of current month)"
    },
    "EndDate": {
      "type": "string",
      "description": "Invoice end date – only returned if the template has an end date set",
      "x-is-msdate": true
    },
    "StartDate": {
      "type": "string",
      "description": "Date the first invoice of the current version of the repeating schedule was generated (changes when repeating invoice is edited)",
      "x-is-msdate": true
    },
    "DueDateType": {
      "enum": [
        "DAYSAFTERBILLDATE",
        "DAYSAFTERBILLMONTH",
        "DAYSAFTERINVOICEDATE",
        "DAYSAFTERINVOICEMONTH",
        "OFCURRENTMONTH",
        "OFFOLLOWINGMONTH"
      ],
      "type": "string",
      "description": "the payment terms"
    },
    "NextScheduledDate": {
      "type": "string",
      "description": "The calendar date of the next invoice in the schedule to be generated",
      "x-is-msdate": true
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/repeating-invoices/"
  }
}
object Setup
{
  "properties": {
    "Accounts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Account"
      }
    },
    "ConversionDate": {
      "$ref": "#/components/schemas/ConversionDate"
    },
    "ConversionBalances": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ConversionBalances"
      },
      "description": "Balance supplied for each account that has a value as at the conversion date."
    }
  },
  "externalDocs": {
    "url": "https://developer.xero.com/documentation/api-guides/conversions"
  }
}
object TaxComponent
{
  "type": "object",
  "properties": {
    "Name": {
      "type": "string",
      "description": "Name of Tax Component"
    },
    "Rate": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Tax Rate (up to 4dp)"
    },
    "IsCompound": {
      "type": "boolean",
      "description": "Boolean to describe if Tax rate is compounded."
    },
    "IsNonRecoverable": {
      "type": "boolean",
      "description": "Boolean to describe if tax rate is non-recoverable. Non-recoverable rates are only applicable to Canadian organisations"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/tax-rates/"
  }
}
object TaxRate
{
  "type": "object",
  "properties": {
    "Name": {
      "type": "string",
      "description": "Name of tax rate"
    },
    "Status": {
      "enum": [
        "ACTIVE",
        "DELETED",
        "ARCHIVED",
        "PENDING"
      ],
      "type": "string",
      "description": "See Status Codes"
    },
    "TaxType": {
      "type": "string",
      "description": "The tax type"
    },
    "EffectiveRate": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Effective Tax Rate (decimal to 4dp) e.g 12.5000"
    },
    "ReportTaxType": {
      "enum": [
        "AVALARA",
        "BASEXCLUDED",
        "CAPITALSALESOUTPUT",
        "CAPITALEXPENSESINPUT",
        "ECOUTPUT",
        "ECOUTPUTSERVICES",
        "ECINPUT",
        "ECACQUISITIONS",
        "EXEMPTEXPENSES",
        "EXEMPTINPUT",
        "EXEMPTOUTPUT",
        "GSTONIMPORTS",
        "INPUT",
        "INPUTTAXED",
        "MOSSSALES",
        "NONE",
        "NONEOUTPUT",
        "OUTPUT",
        "PURCHASESINPUT",
        "SALESOUTPUT",
        "EXEMPTCAPITAL",
        "EXEMPTEXPORT",
        "CAPITALEXINPUT",
        "GSTONCAPIMPORTS",
        "GSTONCAPITALIMPORTS",
        "REVERSECHARGES",
        "PAYMENTS",
        "INVOICE",
        "CASH",
        "ACCRUAL",
        "FLATRATECASH",
        "FLATRATEACCRUAL",
        "ACCRUALS",
        "TXCA",
        "SRCAS",
        "DSOUTPUT",
        "BLINPUT2",
        "EPINPUT",
        "IMINPUT2",
        "MEINPUT",
        "IGDSINPUT2",
        "ESN33OUTPUT",
        "OPINPUT",
        "OSOUTPUT",
        "TXN33INPUT",
        "TXESSINPUT",
        "TXREINPUT",
        "TXPETINPUT",
        "NRINPUT",
        "ES33OUTPUT",
        "ZERORATEDINPUT",
        "ZERORATEDOUTPUT",
        "DRCHARGESUPPLY",
        "DRCHARGE",
        "CAPINPUT",
        "CAPIMPORTS",
        "IMINPUT",
        "INPUT2",
        "CIUINPUT",
        "SRINPUT",
        "OUTPUT2",
        "SROUTPUT",
        "CAPOUTPUT",
        "SROUTPUT2",
        "CIUOUTPUT",
        "ZROUTPUT",
        "ZREXPORT",
        "ACC28PLUS",
        "ACCUPTO28",
        "OTHEROUTPUT",
        "SHOUTPUT",
        "ZRINPUT",
        "BADDEBT",
        "OTHERINPUT",
        "BADDEBTRELIEF",
        "IGDSINPUT3",
        "SROVR",
        "TOURISTREFUND",
        "TXRCN33",
        "TXRCRE",
        "TXRCESS",
        "TXRCTS",
        "CAPEXINPUT",
        "UNDEFINED",
        "CAPEXOUTPUT",
        "ZEROEXPOUTPUT",
        "GOODSIMPORT",
        "NONEINPUT",
        "NOTREPORTED",
        "SROVRRS",
        "SROVRLVG",
        "SRLVG",
        "IM",
        "IMESS",
        "IMN33",
        "IMRE",
        "BADDEBTRECOVERY",
        "USSALESTAX"
      ],
      "type": "string",
      "description": "See ReportTaxTypes"
    },
    "TaxComponents": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TaxComponent"
      },
      "description": "See TaxComponents"
    },
    "DisplayTaxRate": {
      "type": "number",
      "format": "double",
      "readOnly": true,
      "x-is-money": true,
      "description": "Tax Rate (decimal to 4dp) e.g 12.5000"
    },
    "CanApplyToAssets": {
      "type": "boolean",
      "readOnly": true,
      "description": "Boolean to describe if tax rate can be used for asset accounts i.e.  true,false"
    },
    "CanApplyToEquity": {
      "type": "boolean",
      "readOnly": true,
      "description": "Boolean to describe if tax rate can be used for equity accounts i.e true,false"
    },
    "CanApplyToRevenue": {
      "type": "boolean",
      "readOnly": true,
      "description": "Boolean to describe if tax rate can be used for revenue accounts i.e. true,false"
    },
    "CanApplyToExpenses": {
      "type": "boolean",
      "readOnly": true,
      "description": "Boolean to describe if tax rate can be used for expense accounts  i.e. true,false"
    },
    "CanApplyToLiabilities": {
      "type": "boolean",
      "readOnly": true,
      "description": "Boolean to describe if tax rate can be used for liability accounts  i.e. true,false"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/tax-rates/"
  }
}
object TaxRates
{
  "type": "object",
  "properties": {
    "TaxRates": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TaxRate"
      }
    }
  },
  "x-isObjectArray": true
}
string TaxType
{
  "enum": [
    "OUTPUT",
    "INPUT",
    "CAPEXINPUT",
    "EXEMPTEXPORT",
    "EXEMPTEXPENSES",
    "EXEMPTCAPITAL",
    "EXEMPTOUTPUT",
    "INPUTTAXED",
    "BASEXCLUDED",
    "GSTONCAPIMPORTS",
    "GSTONIMPORTS",
    "NONE",
    "INPUT2",
    "ZERORATED",
    "OUTPUT2",
    "CAPEXINPUT2",
    "CAPEXOUTPUT",
    "CAPEXOUTPUT2",
    "CAPEXSRINPUT",
    "CAPEXSROUTPUT",
    "ECACQUISITIONS",
    "ECZRINPUT",
    "ECZROUTPUT",
    "ECZROUTPUTSERVICES",
    "EXEMPTINPUT",
    "REVERSECHARGES",
    "RRINPUT",
    "RROUTPUT",
    "SRINPUT",
    "SROUTPUT",
    "ZERORATEDINPUT",
    "ZERORATEDOUTPUT",
    "BLINPUT",
    "DSOUTPUT",
    "EPINPUT",
    "ES33OUTPUT",
    "ESN33OUTPUT",
    "IGDSINPUT2",
    "IMINPUT2",
    "MEINPUT",
    "NRINPUT",
    "OPINPUT",
    "OSOUTPUT",
    "TXESSINPUT",
    "TXN33INPUT",
    "TXPETINPUT",
    "TXREINPUT",
    "INPUT3",
    "INPUT4",
    "OUTPUT3",
    "OUTPUT4",
    "SROUTPUT2",
    "TXCA",
    "SRCAS",
    "BLINPUT2",
    "DRCHARGESUPPLY20",
    "DRCHARGE20",
    "DRCHARGESUPPLY5",
    "DRCHARGE5",
    "BADDEBTRELIEF",
    "IGDSINPUT3",
    "SROVR",
    "TOURISTREFUND",
    "TXRCN33",
    "TXRCRE",
    "TXRCESS",
    "TXRCTS",
    "OUTPUTY23",
    "DSOUTPUTY23",
    "INPUTY23",
    "IMINPUT2Y23",
    "IGDSINPUT2Y23",
    "TXPETINPUTY23",
    "TXESSINPUTY23",
    "TXN33INPUTY23",
    "TXREINPUTY23",
    "TXCAY23",
    "BADDEBTRELIEFY23",
    "IGDSINPUT3Y23",
    "SROVRRSY23",
    "SROVRLVGY23",
    "SRLVGY23",
    "TXRCN33Y23",
    "TXRCREY23",
    "TXRCESSY23",
    "TXRCTSY23",
    "IM",
    "IMY23",
    "IMESS",
    "IMESSY23",
    "IMN33",
    "IMN33Y23",
    "IMRE",
    "IMREY23",
    "BADDEBTRECOVERY",
    "BADDEBTRECOVERYY23",
    "OUTPUTY24",
    "DSOUTPUTY24",
    "INPUTY24",
    "IGDSINPUT2Y24",
    "TXPETINPUTY24",
    "TXESSINPUTY24",
    "TXN33INPUTY24",
    "TXREINPUTY24",
    "TXCAY24",
    "BADDEBTRELIEFY24",
    "IGDSINPUT3Y24",
    "SROVRRSY24",
    "SROVRLVGY24",
    "SRLVGY24",
    "TXRCTSY24",
    "TXRCESSY24",
    "TXRCN33Y24",
    "TXRCREY24",
    "IMY24",
    "IMESSY24",
    "IMN33Y24",
    "IMREY24",
    "BADDEBTRECOVERYY24",
    "OSOUTPUT2"
  ],
  "type": "string",
  "description": "See Tax Types – can only be used on update calls"
}
object TenNinetyNineContact
{
  "properties": {
    "Zip": {
      "type": "string",
      "description": "Contact zip on 1099 Form"
    },
    "Box1": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 1 on 1099 Form"
    },
    "Box2": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 2 on 1099 Form"
    },
    "Box3": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 3 on 1099 Form"
    },
    "Box4": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 4 on 1099 Form"
    },
    "Box5": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 5 on 1099 Form"
    },
    "Box6": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 6 on 1099 Form"
    },
    "Box7": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 7 on 1099 Form"
    },
    "Box8": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 8 on 1099 Form"
    },
    "Box9": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 9 on 1099 Form"
    },
    "City": {
      "type": "string",
      "description": "Contact city on 1099 Form"
    },
    "Name": {
      "type": "string",
      "description": "Contact name on 1099 Form"
    },
    "Box10": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 10 on 1099 Form"
    },
    "Box11": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 11 on 1099 Form"
    },
    "Box13": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 13 on 1099 Form"
    },
    "Box14": {
      "type": "number",
      "format": "double",
      "x-is-money": true,
      "description": "Box 14 on 1099 Form"
    },
    "Email": {
      "type": "string",
      "description": "Contact email on 1099 Form"
    },
    "State": {
      "type": "string",
      "description": "Contact State on 1099 Form"
    },
    "TaxID": {
      "type": "string",
      "description": "Contact tax id on 1099 Form"
    },
    "ContactId": {
      "type": "string",
      "format": "uuid",
      "description": "Contact contact id"
    },
    "LegalName": {
      "type": "string",
      "description": "Contact legal name"
    },
    "BusinessName": {
      "type": "string",
      "description": "Contact business name"
    },
    "StreetAddress": {
      "type": "string",
      "description": "Contact address on 1099 Form"
    },
    "FederalTaxIDType": {
      "type": "string",
      "description": "Contact Fed Tax ID type"
    },
    "FederalTaxClassification": {
      "enum": [
        "SOLE_PROPRIETOR",
        "PARTNERSHIP",
        "TRUST_OR_ESTATE",
        "NONPROFIT",
        "C_CORP",
        "S_CORP",
        "OTHER"
      ],
      "type": "string",
      "description": "Contact federal tax classification"
    }
  }
}
string TimeZone
{
  "enum": [
    "AFGHANISTANSTANDARDTIME",
    "ALASKANSTANDARDTIME",
    "ALEUTIANSTANDARDTIME",
    "ALTAISTANDARDTIME",
    "ARABIANSTANDARDTIME",
    "ARABICSTANDARDTIME",
    "ARABSTANDARDTIME",
    "ARGENTINASTANDARDTIME",
    "ASTRAKHANSTANDARDTIME",
    "ATLANTICSTANDARDTIME",
    "AUSCENTRALSTANDARDTIME",
    "AUSCENTRALWSTANDARDTIME",
    "AUSEASTERNSTANDARDTIME",
    "AZERBAIJANSTANDARDTIME",
    "AZORESSTANDARDTIME",
    "BAHIASTANDARDTIME",
    "BANGLADESHSTANDARDTIME",
    "BELARUSSTANDARDTIME",
    "BOUGAINVILLESTANDARDTIME",
    "CANADACENTRALSTANDARDTIME",
    "CAPEVERDESTANDARDTIME",
    "CAUCASUSSTANDARDTIME",
    "CENAUSTRALIASTANDARDTIME",
    "CENTRALAMERICASTANDARDTIME",
    "CENTRALASIASTANDARDTIME",
    "CENTRALBRAZILIANSTANDARDTIME",
    "CENTRALEUROPEANSTANDARDTIME",
    "CENTRALEUROPESTANDARDTIME",
    "CENTRALPACIFICSTANDARDTIME",
    "CENTRALSTANDARDTIME",
    "CENTRALSTANDARDTIME(MEXICO)",
    "CHATHAMISLANDSSTANDARDTIME",
    "CHINASTANDARDTIME",
    "CUBASTANDARDTIME",
    "DATELINESTANDARDTIME",
    "EAFRICASTANDARDTIME",
    "EASTERISLANDSTANDARDTIME",
    "EASTERNSTANDARDTIME",
    "EASTERNSTANDARDTIME(MEXICO)",
    "EAUSTRALIASTANDARDTIME",
    "EEUROPESTANDARDTIME",
    "EGYPTSTANDARDTIME",
    "EKATERINBURGSTANDARDTIME",
    "ESOUTHAMERICASTANDARDTIME",
    "FIJISTANDARDTIME",
    "FLESTANDARDTIME",
    "GEORGIANSTANDARDTIME",
    "GMTSTANDARDTIME",
    "GREENLANDSTANDARDTIME",
    "GREENWICHSTANDARDTIME",
    "GTBSTANDARDTIME",
    "HAITISTANDARDTIME",
    "HAWAIIANSTANDARDTIME",
    "INDIASTANDARDTIME",
    "IRANSTANDARDTIME",
    "ISRAELSTANDARDTIME",
    "JORDANSTANDARDTIME",
    "KALININGRADSTANDARDTIME",
    "KAMCHATKASTANDARDTIME",
    "KOREASTANDARDTIME",
    "LIBYASTANDARDTIME",
    "LINEISLANDSSTANDARDTIME",
    "LORDHOWESTANDARDTIME",
    "MAGADANSTANDARDTIME",
    "MAGALLANESSTANDARDTIME",
    "MARQUESASSTANDARDTIME",
    "MAURITIUSSTANDARDTIME",
    "MIDATLANTICSTANDARDTIME",
    "MIDDLEEASTSTANDARDTIME",
    "MONTEVIDEOSTANDARDTIME",
    "MOROCCOSTANDARDTIME",
    "MOUNTAINSTANDARDTIME",
    "MOUNTAINSTANDARDTIME(MEXICO)",
    "MYANMARSTANDARDTIME",
    "NAMIBIASTANDARDTIME",
    "NCENTRALASIASTANDARDTIME",
    "NEPALSTANDARDTIME",
    "NEWFOUNDLANDSTANDARDTIME",
    "NEWZEALANDSTANDARDTIME",
    "NORFOLKSTANDARDTIME",
    "NORTHASIAEASTSTANDARDTIME",
    "NORTHASIASTANDARDTIME",
    "NORTHKOREASTANDARDTIME",
    "OMSKSTANDARDTIME",
    "PACIFICSASTANDARDTIME",
    "PACIFICSTANDARDTIME",
    "PACIFICSTANDARDTIME(MEXICO)",
    "PAKISTANSTANDARDTIME",
    "PARAGUAYSTANDARDTIME",
    "QYZYLORDASTANDARDTIME",
    "ROMANCESTANDARDTIME",
    "RUSSIANSTANDARDTIME",
    "RUSSIATIMEZONE10",
    "RUSSIATIMEZONE11",
    "RUSSIATIMEZONE3",
    "SAEASTERNSTANDARDTIME",
    "SAINTPIERRESTANDARDTIME",
    "SAKHALINSTANDARDTIME",
    "SAMOASTANDARDTIME",
    "SAOTOMESTANDARDTIME",
    "SAPACIFICSTANDARDTIME",
    "SARATOVSTANDARDTIME",
    "SAWESTERNSTANDARDTIME",
    "SEASIASTANDARDTIME",
    "SINGAPORESTANDARDTIME",
    "SOUTHAFRICASTANDARDTIME",
    "SOUTHSUDANSTANDARDTIME",
    "SRILANKASTANDARDTIME",
    "SUDANSTANDARDTIME",
    "SYRIASTANDARDTIME",
    "TAIPEISTANDARDTIME",
    "TASMANIASTANDARDTIME",
    "TOCANTINSSTANDARDTIME",
    "TOKYOSTANDARDTIME",
    "TOMSKSTANDARDTIME",
    "TONGASTANDARDTIME",
    "TRANSBAIKALSTANDARDTIME",
    "TURKEYSTANDARDTIME",
    "TURKSANDCAICOSSTANDARDTIME",
    "ULAANBAATARSTANDARDTIME",
    "USEASTERNSTANDARDTIME",
    "USMOUNTAINSTANDARDTIME",
    "UTC",
    "UTC+12",
    "UTC+13",
    "UTC02",
    "UTC08",
    "UTC09",
    "UTC11",
    "VENEZUELASTANDARDTIME",
    "VLADIVOSTOKSTANDARDTIME",
    "VOLGOGRADSTANDARDTIME",
    "WAUSTRALIASTANDARDTIME",
    "WCENTRALAFRICASTANDARDTIME",
    "WESTASIASTANDARDTIME",
    "WESTBANKSTANDARDTIME",
    "WESTPACIFICSTANDARDTIME",
    "WEUROPESTANDARDTIME",
    "WMONGOLIASTANDARDTIME",
    "YAKUTSKSTANDARDTIME",
    "YUKONSTANDARDTIME"
  ],
  "type": "string",
  "description": "Timezone specifications"
}
object TrackingCategories
{
  "type": "object",
  "properties": {
    "TrackingCategories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TrackingCategory"
      }
    }
  },
  "x-isObjectArray": true
}
object TrackingCategory
{
  "type": "object",
  "properties": {
    "Name": {
      "type": "string",
      "maxLength": 100,
      "description": "The name of the tracking category e.g. Department, Region (max length = 100)"
    },
    "Option": {
      "type": "string",
      "maxLength": 100,
      "description": "The option name of the tracking option e.g. East, West (max length = 100)"
    },
    "Status": {
      "enum": [
        "ACTIVE",
        "ARCHIVED",
        "DELETED"
      ],
      "type": "string",
      "description": "The status of a tracking category"
    },
    "Options": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TrackingOption"
      },
      "description": "See Tracking Options"
    },
    "TrackingOptionID": {
      "type": "string",
      "format": "uuid",
      "description": "The Xero identifier for a tracking option e.g. dc54c220-0140-495a-b925-3246adc0075f"
    },
    "TrackingCategoryID": {
      "type": "string",
      "format": "uuid",
      "description": "The Xero identifier for a tracking category e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/tracking-categories/"
  }
}
object TrackingOption
{
  "type": "object",
  "properties": {
    "Name": {
      "type": "string",
      "maxLength": 100,
      "description": "The name of the tracking option e.g. Marketing, East (max length = 100)"
    },
    "Status": {
      "enum": [
        "ACTIVE",
        "ARCHIVED",
        "DELETED"
      ],
      "type": "string",
      "description": "The status of a tracking option"
    },
    "TrackingOptionID": {
      "type": "string",
      "format": "uuid",
      "description": "The Xero identifier for a tracking option e.g. ae777a87-5ef3-4fa0-a4f0-d10e1f13073a"
    },
    "TrackingCategoryID": {
      "type": "string",
      "format": "uuid",
      "description": "Filter by a tracking category e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/tracking-categories/"
  }
}
object TrackingOptions
{
  "type": "object",
  "properties": {
    "Options": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TrackingOption"
      }
    }
  },
  "x-isObjectArray": true
}
object User
{
  "type": "object",
  "properties": {
    "UserID": {
      "type": "string",
      "format": "uuid",
      "description": "Xero identifier"
    },
    "LastName": {
      "type": "string",
      "description": "Last name of user"
    },
    "FirstName": {
      "type": "string",
      "description": "First name of user"
    },
    "EmailAddress": {
      "type": "string",
      "description": "Email address of user"
    },
    "IsSubscriber": {
      "type": "boolean",
      "description": "Boolean to indicate if user is the subscriber"
    },
    "UpdatedDateUTC": {
      "type": "string",
      "example": "/Date(1573755038314)/",
      "readOnly": true,
      "description": "Timestamp of last change to user",
      "x-is-msdate-time": true
    },
    "OrganisationRole": {
      "enum": [
        "READONLY",
        "INVOICEONLY",
        "STANDARD",
        "FINANCIALADVISER",
        "MANAGEDCLIENT",
        "CASHBOOKCLIENT",
        "UNKNOWN"
      ],
      "type": "string",
      "description": "User role that defines permissions in Xero and via API (READONLY, INVOICEONLY, STANDARD, FINANCIALADVISER, etc)"
    }
  },
  "externalDocs": {
    "url": "http://developer.xero.com/documentation/api/users/"
  }
}
object Users
{
  "type": "object",
  "properties": {
    "Users": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/User"
      }
    }
  },
  "x-isObjectArray": true
}
object ValidationError
{
  "type": "object",
  "properties": {
    "Message": {
      "type": "string",
      "description": "Validation error message"
    }
  },
  "externalDocs": {
    "url": "https://developer.xero.com/documentation/api/http-response-codes"
  }
}