Xero PayrollAu API

Operations available to regular developers

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-payrollau-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 email required.

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

OpenAPI Specification

xero-payrollau-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Xero Accounting PayrollAu 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
  description: Operations available to regular developers
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: PayrollAu
  description: Operations available to regular developers
paths:
  /Employees:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    get:
      security:
      - OAuth2:
        - payroll.employees
        - payroll.employees.read
      tags:
      - PayrollAu
      operationId: getEmployees
      summary: Searches payroll employees
      parameters:
      - in: header
        name: If-Modified-Since
        x-snake: if_modified_since
        description: Only records created or modified since this timestamp will be returned
        example: '2020-02-06T12:17:43.202-08:00'
        schema:
          type: string
          format: date-time
      - in: query
        name: where
        description: Filter by an any element
        schema:
          type: string
        example: Status=="ACTIVE"
      - in: query
        name: order
        description: Order by an any element
        schema:
          type: string
        example: EmailAddress%20DESC
      - in: query
        name: page
        description: e.g. page=1 – Up to 100 employees will be returned in a single API call
        schema:
          type: integer
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Employees'
              example:
                Id: 00000000-0000-0000-0000-000000000000
                Status: OK
                ProviderName: provider-name
                DateTimeUTC: /Date(1573621523465)/
                Employees:
                - EmployeeID: b34e89ff-770d-4099-b7e5-f968767118bc
                  FirstName: Jack
                  MiddleNames: Johnson
                  LastName: Sparrow
                  Status: ACTIVE
                  Email: jack.sparrow@xero.com
                  DateOfBirth: /Date(572313600000+0000)/
                  Gender: M
                  Phone: '4153332323'
                  Mobile: 415-1234567
                  StartDate: /Date(1547164800000+0000)/
                  OrdinaryEarningsRateID: ab874dfb-ab09-4c91-954e-43acf6fc23b4
                  PayrollCalendarID: 22a05fc5-386d-4950-9842-3e7a6c812135
                  UpdatedDateUTC: /Date(1572915814000+0000)/
                  IsSTP2Qualified: false
                - EmployeeID: 7aa04979-ded5-44d9-b09a-793749425844
                  FirstName: John
                  LastName: Smith
                  Status: ACTIVE
                  Email: john.smith@xero.com
                  DateOfBirth: /Date(315619200000+0000)/
                  Gender: M
                  StartDate: /Date(1572566400000+0000)/
                  OrdinaryEarningsRateID: ab874dfb-ab09-4c91-954e-43acf6fc23b4
                  PayrollCalendarID: 78bb86b9-e1ea-47ac-b75d-f087a81931de
                  UpdatedDateUTC: /Date(1572916028000+0000)/
                  IsSTP2Qualified: false
        '400':
          description: validation error for a bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
    post:
      security:
      - OAuth2:
        - payroll.employees
      tags:
      - PayrollAu
      summary: Creates a payroll employee
      parameters:
      - $ref: '#/components/parameters/idempotencyKey'
      operationId: createEmployee
      x-hasPayrollAuProblem: true
      x-example:
      - dateOfBirthValue: null
        key: dateOfBirth
        keyPascal: DateOfBirth
        keySnake: date_of_birth
        is_date: true
        object: employee
        java_datatype: LocalDate
        csharp_datatype: DateTime
        default: LocalDate.of(2000, Month.OCTOBER, 28)
        java: LocalDate.of(2000, Month.OCTOBER, 28)
        csharp: new DateTime(2000, 10, 10)
        php: new DateTime('2000-10-28')
        node: '''2000-10-28'''
        python: dateutil.parser.parse('2000-10-28T00:00:00Z')
        ruby: '''YYYY-MM-DD'''
      - homeAddress: null
        key: homeAddress
        keyPascal: HomeAddress
        keySnake: home_address
        is_object: true
      - addressLine1: null
        key: addressLine1
        keyPascal: AddressLine1
        keySnake: address_line_1
        default: 123 Test st
        object: homeAddress
      - region: null
        key: region
        keyPascal: Region
        keySnake: region
        object: homeAddress
        default: VIC
      - postalCode: null
        nonString: true
        key: postalCode
        keyPascal: PostalCode
        keySnake: postal_code
        object: homeAddress
        default: 3000
      - city: null
        key: city
        keyPascal: City
        keySnake: city
        default: Melbourne
        object: homeAddress
        is_last: true
      - employee: null
        key: employee
        keyPascal: Employee
        is_object: true
      - firstName: null
        key: firstName
        keyPascal: FirstName
        keySnake: first_name
        default: Adam
        object: employee
      - lastName: null
        key: lastName
        keyPascal: LastName
        keySnake: last_name
        default: Adamson
        object: employee
      - dateOfBirth: null
        is_variable: true
        nonString: true
        key: dateOfBirth
        keyPascal: DateOfBirth
        keySnake: date_of_birth
        default: dateOfBirth
        python: date_of_birth
        ruby: date_of_birth
        object: employee
      - setHomeAddress: null
        is_last: true
        is_variable: true
        nonString: true
        key: homeAddress
        keyPascal: HomeAddress
        default: homeAddress
        python: home_address
        ruby: home_address
        object: employee
      responses:
        '200':
          description: A successful request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Employees'
              example:
                Id: 00000000-0000-0000-0000-000000000000
                Status: OK
                ProviderName: provider-name
                DateTimeUTC: /Date(1573621524489)/
                Employees:
                - EmployeeID: cdfb8371-0b21-4b8a-8903-1024df6c391e
                  FirstName: Albus
                  MiddleNames: Percival
                  LastName: Dumbledore
                  Status: ACTIVE
                  Email: albus39608@hogwarts.edu
                  DateOfBirth: /Date(321523200000+0000)/
                  JobTitle: Regional Manager
                  Gender: M
                  HomeAddress:
                    AddressLine1: 101 Green St
                    City: Island Bay
                    Region: NSW
                    PostalCode: '6023'
                    Country: AUSTRALIA
                  Phone: 444-2323
                  Mobile: 555-1212
                  StartDate: /Date(321523200000+0000)/
                  Classification: corporate
                  OrdinaryEarningsRateID: ab874dfb-ab09-4c91-954e-43acf6fc23b4
                  UpdatedDateUTC: /Date(1573621524458+0000)/
                  IsAuthorisedToApproveLeave: true
                  IsAuthorisedToApproveTimesheets: true
        '400':
          description: invalid input, object invalid - TODO
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Employee'
            example: '[ { "FirstName": "Albus", "LastName": "Dumbledore", "DateOfBirth": "/Date(321523200000+0000)/", "HomeAddress": { "AddressLine1": "101 Green St", "City": "Island Bay", "Region": "NSW", "PostalCode": "6023", "Country": "AUSTRALIA" }, "StartDate": "/Date(321523200000+0000)/", "MiddleNames": "Percival", "Email": "albus39608@hogwarts.edu", "Gender": "M", "Phone": "444-2323", "Mobile": "555-1212", "IsAuthorisedToApproveLeave": true, "IsAuthorisedToApproveTimesheets": true, "JobTitle": "Regional Manager", "Classification": "corporate", "OrdinaryEarningsRateID": "ab874dfb-ab09-4c91-954e-43acf6fc23b4", "Status": "ACTIVE" } ]'
  /Employees/{EmployeeID}:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    get:
      security:
      - OAuth2:
        - payroll.employees
        - payroll.employees.read
      tags:
      - PayrollAu
      summary: Retrieves an employee's detail by unique employee id
      operationId: getEmployee
      parameters:
      - name: EmployeeID
        x-snake: employee_id
        in: path
        required: true
        description: Employee id for single object
        schema:
          type: string
          format: uuid
          example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Employees'
              example:
                Id: 00000000-0000-0000-0000-000000000000
                Status: OK
                ProviderName: provider-name
                DateTimeUTC: /Date(1573623316150)/
                Employees:
                - EmployeeID: cdfb8371-0b21-4b8a-8903-1024df6c391e
                  Title: Mr.
                  FirstName: Albus
                  MiddleNames: Frank
                  LastName: Dumbledore
                  Status: ACTIVE
                  Email: albus39608@hogwarts.edu
                  DateOfBirth: /Date(321494400000+0000)/
                  JobTitle: Regional Manager
                  Gender: M
                  HomeAddress:
                    AddressLine1: 101 Green St
                    City: Island Bay
                    Region: NSW
                    PostalCode: '6023'
                    Country: AUSTRALIA
                  Phone: 444-2323
                  Mobile: 555-1212
                  StartDate: /Date(321494400000+0000)/
                  Classification: corporate
                  OrdinaryEarningsRateID: ab874dfb-ab09-4c91-954e-43acf6fc23b4
                  PayrollCalendarID: 78bb86b9-e1ea-47ac-b75d-f087a81931de
                  UpdatedDateUTC: /Date(1573623306000+0000)/
                  EmployeeGroupName: foo
                  IsAuthorisedToApproveLeave: true
                  IsAuthorisedToApproveTimesheets: true
                  TaxDeclaration:
                    AustralianResidentForTaxPurposes: true
                    TaxFreeThresholdClaimed: true
                    HasHELPDebt: false
                    HasSFSSDebt: false
                    EligibleToReceiveLeaveLoading: false
                    UpdatedDateUTC: /Date(1573623306000+0000)/
                    HasStudentStartupLoan: false
                    ResidencyStatus: AUSTRALIANRESIDENT
                    IncludeLeaveLoadingInQualifyingEarnings: false
                  BankAccounts: []
                  OpeningBalances:
                    OpeningBalanceDate: /Date(1573603200000+0000)/
                    EarningsLines: []
                    DeductionLines: []
                    SuperLines: []
                    ReimbursementLines: []
                    LeaveLines:
                    - LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                      NumberOfUnits: 10
                    PaidLeaveEarningsLines: []
                  PayTemplate:
                    EarningsLines:
                    - EarningsRateID: ab874dfb-ab09-4c91-954e-43acf6fc23b4
                      CalculationType: USEEARNINGSRATE
                      NormalNumberOfUnits: 3
                    DeductionLines:
                    - DeductionTypeID: ed05ea82-e40a-4eb6-9c2e-4b3c03e7e938
                      CalculationType: FIXEDAMOUNT
                      Amount: 4
                    SuperLines:
                    - ContributionType: SGC
                      CalculationType: STATUTORY
                      MinimumMonthlyEarnings: 450
                      ExpenseAccountCode: '478'
                      LiabilityAccountCode: '826'
                    ReimbursementLines:
                    - ReimbursementTypeID: aa8cfa40-d872-4be0-8a94-bb7f00962f74
                      Description: boo
                      Amount: 55
                    LeaveLines:
                    - LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                      CalculationType: FIXEDAMOUNTEACHPERIOD
                      AnnualNumberOfUnits: 4
                      EntitlementFinalPayPayoutType: NOTPAIDOUT
                      IsQualifyingEarnings: false
                  SuperMemberships: []
                  LeaveBalances:
                  - LeaveName: Carer Leave (unpaid)
                    LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                    NumberOfUnits: 10
                    TypeOfUnits: Hours
    post:
      security:
      - OAuth2:
        - payroll.employees
      tags:
      - PayrollAu
      summary: Updates an employee's detail
      operationId: updateEmployee
      description: Update properties on a single employee
      x-example:
      - dateOfBirthValue: null
        key: dateOfBirth
        keyPascal: DateOfBirth
        keySnake: date_of_birth
        is_date: true
        object: employee
        java_datatype: LocalDate
        csharp_datatype: DateTime
        default: LocalDate.of(2000, Month.OCTOBER, 28)
        java: LocalDate.of(2000, Month.OCTOBER, 28)
        csharp: new DateTime(2000, 10, 10)
        php: new DateTime('2000-10-28')
        node: '''2000-10-28'''
        python: dateutil.parser.parse('2000-10-28T00:00:00Z')
        ruby: '''YYYY-MM-DD'''
      - homeAddress: null
        key: homeAddress
        keyPascal: HomeAddress
        keySnake: home_address
        is_object: true
      - addressLine1: null
        key: addressLine1
        keyPascal: AddressLine1
        keySnake: address_line_1
        default: 123 Test st
        object: homeAddress
      - region: null
        key: region
        keyPascal: Region
        keySnake: region
        object: homeAddress
        default: VIC
      - postalCode: null
        nonString: true
        key: postalCode
        keyPascal: PostalCode
        keySnake: postal_code
        object: homeAddress
        default: 3000
      - city: null
        key: city
        keyPascal: City
        keySnake: city
        default: Melbourne
        object: homeAddress
        is_last: true
      - employee: null
        key: employee
        keyPascal: Employee
        is_object: true
      - firstName: null
        key: firstName
        keyPascal: FirstName
        keySnake: first_name
        default: Adam
        object: employee
      - lastName: null
        key: lastName
        keyPascal: LastName
        keySnake: last_name
        default: Adamson
        object: employee
      - dateOfBirth: null
        is_variable: true
        nonString: true
        key: dateOfBirth
        keyPascal: DateOfBirth
        keySnake: date_of_birth
        default: dateOfBirth
        python: date_of_birth
        ruby: date_of_birth
        object: employee
      - setHomeAddress: null
        is_last: true
        is_variable: true
        nonString: true
        key: homeAddress
        keyPascal: HomeAddress
        default: homeAddress
        python: home_address
        ruby: home_address
        object: employee
      parameters:
      - $ref: '#/components/parameters/idempotencyKey'
      - name: EmployeeID
        x-snake: employee_id
        in: path
        required: true
        description: Employee id for single object
        schema:
          type: string
          format: uuid
          example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
      responses:
        '200':
          description: A successful request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Employees'
              example:
                Id: 00000000-0000-0000-0000-000000000000
                Status: OK
                ProviderName: 3f93110a-df13-49c7-b82f-a069813df188
                DateTimeUTC: /Date(1573621524786)/
                Employees:
                - EmployeeID: cdfb8371-0b21-4b8a-8903-1024df6c391e
                  FirstName: Albus
                  MiddleNames: Frank
                  LastName: Dumbledore
                  Status: ACTIVE
                  Email: albus39608@hogwarts.edu
                  DateOfBirth: /Date(321523200000+0000)/
                  JobTitle: Regional Manager
                  Gender: M
                  HomeAddress:
                    AddressLine1: 101 Green St
                    City: Island Bay
                    Region: NSW
                    PostalCode: '6023'
                    Country: AUSTRALIA
                  Phone: 444-2323
                  Mobile: 555-1212
                  StartDate: /Date(321523200000+0000)/
                  Classification: corporate
                  OrdinaryEarningsRateID: ab874dfb-ab09-4c91-954e-43acf6fc23b4
                  UpdatedDateUTC: /Date(1573621524755+0000)/
                  IsAuthorisedToApproveLeave: true
                  IsAuthorisedToApproveTimesheets: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Employee'
            example: '[ { "MiddleNames": "Frank" } ]'
  /LeaveApplications:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    get:
      security:
      - OAuth2:
        - payroll.employees
        - payroll.employees.read
      tags:
      - PayrollAu
      operationId: getLeaveApplications
      summary: Retrieves leave applications
      parameters:
      - in: header
        name: If-Modified-Since
        x-snake: if_modified_since
        description: Only records created or modified since this timestamp will be returned
        example: '2020-02-06T12:17:43.202-08:00'
        schema:
          type: string
          format: date-time
      - in: query
        name: where
        description: Filter by an any element
        schema:
          type: string
        example: Status=="ACTIVE"
      - in: query
        name: order
        description: Order by an any element
        schema:
          type: string
        example: EmailAddress%20DESC
      - in: query
        name: page
        description: e.g. page=1 – Up to 100 objects will be returned in a single API call
        schema:
          type: integer
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeaveApplications'
              example:
                Id: 00000000-0000-0000-0000-000000000000
                Status: OK
                ProviderName: provider-name
                DateTimeUTC: /Date(1573679791199)/
                LeaveApplications:
                - LeaveApplicationID: 1d4cd583-0107-4386-936b-672eb3d1f624
                  EmployeeID: cdfb8371-0b21-4b8a-8903-1024df6c391e
                  LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                  LeavePeriods:
                  - PayPeriodStartDate: /Date(1573171200000+0000)/
                    PayPeriodEndDate: /Date(1573689600000+0000)/
                    LeavePeriodStatus: SCHEDULED
                    NumberOfUnits: 0
                  Title: vacation
                  StartDate: /Date(1573516800000+0000)/
                  EndDate: /Date(1573516800000+0000)/
                  UpdatedDateUTC: /Date(1573623008000+0000)/
                  PayOutType: DEFAULT
                - LeaveApplicationID: 3b934902-1e16-4c02-a3d3-68fa7d63e01d
                  EmployeeID: cdfb8371-0b21-4b8a-8903-1024df6c391e
                  LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                  LeavePeriods:
                  - PayPeriodStartDate: /Date(1573171200000+0000)/
                    PayPeriodEndDate: /Date(1573689600000+0000)/
                    LeavePeriodStatus: SCHEDULED
                    NumberOfUnits: 8
                  Title: Cashed Out
                  StartDate: /Date(1573516800000+0000)/
                  EndDate: /Date(1573516800000+0000)/
                  UpdatedDateUTC: /Date(1573623008000+0000)/
                  PayOutType: CASHED_OUT
                - LeaveApplicationID: 62b90465-66e9-4c3a-8151-de1e6335554d
                  EmployeeID: b34e89ff-770d-4099-b7e5-f968767118bc
                  LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                  LeavePeriods:
                  - PayPeriodStartDate: /Date(1571961600000+0000)/
                    PayPeriodEndDate: /Date(1572480000000+0000)/
                    LeavePeriodStatus: SCHEDULED
                    NumberOfUnits: 0
                  - PayPeriodStartDate: /Date(1572566400000+0000)/
                    PayPeriodEndDate: /Date(1573084800000+0000)/
                    LeavePeriodStatus: SCHEDULED
                    NumberOfUnits: 0
                  Title: Yep Carer Leave
                  Description: My updated Description
                  StartDate: /Date(1572559200000+0000)/
                  EndDate: /Date(1572645600000+0000)/
                  UpdatedDateUTC: /Date(1573447344000+0000)/
                  PayOutType: DEFAULT
                - LeaveApplicationID: e8bd9eeb-18c9-4475-9c81-b298f9aa26c0
                  EmployeeID: b34e89ff-770d-4099-b7e5-f968767118bc
                  LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                  LeavePeriods:
                  - PayPeriodStartDate: /Date(1571961600000+0000)/
                    PayPeriodEndDate: /Date(1572480000000+0000)/
                    LeavePeriodStatus: SCHEDULED
                    NumberOfUnits: 0
                  - PayPeriodStartDate: /Date(1572566400000+0000)/
                    PayPeriodEndDate: /Date(1573084800000+0000)/
                    LeavePeriodStatus: SCHEDULED
                    NumberOfUnits: 0
                  Title: Hello World
                  StartDate: /Date(1572559200000+0000)/
                  EndDate: /Date(1572645600000+0000)/
                  UpdatedDateUTC: /Date(1573447343000+0000)/
                  PayOutType: DEFAULT
        '400':
          description: validation error for a bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIException'
    post:
      security:
      - OAuth2:
        - payroll.employees
      tags:
      - PayrollAu
      summary: Creates a leave application
      parameters:
      - $ref: '#/components/parameters/idempotencyKey'
      operationId: createLeaveApplication
      x-hasPayrollAuProblem: true
      x-example:
      - startDateValue: null
        key: startDate
        keyPascal: StartDate
        keySnake: start_date
        is_date: true
        java_datatype: LocalDate
        csharp_datatype: DateTime
        default: LocalDate.of(2020, Month.OCTOBER, 28)
        java: LocalDate.of(2020, Month.OCTOBER, 28)
        csharp: new DateTime(2020, 10, 10)
        php: new DateTime('2020-10-28')
        node: '''2020-10-28'''
        python: dateutil.parser.parse('2020-10-28T00:00:00Z')
        ruby: '''YYYY-MM-DD'''
      - endDateValue: null
        key: endDate
        keyPascal: EndDate
        keySnake: end_date
        is_date: true
        java_datatype: LocalDate
        csharp_datatype: DateTime
        default: LocalDate.of(2020, Month.OCTOBER, 30)
        java: LocalDate.of(2020, Month.OCTOBER, 30)
        csharp: new DateTime(2020, 10, 12)
        php: new DateTime('2020-10-30')
        node: '''2020-10-30'''
        python: dateutil.parser.parse('2020-10-30T00:00:00Z')
        ruby: '''YYYY-MM-DD'''
      - leaveApplication: null
        key: leaveApplication
        keyPascal: LeaveApplication
        is_object: true
      - employeeId: null
        is_uuid: true
        key: employeeId
        keyPascal: EmployeeId
        keySnake: employee_id
        object: leaveApplication
        default: 00000000-0000-0000-0000-000000000000
      - leaveTypeId: null
        is_uuid: true
        key: leaveTypeId
        keyPascal: LeaveTypeId
        keySnake: leave_type_id
        object: leaveApplication
        default: 00000000-0000-0000-0000-000000000000
      - title: null
        key: title
        keyPascal: Title
        keySnake: title
        default: Annual Leave
        object: leaveApplication
      - startDate: null
        is_variable: true
        nonString: true
        key: startDate
        keyPascal: StartDate
        keySnake: start_date
        default: startDate
        python: start_date
        ruby: start_date
        object: leaveApplication
      - endDate: null
        is_last: true
        is_variable: true
        nonString: true
        key: endDate
        keyPascal: EndDate
        keySnake: end_date
        default: endDate
        python: end_date
        ruby: end_date
        object: leaveApplication
      responses:
        '200':
          description: A successful request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeaveApplications'
              example:
                Id: 00000000-0000-0000-0000-000000000000
                Status: OK
                ProviderName: provider-name
                DateTimeUTC: /Date(1573679791917)/
                LeaveApplications:
                - LeaveApplicationID: 5f7097e4-51f2-46cc-921b-45bc73ea7831
                  EmployeeID: cdfb8371-0b21-4b8a-8903-1024df6c391e
                  LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                  LeavePeriods:
                  - PayPeriodStartDate: /Date(1572566400000+0000)/
                    PayPeriodEndDate: /Date(1573084800000+0000)/
                    LeavePeriodStatus: SCHEDULED
                    NumberOfUnits: 7.6
                  Title: Hello World
                  StartDate: /Date(1572559200000+0000)/
                  EndDate: /Date(1572645600000+0000)/
                  UpdatedDateUTC: /Date(1573679791897+0000)/
                  PayOutType: DEFAULT
        '400':
          description: invalid input, object invalid - TODO
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/LeaveApplication'
            example: '[ { "EmployeeID": "cdfb8371-0b21-4b8a-8903-1024df6c391e", "LeaveTypeID": "184ea8f7-d143-46dd-bef3-0c60e1aa6fca", "Title": "Hello World", "StartDate": "/Date(1572559200000+0000)/", "EndDate": "/Date(1572645600000+0000)/" } ]'
  /LeaveApplications/v2:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    get:
      security:
      - OAuth2:
        - payroll.employees
        - payroll.employees.read
      tags:
      - PayrollAu
      operationId: getLeaveApplicationsV2
      summary: Retrieves leave applications including leave requests
      parameters:
      - in: header
        name: If-Modified-Since
        x-snake: if_modified_since
        description: Only records created or modified since this timestamp will be returned
        example: '2020-02-06T12:17:43.202-08:00'
        schema:
          type: string
          format: date-time
      - in: query
        name: where
        description: Filter by an any element
        schema:
          type: string
        example: Status=="ACTIVE"
      - in: query
        name: order
        description: Order by an any element
        schema:
          type: string
        example: EmailAddress%20DESC
      - in: query
        name: page
        description: e.g. page=1 – Up to 100 objects will be returned in a single API call
        schema:
          type: integer
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeaveApplications'
              example:
                Id: 00000000-0000-0000-0000-000000000000
                Status: OK
                ProviderName: provider-name
                DateTimeUTC: /Date(1573679791199)/
                LeaveApplications:
                - LeaveApplicationID: 1d4cd583-0107-4386-936b-672eb3d1f624
                  EmployeeID: cdfb8371-0b21-4b8a-8903-1024df6c391e
                  LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                  LeavePeriods:
                  - PayPeriodStartDate: /Date(1573171200000+0000)/
                    PayPeriodEndDate: /Date(1573689600000+0000)/
                    LeavePeriodStatus: REQUESTED
                    NumberOfUnits: 4
                  Title: vacation
                  StartDate: /Date(1573516800000+0000)/
                  EndDate: /Date(1573516800000+0000)/
                  UpdatedDateUTC: /Date(1573623008000+0000)/
                  PayOutType: DEFAULT
                - LeaveApplicationID: 3b934902-1e16-4c02-a3d3-68fa7d63e01d
                  EmployeeID: cdfb8371-0b21-4b8a-8903-1024df6c391e
                  LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                  LeavePeriods:
                  - PayPeriodStartDate: /Date(1573171200000+0000)/
                    PayPeriodEndDate: /Date(1573689600000+0000)/
                    LeavePeriodStatus: SCHEDULED
                    NumberOfUnits: 8
                  Title: Cashed Out
                  StartDate: /Date(1573516800000+0000)/
                  EndDate: /Date(1573516800000+0000)/
                  UpdatedDateUTC: /Date(1573623008000+0000)/
                  PayOutType: CASHED_OUT
                - LeaveApplicationID: 62b90465-66e9-4c3a-8151-de1e6335554d
                  EmployeeID: b34e89ff-770d-4099-b7e5-f968767118bc
                  LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                  LeavePeriods:
                  - PayPeriodStartDate: /Date(1571961600000+0000)/
                    PayPeriodEndDate: /Date(1572480000000+0000)/
                    LeavePeriodStatus: SCHEDULED
                    NumberOfUnits: 8
                  - PayPeriodStartDate: /Date(1572566400000+0000)/
                    PayPeriodEndDate: /Date(1573084800000+0000)/
                    LeavePeriodStatus: SCHEDULED
                    NumberOfUnits: 8
                  Title: Yep Carer Leave
                  Description: My updated Description
                  StartDate: /Date(1572559200000+0000)/
                  EndDate: /Date(1572645600000+0000)/
                  UpdatedDateUTC: /Date(1573447344000+0000)/
                  PayOutType: DEFAULT
                - LeaveApplicationID: e8bd9eeb-18c9-4475-9c81-b298f9aa26c0
                  EmployeeID: b34e89ff-770d-4099-b7e5-f968767118bc
                  LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                  LeavePeriods:
                  - PayPeriodStartDate: /Date(1571961600000+0000)/
                    PayPeriodEndDate: /Date(1572480000000+0000)/
                    LeavePeriodStatus: PROCESSED
                    NumberOfUnits: 8
                  - PayPeriodStartDate: /Date(1572566400000+0000)/
                    PayPeriodEndDate: /Date(1573084800000+0000)/
                    LeavePeriodStatus: SCHEDULED
                    NumberOfUnits: 8
                  Title: Hello World
                  StartDate: /Date(1572559200000+0000)/
                  EndDate: /Date(1572645600000+0000)/
                  UpdatedDateUTC: /Date(1573447343000+0000)/
                  PayOutType: DEFAULT
                - LeaveApplicationID: 3f93110a-df13-49c7-b82f-a069813df188
                  EmployeeID: cdfb8371-0b21-4b8a-8903-1024df6c391e
                  LeaveTypeID: 184ea8f7-d143-46dd-bef3-0c60e1aa6fca
                  LeavePeriods:
                  - PayPeriodStartDate: /Date(1573171200000+0000)/
                    PayPeriodEndDate: /Date(15736896000

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