Xero Accounting API

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

Operations 237

GET /Accounts Xero Retrieves the full chart of accounts #
PUT /Accounts Xero Creates a new chart of accounts #
GET /Accounts/{AccountID} Xero Retrieves a single chart of accounts by using a unique account Id #
POST /Accounts/{AccountID} Xero Updates a chart of accounts #
DELETE /Accounts/{AccountID} Xero Deletes a chart of accounts #
GET /Accounts/{AccountID}/Attachments Xero Retrieves attachments for a specific accounts by using a unique account Id #
GET /Accounts/{AccountID}/Attachments/{AttachmentID} Xero Retrieves a specific attachment from a specific account using a unique attachment Id #
GET /Accounts/{AccountID}/Attachments/{FileName} Xero Retrieves an attachment for a specific account by filename #
POST /Accounts/{AccountID}/Attachments/{FileName} Xero Updates attachment on a specific account by filename #
PUT /Accounts/{AccountID}/Attachments/{FileName} Xero Creates an attachment on a specific account #
GET /BatchPayments Xero Retrieves either one or many batch payments for invoices #
PUT /BatchPayments Xero Creates one or many batch payments for invoices #
POST /BatchPayments Xero Updates a specific batch payment for invoices and credit notes #
GET /BatchPayments/{BatchPaymentID} Xero Retrieves a specific batch payment using a unique batch payment Id #
POST /BatchPayments/{BatchPaymentID} Xero Updates a specific batch payment for invoices and credit notes #
GET /BatchPayments/{BatchPaymentID}/History Xero Retrieves history from a specific batch payment #
PUT /BatchPayments/{BatchPaymentID}/History Xero Creates a history record for a specific batch payment #
GET /BankTransactions Xero Retrieves any spent or received money transactions #
PUT /BankTransactions Xero Creates one or more spent or received money transaction #
POST /BankTransactions Xero Updates or creates one or more spent or received money transaction #
GET /BankTransactions/{BankTransactionID} Xero Retrieves a single spent or received money transaction by using a unique bank transaction Id #
POST /BankTransactions/{BankTransactionID} Xero Updates a single spent or received money transaction #
GET /BankTransactions/{BankTransactionID}/Attachments Xero Retrieves any attachments from a specific bank transactions #
GET /BankTransactions/{BankTransactionID}/Attachments/{AttachmentID} Xero Retrieves specific attachments from a specific BankTransaction using a unique attachment Id #
GET /BankTransactions/{BankTransactionID}/Attachments/{FileName} Xero Retrieves a specific attachment from a specific bank transaction by filename #
POST /BankTransactions/{BankTransactionID}/Attachments/{FileName} Xero Updates a specific attachment from a specific bank transaction by filename #
PUT /BankTransactions/{BankTransactionID}/Attachments/{FileName} Xero Creates an attachment for a specific bank transaction by filename #
GET /BankTransactions/{BankTransactionID}/History Xero Retrieves history from a specific bank transaction using a unique bank transaction Id #
PUT /BankTransactions/{BankTransactionID}/History Xero Creates a history record for a specific bank transactions #
GET /BankTransfers Xero Retrieves all bank transfers #
PUT /BankTransfers Xero Creates a bank transfer #
GET /BankTransfers/{BankTransferID} Xero Retrieves specific bank transfers by using a unique bank transfer Id #
GET /BankTransfers/{BankTransferID}/Attachments Xero Retrieves attachments from a specific bank transfer #
GET /BankTransfers/{BankTransferID}/Attachments/{AttachmentID} Xero Retrieves a specific attachment from a specific bank transfer using a unique attachment ID #
GET /BankTransfers/{BankTransferID}/Attachments/{FileName} Xero Retrieves a specific attachment on a specific bank transfer by file name #
POST /BankTransfers/{BankTransferID}/Attachments/{FileName} #
PUT /BankTransfers/{BankTransferID}/Attachments/{FileName} #
GET /BankTransfers/{BankTransferID}/History Xero Retrieves history from a specific bank transfer using a unique bank transfer Id #
PUT /BankTransfers/{BankTransferID}/History Xero Creates a history record for a specific bank transfer #
GET /BrandingThemes Xero Retrieves all the branding themes #
GET /BrandingThemes/{BrandingThemeID} Xero Retrieves a specific branding theme using a unique branding theme Id #
GET /BrandingThemes/{BrandingThemeID}/PaymentServices Xero Retrieves the payment services for a specific branding theme #
POST /BrandingThemes/{BrandingThemeID}/PaymentServices Xero Creates a new custom payment service for a specific branding theme #
GET /Budgets Xero Retrieve a list of budgets #
GET /Budgets/{BudgetID} Xero Retrieves a specific budget, which includes budget lines #
GET /Contacts Retrieves all contacts in a Xero organisation #
PUT /Contacts Creates multiple contacts (bulk) in a Xero organisation #
POST /Contacts Updates or creates one or more contacts in a Xero organisation #
GET /Contacts/{ContactNumber} Retrieves a specific contact by contact number in a Xero organisation #
GET /Contacts/{ContactID} Retrieves a specific contacts in a Xero organisation using a unique contact Id #
POST /Contacts/{ContactID} Updates a specific contact in a Xero organisation #
GET /Contacts/{ContactID}/Attachments Retrieves attachments for a specific contact in a Xero organisation #
GET /Contacts/{ContactID}/Attachments/{AttachmentID} Xero Retrieves a specific attachment from a specific contact using a unique attachment Id #
GET /Contacts/{ContactID}/Attachments/{FileName} Xero Retrieves a specific attachment from a specific contact by file name #
POST /Contacts/{ContactID}/Attachments/{FileName} #
PUT /Contacts/{ContactID}/Attachments/{FileName} #
GET /Contacts/{ContactID}/CISSettings Retrieves CIS settings for a specific contact in a Xero organisation #
GET /Contacts/{ContactID}/History Xero Retrieves history records for a specific contact #
PUT /Contacts/{ContactID}/History Xero Creates a new history record for a specific contact #
GET /ContactGroups Xero Retrieves the contact Id and name of each contact group #
PUT /ContactGroups Xero Creates a contact group #
GET /ContactGroups/{ContactGroupID} Xero Retrieves a specific contact group by using a unique contact group Id #
POST /ContactGroups/{ContactGroupID} Xero Updates a specific contact group #
PUT /ContactGroups/{ContactGroupID}/Contacts Xero Creates contacts to a specific contact group #
DELETE /ContactGroups/{ContactGroupID}/Contacts Xero Deletes all contacts from a specific contact group #
DELETE /ContactGroups/{ContactGroupID}/Contacts/{ContactID} Xero Deletes a specific contact from a contact group using a unique contact Id #
GET /CreditNotes Xero Retrieves any credit notes #
PUT /CreditNotes Xero Creates a new credit note #
POST /CreditNotes Xero Updates or creates one or more credit notes #
GET /CreditNotes/{CreditNoteID} Xero Retrieves a specific credit note using a unique credit note Id #
POST /CreditNotes/{CreditNoteID} Xero Updates a specific credit note #
GET /CreditNotes/{CreditNoteID}/Attachments Xero Retrieves attachments for a specific credit notes #
GET /CreditNotes/{CreditNoteID}/Attachments/{AttachmentID} Xero Retrieves a specific attachment from a specific credit note using a unique attachment Id #
GET /CreditNotes/{CreditNoteID}/Attachments/{FileName} Xero Retrieves a specific attachment on a specific credit note by file name #
POST /CreditNotes/{CreditNoteID}/Attachments/{FileName} Xero Updates attachments on a specific credit note by file name #
PUT /CreditNotes/{CreditNoteID}/Attachments/{FileName} Xero Creates an attachment for a specific credit note #
GET /CreditNotes/{CreditNoteID}/pdf Xero Retrieves credit notes as PDF files #
PUT /CreditNotes/{CreditNoteID}/Allocations Xero Creates allocation for a specific credit note #
DELETE /CreditNotes/{CreditNoteID}/Allocations/{AllocationID} Xero Deletes an Allocation from a Credit Note #
GET /CreditNotes/{CreditNoteID}/History Xero Retrieves history records of a specific credit note #
PUT /CreditNotes/{CreditNoteID}/History Xero Retrieves history records of a specific credit note #
GET /Currencies Retrieves currencies for your Xero organisation #
PUT /Currencies Create a new currency for a Xero organisation #
GET /Employees Retrieves employees used in Xero payrun #
PUT /Employees Creates new employees used in Xero payrun #
POST /Employees Creates a single new employees used in Xero payrun #
GET /Employees/{EmployeeID} Retrieves a specific employee used in Xero payrun using a unique employee Id #
GET /ExpenseClaims Xero Retrieves expense claims #
PUT /ExpenseClaims Xero Creates expense claims #
GET /ExpenseClaims/{ExpenseClaimID} Xero Retrieves a specific expense claim using a unique expense claim Id #
POST /ExpenseClaims/{ExpenseClaimID} Xero Updates a specific expense claims #
GET /ExpenseClaims/{ExpenseClaimID}/History Xero Retrieves history records of a specific expense claim #
PUT /ExpenseClaims/{ExpenseClaimID}/History Xero Creates a history record for a specific expense claim #
GET /Invoices Xero Retrieves sales invoices or purchase bills #
PUT /Invoices Xero Creates one or more sales invoices or purchase bills #
POST /Invoices Xero Updates or creates one or more sales invoices or purchase bills #
GET /Invoices/{InvoiceID} Xero Retrieves a specific sales invoice or purchase bill using a unique invoice Id #
POST /Invoices/{InvoiceID} Xero Updates a specific sales invoices or purchase bills #
GET /Invoices/{InvoiceID}/pdf Xero Retrieves invoices or purchase bills as PDF files #
GET /Invoices/{InvoiceID}/Attachments Xero Retrieves attachments for a specific invoice or purchase bill #
GET /Invoices/{InvoiceID}/Attachments/{AttachmentID} Xero Retrieves a specific attachment from a specific invoices or purchase bills by using a unique attachment Id #
GET /Invoices/{InvoiceID}/Attachments/{FileName} Xero Retrieves an attachment from a specific invoice or purchase bill by filename #
POST /Invoices/{InvoiceID}/Attachments/{FileName} Xero Updates an attachment from a specific invoices or purchase bill by filename #
PUT /Invoices/{InvoiceID}/Attachments/{FileName} Xero Creates an attachment for a specific invoice or purchase bill by filename #
GET /Invoices/{InvoiceID}/OnlineInvoice Xero Retrieves a URL to an online invoice #
POST /Invoices/{InvoiceID}/Email Xero Sends a copy of a specific invoice to related contact via email #
GET /Invoices/{InvoiceID}/History Xero Retrieves history records for a specific invoice #
PUT /Invoices/{InvoiceID}/History Xero Creates a history record for a specific invoice #
GET /InvoiceReminders/Settings Xero Retrieves invoice reminder settings #
GET /Items Xero Retrieves items #
PUT /Items Xero Creates one or more items #
POST /Items Xero Updates or creates one or more items #
GET /Items/{ItemID} Xero Retrieves a specific item using a unique item Id #
POST /Items/{ItemID} Xero Updates a specific item #
DELETE /Items/{ItemID} Xero Deletes a specific item #
GET /Items/{ItemID}/History Xero Retrieves history for a specific item #
PUT /Items/{ItemID}/History Xero Creates a history record for a specific item #
GET /Journals Xero Retrieves journals #
GET /Journals/{JournalID} Xero Retrieves a specific journal using a unique journal Id. #
GET /Journals/{JournalNumber} Xero Retrieves a specific journal using a unique journal number. #
GET /LinkedTransactions Xero Retrieves linked transactions (billable expenses) #
PUT /LinkedTransactions Xero Creates linked transactions (billable expenses) #
GET /LinkedTransactions/{LinkedTransactionID} Xero Retrieves a specific linked transaction (billable expenses) using a unique linked transaction Id #
POST /LinkedTransactions/{LinkedTransactionID} Xero Updates a specific linked transactions (billable expenses) #
DELETE /LinkedTransactions/{LinkedTransactionID} Xero Deletes a specific linked transactions (billable expenses) #
GET /ManualJournals Xero Retrieves manual journals #
PUT /ManualJournals Xero Creates one or more manual journals #
POST /ManualJournals Xero Updates or creates a single manual journal #
GET /ManualJournals/{ManualJournalID} Xero Retrieves a specific manual journal #
POST /ManualJournals/{ManualJournalID} Xero Updates a specific manual journal #
GET /ManualJournals/{ManualJournalID}/Attachments Xero Retrieves attachment for a specific manual journal #
GET /ManualJournals/{ManualJournalID}/Attachments/{AttachmentID} Xero Allows you to retrieve a specific attachment from a specific manual journal using a unique attachment Id #
GET /ManualJournals/{ManualJournalID}/Attachments/{FileName} Xero Retrieves a specific attachment from a specific manual journal by file name #
POST /ManualJournals/{ManualJournalID}/Attachments/{FileName} Xero Updates a specific attachment from a specific manual journal by file name #
PUT /ManualJournals/{ManualJournalID}/Attachments/{FileName} Xero Creates a specific attachment for a specific manual journal by file name #
GET /ManualJournals/{ManualJournalID}/History Xero Retrieves history for a specific manual journal #
PUT /ManualJournals/{ManualJournalID}/History Xero Creates a history record for a specific manual journal #
GET /Organisation Retrieves Xero organisation details #
GET /Organisation/Actions Retrieves a list of the key actions your app has permission to perform in the connected Xero organisation. #
GET /Organisation/{OrganisationID}/CISSettings Retrieves the CIS settings for the Xero organistaion. #
GET /Overpayments Xero Retrieves overpayments #
GET /Overpayments/{OverpaymentID} Xero Retrieves a specific overpayment using a unique overpayment Id #
PUT /Overpayments/{OverpaymentID}/Allocations Xero Creates a single allocation for a specific overpayment #
DELETE /Overpayments/{OverpaymentID}/Allocations/{AllocationID} Xero Deletes an Allocation from an overpayment #
GET /Overpayments/{OverpaymentID}/History Xero Retrieves history records of a specific overpayment #
PUT /Overpayments/{OverpaymentID}/History Xero Creates a history record for a specific overpayment #
GET /Payments Xero Retrieves payments for invoices and credit notes #
PUT /Payments Xero Creates multiple payments for invoices or credit notes #
POST /Payments Xero Creates a single payment for invoice or credit notes #
GET /Payments/{PaymentID} Xero Retrieves a specific payment for invoices and credit notes using a unique payment Id #
POST /Payments/{PaymentID} Xero Updates a specific payment for invoices and credit notes #
GET /Payments/{PaymentID}/History Xero Retrieves history records of a specific payment #
PUT /Payments/{PaymentID}/History Xero Creates a history record for a specific payment #
GET /PaymentServices Xero Retrieves payment services #
PUT /PaymentServices Xero Creates a payment service #
GET /Prepayments Xero Retrieves prepayments #
GET /Prepayments/{PrepaymentID} Xero Allows you to retrieve a specified prepayments #
PUT /Prepayments/{PrepaymentID}/Allocations Xero Allows you to create an Allocation for prepayments #
DELETE /Prepayments/{PrepaymentID}/Allocations/{AllocationID} Xero Deletes an Allocation from a Prepayment #
GET /Prepayments/{PrepaymentID}/History Xero Retrieves history record for a specific prepayment #
PUT /Prepayments/{PrepaymentID}/History Xero Creates a history record for a specific prepayment #
GET /PurchaseOrders Xero Retrieves purchase orders #
PUT /PurchaseOrders Xero Creates one or more purchase orders #
POST /PurchaseOrders Xero Updates or creates one or more purchase orders #
GET /PurchaseOrders/{PurchaseOrderID}/pdf Xero Retrieves specific purchase order as PDF files using a unique purchase order Id #
GET /PurchaseOrders/{PurchaseOrderID} Xero Retrieves a specific purchase order using a unique purchase order Id #
POST /PurchaseOrders/{PurchaseOrderID} Xero Updates a specific purchase order #
GET /PurchaseOrders/{PurchaseOrderNumber} Xero Retrieves a specific purchase order using purchase order number #
GET /PurchaseOrders/{PurchaseOrderID}/History Xero Retrieves history for a specific purchase order #
PUT /PurchaseOrders/{PurchaseOrderID}/History Xero Creates a history record for a specific purchase orders #
GET /PurchaseOrders/{PurchaseOrderID}/Attachments Xero Retrieves attachments for a specific purchase order #
GET /PurchaseOrders/{PurchaseOrderID}/Attachments/{AttachmentID} Xero Retrieves specific attachment for a specific purchase order using a unique attachment Id #
GET /PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName} Xero Retrieves a specific attachment for a specific purchase order by filename #
POST /PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName} Xero Updates a specific attachment for a specific purchase order by filename #
PUT /PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName} Xero Creates attachment for a specific purchase order #
GET /Quotes Xero Retrieves sales quotes #
PUT /Quotes Xero Create one or more quotes #
POST /Quotes Xero Updates or creates one or more quotes #
GET /Quotes/{QuoteID} Xero Retrieves a specific quote using a unique quote Id #
POST /Quotes/{QuoteID} Xero Updates a specific quote #
GET /Quotes/{QuoteID}/History Xero Retrieves history records of a specific quote #
PUT /Quotes/{QuoteID}/History Xero Creates a history record for a specific quote #
GET /Quotes/{QuoteID}/pdf Xero Retrieves a specific quote as a PDF file using a unique quote Id #
GET /Quotes/{QuoteID}/Attachments Xero Retrieves attachments for a specific quote #
GET /Quotes/{QuoteID}/Attachments/{AttachmentID} Xero Retrieves a specific attachment from a specific quote using a unique attachment Id #
GET /Quotes/{QuoteID}/Attachments/{FileName} Xero Retrieves a specific attachment from a specific quote by filename #
POST /Quotes/{QuoteID}/Attachments/{FileName} Xero Updates a specific attachment from a specific quote by filename #
PUT /Quotes/{QuoteID}/Attachments/{FileName} Xero Creates attachment for a specific quote #
GET /Receipts Xero Retrieves draft expense claim receipts for any user #
PUT /Receipts Xero Creates draft expense claim receipts for any user #
GET /Receipts/{ReceiptID} Xero Retrieves a specific draft expense claim receipt by using a unique receipt Id #
POST /Receipts/{ReceiptID} Xero Updates a specific draft expense claim receipts #
GET /Receipts/{ReceiptID}/Attachments Xero Retrieves attachments for a specific expense claim receipt #
GET /Receipts/{ReceiptID}/Attachments/{AttachmentID} Xero Retrieves a specific attachments from a specific expense claim receipts by using a unique attachment Id #
GET /Receipts/{ReceiptID}/Attachments/{FileName} Xero Retrieves a specific attachment from a specific expense claim receipts by file name #
POST /Receipts/{ReceiptID}/Attachments/{FileName} Xero Updates a specific attachment on a specific expense claim receipts by file name #
PUT /Receipts/{ReceiptID}/Attachments/{FileName} Xero Creates an attachment on a specific expense claim receipts by file name #
GET /Receipts/{ReceiptID}/History Xero Retrieves a history record for a specific receipt #
PUT /Receipts/{ReceiptID}/History Xero Creates a history record for a specific receipt #
GET /RepeatingInvoices Xero Retrieves repeating invoices #
PUT /RepeatingInvoices Xero Creates one or more repeating invoice templates #
POST /RepeatingInvoices Xero Creates or deletes one or more repeating invoice templates #
GET /RepeatingInvoices/{RepeatingInvoiceID} Xero Retrieves a specific repeating invoice by using a unique repeating invoice Id #
POST /RepeatingInvoices/{RepeatingInvoiceID} Xero Deletes a specific repeating invoice template #
GET /RepeatingInvoices/{RepeatingInvoiceID}/Attachments Xero Retrieves attachments from a specific repeating invoice #
GET /RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{AttachmentID} Xero Retrieves a specific attachment from a specific repeating invoice #
GET /RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName} Xero Retrieves a specific attachment from a specific repeating invoices by file name #
POST /RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName} Xero Updates a specific attachment from a specific repeating invoices by file name #
PUT /RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName} Xero Creates an attachment from a specific repeating invoices by file name #
GET /RepeatingInvoices/{RepeatingInvoiceID}/History Xero Retrieves history record for a specific repeating invoice #
PUT /RepeatingInvoices/{RepeatingInvoiceID}/History Xero Creates a history record for a specific repeating invoice #
GET /Reports/TenNinetyNine Xero Retrieve reports for 1099 #
GET /Reports/AgedPayablesByContact Xero Retrieves report for aged payables by contact #
GET /Reports/AgedReceivablesByContact Xero Retrieves report for aged receivables by contact #
GET /Reports/BalanceSheet Xero Retrieves report for balancesheet #
GET /Reports/BankSummary Xero Retrieves report for bank summary #
GET /Reports/{ReportID} Xero Retrieves a specific report using a unique ReportID #
GET /Reports/BudgetSummary Xero Retrieves report for budget summary #
GET /Reports/ExecutiveSummary Xero Retrieves report for executive summary #
GET /Reports Xero Retrieves a list of the organistaions unique reports that require a uuid to fetch #
GET /Reports/ProfitAndLoss Xero Retrieves report for profit and loss #
GET /Reports/TrialBalance Xero Retrieves report for trial balance #
POST /Setup Xero Sets the chart of accounts, the conversion date and conversion balances #
GET /TaxRates Xero Retrieves tax rates #
PUT /TaxRates Xero Creates one or more tax rates #
POST /TaxRates Xero Updates tax rates #
GET /TaxRates/{TaxType} Xero Retrieves a specific tax rate according to given TaxType code #
GET /TrackingCategories Xero Retrieves tracking categories and options #
PUT /TrackingCategories Xero Create tracking categories #
GET /TrackingCategories/{TrackingCategoryID} Xero Retrieves specific tracking categories and options using a unique tracking category Id #
POST /TrackingCategories/{TrackingCategoryID} Xero Updates a specific tracking category #
DELETE /TrackingCategories/{TrackingCategoryID} Xero Deletes a specific tracking category #
PUT /TrackingCategories/{TrackingCategoryID}/Options Xero Creates options for a specific tracking category #
POST /TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID} Xero Updates a specific option for a specific tracking category #
DELETE /TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID} Xero Deletes a specific option for a specific tracking category #
GET /Users Xero Retrieves users #
GET /Users/{UserID} Xero Retrieves a specific user #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/xero-accounting-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

xero-accounting-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Xero Accounting API
  version: 11.1.0
  termsOfService: https://developer.xero.com/xero-developer-platform-terms-conditions/
  contact:
    name: Xero Platform Team
    email: api@xero.com
    url: https://developer.xero.com
servers:
- description: The Xero Accounting API exposes accounting and related functions of the main Xero application and can be used for a variety of purposes such as creating transactions like invoices and credit notes, right through to extracting accounting data via our reports endpoint.
  url: https://api.xero.com/api.xro/2.0
tags:
- name: Accounting
paths:
  /Accounts:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
      type: string
    get:
      security:
      - OAuth2:
        - accounting.settings
        - accounting.settings.read
      tags:
      - Accounting
      operationId: getAccounts
      summary: Xero Retrieves the full chart of accounts
      parameters:
      - $ref: '#/components/parameters/ifModifiedSince'
      - in: query
        name: where
        description: Filter by an any element
        example: Status=="ACTIVE" AND Type=="BANK"
        x-example-csharp: Status==\"ACTIVE\"
        x-example-java: Status=="' + Account.StatusEnum.ACTIVE+ '"
        x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Account::STATUS_ACTIVE . '"
        x-example-ruby: Status==#{XeroRuby::Accounting::Account::ACTIVE}
        schema:
          type: string
      - in: query
        name: order
        description: Order by an any element
        example: Name ASC
        schema:
          type: string
      responses:
        '200':
          description: Success - return response of type Accounts array with 0 to n Account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Accounts'
              example:
                Accounts:
                - AccountID: ebd06280-af70-4bed-97c6-7451a454ad85
                  Code: 091
                  Name: Business Savings Account
                  Type: BANK
                  TaxType: NONE
                  EnablePaymentsToAccount: false
                  BankAccountNumber: 0209087654321050
                  BankAccountType: BANK
                  CurrencyCode: NZD
                - AccountID: 7d05a53d-613d-4eb2-a2fc-dcb6adb80b80
                  Code: '200'
                  Name: Sales
                  Type: REVENUE
                  TaxType: OUTPUT2
                  Description: Income from any normal business activity
                  EnablePaymentsToAccount: false
    put:
      security:
      - OAuth2:
        - accounting.settings
      tags:
      - Accounting
      operationId: createAccount
      summary: Xero Creates a new chart of accounts
      parameters:
      - $ref: '#/components/parameters/idempotencyKey'
      x-hasAccountingValidationError: true
      x-example:
      - object: null
        is_object: true
        key: account
        keyPascal: Account
      - code: null
        key: code
        keyPascal: Code
        default: 123456
        object: account
      - name: null
        key: name
        keyPascal: Name
        default: FooBar
        object: account
      - type: null
        key: type
        keyPascal: Type
        default: EXPENSE
        nonString: true
        php: XeroAPI\XeroPHP\Models\Accounting\AccountType::EXPENSE
        node: AccountType.EXPENSE
        ruby: XeroRuby::Accounting::AccountType::EXPENSE
        python: AccountType.EXPENSE
        java: com.xero.models.accounting.AccountType.EXPENSE
        csharp: AccountType.EXPENSE
        object: account
      - description: null
        is_last: true
        key: description
        keyPascal: Description
        default: Hello World
        object: account
      responses:
        '200':
          description: Success - created new Account and return response of type Accounts array with new Account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Accounts'
              example:
                Id: 11814c9d-3b5e-492e-93b0-fad16bf3244f
                Status: OK
                ProviderName: Xero API Partner
                DateTimeUTC: /Date(1550793549392)/
                Accounts:
                - AccountID: 66b262e2-561e-423e-8937-47d558f13442
                  Code: '123456'
                  Name: Foobar
                  Status: ACTIVE
                  Type: EXPENSE
                  TaxType: INPUT
                  Description: Hello World
                  Class: EXPENSE
                  EnablePaymentsToAccount: false
                  ShowInExpenseClaims: false
                  ReportingCode: EXP
                  ReportingCodeName: Expense
                  UpdatedDateUTC: /Date(1550793549320+0000)/
        '400':
          description: Validation Error - some data was incorrect returns response of type Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                ErrorNumber: 10
                Type: ValidationException
                Message: A validation exception occurred
                Elements:
                - AccountID: 00000000-0000-0000-0000-000000000000
                  Code: '123456'
                  Name: Foobar
                  Type: EXPENSE
                  Description: Hello World
                  ValidationErrors:
                  - Message: Please enter a unique Name.
      requestBody:
        required: true
        description: Account object in body of request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Account'
            example:
              Code: '123456'
              Name: Foobar
              Type: EXPENSE
              Description: Hello World
  /Accounts/{AccountID}:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    get:
      security:
      - OAuth2:
        - accounting.settings
        - accounting.settings.read
      tags:
      - Accounting
      operationId: getAccount
      summary: Xero Retrieves a single chart of accounts by using a unique account Id
      parameters:
      - $ref: '#/components/parameters/AccountID'
      responses:
        '200':
          description: Success - return response of type Accounts array with one Account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Accounts'
              example:
                Id: 323455cc-9511-4451-a873-248d2983f38e
                Status: OK
                ProviderName: Xero API Partner
                DateTimeUTC: /Date(1550797359081)/
                Accounts:
                - AccountID: 99ce6032-0678-4aa0-8148-240c75fee33a
                  Code: '123456'
                  Name: FooBar
                  Status: ACTIVE
                  Type: EXPENSE
                  TaxType: INPUT
                  Description: Hello World
                  Class: EXPENSE
                  EnablePaymentsToAccount: false
                  ShowInExpenseClaims: false
                  ReportingCode: EXP
                  ReportingCodeName: Expense
                  UpdatedDateUTC: /Date(1550797359120+0000)/
    post:
      security:
      - OAuth2:
        - accounting.settings
      tags:
      - Accounting
      operationId: updateAccount
      summary: Xero Updates a chart of accounts
      x-hasAccountingValidationError: true
      x-example:
      - account: null
        is_object: true
        key: account
        keyPascal: Account
      - code: null
        key: code
        keyPascal: Code
        default: 123456
        object: account
      - name: null
        key: name
        keyPascal: Name
        default: BarFoo
        object: account
      - type: null
        key: type
        keyPascal: Type
        default: EXPENSE
        nonString: true
        php: XeroAPI\XeroPHP\Models\Accounting\AccountType::EXPENSE
        node: AccountType.EXPENSE
        ruby: XeroRuby::Accounting::AccountType::EXPENSE
        python: AccountType.EXPENSE
        java: com.xero.models.accounting.AccountType.EXPENSE
        csharp: AccountType.EXPENSE
        object: account
      - description: null
        key: description
        keyPascal: Description
        default: Hello World
        object: account
      - taxType: null
        is_last: true
        key: taxType
        keyPascal: TaxType
        keySnake: tax_type
        default: NONE
        object: account
      - accounts: null
        is_object: true
        key: accounts
        keyPascal: Accounts
      - accounts: null
        is_last: true
        is_array_add: true
        key: accounts
        keyPascal: Accounts
        java: Accounts
        csharp: Account
        object: account
      parameters:
      - $ref: '#/components/parameters/AccountID'
      - $ref: '#/components/parameters/idempotencyKey'
      responses:
        '200':
          description: Success - update existing Account and return response of type Accounts array with updated Account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Accounts'
              example:
                Id: 9012e75c-ec08-40a9-ae15-153fc1f35c4d
                Status: OK
                ProviderName: Xero API Partner
                DateTimeUTC: /Date(1550795389340)/
                Accounts:
                - AccountID: 99ce6032-0678-4aa0-8148-240c75fee33a
                  Code: '654321'
                  Name: BarFoo
                  Status: ACTIVE
                  Type: EXPENSE
                  TaxType: INPUT
                  Description: Good Bye World
                  Class: EXPENSE
                  EnablePaymentsToAccount: false
                  ShowInExpenseClaims: false
                  ReportingCode: EXP
                  ReportingCodeName: Expense
                  UpdatedDateUTC: /Date(1550795389333+0000)/
        '400':
          description: Validation Error - some data was incorrect returns response of type Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                ErrorNumber: 10
                Type: ValidationException
                Message: A validation exception occurred
                Elements:
                - AccountID: 00000000-0000-0000-0000-000000000000
                  Code: '123456'
                  Name: Foobar
                  Type: EXPENSE
                  Description: Hello World
                  ValidationErrors:
                  - Message: Please enter a unique Name.
      requestBody:
        required: true
        description: Request of type Accounts array with one Account
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Accounts'
            example:
              Accounts:
              - Code: '123456'
                Name: BarFoo
                AccountID: 99ce6032-0678-4aa0-8148-240c75fee33a
                Type: EXPENSE
                Description: GoodBye World
                TaxType: INPUT
                EnablePaymentsToAccount: false
                ShowInExpenseClaims: false
                Class: EXPENSE
                ReportingCode: EXP
                ReportingCodeName: Expense
                UpdatedDateUTC: '2019-02-21T16:29:47.96-08:00'
    delete:
      security:
      - OAuth2:
        - accounting.settings
      tags:
      - Accounting
      operationId: deleteAccount
      x-hasAccountingValidationError: true
      summary: Xero Deletes a chart of accounts
      parameters:
      - $ref: '#/components/parameters/AccountID'
      responses:
        '200':
          description: Success - delete existing Account and return response of type Accounts array with deleted Account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Accounts'
              example:
                Id: 76bb0543-8efe-4acc-b7f6-67dfcdec37b4
                Status: OK
                ProviderName: Xero API Partner
                DateTimeUTC: /Date(1550798217216)/
                Accounts:
                - AccountID: 7f3c0bec-f3e7-4073-b4d6-cc56dd027ef1
                  Code: '123456'
                  Name: FooBar
                  Status: DELETED
                  Type: EXPENSE
                  TaxType: INPUT
                  Description: Hello World
                  Class: EXPENSE
                  EnablePaymentsToAccount: false
                  ShowInExpenseClaims: false
                  ReportingCode: EXP
                  ReportingCodeName: Expense
                  UpdatedDateUTC: /Date(1550798217210+0000)/
        '400':
          description: Validation Error - some data was incorrect returns response of type Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                ErrorNumber: 10
                Type: ValidationException
                Message: A validation exception occurred
                Elements:
                - AccountID: 00000000-0000-0000-0000-000000000000
                  Code: '123456'
                  Name: Foobar
                  Type: EXPENSE
                  Description: Hello World
                  ValidationErrors:
                  - Message: Please enter a unique Name.
  /Accounts/{AccountID}/Attachments:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    get:
      security:
      - OAuth2:
        - accounting.attachments
        - accounting.attachments.read
      tags:
      - Accounting
      operationId: getAccountAttachments
      summary: Xero Retrieves attachments for a specific accounts by using a unique account Id
      parameters:
      - $ref: '#/components/parameters/AccountID'
      responses:
        '200':
          description: Success - return response of type Attachments array of Attachment
          x-isAttachment: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachments'
              example:
                Id: 439c1573-3cd8-4697-a9f6-81fa651ee8f3
                Status: OK
                ProviderName: Xero API Partner
                DateTimeUTC: /Date(1550852630329)/
                Attachments:
                - AttachmentID: 52a643be-cd5c-489f-9778-53a9fd337756
                  FileName: sample5.jpg
                  Url: https://api.xero.com/api.xro/2.0/Accounts/da962997-a8bd-4dff-9616-01cdc199283f/Attachments/sample5.jpg
                  MimeType: image/jpg
                  ContentLength: 2878711
  /Accounts/{AccountID}/Attachments/{AttachmentID}:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    get:
      security:
      - OAuth2:
        - accounting.attachments
        - accounting.attachments.read
      tags:
      - Accounting
      operationId: getAccountAttachmentById
      summary: Xero Retrieves a specific attachment from a specific account using a unique attachment Id
      parameters:
      - $ref: '#/components/parameters/AccountID'
      - $ref: '#/components/parameters/AttachmentID'
      - $ref: '#/components/parameters/ContentType'
      responses:
        '200':
          description: Success - return response of attachment for Account as binary data
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /Accounts/{AccountID}/Attachments/{FileName}:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    get:
      security:
      - OAuth2:
        - accounting.attachments
        - accounting.attachments.read
      tags:
      - Accounting
      operationId: getAccountAttachmentByFileName
      summary: Xero Retrieves an attachment for a specific account by filename
      parameters:
      - $ref: '#/components/parameters/AccountID'
      - $ref: '#/components/parameters/FileName'
      - $ref: '#/components/parameters/ContentType'
      responses:
        '200':
          description: Success - return response of attachment for Account as binary data
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
    post:
      security:
      - OAuth2:
        - accounting.attachments
      tags:
      - Accounting
      operationId: updateAccountAttachmentByFileName
      x-hasAccountingValidationError: true
      summary: Xero Updates attachment on a specific account by filename
      parameters:
      - $ref: '#/components/parameters/AccountID'
      - $ref: '#/components/parameters/FileName'
      - $ref: '#/components/parameters/idempotencyKey'
      responses:
        '200':
          description: Success - return response of type Attachments array of Attachment
          x-isAttachment: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachments'
              example:
                Id: c8d6413a-1da2-4faa-9848-21f60443e906
                Status: OK
                ProviderName: Xero API Partner
                DateTimeUTC: /Date(1550859714477)/
                Attachments:
                - AttachmentID: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  FileName: sample5.jpg
                  Url: https://api.xero.com/api.xro/2.0/Accounts/da962997-a8bd-4dff-9616-01cdc199283f/Attachments/sample5.jpg
                  MimeType: image/jpg
                  ContentLength: 2878711
        '400':
          description: Validation Error - some data was incorrect returns response of type Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        required: true
        description: Byte array of file in body of request
        content:
          application/octet-stream:
            schema:
              type: string
              format: byte
    put:
      security:
      - OAuth2:
        - accounting.attachments
      tags:
      - Accounting
      operationId: createAccountAttachmentByFileName
      x-hasAccountingValidationError: true
      summary: Xero Creates an attachment on a specific account
      parameters:
      - $ref: '#/components/parameters/AccountID'
      - $ref: '#/components/parameters/FileName'
      - $ref: '#/components/parameters/idempotencyKey'
      responses:
        '200':
          description: Success - return response of type Attachments array of Attachment
          x-isAttachment: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachments'
              example:
                Id: 724cdff5-bcd1-4c5c-977e-e864c24258e0
                Status: OK
                ProviderName: Xero API Partner
                DateTimeUTC: /Date(1550856817769)/
                Attachments:
                - AttachmentID: ab95b276-9dce-4925-9077-439818ba270f
                  FileName: sample5.jpg
                  Url: https://api.xero.com/api.xro/2.0/Accounts/da962997-a8bd-4dff-9616-01cdc199283f/Attachments/sample5.jpg
                  MimeType: image/jpg
                  ContentLength: 2878711
        '400':
          $ref: '#/components/responses/400Error'
      requestBody:
        required: true
        description: Byte array of file in body of request
        content:
          application/octet-stream:
            schema:
              type: string
              format: byte
  /BatchPayments:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    description: Batch payments allow you to bundle multiple bills or invoices into one payment transaction. This means a single payment in Xero can be reconciled with a single transaction on the bank statement making for a much simpler bank reconciliation experience.
    get:
      security:
      - OAuth2:
        - accounting.transactions
        - accounting.transactions.read
      tags:
      - Accounting
      operationId: getBatchPayments
      summary: Xero Retrieves either one or many batch payments for invoices
      parameters:
      - $ref: '#/components/parameters/ifModifiedSince'
      - in: query
        name: where
        description: Filter by an any element
        example: Status=="AUTHORISED"
        x-example-csharp: Status==\"AUTHORISED\"
        x-example-java: Status=="' + BatchPayment.StatusEnum.AUTHORISED + '"
        x-example-php: Status=="' . XeroAPI\XeroPHP\Models\Accounting\BatchPayment::STATUS_AUTHORISED . '"
        x-example-ruby: Status==#{XeroRuby::Accounting::BatchPayment::AUTHORISED}
        schema:
          type: string
      - in: query
        name: order
        description: Order by an any element
        example: Date ASC
        schema:
          type: string
      responses:
        '200':
          description: Success - return response of type BatchPayments array of BatchPayment objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchPayments'
              example:
                Id: 6ab84949-4fe5-4788-a135-4d8f690d24d7
                Status: OK
                ProviderName: Xero API Partner
                DateTimeUTC: /Date(1550866184006)/
                BatchPayments:
                - Account:
                    AccountID: 6f7594f2-f059-4d56-9e67-47ac9733bfe9
                    CurrencyCode: NZD
                  Reference: Hello World
                  BatchPaymentID: d0e9bbbf-5b8a-48b6-906a-035591fcb061
                  DateString: 2017-11-28 00:00:00
                  Date: /Date(1511827200000+0000)/
                  Payments:
                  - Invoice:
                      InvoiceID: 0975dec2-0cf6-498d-9c9f-c6775b45c61d
                      CurrencyCode: NZD
                      Payments: []
                      CreditNotes: []
                      Prepayments: []
                      Overpayments: []
                      HasErrors: false
                      IsDiscounted: false
                      LineItems: []
                    PaymentID: 97ec2ef8-f4d6-4de5-9f2a-385d41cdc2fc
                    Amount: 200.0
                    BankAmount: 200.0
                  - Invoice:
                      InvoiceID: 600982d9-6605-4e11-afa1-d8dec2be7b52
                      CurrencyCode: NZD
                      Payments: []
                      CreditNotes: []
                      Prepayments: []
                      Overpayments: []
                      HasErrors: false
                      IsDiscounted: false
                      LineItems: []
                    PaymentID: e232795f-b919-4865-a754-12f6ae8402c0
                    Amount: 200.0
                    BankAmount: 200.0
                  - Invoice:
                      InvoiceID: 99a2bd54-4ab1-413c-90bb-57f6464fe5d6
                      CurrencyCode: NZD
                      Payments: []
                      CreditNotes: []
                      Prepayments: []
                      Overpayments: []
                      HasErrors: false
                      IsDiscounted: false
                      LineItems: []
                    PaymentID: c2d571a5-38ff-4d37-9d43-dfadb4ad53ff
                    Amount: 200.0
                    BankAmount: 200.0
                  - Invoice:
                      InvoiceID: c81942c8-bfc5-4c88-a21a-b892a4a8c1c5
                      CurrencyCode: NZD
                      Payments: []
                      CreditNotes: []
                      Prepayments: []
                      Overpayments: []
                      HasErrors: false
                      IsDiscounted: false
                      LineItems: []
                    PaymentID: 0f3c18dc-49bd-47a4-a875-03c84a29978f
                    Amount: 200.0
                    BankAmount: 200.0
                  - Invoice:
                      InvoiceID: 6c9a1d89-8319-42f6-87d6-7690e748af85
                      CurrencyCode: NZD
                      Payments: []
                      CreditNotes: []
                      Prepayments: []
                      Overpayments: []
                      HasErrors: false
                      IsDiscounted: false
                      LineItems: []
                    PaymentID: 43541eed-f3ac-44ac-88cb-9fe1cb7ed8b8
                    Amount: 200.0
                    BankAmount: 200.0
                  Type: RECBATCH
                  Status: AUTHORISED
                  TotalAmount: 1000.0
                  UpdatedDateUTC: /Date(1511893792820+0000)/
                  IsReconciled: false
    put:
      security:
      - OAuth2:
        - accounting.transactions
      tags:
      - Accounting
      operationId: createBatchPayment
      summary: Xero Creates one or many batch payments for invoices
      x-hasAccountingValidationError: true
      x-example:
      - currDate: null
        is_date: true
        key: currDate
        keyPascal: CurrDate
        keySnake: curr_date
        java_datatype: LocalDate
        default: LocalDate.now()
        java: LocalDate.now()
        csharp: DateTime.Now
        node: '''2020-12-10'''
        php: new DateTime('2020-12-10')
        python: dateutil.parser.parse('2020-12-03T00:00:00Z')
        ruby: '''YYYY-MM-DD'''
      - paymentAccount: null
        is_object: true
        key: paymentAccount
        keyPascal: Account
        keySnake: payment_account
      - accountID: null
        is_last: true
        is_uuid: true
        key: accountID
        keyPascal: AccountID
        keySnake: account_id
        default: 00000000-0000-0000-0000-000000000000
        object: paymentAccount
      - bankAccount: null
        is_object: true
        key: bankAccount
        keyPascal: Account
        keySnake: bank_account
      - accountID: null
        is_last: true
        is_uuid: true
        key: accountID
        keyPascal: AccountID
        keySnake: account_id
        default: 00000000-0000-0000-0000-000000000000
        object: bankAccount
      - invoice: null
        is_object: true
        key: invoice
        keyPascal: Invoice
      - invoiceID: null
        is_last: true
        is_uuid: true
        key: invoiceID
        keyPascal: InvoiceID
        keySnake: invoice_id
        default: 00000000-0000-0000-0000-000000000000
        object: invoice
      - payment: null
        is_object: true
        key: payment
        keyPascal: Payment
      - set_bankaccount: null
        is_variable: true
        nonString: true
        key: account
        keyPascal: Account
        default: bankAccount
        python: bank_account
        ruby: bank_account
        object: payment
      - date: null
        is_variable: true
        nonString: true
        key: date
        keyPascal: Date
        default: currDate
        python: curr_date
        ruby: curr_date
        object: payment
      - amount: null
        nonString: true
        key: amount
        keyPascal: Amount
        default: 1.0
        is_money: true
        object: payment
      - set_invoice: null
        is_last: true
        is_variable: true
        nonString: true
        key: invoice
        keyPascal: Invoice
        default: invoice
        object: payment
      - payments: null
        is_list: true
        key: payments
        keyPascal: Payment
      - add_payments: null
        is_last: true
        is_list_add: true
        key: payments
        keyPascal: Payments
        object: payment
      - batchPayment: null
        is_object: true
        key: batchPayment
        keyPascal: BatchPayment
        keySnake: batch_payment
      - set_paymentaccount: null
        is_variable: true
        nonString: true
        key: account
        keyPascal: Account
        default: paymentAccount
        python: payment_account
        ruby: payment_account
        object: batchPayment
      - reference: null
        key: reference
        keyPascal: Reference
        default: hello foobar
        object: batchPayment
      - date: null
        is_variable: true
        nonString: true
        key: date
        keyPascal: Date
        default: currDate
        python: curr_date
        ruby: curr_date
        object: batchPayment
      - set_payments: null
        is_last: true
        is_variable: true
        nonString: true
        key: payments
        keyPascal: Payments
        default: payments
        object: batchPayment
      - batchPayments: null
        is_object: true
        key: batchPayments
        keyPascal: BatchPayments
      - add_batchPayments: null
        is_last: true
        is_array_add: true
        key: batchPayments
        keyPascal: BatchPayments
        keySnake: batch_payments
        java: BatchPayments
        python: batch_payment
        ruby: batch_payment
        csharp: BatchPayment
        object: batchPayment
      parameters:
      - $ref: '#/components/parameters/summarizeErrors'
      - $ref: '#/components/parameters/idempotencyKey'
      responses:
        '200':
          description: Success - return response of type BatchPayments array of BatchPayment objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchPayments'
              example:
                Id: 424745ed-6356-46ad-87d4-3585f9062fb4
                Status: OK
                ProviderName: Xero API Partner
                DateTimeUTC: /Date(1550865988111)/
                BatchPayments:
                - Account:
                    AccountID: 5ec2f302-cd60-4f8b-a915-9229dd45e6fa
                    CurrencyCode: NZD
                  Reference: Foobar123
                  BatchPaymentID: d318c343-208e-49fe-b04a-45642349bcf1
                  DateString: 2019-02-22 00:00:00
                  Date: /Date(1550793600000+0000)/
                  Payments:
                  - Invoice:
                      InvoiceID: 3323652c-155e-433b-8a73-4dde7cfbf410
                      CurrencyCode: NZD
                      Payments: []
                      CreditNotes: []
                      Prepayments: []
                      Overpayments: []
                      HasErrors: false
                      IsDiscounted: false
                      LineItems: []
                    PaymentID: c05098fa-ae3c-4f00-80ec-0a9df07dedff
                    Amount: 1.0
                    BankAmount: 1.0
                  - Invoice:
                      InvoiceID: e4abafb4-1f5b-4d9f-80b3-9a7b815bc302
                      CurrencyCode: NZD
                      Payments: []
                      CreditNotes: []
                      Prepayments: []
                      Overpayments: []
                      HasErrors: false
                      IsDiscounted: false
                      LineItems: []
                    PaymentID: 96409489-2f7d-4804-9a6d-6b939b0e038a
                    Amount: 1.0
                    BankAmount: 1.0
                  - Invoice:
                      InvoiceID: e6039672-b161-40cd-b07b-a0178e7186ad
                      CurrencyCode: NZD
                      Payments: []
                      CreditNotes: []
                      Prepayments: []
                      Overpayments: []
                      HasErrors: false
                      IsDiscounted: false
                      LineItems: []
                    PaymentID: d2796067-bf71-4f06-b386-81f1454fa866
                    Amount: 1.0
                    BankAmount: 1.0
                  Type: RECBATCH
                  Status: AUTHORISED
                  TotalAmount: 3.0
                  UpdatedDateUTC: /Date(1550865987783+0000)/
                  IsReconciled: false
        '400':
          $ref: '#/components/responses/400Error'
      requestBody:
        required: true
        description: BatchPayments with an array of Payments in body of request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchPayments'
            example:
              BatchPayments:
              - Account:
                  AccountID: 00000000-0000-0000-0000-000000000000
                Reference: ref
                Date: '2018-08-01'
                Payment

# --- truncated at 32 KB (859 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xero/refs/heads/main/openapi/xero-accounting-api-openapi.yml