Xero PayrollAu API

Operations available to regular developers

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