openapi: 3.0.0
servers:
  - description: Xero Payroll AU API
    url: https://api.xero.com/payroll.xro/1.0
info:
  contact:
    email: api@xero.com
    name: Xero Platform Team
    url: https://developer.xero.com
    x-twitter: XeroAPI
  description: This is the Xero Payroll API for orgs in Australia region.
  license:
    name: MIT
    url: https://github.com/XeroAPI/Xero-OpenAPI/blob/master/LICENSE
  termsOfService: https://developer.xero.com/xero-developer-platform-terms-conditions/
  title: Xero Payroll AU API
  version: 2.9.4
  x-apisguru-categories:
    - financial
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/XeroAPI/Xero-OpenAPI/master/xero-payroll-au.yaml
      version: "3.0"
  x-providerName: xero.com
  x-serviceName: xero-payroll-au
tags:
  - description: Operations available to regular developers
    name: PayrollAu
paths:
  /Employees:
    get:
      operationId: getEmployees
      parameters:
        - description: Only records created or modified since this timestamp will be
            returned
          in: header
          name: If-Modified-Since
          schema:
            type: string
        - description: Filter by an any element
          example: Status=="ACTIVE"
          in: query
          name: where
          schema:
            type: string
        - description: Order by an any element
          example: EmailAddress%20DESC
          in: query
          name: order
          schema:
            type: string
        - description: e.g. page=1 – Up to 100 employees will be returned in a single API
            call
          in: query
          name: page
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "b22392ec-a288-4258-ba55-87921d0ed63f", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "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)/" }, { "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)/" } ] }'
              schema:
                $ref: "#/components/schemas/Employees"
          description: search results matching criteria
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIException"
          description: validation error for a bad request
      security:
        - OAuth2:
            - payroll.employees.read
      summary: Searches payroll employees
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      operationId: createEmployee
      requestBody:
        content:
          application/json:
            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" } ]'
            schema:
              items:
                $ref: "#/components/schemas/Employee"
              type: array
        required: true
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "e40caf91-1931-40c0-8908-728aa092ab23", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "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 } ] }'
              schema:
                $ref: "#/components/schemas/Employees"
          description: A successful request
        "400":
          description: invalid input, object invalid - TODO
      security:
        - OAuth2:
            - payroll.employees
      summary: Creates a payroll employee
      tags:
        - PayrollAu
      x-hasPayrollAuProblem: true
  "/Employees/{EmployeeID}":
    get:
      operationId: getEmployee
      parameters:
        - description: Employee id for single object
          in: path
          name: EmployeeID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "ff00117e-75d1-4cc3-961c-13fc37b65e01", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "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" }, "BankAccounts": [], "OpeningBalances": {
                "OpeningBalanceDate": "/Date(1573603200000+0000)/",
                "EarningsLines": [], "DeductionLines": [], "SuperLines": [],
                "ReimbursementLines": [], "LeaveLines": [ { "LeaveTypeID":
                "184ea8f7-d143-46dd-bef3-0c60e1aa6fca", "NumberOfUnits": 10 } ]
                }, "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" } ] }, "SuperMemberships": [], "LeaveBalances": [ {
                "LeaveName": "Carer Leave (unpaid)", "LeaveTypeID":
                "184ea8f7-d143-46dd-bef3-0c60e1aa6fca", "NumberOfUnits": 10,
                "TypeOfUnits": "Hours" } ] } ] }'
              schema:
                $ref: "#/components/schemas/Employees"
          description: search results matching criteria
      security:
        - OAuth2:
            - payroll.employees.read
      summary: Retrieves an employee's detail by unique employee id
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      description: Update properties on a single employee
      operationId: updateEmployee
      parameters:
        - description: Employee id for single object
          in: path
          name: EmployeeID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            example: '[ { "MiddleNames": "Frank" } ]'
            schema:
              items:
                $ref: "#/components/schemas/Employee"
              type: array
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "a40b0b60-def8-4bd7-bcd6-d97d617bf539", "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 } ] }'
              schema:
                $ref: "#/components/schemas/Employees"
          description: A successful request
      security:
        - OAuth2:
            - payroll.employees
      summary: Updates an employee's detail
      tags:
        - PayrollAu
  /LeaveApplications:
    get:
      operationId: getLeaveApplications
      parameters:
        - description: Only records created or modified since this timestamp will be
            returned
          in: header
          name: If-Modified-Since
          schema:
            type: string
        - description: Filter by an any element
          example: Status=="ACTIVE"
          in: query
          name: where
          schema:
            type: string
        - description: Order by an any element
          example: EmailAddress%20DESC
          in: query
          name: order
          schema:
            type: string
        - description: e.g. page=1 – Up to 100 objects will be returned in a single API call
          in: query
          name: page
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "5d31168a-5024-401d-9531-6902064b3fcb", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "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)/" }, { "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)/" }, { "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)/" } ] }'
              schema:
                $ref: "#/components/schemas/LeaveApplications"
          description: search results matching criteria
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIException"
          description: validation error for a bad request
      security:
        - OAuth2:
            - payroll.leaveapplications.read
      summary: Retrieves leave applications
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      operationId: createLeaveApplication
      requestBody:
        content:
          application/json:
            example: '[ { "EmployeeID": "cdfb8371-0b21-4b8a-8903-1024df6c391e",
              "LeaveTypeID": "184ea8f7-d143-46dd-bef3-0c60e1aa6fca", "Title":
              "Hello World", "StartDate": "/Date(1572559200000+0000)/",
              "EndDate": "/Date(1572645600000+0000)/" } ]'
            schema:
              items:
                $ref: "#/components/schemas/LeaveApplication"
              type: array
        required: true
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "7bbc3541-befd-482e-a6a3-a8cf7a93461e", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "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": 0.6 } ], "Title": "Hello World", "StartDate":
                "/Date(1572559200000+0000)/", "EndDate":
                "/Date(1572645600000+0000)/", "UpdatedDateUTC":
                "/Date(1573679791897+0000)/" } ] }'
              schema:
                $ref: "#/components/schemas/LeaveApplications"
          description: A successful request
        "400":
          description: invalid input, object invalid - TODO
      security:
        - OAuth2:
            - payroll.leaveapplications
      summary: Creates a leave application
      tags:
        - PayrollAu
      x-hasPayrollAuProblem: true
  "/LeaveApplications/{LeaveApplicationID}":
    get:
      operationId: getLeaveApplication
      parameters:
        - description: Leave Application id for single object
          in: path
          name: LeaveApplicationID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "071dafb9-0d50-48b2-8ee4-b48d3f3c119d", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "DateTimeUTC":
                "/Date(1573679791457)/", "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)/" } ] }'
              schema:
                $ref: "#/components/schemas/LeaveApplications"
          description: search results matching criteria
      security:
        - OAuth2:
            - payroll.leaveapplications.read
      summary: Retrieves a leave application by a unique leave application id
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      operationId: updateLeaveApplication
      parameters:
        - description: Leave Application id for single object
          in: path
          name: LeaveApplicationID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            example: '[ { "EmployeeID": "cdfb8371-0b21-4b8a-8903-1024df6c391e",
              "LeaveTypeID": "184ea8f7-d143-46dd-bef3-0c60e1aa6fca",
              "StartDate": "/Date(1572559200000+0000)/", "EndDate":
              "/Date(1572645600000+0000)/", "Description": "My updated
              Description" } ]'
            schema:
              items:
                $ref: "#/components/schemas/LeaveApplication"
              type: array
        required: true
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "9ebc7d7a-e188-4b31-bb2c-1ab9421b82c4", "Status": "OK",
                "ProviderName": "3f93110a-df13-49c7-b82f-a069813df188",
                "DateTimeUTC": "/Date(1573679792293)/", "LeaveApplications": [ {
                "LeaveApplicationID": "1d4cd583-0107-4386-936b-672eb3d1f624",
                "EmployeeID": "cdfb8371-0b21-4b8a-8903-1024df6c391e",
                "LeaveTypeID": "184ea8f7-d143-46dd-bef3-0c60e1aa6fca",
                "LeavePeriods": [ { "PayPeriodStartDate":
                "/Date(1572566400000+0000)/", "PayPeriodEndDate":
                "/Date(1573084800000+0000)/", "LeavePeriodStatus": "SCHEDULED",
                "NumberOfUnits": 0.6 } ], "Title": "vacation", "Description":
                "My updated Description", "StartDate":
                "/Date(1572559200000+0000)/", "EndDate":
                "/Date(1572645600000+0000)/", "UpdatedDateUTC":
                "/Date(1573679792293+0000)/" } ] }'
              schema:
                $ref: "#/components/schemas/LeaveApplications"
          description: A successful request
        "400":
          description: invalid input, object invalid - TODO
      security:
        - OAuth2:
            - payroll.leaveapplications
      summary: Updates a specific leave application
      tags:
        - PayrollAu
  /PayItems:
    get:
      operationId: getPayItems
      parameters:
        - description: Only records created or modified since this timestamp will be
            returned
          in: header
          name: If-Modified-Since
          schema:
            type: string
        - description: Filter by an any element
          example: Status=="ACTIVE"
          in: query
          name: where
          schema:
            type: string
        - description: Order by an any element
          example: EmailAddress%20DESC
          in: query
          name: order
          schema:
            type: string
        - description: e.g. page=1 – Up to 100 objects will be returned in a single API call
          in: query
          name: page
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "add39c3e-f397-45fb-aa4f-af1095ec7f65", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "DateTimeUTC":
                "/Date(1573620869531)/", "PayItems": { "EarningsRates": [ {
                "EarningsRateID": "ab874dfb-ab09-4c91-954e-43acf6fc23b4",
                "Name": "Ordinary Hours", "EarningsType":
                "ORDINARYTIMEEARNINGS", "RateType": "RATEPERUNIT",
                "AccountCode": "477", "TypeOfUnits": "Hours", "RatePerUnit": 3,
                "IsExemptFromTax": true, "IsExemptFromSuper": true,
                "IsReportableAsW1": true, "UpdatedDateUTC":
                "/Date(1573620821000+0000)/", "CurrentRecord": true }, {
                "EarningsRateID": "dc3ff92e-0e49-4967-aa4b-0bb21c0594ce",
                "Name": "Overtime Hours (exempt from super)", "EarningsType":
                "OVERTIMEEARNINGS", "RateType": "RATEPERUNIT", "AccountCode":
                "477", "TypeOfUnits": "Hours", "IsExemptFromTax": false,
                "IsExemptFromSuper": true, "IsReportableAsW1": false,
                "UpdatedDateUTC": "/Date(1547500330000+0000)/", "CurrentRecord":
                true }, { "EarningsRateID":
                "f59999ca-cd5c-4a54-a381-2d0c817f0c3e", "Name": "Redundancy",
                "EarningsType": "LUMPSUMD", "RateType": "FIXEDAMOUNT",
                "AccountCode": "477", "IsExemptFromTax": true,
                "IsExemptFromSuper": true, "IsReportableAsW1": true,
                "UpdatedDateUTC": "/Date(1547500330000+0000)/", "CurrentRecord":
                true }, { "EarningsRateID":
                "c97dafac-9d99-406f-9f6c-abfaf81c527d", "Name": "ETP Leave
                Earning", "EarningsType": "EMPLOYMENTTERMINATIONPAYMENT",
                "RateType": "RATEPERUNIT", "AccountCode": "477", "TypeOfUnits":
                "Hours", "IsExemptFromTax": false, "IsExemptFromSuper": true,
                "IsReportableAsW1": true, "UpdatedDateUTC":
                "/Date(1573620791000+0000)/",
                "EmploymentTerminationPaymentType": "O", "CurrentRecord": true }
                ], "DeductionTypes": [ { "DeductionTypeID":
                "727af5e8-b347-4ae7-85fc-9b82266d0aec", "DeductionCategory":
                "UNIONFEES", "Name": "Union Fees/Subscriptions", "AccountCode":
                "850", "ReducesTax": false, "ReducesSuper": false,
                "IsExemptFromW1": false, "UpdatedDateUTC":
                "/Date(1547500330000+0000)/", "CurrentRecord": true }, {
                "DeductionTypeID": "04191cd3-7952-4a87-9911-9d8575280f6a",
                "DeductionCategory": "NONE", "Name": "Lease Payments",
                "AccountCode": "850", "ReducesTax": true, "ReducesSuper": true,
                "IsExemptFromW1": false, "UpdatedDateUTC":
                "/Date(1547500330000+0000)/", "CurrentRecord": true } ],
                "ReimbursementTypes": [ { "ReimbursementTypeID":
                "98ba33b2-db5b-4204-bcac-5ddd98d63524", "Name": "Travel Costs",
                "AccountCode": "850", "UpdatedDateUTC":
                "/Date(1547500330000+0000)/", "CurrentRecord": true }, {
                "ReimbursementTypeID": "aa8cfa40-d872-4be0-8a94-bb7f00962f74",
                "Name": "Other Reimbursable Costs", "AccountCode": "850",
                "UpdatedDateUTC": "/Date(1547500330000+0000)/", "CurrentRecord":
                true } ], "LeaveTypes": [ { "LeaveTypeID":
                "fbcc9dab-6238-43d9-a3f4-d768423fdcfa", "Name": "Annual Leave",
                "TypeOfUnits": "Hours", "NormalEntitlement": 152,
                "LeaveLoadingRate": 1.0, "IsPaidLeave": true, "ShowOnPayslip":
                true, "UpdatedDateUTC": "/Date(1573620853000+0000)/",
                "CurrentRecord": true }, { "LeaveTypeID":
                "74195ab2-1f2b-4136-8ddc-20387a0b1027", "Name": "Long Service
                Leave", "TypeOfUnits": "Hours", "IsPaidLeave": true,
                "ShowOnPayslip": false, "UpdatedDateUTC":
                "/Date(1547500330000+0000)/", "CurrentRecord": true }, {
                "LeaveTypeID": "ff4d16da-ae8a-4f57-acb3-9ee593996bce", "Name":
                "Parental Leave (unpaid)", "TypeOfUnits": "Hours",
                "IsPaidLeave": false, "ShowOnPayslip": false, "UpdatedDateUTC":
                "/Date(1547500330000+0000)/", "CurrentRecord": true } ] } }'
              schema:
                $ref: "#/components/schemas/PayItems"
          description: search results matching criteria
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIException"
          description: validation error for a bad request
      security:
        - OAuth2:
            - payroll.payitems.read
      summary: Retrieves pay items
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      operationId: createPayItem
      requestBody:
        content:
          application/json:
            example: '{ "EarningsRates": [ { "Name": "MyRate", "AccountCode": "400",
              "TypeOfUnits": "4.00", "IsExemptFromTax": true,
              "IsExemptFromSuper": true, "IsReportableAsW1": false,
              "EarningsType": "ORDINARYTIMEEARNINGS", "EarningsRateID":
              "1fa4e226-b711-46ba-a8a7-4344c9c5fb87", "RateType": "MULTIPLE",
              "RatePerUnit": "10.0", "Multiplier": 1.5, "Amount": 5,
              "EmploymentTerminationPaymentType": "O" } ] }'
            schema:
              $ref: "#/components/schemas/PayItem"
        required: true
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "8c15b526-ea07-42e6-9351-1fa00a9516ea", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "DateTimeUTC":
                "/Date(1593448963288)/", "PayItems": { "EarningsRates": [ {
                "EarningsRateID": "1fa4e226-b711-46ba-a8a7-4344c9c5fb87",
                "Name": "MyRate", "EarningsType": "ORDINARYTIMEEARNINGS",
                "RateType": "MULTIPLE", "AccountCode": "400", "Multiplier": 1.5,
                "IsExemptFromTax": true, "IsExemptFromSuper": true,
                "AccrueLeave": false, "IsReportableAsW1": false,
                "UpdatedDateUTC": "/Date(1593448963210+0000)/", "CurrentRecord":
                true }, { "EarningsRateID":
                "c6905c26-0716-4746-9098-608545e04dd2", "Name": "Redundancy",
                "EarningsType": "LUMPSUMD", "RateType": "FIXEDAMOUNT",
                "AccountCode": "477", "IsExemptFromTax": true,
                "IsExemptFromSuper": true, "IsReportableAsW1": true,
                "UpdatedDateUTC": "/Date(1476729649000+0000)/", "CurrentRecord":
                true }, { "EarningsRateID":
                "33820094-656e-4db3-b04b-8bd3e2db0a9b", "Name": "ETP Leave
                Earning", "EarningsType": "EMPLOYMENTTERMINATIONPAYMENT",
                "RateType": "RATEPERUNIT", "AccountCode": "477", "TypeOfUnits":
                "Hours", "IsExemptFromTax": false, "IsExemptFromSuper": true,
                "IsReportableAsW1": true, "UpdatedDateUTC":
                "/Date(1520900705000+0000)/",
                "EmploymentTerminationPaymentType": "O", "CurrentRecord": true }
                ] } }'
              schema:
                $ref: "#/components/schemas/PayItems"
          description: A successful request - currently returns empty array for JSON
        "400":
          description: invalid input, object invalid - TODO
      security:
        - OAuth2:
            - payroll.payitems
      summary: Creates a pay item
      tags:
        - PayrollAu
  /PayRuns:
    get:
      operationId: getPayRuns
      parameters:
        - description: Only records created or modified since this timestamp will be
            returned
          in: header
          name: If-Modified-Since
          schema:
            type: string
        - description: Filter by an any element
          example: Status=="ACTIVE"
          in: query
          name: where
          schema:
            type: string
        - description: Order by an any element
          example: EmailAddress%20DESC
          in: query
          name: order
          schema:
            type: string
        - description: e.g. page=1 – Up to 100 PayRuns will be returned in a single API call
          in: query
          name: page
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"31a0c577-5cb0-4c19-a1f5-9f4d6de951d4", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1573611063074)\/", "PayRuns":[ {
                "PayRunID":"5de420bb-4ad2-405c-beb1-2610bcc2144e",
                "PayrollCalendarID":"78bb86b9-e1ea-47ac-b75d-f087a81931de",
                "PayRunPeriodStartDate":"\/Date(1572566400000+0000)\/",
                "PayRunPeriodEndDate":"\/Date(1573084800000+0000)\/",
                "PaymentDate":"\/Date(1573171200000+0000)\/", "Wages":200.00,
                "Deductions":33.00, "Tax":78.00, "Super":0.00,
                "Reimbursement":22.00, "NetPay":89.00, "PayRunStatus":"POSTED",
                "UpdatedDateUTC":"\/Date(1573610970000+0000)\/" } ] }'
              schema:
                $ref: "#/components/schemas/PayRuns"
          description: search results matching criteria
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIException"
          description: validation error for a bad request
      security:
        - OAuth2:
            - payroll.payruns.read
      summary: Retrieves pay runs
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      operationId: createPayRun
      requestBody:
        content:
          application/json:
            example: '[ { "PayrollCalendarID": "78bb86b9-e1ea-47ac-b75d-f087a81931de",
              "PayRunPeriodStartDate": "/Date(1572566400000+0000)/",
              "PayRunPeriodEndDate": "/Date(1573084800000+0000)/",
              "PayRunStatus": "DRAFT", "PaymentDate":
              "/Date(1573171200000+0000)/" } ]'
            schema:
              items:
                $ref: "#/components/schemas/PayRun"
              type: array
        required: true
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "386f86d9-ae93-4a1d-9a10-eb46495c1184", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "DateTimeUTC":
                "/Date(1573685818311)/", "PayRuns": [ { "PayRunID":
                "d1348fab-f47a-4697-beea-922ee262407a", "PayrollCalendarID":
                "78bb86b9-e1ea-47ac-b75d-f087a81931de", "PayRunPeriodStartDate":
                "/Date(1572566400000+0000)/", "PayRunPeriodEndDate":
                "/Date(1573084800000+0000)/", "PaymentDate":
                "/Date(1573171200000+0000)/", "PayRunStatus": "DRAFT",
                "UpdatedDateUTC": "/Date(1573685818311+0000)/" } ] }'
              schema:
                $ref: "#/components/schemas/PayRuns"
          description: A successful request
        "400":
          description: invalid input, object invalid - TODO
      security:
        - OAuth2:
            - payroll.payruns
      summary: Creates a pay run
      tags:
        - PayrollAu
      x-hasPayrollAuProblem: true
  "/PayRuns/{PayRunID}":
    get:
      operationId: getPayRun
      parameters:
        - description: PayRun id for single object
          in: path
          name: PayRunID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "d31f4401-875e-4a0c-9952-d5dd18519150", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "DateTimeUTC":
                "/Date(1573692531699)/", "PayRuns": [ { "PayRunID":
                "21d6317b-5319-4b3d-8d78-48904db6b665", "PayrollCalendarID":
                "78bb86b9-e1ea-47ac-b75d-f087a81931de", "PayRunPeriodStartDate":
                "/Date(1572566400000+0000)/", "PayRunPeriodEndDate":
                "/Date(1573084800000+0000)/", "PaymentDate":
                "/Date(1573171200000+0000)/", "Wages": 205.4, "Deductions": 37,
                "Tax": 0, "Super": 0, "Reimbursement": 77, "NetPay": 168.4,
                "PayRunStatus": "POSTED", "UpdatedDateUTC":
                "/Date(1573692155000+0000)/", "Payslips": [ { "EmployeeID":
                "cdfb8371-0b21-4b8a-8903-1024df6c391e", "PayslipID":
                "c81e8bcc-56b0-4740-b46b-767753a6ee45", "FirstName": "Albus",
                "LastName": "Dumbledore", "EmployeeGroup": "foo", "Wages": 5.4,
                "Deductions": 4, "Tax": 0, "Super": 0, "Reimbursements": 55,
                "NetPay": 1.4, "UpdatedDateUTC": "/Date(1573692155000+0000)/" },
                { "EmployeeID": "7aa04979-ded5-44d9-b09a-793749425844",
                "PayslipID": "76b9cb4e-d024-47cf-b09a-4c9cea2870f1",
                "FirstName": "John", "LastName": "Smith", "Wages": 200,
                "Deductions": 33, "Tax": 0, "Super": 0, "Reimbursements": 22,
                "NetPay": 167, "UpdatedDateUTC": "/Date(1573692155000+0000)/" }
                ] } ] }'
              schema:
                $ref: "#/components/schemas/PayRuns"
          description: search results matching criteria
      security:
        - OAuth2:
            - payroll.payruns.read
      summary: Retrieves a pay run by using a unique pay run id
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      description: Update properties on a single PayRun
      operationId: updatePayRun
      parameters:
        - description: PayRun id for single object
          in: path
          name: PayRunID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              example: '[ { "PayRunStatus": "POSTED" } ]'
              items:
                $ref: "#/components/schemas/PayRun"
              type: array
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "7ad056f9-7dbd-4b66-bf11-1bb86d5aec92", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "DateTimeUTC":
                "/Date(1573693093680)/", "PayRuns": [ { "PayRunID":
                "f8fcda54-643f-4406-902a-d7b020d0a036", "PayrollCalendarID":
                "78bb86b9-e1ea-47ac-b75d-f087a81931de", "PayRunPeriodStartDate":
                "/Date(1572566400000+0000)/", "PayRunPeriodEndDate":
                "/Date(1573084800000+0000)/", "PaymentDate":
                "/Date(1573171200000+0000)/", "PayRunStatus": "POSTED",
                "UpdatedDateUTC": "/Date(1573693093000+0000)/" } ] }'
              schema:
                $ref: "#/components/schemas/PayRuns"
          description: A successful request
      security:
        - OAuth2:
            - payroll.payruns
      summary: Updates a pay run
      tags:
        - PayrollAu
  /PayrollCalendars:
    get:
      operationId: getPayrollCalendars
      parameters:
        - description: Only records created or modified since this timestamp will be
            returned
          in: header
          name: If-Modified-Since
          schema:
            type: string
        - description: Filter by an any element
          example: Status=="ACTIVE"
          in: query
          name: where
          schema:
            type: string
        - description: Order by an any element
          example: EmailAddress%20DESC
          in: query
          name: order
          schema:
            type: string
        - description: e.g. page=1 – Up to 100 objects will be returned in a single API call
          in: query
          name: page
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"a89fb36b-c573-42d8-88db-a947cbd6af5a", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1573611063408)\/", "PayrollCalendars":[ {
                "PayrollCalendarID":"78bb86b9-e1ea-47ac-b75d-f087a81931de",
                "Name":"Sid Weekly", "CalendarType":"WEEKLY",
                "StartDate":"\/Date(1573171200000+0000)\/",
                "PaymentDate":"\/Date(1573776000000+0000)\/",
                "UpdatedDateUTC":"\/Date(1573077687000+0000)\/" }, {
                "PayrollCalendarID":"22a05fc5-386d-4950-9842-3e7a6c812135",
                "Name":"Weekly", "CalendarType":"WEEKLY",
                "StartDate":"\/Date(1546560000000+0000)\/",
                "PaymentDate":"\/Date(1547164800000+0000)\/",
                "UpdatedDateUTC":"\/Date(1572916157000+0000)\/" } ] }'
              schema:
                $ref: "#/components/schemas/PayrollCalendars"
          description: search results matching criteria
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIException"
          description: validation error for a bad request
      security:
        - OAuth2:
            - payroll.payrollcalendars.read
      summary: Retrieves payroll calendars
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      operationId: createPayrollCalendar
      requestBody:
        content:
          application/json:
            example: '[ { "PayrollCalendarID":"78bb86b9-e1ea-47ac-b75d-f087a81931de",
              "PayRunPeriodStartDate":"/Date(1572566400000+0000)/",
              "PayRunPeriodEndDate":"/Date(1573084800000+0000)/",
              "PayRunStatus":"DRAFT", "PaymentDate":"/Date(1573171200000+0000)/"
              } ]'
            schema:
              items:
                $ref: "#/components/schemas/PayrollCalendar"
              type: array
        required: true
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"113db83f-1769-4352-a097-7ac5c333aa40", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1584125518649)\/", "PayrollCalendars":[ {
                "PayrollCalendarID":"57accbfe-f729-4be3-b3cb-8c3445c61d3a",
                "Name":"MyCal37127", "CalendarType":"WEEKLY",
                "StartDate":"\/Date(1572998400000+0000)\/",
                "PaymentDate":"\/Date(1573516800000+0000)\/",
                "UpdatedDateUTC":"\/Date(1584125518633+0000)\/" } ] }'
              schema:
                $ref: "#/components/schemas/PayrollCalendars"
          description: A successful request
        "400":
          description: invalid input, object invalid - TODO
      security:
        - OAuth2:
            - payroll.payrollcalendars
      summary: Creates a Payroll Calendar
      tags:
        - PayrollAu
      x-hasPayrollAuProblem: true
  "/PayrollCalendars/{PayrollCalendarID}":
    get:
      operationId: getPayrollCalendar
      parameters:
        - description: Payroll Calendar id for single object
          in: path
          name: PayrollCalendarID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"8283e501-2a7f-4080-b3c9-579a51b55b94", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1573611453008)\/", "PayrollCalendars":[ {
                "PayrollCalendarID":"78bb86b9-e1ea-47ac-b75d-f087a81931de",
                "Name":"Sid Weekly", "CalendarType":"WEEKLY",
                "StartDate":"\/Date(1573171200000+0000)\/",
                "PaymentDate":"\/Date(1573776000000+0000)\/",
                "UpdatedDateUTC":"\/Date(1573077687000+0000)\/" } ] }'
              schema:
                $ref: "#/components/schemas/PayrollCalendars"
          description: search results matching criteria
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIException"
          description: validation error for a bad request
      security:
        - OAuth2:
            - payroll.payrollcalendars.read
      summary: Retrieves payroll calendar by using a unique payroll calendar ID
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
  "/Payslip/{PayslipID}":
    get:
      operationId: getPayslip
      parameters:
        - description: Payslip id for single object
          in: path
          name: PayslipID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "cd64816e-af39-4708-879c-4b6c8061abb2", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "DateTimeUTC":
                "/Date(1573692677622)/", "Payslip": { "EmployeeID":
                "cdfb8371-0b21-4b8a-8903-1024df6c391e", "PayslipID":
                "c81e8bcc-56b0-4740-b46b-767753a6ee45", "FirstName": "Albus",
                "LastName": "Dumbledore", "Tax": 0, "NetPay": 1.4,
                "UpdatedDateUTC": "/Date(1573692155000+0000)/", "EarningsLines":
                [ { "EarningsRateID": "ab874dfb-ab09-4c91-954e-43acf6fc23b4",
                "RatePerUnit": 3, "NumberOfUnits": 1.8 } ],
                "LeaveEarningsLines": [ { "EarningsRateID":
                "ab874dfb-ab09-4c91-954e-43acf6fc23b4", "RatePerUnit": 0,
                "NumberOfUnits": 0.6 }, { "EarningsRateID":
                "ab874dfb-ab09-4c91-954e-43acf6fc23b4", "RatePerUnit": 0,
                "NumberOfUnits": 0.6 } ], "TimesheetEarningsLines": [],
                "DeductionLines": [ { "Amount": 4, "CalculationType":
                "FIXEDAMOUNT", "DeductionTypeID":
                "ed05ea82-e40a-4eb6-9c2e-4b3c03e7e938" } ], "LeaveAccrualLines":
                [ { "LeaveTypeID": "184ea8f7-d143-46dd-bef3-0c60e1aa6fca",
                "NumberOfUnits": 0.0769, "AutoCalculate": true } ],
                "ReimbursementLines": [ { "ReimbursementTypeID":
                "aa8cfa40-d872-4be0-8a94-bb7f00962f74", "Description": "boo",
                "ExpenseAccount": "850", "Amount": 55 } ],
                "SuperannuationLines": [ { "ContributionType": "SGC",
                "CalculationType": "STATUTORY", "MinimumMonthlyEarnings": 450,
                "ExpenseAccountCode": "478", "LiabilityAccountCode": "826",
                "PaymentDateForThisPeriod": "/Date(1580169600000+0000)/",
                "Amount": 0 } ], "TaxLines": [ { "PayslipTaxLineID":
                "c129696e-36ef-4677-a54c-96095787ca20", "TaxTypeName": "PAYG
                Tax", "Description": "No tax file number (Australian resident)",
                "Amount": 0, "LiabilityAccount": "825" } ] } }'
              schema:
                $ref: "#/components/schemas/PayslipObject"
          description: search results matching criteria
      security:
        - OAuth2:
            - payroll.payslip.read
      summary: Retrieves for a payslip by a unique payslip id
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      description: Update lines on a single payslips
      operationId: updatePayslip
      parameters:
        - description: Payslip id for single object
          in: path
          name: PayslipID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            example: '{ "Payslip": { "EmployeeID": "cdfb8371-0b21-4b8a-8903-1024df6c391e",
              "DeductionLines": [ { "DeductionTypeID":
              "727af5e8-b347-4ae7-85fc-9b82266d0aec", "CalculationType":
              "FIXEDAMOUNT", "NumberOfUnits": 10 } ] } }'
            schema:
              items:
                $ref: "#/components/schemas/PayslipLines"
              type: array
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id": "6ba774cb-7db6-4c8e-ba13-5342b5ce6cc3", "Status": "OK",
                "ProviderName": "java-sdk-oauth2-dev-02", "DateTimeUTC":
                "/Date(1589568253813)/", "Payslips": [ { "EmployeeID":
                "cdfb8371-0b21-4b8a-8903-1024df6c391e", "PayslipID":
                "c81e8bcc-56b0-4740-b46b-767753a6ee45", "FirstName": "Albus",
                "LastName": "Dumbledore", "LastEdited":
                "/Date(1589568253735+0000)/", "Tax": 0, "NetPay": 1.4,
                "UpdatedDateUTC": "/Date(1589568253735+0000)/",
                "DeductionLines": [ { "Amount": 4, "CalculationType":
                "FIXEDAMOUNT", "DeductionTypeID":
                "ed05ea82-e40a-4eb6-9c2e-4b3c03e7e938" } ] } ] }'
              schema:
                $ref: "#/components/schemas/Payslips"
          description: A successful request - currently returns empty array for JSON
      security:
        - OAuth2:
            - payroll.payslip
      summary: Updates a payslip
      tags:
        - PayrollAu
      x-hasPayrollAuError: true
  /Settings:
    get:
      operationId: getSettings
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"898a22ce-41d6-4553-b0b3-4cd486332dde", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1573585252781)\/", "Settings":{
                "Accounts":[ {
                "AccountID":"85bd2954-7ef5-4fbe-9e40-a1990d0fd63f",
                "Type":"BANK", "Code":"094", "Name":"Bank of A" }, {
                "AccountID":"7e65fa75-1c64-43d7-b0b4-c05f196e2190",
                "Type":"WAGESPAYABLELIABILITY", "Code":"804", "Name":"Wages
                Payable - Payroll" }, {
                "AccountID":"dbc164fa-0cdf-4848-92d3-0d1dc864c53f",
                "Type":"PAYGLIABILITY", "Code":"825", "Name":"PAYG Withholdings
                Payable" }, {
                "AccountID":"7dad84d4-bc7a-482e-99b1-d879e4856578",
                "Type":"SUPERANNUATIONEXPENSE", "Code":"478",
                "Name":"Superannuation" }, {
                "AccountID":"df3679fe-5ebc-42ce-a7ac-b4d36b520795",
                "Type":"SUPERANNUATIONLIABILITY", "Code":"826",
                "Name":"Superannuation Payable" }, {
                "AccountID":"7e130864-5864-4c60-94eb-3c53c95da138",
                "Type":"WAGESEXPENSE", "Code":"477", "Name":"Wages and Salaries"
                } ], "TrackingCategories":{ "EmployeeGroups":{
                "TrackingCategoryID":"a28f419f-6ec3-4dcf-9be0-7959ea983630",
                "TrackingCategoryName":"Foo70317" }, "TimesheetCategories":{
                "TrackingCategoryID":"89375aed-ed51-4624-9e5d-92db6bfa8974",
                "TrackingCategoryName":"Foo32551" } }, "DaysInPayrollYear":"364"
                } }'
              schema:
                $ref: "#/components/schemas/SettingsObject"
          description: payroll settings
      security:
        - OAuth2:
            - payroll.settings.read
      summary: Retrieves payroll settings
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
  /SuperfundProducts:
    get:
      operationId: getSuperfundProducts
      parameters:
        - description: The ABN of the Regulated SuperFund
          example: 40022701955
          in: query
          name: ABN
          schema:
            type: string
        - description: The USI of the Regulated SuperFund
          example: OSF0001AU
          in: query
          name: USI
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"d1c101ee-2fd8-47a3-ad3d-bbc64139181c", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1573570720295)\/", "SuperFundProducts":[ {
                "USI":"OSF0001AU", "ABN":"24248426878",
                "ProductName":"Accumulate Plus (Commonwealth Bank Group Super)"
                } ] }'
              schema:
                $ref: "#/components/schemas/SuperFundProducts"
          description: search results matching criteria
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIException"
          description: validation error for a bad request
      security:
        - OAuth2:
            - payroll.superfundproducts.read
      summary: Retrieves superfund products
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
  /Superfunds:
    get:
      operationId: getSuperfunds
      parameters:
        - description: Only records created or modified since this timestamp will be
            returned
          in: header
          name: If-Modified-Since
          schema:
            type: string
        - description: Filter by an any element
          example: Status=="ACTIVE"
          in: query
          name: where
          schema:
            type: string
        - description: Order by an any element
          example: EmailAddress%20DESC
          in: query
          name: order
          schema:
            type: string
        - description: e.g. page=1 – Up to 100 SuperFunds will be returned in a single API
            call
          in: query
          name: page
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"c5f5e907-e562-463c-b15c-1d6185fbb779", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1573570941142)\/", "SuperFunds":[ {
                "SuperFundID":"fde8e070-bf59-4e56-b1d7-c75a09474b8d",
                "Name":"Accumulate Plus (Commonwealth Bank Group Super)",
                "Type":"REGULATED", "USI":"OSF0001AU",
                "UpdatedDateUTC":"\/Date(1573510468000+0000)\/" }, {
                "SuperFundID":"69079de5-67ef-43bb-b5a5-3e7c2ccad7f0",
                "Name":"AMG Super", "Type":"REGULATED", "USI":"PTC0133AU",
                "UpdatedDateUTC":"\/Date(1573490487000+0000)\/" } ] }'
              schema:
                $ref: "#/components/schemas/SuperFunds"
          description: search results matching criteria
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIException"
          description: validation error for a bad request
      security:
        - OAuth2:
            - payroll.superfunds.read
      summary: Retrieves superfunds
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      operationId: createSuperfund
      requestBody:
        content:
          application/json:
            example: '[ { "usi":"PTC0133AU", "Type":"REGULATED", "Name":"Bar99359",
              "AccountNumber":"FB36350", "AccountName":"Foo38428",
              "USI":"PTC0133AU" } ]'
            schema:
              items:
                $ref: "#/components/schemas/SuperFund"
              type: array
        required: true
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"6101dc74-d7b5-4d75-8aa6-ba02697167d9", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1573583393024)\/", "SuperFunds":[ {
                "SuperFundID":"e02e44eb-2dba-4d5e-84da-8a0c3a4a4fef",
                "Name":"AMG Super", "Type":"REGULATED", "ABN":"30099320583",
                "USI":"PTC0133AU", "AccountNumber":"FB36350",
                "AccountName":"Foo38428",
                "UpdatedDateUTC":"\/Date(1573583393009+0000)\/" } ] }'
              schema:
                $ref: "#/components/schemas/SuperFunds"
          description: A successful request
        "400":
          description: invalid input, object invalid - TODO
      security:
        - OAuth2:
            - payroll.superfunds
      summary: Creates a superfund
      tags:
        - PayrollAu
      x-hasPayrollAuProblem: true
  "/Superfunds/{SuperFundID}":
    get:
      operationId: getSuperfund
      parameters:
        - description: Superfund id for single object
          in: path
          name: SuperFundID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"a023294b-3656-4202-8127-c3d77a794fa7", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1573571518603)\/", "SuperFunds":[ {
                "SuperFundID":"540f4327-dda2-4b36-9c2f-2fe1c93a72b5", "Name":"My
                Self Managed one", "Type":"SMSF", "ABN":"53004085616",
                "EmployerNumber":"9876543", "BSB":"324324",
                "AccountNumber":"234234234", "AccountName":"My Checking",
                "UpdatedDateUTC":"\/Date(1573571429000+0000)\/",
                "ElectronicServiceAddress":"FG48739" } ] }'
              schema:
                $ref: "#/components/schemas/SuperFunds"
          description: search results matching criteria
      security:
        - OAuth2:
            - payroll.superfunds.read
      summary: Retrieves a superfund by using a unique superfund ID
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      description: Update properties on a single Superfund
      operationId: updateSuperfund
      parameters:
        - description: Superfund id for single object
          in: path
          name: SuperFundID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            example: ' [ { "Type":"REGULATED", "Name":"Nice23534" } ]'
            schema:
              items:
                $ref: "#/components/schemas/SuperFund"
              type: array
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"5805d551-10ba-43f5-ac08-9e482d35cdcb", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1573570941547)\/", "SuperFunds":[ {
                "SuperFundID":"fde8e070-bf59-4e56-b1d7-c75a09474b8d",
                "Name":"Accumulate Plus (Commonwealth Bank Group Super)",
                "Type":"REGULATED", "ABN":"24248426878", "USI":"OSF0001AU",
                "UpdatedDateUTC":"\/Date(1573510468000+0000)\/" } ] }'
              schema:
                $ref: "#/components/schemas/SuperFunds"
          description: A successful request
      security:
        - OAuth2:
            - payroll.superfunds
      summary: Updates a superfund
      tags:
        - PayrollAu
  /Timesheets:
    get:
      operationId: getTimesheets
      parameters:
        - description: Only records created or modified since this timestamp will be
            returned
          in: header
          name: If-Modified-Since
          schema:
            type: string
        - description: Filter by an any element
          example: Status=="ACTIVE"
          in: query
          name: where
          schema:
            type: string
        - description: Order by an any element
          example: EmailAddress%20DESC
          in: query
          name: order
          schema:
            type: string
        - description: e.g. page=1 – Up to 100 timesheets will be returned in a single API
            call
          in: query
          name: page
          schema:
            type: integer
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"581271e7-d02d-4966-ae6c-2a4fb9c48e5a", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1573516183708)\/", "Timesheets":[ {
                "TimesheetID":"863bbd31-0447-4419-80d5-d733d5e723ba",
                "EmployeeID":"b34e89ff-770d-4099-b7e5-f968767118bc",
                "StartDate":"\/Date(1547769600000)\/",
                "EndDate":"\/Date(1548288000000)\/", "Status":"APPROVED",
                "Hours":24.0000, "TimesheetLines":[ {
                "EarningsRateID":"ab874dfb-ab09-4c91-954e-43acf6fc23b4",
                "NumberOfUnits":[ 4.00, 4.00, 4.00, 4.00, 4.00, 4.00, 0.00 ],
                "UpdatedDateUTC":"\/Date(1572915827000+0000)\/" } ],
                "UpdatedDateUTC":"\/Date(1572915827000+0000)\/" }, {
                "TimesheetID":"544eb3a7-0d63-495b-90ae-f6aa3c26c2c8",
                "EmployeeID":"7aa04979-ded5-44d9-b09a-793749425844",
                "StartDate":"\/Date(1572566400000)\/",
                "EndDate":"\/Date(1573084800000)\/", "Status":"APPROVED",
                "Hours":10.0000, "TimesheetLines":[ {
                "EarningsRateID":"ab874dfb-ab09-4c91-954e-43acf6fc23b4",
                "NumberOfUnits":[ 2.00, 2.00, 2.00, 2.00, 2.00, 0.00, 0.00 ],
                "UpdatedDateUTC":"\/Date(1572916045000+0000)\/" } ],
                "UpdatedDateUTC":"\/Date(1572916045000+0000)\/" } ] }'
              schema:
                $ref: "#/components/schemas/Timesheets"
          description: search results matching criteria
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIException"
          description: validation error for a bad request
      security:
        - OAuth2:
            - payroll.timesheets.read
      summary: Retrieves timesheets
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      operationId: createTimesheet
      requestBody:
        content:
          application/json:
            example: '[ { "EmployeeID":"b34e89ff-770d-4099-b7e5-f968767118bc",
              "StartDate":"/Date(1573171200000+0000)/",
              "EndDate":"/Date(1573689600000+0000)/", "Status":"DRAFT",
              "TimesheetLines":[ {
              "EarningsRateID":"ab874dfb-ab09-4c91-954e-43acf6fc23b4",
              "TrackingItemID":"af5e9ce2-2349-4136-be99-3561b189f473",
              "NumberOfUnits":[ 2.0, 10.0, 0.0, 0.0, 5.0, 0.0, 5.0 ] } ] } ]'
            schema:
              items:
                $ref: "#/components/schemas/Timesheet"
              type: array
        required: true
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"fa8416a1-e02b-4b6f-bad5-3c5a2dbba76e", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1573516185143)\/", "Timesheets":[ {
                "TimesheetID":"a7eb0a79-8511-4ee7-b473-3a25f28abcb9",
                "EmployeeID":"b34e89ff-770d-4099-b7e5-f968767118bc",
                "StartDate":"\/Date(1573171200000+0000)\/",
                "EndDate":"\/Date(1573689600000+0000)\/", "Status":"DRAFT",
                "Hours":22.0, "TimesheetLines":[ {
                "EarningsRateID":"ab874dfb-ab09-4c91-954e-43acf6fc23b4",
                "TrackingItemID":"af5e9ce2-2349-4136-be99-3561b189f473",
                "NumberOfUnits":[ 2.0, 10.0, 0.0, 0.0, 5.0, 0.0, 5.0 ],
                "UpdatedDateUTC":"\/Date(1573516185127+0000)\/" } ],
                "UpdatedDateUTC":"\/Date(1573516185127+0000)\/" } ] }'
              schema:
                $ref: "#/components/schemas/Timesheets"
          description: A successful request
        "400":
          description: invalid input, object invalid - TODO
      security:
        - OAuth2:
            - payroll.timesheets
      summary: Creates a timesheet
      tags:
        - PayrollAu
      x-hasPayrollAuProblem: true
  "/Timesheets/{TimesheetID}":
    get:
      operationId: getTimesheet
      parameters:
        - description: Timesheet id for single object
          in: path
          name: TimesheetID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"34f58840-6f35-442a-9da7-a487265a7767", "Status":"OK",
                "ProviderName":"java-sdk-oauth2-dev-02",
                "DateTimeUTC":"\/Date(1573516184161)\/", "Timesheet":{
                "TimesheetID":"df954ca3-3a70-47e9-9a3e-80711e7c5f90",
                "EmployeeID":"b34e89ff-770d-4099-b7e5-f968767118bc",
                "StartDate":"\/Date(1547164800000+0000)\/",
                "EndDate":"\/Date(1547683200000+0000)\/", "Status":"APPROVED",
                "Hours":15.0000, "TimesheetLines":[ {
                "EarningsRateID":"ab874dfb-ab09-4c91-954e-43acf6fc23b4",
                "NumberOfUnits":[ 3.00, 3.00, 3.00, 3.00, 0.00, 3.00, 0.00 ],
                "UpdatedDateUTC":"\/Date(1572915797000+0000)\/" } ],
                "UpdatedDateUTC":"\/Date(1572915797000+0000)\/" } }'
              schema:
                $ref: "#/components/schemas/TimesheetObject"
          description: search results matching criteria
      security:
        - OAuth2:
            - payroll.timesheets.read
      summary: Retrieves a timesheet by using a unique timesheet id
      tags:
        - PayrollAu
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    post:
      description: Update properties on a single timesheet
      operationId: updateTimesheet
      parameters:
        - description: Timesheet id for single object
          in: path
          name: TimesheetID
          required: true
          schema:
            example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            example: '[ { "EmployeeID":"b34e89ff-770d-4099-b7e5-f968767118bc",
              "StartDate":"/Date(1573171200000+0000)/",
              "EndDate":"/Date(1573689600000+0000)/", "Status":"APPROVED",
              "Hours":22.0,
              "TimesheetID":"a7eb0a79-8511-4ee7-b473-3a25f28abcb9",
              "TimesheetLines":[ {
              "EarningsRateID":"ab874dfb-ab09-4c91-954e-43acf6fc23b4",
              "TrackingItemID":"af5e9ce2-2349-4136-be99-3561b189f473",
              "NumberOfUnits":[ 2.0, 10.0, 0.0, 0.0, 5.0, 0.0, 5.0 ],
              "UpdatedDateUTC":"/Date(1573516185127+0000)/" } ] } ]'
            schema:
              items:
                $ref: "#/components/schemas/Timesheet"
              type: array
      responses:
        "200":
          content:
            application/json:
              example: '{ "Id":"42f97160-485a-400d-93e2-275f5b199694", "Status":"OK",
                "ProviderName":"3f93110a-df13-49c7-b82f-a069813df188",
                "DateTimeUTC":"\/Date(1573516185258)\/", "Timesheets":[ {
                "TimesheetID":"a7eb0a79-8511-4ee7-b473-3a25f28abcb9",
                "EmployeeID":"b34e89ff-770d-4099-b7e5-f968767118bc",
                "StartDate":"\/Date(1573171200000+0000)\/",
                "EndDate":"\/Date(1573689600000+0000)\/", "Status":"APPROVED",
                "Hours":22.0, "TimesheetLines":[ {
                "EarningsRateID":"ab874dfb-ab09-4c91-954e-43acf6fc23b4",
                "TrackingItemID":"af5e9ce2-2349-4136-be99-3561b189f473",
                "NumberOfUnits":[ 2.0, 10.0, 0.0, 0.0, 5.0, 0.0, 5.0 ],
                "UpdatedDateUTC":"\/Date(1573516185227+0000)\/" } ],
                "UpdatedDateUTC":"\/Date(1573516185227+0000)\/" } ] }'
              schema:
                $ref: "#/components/schemas/Timesheets"
          description: A successful request
      security:
        - OAuth2:
            - payroll.timesheets
      summary: Updates a timesheet
      tags:
        - PayrollAu
components:
  parameters:
    requiredHeader:
      description: Xero identifier for Tenant
      in: header
      name: Xero-Tenant-Id
      required: true
      schema:
        type: string
  schemas:
    APIException:
      description: The object returned for a bad request
      properties:
        ErrorNumber:
          description: The error number
          example: 16
          format: integer
          type: number
        Message:
          description: The message describing the error
          example: No property or field 'hi' exists in type 'Employee' (at index 0)
          type: string
        Type:
          description: The type of error
          example: QueryParseException
          type: string
      type: object
    Account:
      properties:
        AccountID:
          description: Xero identifier for accounts
          example: c56b19ef-75bf-45e8-98a4-e699a96609f7
          format: uuid
          type: string
        Code:
          description: Customer defined account code
          example: 420
          type: string
        Name:
          description: Name of account
          example: General expenses
          type: string
        Type:
          $ref: "#/components/schemas/AccountType"
      type: object
    AccountType:
      description: See Account Types
      enum:
        - BANK
        - CURRENT
        - CURRLIAB
        - DEPRECIATN
        - DIRECTCOSTS
        - EQUITY
        - EXPENSE
        - FIXED
        - INVENTORY
        - LIABILITY
        - NONCURRENT
        - OTHERINCOME
        - OVERHEADS
        - PREPAYMENT
        - REVENUE
        - SALES
        - TERMLIAB
        - PAYGLIABILITY
        - PAYG
        - SUPERANNUATIONEXPENSE
        - SUPERANNUATIONLIABILITY
        - WAGESEXPENSE
        - WAGESPAYABLELIABILITY
      type: string
    AllowanceType:
      enum:
        - CAR
        - TRANSPORT
        - TRAVEL
        - LAUNDRY
        - MEALS
        - JOBKEEPER
        - OTHER
      type: string
    BankAccount:
      properties:
        AccountName:
          description: The name of the account
          example: James Lebron Savings
          type: string
        AccountNumber:
          description: The account number
          example: 345678
          type: string
        Amount:
          description: Fixed amounts (for example, if an employee wants to have $100 of
            their salary transferred to one account, and the remaining amount to
            another)
          example: 200
          format: double
          type: number
          x-is-money: true
        BSB:
          description: The BSB number of the account
          example: 122344
          type: string
        Remainder:
          description: If this account is the Remaining bank account
          example: false
          type: boolean
        StatementText:
          description: The text that will appear on your employee's bank statement when
            they receive payment
          example: Salary
          type: string
      type: object
    CalendarType:
      enum:
        - WEEKLY
        - FORTNIGHTLY
        - FOURWEEKLY
        - MONTHLY
        - TWICEMONTHLY
        - QUARTERLY
      type: string
    DeductionLine:
      properties:
        Amount:
          description: Deduction type amount
          example: 10
          format: double
          type: number
          x-is-money: true
        CalculationType:
          $ref: "#/components/schemas/DeductionTypeCalculationType"
        DeductionTypeID:
          description: Xero deduction type identifier
          example: 59cd9d04-4521-4cc3-93ac-7841651ff407
          format: uuid
          type: string
        NumberOfUnits:
          description: Deduction number of units
          example: 10
          format: double
          type: number
          x-is-money: true
        Percentage:
          description: The Percentage of the Deduction
          example: 10
          format: double
          type: number
          x-is-money: true
      required:
        - DeductionTypeID
        - CalculationType
      type: object
    DeductionType:
      properties:
        AccountCode:
          description: See Accounts
          example: 720
          type: string
        CurrentRecord:
          description: Is the current record
          example: true
          type: boolean
        DeductionCategory:
          enum:
            - NONE
            - UNIONFEES
            - WORKPLACEGIVING
          type: string
        DeductionTypeID:
          description: Xero identifier
          example: e0eb6747-7c17-4075-b804-989f8d4e5d39
          format: uuid
          type: string
        IsExemptFromW1:
          description: Boolean to determine if the deduction type is reportable or exempt
            from W1
          example: false
          type: boolean
        Name:
          description: Name of the earnings rate (max length = 100)
          example: PTO
          maxLength: 100
          type: string
        ReducesSuper:
          description: Most deductions don’t reduce your superannuation guarantee
            contribution liability, so typically you will not set any value for
            this.
          example: false
          type: boolean
        ReducesTax:
          description: Indicates that this is a pre-tax deduction that will reduce the
            amount of tax you withhold from an employee.
          example: false
          type: boolean
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
      type: object
    DeductionTypeCalculationType:
      enum:
        - FIXEDAMOUNT
        - PRETAX
        - POSTTAX
      type: string
    EarningsLine:
      properties:
        Amount:
          description: Earnings rate amount
          example: 38
          format: double
          type: number
          x-is-money: true
        AnnualSalary:
          description: Annual salary for earnings line
          example: 40000
          format: double
          type: number
          x-is-money: true
        CalculationType:
          $ref: "#/components/schemas/EarningsRateCalculationType"
        EarningsRateID:
          description: Xero unique id for earnings rate
          example: 72e962d1-fcac-4083-8a71-742bb3e7ae14
          format: uuid
          type: string
        FixedAmount:
          description: Earnings rate amount. Only applicable if the EarningsRate RateType
            is Fixed
          example: 2.5
          format: double
          type: number
          x-is-money: true
        NormalNumberOfUnits:
          description: Normal number of units for EarningsLine. Applicable when RateType
            is "MULTIPLE"
          example: 38
          format: double
          type: number
          x-is-money: true
        NumberOfUnits:
          description: Earnings rate number of units.
          example: 2.5
          format: double
          type: number
          x-is-money: true
        NumberOfUnitsPerWeek:
          description: number of units for earning line
          example: 38
          format: double
          type: number
          x-is-money: true
        RatePerUnit:
          description: Rate per unit of the EarningsLine.
          example: 38
          format: double
          type: number
          x-is-money: true
      required:
        - EarningsRateID
      type: object
    EarningsRate:
      properties:
        AccountCode:
          description: See Accounts
          example: 720
          type: string
        AccrueLeave:
          description: Indicates that this earnings rate should accrue leave. Only
            applicable if RateType is MULTIPLE
          example: false
          type: boolean
        AllowanceType:
          $ref: "#/components/schemas/AllowanceType"
        Amount:
          description: Optional Amount for FIXEDAMOUNT RateType EarningsRate
          example: 50.3
          format: double
          type: number
          x-is-money: true
        CurrentRecord:
          description: Is the current record
          example: true
          type: boolean
        EarningsRateID:
          description: Xero identifier
          example: e0eb6747-7c17-4075-b804-989f8d4e5d39
          format: uuid
          type: string
        EarningsType:
          $ref: "#/components/schemas/EarningsType"
        EmploymentTerminationPaymentType:
          $ref: "#/components/schemas/EmploymentTerminationPaymentType"
        IsExemptFromSuper:
          description: See the ATO website for details of which payments are exempt from SGC
          example: false
          type: boolean
        IsExemptFromTax:
          description: Most payments are subject to tax, so you should only set this value
            if you are sure that a payment is exempt from PAYG withholding
          example: false
          type: boolean
        IsReportableAsW1:
          description: Boolean to determine if the earnings rate is reportable or exempt
            from W1
          example: false
          type: boolean
        Multiplier:
          description: This is the multiplier used to calculate the rate per unit, based
            on the employee’s ordinary earnings rate. For example, for time and
            a half enter 1.5. Only applicable if RateType is MULTIPLE
          example: 1.5
          format: double
          type: number
          x-is-money: true
        Name:
          description: Name of the earnings rate (max length = 100)
          example: PTO
          maxLength: 100
          type: string
        RatePerUnit:
          description: Default rate per unit (optional). Only applicable if RateType is
            RATEPERUNIT.
          example: 10
          type: string
        RateType:
          $ref: "#/components/schemas/RateType"
        TypeOfUnits:
          description: Type of units used to record earnings (max length = 50). Only When
            RateType is RATEPERUNIT
          example: Fixed
          maxLength: 50
          type: string
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
      type: object
    EarningsRateCalculationType:
      enum:
        - USEEARNINGSRATE
        - ENTEREARNINGSRATE
        - ANNUALSALARY
      type: string
    EarningsType:
      enum:
        - FIXED
        - ORDINARYTIMEEARNINGS
        - OVERTIMEEARNINGS
        - ALLOWANCE
        - LUMPSUMD
        - EMPLOYMENTTERMINATIONPAYMENT
        - LUMPSUMA
        - LUMPSUMB
        - BONUSESANDCOMMISSIONS
        - LUMPSUME
      type: string
    Employee:
      properties:
        BankAccounts:
          items:
            $ref: "#/components/schemas/BankAccount"
          type: array
        Classification:
          description: Employees classification
          example: 99383
          type: string
        DateOfBirth:
          description: Date of birth of the employee (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        Email:
          description: The email address for the employee
          example: developer@me.com
          type: string
        EmployeeGroupName:
          description: The Employee Group allows you to report on payroll expenses and
            liabilities for each group of employees
          example: marketing
          type: string
        EmployeeID:
          description: Xero unique identifier for an Employee
          example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
          format: uuid
          type: string
        FirstName:
          description: First name of employee
          example: Karen
          type: string
        Gender:
          description: The employee’s gender. See Employee Gender
          enum:
            - N
            - M
            - F
            - I
          example: F
          type: string
        HomeAddress:
          $ref: "#/components/schemas/HomeAddress"
        IsAuthorisedToApproveLeave:
          description: Authorised to approve other employees' leave requests
          example: false
          type: boolean
        IsAuthorisedToApproveTimesheets:
          description: Authorised to approve timesheets
          example: true
          type: boolean
        JobTitle:
          description: JobTitle of the employee
          example: Manager
          type: string
        LastName:
          description: Last name of employee
          example: Jones
          type: string
        LeaveBalances:
          items:
            $ref: "#/components/schemas/LeaveBalance"
          type: array
        LeaveLines:
          items:
            $ref: "#/components/schemas/LeaveLine"
          type: array
        MiddleNames:
          description: Middle name(s) of the employee
          example: Adena
          type: string
        Mobile:
          description: Employee mobile number
          example: 415-234-5678
          type: string
        OpeningBalances:
          $ref: "#/components/schemas/OpeningBalances"
        OrdinaryEarningsRateID:
          description: Xero unique identifier for earnings rate
          example: 5gj1e5cc-9835-40d5-bb18-09fdb118db9c
          format: uuid
          type: string
        PayTemplate:
          $ref: "#/components/schemas/PayTemplate"
        PayrollCalendarID:
          description: Xero unique identifier for payroll calendar for the employee
          example: 2ee8e5cc-9835-40d5-bb18-09fdb118db9c
          format: uuid
          type: string
        Phone:
          description: Employee phone number
          example: 415-555-1212
          type: string
        StartDate:
          description: Start date for an employee (YYYY-MM-DD)
          example: /Date(320284900000+0000)/
          type: string
          x-is-msdate: true
        Status:
          $ref: "#/components/schemas/EmployeeStatus"
        SuperMemberships:
          items:
            $ref: "#/components/schemas/SuperMembership"
          type: array
        TaxDeclaration:
          $ref: "#/components/schemas/TaxDeclaration"
        TerminationDate:
          description: Employee Termination Date (YYYY-MM-DD)
          example: /Date(1584662400000+0000)/
          type: string
          x-is-msdate: true
        Title:
          description: Title of the employee
          example: Mrs
          type: string
        TwitterUserName:
          description: Employee’s twitter name
          example: xeroapi
          type: string
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
        ValidationErrors:
          description: Displays array of validation error messages from the API
          items:
            $ref: "#/components/schemas/ValidationError"
          type: array
      required:
        - FirstName
        - LastName
        - DateOfBirth
      type: object
    EmployeeStatus:
      description: Employee Status Types
      enum:
        - ACTIVE
        - TERMINATED
      type: string
    Employees:
      properties:
        Employees:
          items:
            $ref: "#/components/schemas/Employee"
          type: array
      type: object
      x-isObjectArray: true
    EmploymentBasis:
      enum:
        - FULLTIME
        - PARTTIME
        - CASUAL
        - LABOURHIRE
        - SUPERINCOMESTREAM
      type: string
    EmploymentTerminationPaymentType:
      enum:
        - O
        - R
      type: string
    EntitlementFinalPayPayoutType:
      enum:
        - NOTPAIDOUT
        - PAIDOUT
      type: string
    HomeAddress:
      properties:
        AddressLine1:
          description: Address line 1 for employee home address
          example: 123 Main St
          type: string
        AddressLine2:
          description: Address line 2 for employee home address
          example: Apt 4
          type: string
        City:
          description: Suburb for employee home address
          example: St. Kilda
          type: string
        Country:
          description: Country of HomeAddress
          example: AUSTRALIA
          type: string
        PostalCode:
          description: PostCode for employee home address
          example: 3182
          type: string
        Region:
          $ref: "#/components/schemas/State"
      required:
        - AddressLine1
      type: object
    LeaveAccrualLine:
      properties:
        AutoCalculate:
          description: If you want to auto calculate leave.
          example: true
          type: boolean
        LeaveTypeID:
          description: Xero identifier for the Leave type.
          example: e0eb6747-7c17-4075-b804-989f8d4e5d39
          format: uuid
          type: string
        NumberOfUnits:
          description: Leave Accrual number of units
          example: 105.5
          format: double
          type: number
          x-is-money: true
      type: object
    LeaveApplication:
      properties:
        Description:
          description: The Description of the Leave
          example: My leave
          type: string
        EmployeeID:
          description: The Xero identifier for Payroll Employee
          example: fb4ebd68-6568-41eb-96ab-628a0f54b4b8
          format: uuid
          type: string
        EndDate:
          description: End date of the leave (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        LeaveApplicationID:
          description: The Xero identifier for Payroll Employee
          example: e0eb6747-7c17-4075-b804-989f8d4e5d39
          format: uuid
          type: string
        LeavePeriods:
          items:
            $ref: "#/components/schemas/LeavePeriod"
          type: array
        LeaveTypeID:
          description: The Xero identifier for Leave Type
          example: 742998cb-7584-4ecf-aa88-d694f59c50f9
          format: uuid
          type: string
        StartDate:
          description: Start date of the leave (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        Title:
          description: The title of the leave
          example: Annual Leave
          type: string
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
        ValidationErrors:
          description: Displays array of validation error messages from the API
          items:
            $ref: "#/components/schemas/ValidationError"
          type: array
      type: object
    LeaveApplications:
      properties:
        LeaveApplications:
          items:
            $ref: "#/components/schemas/LeaveApplication"
          type: array
      type: object
      x-isObjectArray: true
    LeaveBalance:
      properties:
        LeaveName:
          description: The name of the leave type
          example: Annual Leave
          type: string
        LeaveTypeID:
          description: Identifier of the leave type (see PayItems)
          example: 544d9292-4329-4512-bfff-a9f15236d776
          type: string
        NumberOfUnits:
          description: The balance of the leave available
          example: 81.2602
          format: double
          type: number
          x-is-money: true
        TypeOfUnits:
          description: The type of units as specified by the LeaveType (see PayItems)
          example: Hours
          type: string
      type: object
    LeaveEarningsLine:
      properties:
        EarningsRateID:
          description: Xero identifier
          example: e0eb6747-7c17-4075-b804-989f8d4e5d39
          format: uuid
          type: string
        NumberOfUnits:
          description: Earnings rate number of units.
          example: 2.5
          format: double
          type: number
          x-is-money: true
        RatePerUnit:
          description: Rate per unit of the EarningsLine.
          example: 38
          format: double
          type: number
          x-is-money: true
      type: object
    LeaveLine:
      properties:
        AnnualNumberOfUnits:
          description: Hours of leave accrued each year
          example: 2.5
          format: double
          type: number
          x-is-money: true
        CalculationType:
          $ref: "#/components/schemas/LeaveLineCalculationType"
        EmploymentTerminationPaymentType:
          $ref: "#/components/schemas/EmploymentTerminationPaymentType"
        EntitlementFinalPayPayoutType:
          $ref: "#/components/schemas/EntitlementFinalPayPayoutType"
        FullTimeNumberOfUnitsPerPeriod:
          description: Normal ordinary earnings number of units for leave line.
          example: 2.5
          format: double
          type: number
          x-is-money: true
        IncludeSuperannuationGuaranteeContribution:
          description: amount of leave line
          example: true
          type: boolean
        LeaveTypeID:
          description: Xero leave type identifier
          example: 742998cb-7584-4ecf-aa88-d694f59c50f9
          format: uuid
          type: string
        NumberOfUnits:
          description: Number of units for leave line.
          example: 2.5
          format: double
          type: number
          x-is-money: true
      type: object
    LeaveLineCalculationType:
      description: Calculation type for leave line for Opening Balance on Employee
      enum:
        - NOCALCULATIONREQUIRED
        - FIXEDAMOUNTEACHPERIOD
        - ENTERRATEINPAYTEMPLATE
        - BASEDONORDINARYEARNINGS
        - ""
      type: string
    LeaveLines:
      description: The leave type lines
      properties:
        Employee:
          items:
            $ref: "#/components/schemas/LeaveLine"
          type: array
      type: object
      x-isObjectArray: true
    LeavePeriod:
      properties:
        LeavePeriodStatus:
          $ref: "#/components/schemas/LeavePeriodStatus"
        NumberOfUnits:
          description: The Number of Units for the leave
          example: 22.8
          format: double
          type: number
          x-is-money: true
        PayPeriodEndDate:
          description: The Pay Period End Date (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        PayPeriodStartDate:
          description: The Pay Period Start Date (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
      type: object
    LeavePeriodStatus:
      enum:
        - SCHEDULED
        - PROCESSED
      type: string
    LeaveType:
      properties:
        CurrentRecord:
          description: Is the current record
          example: true
          type: boolean
        IsPaidLeave:
          description: Set this to indicate that an employee will be paid when taking this
            type of leave
          example: true
          type: boolean
        LeaveLoadingRate:
          description: Enter an amount here if your organisation pays an additional
            percentage on top of ordinary earnings when your employees take
            leave (typically 17.5%)
          example: 2
          format: double
          type: number
        LeaveTypeID:
          description: Xero identifier
          example: e0eb6747-7c17-4075-b804-989f8d4e5d39
          format: uuid
          type: string
        Name:
          description: Name of the earnings rate (max length = 100)
          example: PTO
          maxLength: 100
          type: string
        NormalEntitlement:
          description: The number of units the employee is entitled to each year
          example: 152
          format: double
          type: number
        ShowOnPayslip:
          description: Set this if you want a balance for this leave type to be shown on
            your employee’s payslips
          example: true
          type: boolean
        TypeOfUnits:
          description: The type of units by which leave entitlements are normally tracked.
            These are typically the same as the type of units used for the
            employee’s ordinary earnings rate
          example: Hours
          type: string
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
      type: object
    LeaveTypeContributionType:
      enum:
        - SGC
        - SALARYSACRIFICE
        - EMPLOYERADDITIONAL
        - EMPLOYEE
      type: string
    ManualTaxType:
      enum:
        - PAYGMANUAL
        - ETPOMANUAL
        - ETPRMANUAL
        - SCHEDULE5MANUAL
        - SCHEDULE5STSLMANUAL
      type: string
    OpeningBalances:
      properties:
        DeductionLines:
          items:
            $ref: "#/components/schemas/DeductionLine"
          type: array
        EarningsLines:
          items:
            $ref: "#/components/schemas/EarningsLine"
          type: array
        LeaveLines:
          items:
            $ref: "#/components/schemas/LeaveLine"
          type: array
        OpeningBalanceDate:
          description: Opening Balance Date. (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        ReimbursementLines:
          items:
            $ref: "#/components/schemas/ReimbursementLine"
          type: array
        SuperLines:
          items:
            $ref: "#/components/schemas/SuperLine"
          type: array
        Tax:
          description: Opening Balance tax
          example: 4333d5cd-53a5-4c31-98e5-a8b4e5676b0b
          type: string
      type: object
    PayItem:
      properties:
        DeductionTypes:
          items:
            $ref: "#/components/schemas/DeductionType"
          type: array
        EarningsRates:
          items:
            $ref: "#/components/schemas/EarningsRate"
          type: array
        LeaveTypes:
          items:
            $ref: "#/components/schemas/LeaveType"
          type: array
        ReimbursementTypes:
          items:
            $ref: "#/components/schemas/ReimbursementType"
          type: array
      type: object
    PayItems:
      properties:
        PayItems:
          $ref: "#/components/schemas/PayItem"
      type: object
      x-isObjectArray: true
    PayRun:
      properties:
        Deductions:
          description: The total Deductions for the Payrun
          example: 0
          format: double
          type: number
          x-is-money: true
        NetPay:
          description: The total NetPay for the Payrun
          example: 862.5
          format: double
          type: number
          x-is-money: true
        PayRunID:
          description: Xero identifier for pay run
          example: bba1d10f-63b1-4692-b5c5-a99f869523a4
          format: uuid
          type: string
        PayRunPeriodEndDate:
          description: Period End Date for the PayRun (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        PayRunPeriodStartDate:
          description: Period Start Date for the PayRun (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        PayRunStatus:
          $ref: "#/components/schemas/PayRunStatus"
        PaymentDate:
          description: Payment Date for the PayRun (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        PayrollCalendarID:
          description: Xero identifier for pay run
          example: bfac31bd-ea62-4fc8-a5e7-7965d9504b15
          format: uuid
          type: string
        PayslipMessage:
          description: Payslip message for the PayRun
          example: Thanks for being awesome
          type: string
        Payslips:
          description: The payslips in the payrun
          items:
            $ref: "#/components/schemas/PayslipSummary"
          type: array
        Reimbursement:
          description: The total Reimbursements for the Payrun
          example: 0
          format: double
          type: number
          x-is-money: true
        Super:
          description: The total Super for the Payrun
          example: 75.6
          format: double
          type: number
          x-is-money: true
        Tax:
          description: The total Tax for the Payrun
          example: 198
          format: double
          type: number
          x-is-money: true
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
        ValidationErrors:
          description: Displays array of validation error messages from the API
          items:
            $ref: "#/components/schemas/ValidationError"
          type: array
        Wages:
          description: The total Wages for the Payrun
          example: 1060.5
          format: double
          type: number
          x-is-money: true
      required:
        - PayrollCalendarID
      type: object
    PayRunStatus:
      enum:
        - DRAFT
        - POSTED
      type: string
    PayRuns:
      properties:
        PayRuns:
          items:
            $ref: "#/components/schemas/PayRun"
          type: array
      type: object
      x-isObjectArray: true
    PayTemplate:
      properties:
        DeductionLines:
          items:
            $ref: "#/components/schemas/DeductionLine"
          type: array
        EarningsLines:
          items:
            $ref: "#/components/schemas/EarningsLine"
          type: array
        LeaveLines:
          items:
            $ref: "#/components/schemas/LeaveLine"
          type: array
        ReimbursementLines:
          items:
            $ref: "#/components/schemas/ReimbursementLine"
          type: array
        SuperLines:
          items:
            $ref: "#/components/schemas/SuperLine"
          type: array
      type: object
    PaymentFrequencyType:
      enum:
        - WEEKLY
        - MONTHLY
        - FORTNIGHTLY
        - QUARTERLY
        - TWICEMONTHLY
        - FOURWEEKLY
        - YEARLY
      type: string
    PayrollCalendar:
      properties:
        CalendarType:
          $ref: "#/components/schemas/CalendarType"
        Name:
          description: Name of the Payroll Calendar
          example: Fortnightly Calendar
          type: string
        PaymentDate:
          description: The date on which employees will be paid for the upcoming pay
            period (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        PayrollCalendarID:
          description: Xero identifier
          example: e0eb6747-7c17-4075-b804-989f8d4e5d39
          format: uuid
          type: string
        StartDate:
          description: The start date of the upcoming pay period. The end date will be
            calculated based upon this date, and the calendar type selected
            (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
        ValidationErrors:
          description: Displays array of validation error messages from the API
          items:
            $ref: "#/components/schemas/ValidationError"
          type: array
      type: object
    PayrollCalendars:
      properties:
        PayrollCalendars:
          items:
            $ref: "#/components/schemas/PayrollCalendar"
          type: array
      type: object
      x-isObjectArray: true
    Payslip:
      properties:
        DeductionLines:
          items:
            $ref: "#/components/schemas/DeductionLine"
          type: array
        Deductions:
          description: The Deductions for the Payslip
          example: 0
          format: double
          type: number
          x-is-money: true
        EarningsLines:
          items:
            $ref: "#/components/schemas/EarningsLine"
          type: array
        EmployeeID:
          description: The Xero identifier for an employee
          example: 4729f087-8eec-49c1-8294-4d11a5a0a37c
          format: uuid
          type: string
        FirstName:
          description: First name of employee
          example: Karen
          type: string
        LastName:
          description: Last name of employee
          example: Jones
          type: string
        LeaveAccrualLines:
          items:
            $ref: "#/components/schemas/LeaveAccrualLine"
          type: array
        LeaveEarningsLines:
          items:
            $ref: "#/components/schemas/LeaveEarningsLine"
          type: array
        NetPay:
          description: The NetPay for the Payslip
          example: 862.5
          format: double
          type: number
          x-is-money: true
        PayslipID:
          description: Xero identifier for the payslip
          example: f3c0874d-7cdd-459a-a95c-d90d51decc42
          format: uuid
          type: string
        ReimbursementLines:
          items:
            $ref: "#/components/schemas/ReimbursementLine"
          type: array
        Reimbursements:
          description: The Reimbursements for the Payslip
          example: 0
          format: double
          type: number
          x-is-money: true
        Super:
          description: The Super for the Payslip
          example: 75.6
          format: double
          type: number
          x-is-money: true
        SuperannuationLines:
          items:
            $ref: "#/components/schemas/SuperannuationLine"
          type: array
        Tax:
          description: The Tax for the Payslip
          example: 198
          format: double
          type: number
          x-is-money: true
        TaxLines:
          items:
            $ref: "#/components/schemas/TaxLine"
          type: array
        TimesheetEarningsLines:
          items:
            $ref: "#/components/schemas/EarningsLine"
          type: array
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
        Wages:
          description: The Wages for the Payslip
          example: 1060.5
          format: double
          type: number
          x-is-money: true
      type: object
    PayslipLines:
      properties:
        DeductionLines:
          items:
            $ref: "#/components/schemas/DeductionLine"
          type: array
        EarningsLines:
          items:
            $ref: "#/components/schemas/EarningsLine"
          type: array
        LeaveAccrualLines:
          items:
            $ref: "#/components/schemas/LeaveAccrualLine"
          type: array
        LeaveEarningsLines:
          items:
            $ref: "#/components/schemas/LeaveEarningsLine"
          type: array
        ReimbursementLines:
          items:
            $ref: "#/components/schemas/ReimbursementLine"
          type: array
        SuperannuationLines:
          items:
            $ref: "#/components/schemas/SuperannuationLine"
          type: array
        TaxLines:
          items:
            $ref: "#/components/schemas/TaxLine"
          type: array
        TimesheetEarningsLines:
          items:
            $ref: "#/components/schemas/EarningsLine"
          type: array
      type: object
    PayslipObject:
      properties:
        Payslip:
          $ref: "#/components/schemas/Payslip"
      type: object
    PayslipSummary:
      properties:
        Deductions:
          description: The Deductions for the Payslip
          example: 0
          format: double
          type: number
          x-is-money: true
        EmployeeGroup:
          description: Employee group name
          example: Marketing
          type: string
        EmployeeID:
          description: The Xero identifier for an employee
          example: 4729f087-8eec-49c1-8294-4d11a5a0a37c
          format: uuid
          type: string
        FirstName:
          description: First name of employee
          example: Karen
          type: string
        LastName:
          description: Last name of employee
          example: Jones
          type: string
        NetPay:
          description: The NetPay for the Payslip
          example: 862.5
          format: double
          type: number
          x-is-money: true
        PayslipID:
          description: Xero identifier for the payslip
          example: f3c0874d-7cdd-459a-a95c-d90d51decc42
          format: uuid
          type: string
        Reimbursements:
          description: The Reimbursements for the Payslip
          example: 0
          format: double
          type: number
          x-is-money: true
        Super:
          description: The Super for the Payslip
          example: 75.6
          format: double
          type: number
          x-is-money: true
        Tax:
          description: The Tax for the Payslip
          example: 198
          format: double
          type: number
          x-is-money: true
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
        Wages:
          description: The Wages for the Payslip
          example: 1060.5
          format: double
          type: number
          x-is-money: true
      type: object
    Payslips:
      properties:
        Payslips:
          items:
            $ref: "#/components/schemas/Payslip"
          type: array
      type: object
      x-isObjectArray: true
    RateType:
      enum:
        - FIXEDAMOUNT
        - MULTIPLE
        - RATEPERUNIT
      type: string
    ReimbursementLine:
      properties:
        Amount:
          description: Reimbursement type amount
          example: 10
          format: double
          type: number
          x-is-money: true
        Description:
          description: Reimbursement lines description (max length 50)
          example: For the taxi
          maxLength: 50
          type: string
        ExpenseAccount:
          description: Reimbursement expense account. For posted pay run you should be
            able to see expense account code.
          example: 420
          type: string
        ReimbursementTypeID:
          description: Xero reimbursement type identifier
          example: bd246b96-c637-4767-81cf-851ba8fa93c2
          format: uuid
          type: string
      type: object
    ReimbursementLines:
      description: The reimbursement type lines
      properties:
        ReimbursementLines:
          items:
            $ref: "#/components/schemas/ReimbursementLine"
          type: array
      type: object
      x-isObjectArray: true
    ReimbursementType:
      properties:
        AccountCode:
          description: See Accounts
          example: 720
          type: string
        CurrentRecord:
          description: Is the current record
          example: true
          type: boolean
        Name:
          description: Name of the earnings rate (max length = 100)
          example: PTO
          maxLength: 100
          type: string
        ReimbursementTypeID:
          description: Xero identifier
          example: e0eb6747-7c17-4075-b804-989f8d4e5d39
          format: uuid
          type: string
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
      type: object
    ResidencyStatus:
      enum:
        - AUSTRALIANRESIDENT
        - FOREIGNRESIDENT
        - WORKINGHOLIDAYMAKER
      type: string
    Settings:
      properties:
        Accounts:
          description: Payroll Account details for SuperExpense, SuperLiabilty,
            WagesExpense, PAYGLiability & WagesPayable.
          items:
            $ref: "#/components/schemas/Account"
          type: array
        DaysInPayrollYear:
          description: Number of days in the Payroll year
          example: 365
          format: int32
          type: integer
        TrackingCategories:
          description: Tracking categories for Employees and Timesheets
          properties:
            EmployeeGroups:
              description: The tracking category used for employees
              properties:
                TrackingCategoryID:
                  description: The identifier for the tracking category
                  example: e0eb6747-7c17-4075-b804-989f8d4e5d39
                  format: uuid
                  type: string
                TrackingCategoryName:
                  description: Name of the tracking category
                  type: string
              type: object
            TimesheetCategories:
              description: The tracking category used for timesheets
              properties:
                TrackingCategoryID:
                  description: The identifier for the tracking category
                  example: e0eb6747-7c17-4075-b804-989f8d4e5d39
                  format: uuid
                  type: string
                TrackingCategoryName:
                  description: Name of the tracking category
                  type: string
              type: object
          type: object
      type: object
    SettingsObject:
      properties:
        Settings:
          $ref: "#/components/schemas/Settings"
      type: object
    State:
      description: State abbreviation for employee home address
      enum:
        - ACT
        - NSW
        - NT
        - QLD
        - SA
        - TAS
        - VIC
        - WA
      example: VIC
      type: string
    SuperFund:
      properties:
        ABN:
          description: ABN of the self managed super fund
          example: 40022701955
          type: string
        AccountName:
          description: The account name for the self managed super fund.
          example: Money account
          type: string
        AccountNumber:
          description: The account number for the self managed super fund.
          example: 234234234
          type: string
        BSB:
          description: BSB of the self managed super fund
          example: 234324
          type: string
        ElectronicServiceAddress:
          description: The electronic service address for the self managed super fund.
          example: 12345678
          type: string
        EmployerNumber:
          description: Some funds assign a unique number to each employer
          example: 324324
          type: string
        Name:
          description: Name of the super fund
          example: MLC Navigator Retirement Plan - Superannuation Service (including
            Series 2) (MLC Superannuation Fund)
          type: string
        SPIN:
          description: The SPIN of the Regulated SuperFund. This field has been
            deprecated. It will only be present for legacy superfunds. New
            superfunds will not have a SPIN value. The USI field should be used
            instead of SPIN.
          example: 4545445454
          type: string
        SuperFundID:
          description: Xero identifier for a super fund
          example: bfac31bd-ea62-4fc8-a5e7-7965d9504b15
          format: uuid
          type: string
        Type:
          $ref: "#/components/schemas/SuperFundType"
        USI:
          description: The USI of the Regulated SuperFund
          example: 40022701955001
          type: string
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
        ValidationErrors:
          description: Displays array of validation error messages from the API
          items:
            $ref: "#/components/schemas/ValidationError"
          type: array
      required:
        - Type
      type: object
    SuperFundProduct:
      properties:
        ABN:
          description: The ABN of the Regulated SuperFund
          example: 839182848805
          type: string
        ProductName:
          description: The name of the Regulated SuperFund
          example: MLC Navigator Retirement Plan - Superannuation Service (including
            Series 2) (MLC Superannuation Fund)
          type: string
        SPIN:
          description: The SPIN of the Regulated SuperFund. This field has been
            deprecated. New superfunds will not have a SPIN value. The USI field
            should be used instead of SPIN
          example: NML0117AU
          type: string
        USI:
          description: The USI of the Regulated SuperFund
          example: 839182848805001
          type: string
      type: object
    SuperFundProducts:
      properties:
        SuperFundProducts:
          items:
            $ref: "#/components/schemas/SuperFundProduct"
          type: array
      type: object
      x-isObjectArray: true
    SuperFundType:
      enum:
        - REGULATED
        - SMSF
      type: string
    SuperFunds:
      properties:
        SuperFunds:
          items:
            $ref: "#/components/schemas/SuperFund"
          type: array
      type: object
      x-isObjectArray: true
    SuperLine:
      properties:
        Amount:
          description: Super membership amount
          example: 10
          format: double
          type: number
          x-is-money: true
        CalculationType:
          $ref: "#/components/schemas/SuperannuationCalculationType"
        ContributionType:
          $ref: "#/components/schemas/SuperannuationContributionType"
        ExpenseAccountCode:
          description: expense account code
          example: 478
          type: string
        LiabilityAccountCode:
          description: liabilty account code
          example: 826
          type: string
        MinimumMonthlyEarnings:
          description: amount of minimum earnings
          example: 450
          format: double
          type: number
          x-is-money: true
        Percentage:
          description: percentage for super line
          example: 9
          format: double
          type: number
          x-is-money: true
        SuperMembershipID:
          description: Xero super membership ID
          example: 4333d5cd-53a5-4c31-98e5-a8b4e5676b0b
          format: uuid
          type: string
      type: object
    SuperMembership:
      properties:
        EmployeeNumber:
          description: The membership number assigned to the employee by the super fund.
          example: 1234
          type: string
        SuperFundID:
          description: Xero identifier for super fund
          example: 2187a42b-639a-45cb-9eed-cd4ae488306a
          format: uuid
          type: string
        SuperMembershipID:
          description: Xero unique identifier for Super membership
          example: 4333d5cd-53a5-4c31-98e5-a8b4e5676b0b
          format: uuid
          type: string
      required:
        - SuperFundID
        - EmployeeNumber
      type: object
    SuperannuationCalculationType:
      enum:
        - FIXEDAMOUNT
        - PERCENTAGEOFEARNINGS
        - STATUTORY
      type: string
    SuperannuationContributionType:
      enum:
        - SGC
        - SALARYSACRIFICE
        - EMPLOYERADDITIONAL
        - EMPLOYEE
      type: string
    SuperannuationLine:
      properties:
        Amount:
          description: Superannuation amount
          example: 10.5
          format: double
          type: number
          x-is-money: true
        CalculationType:
          $ref: "#/components/schemas/SuperannuationCalculationType"
        ContributionType:
          $ref: "#/components/schemas/SuperannuationContributionType"
        ExpenseAccountCode:
          description: Superannuation expense account code.
          example: 450
          type: string
        LiabilityAccountCode:
          description: Superannuation liability account code
          example: 650
          type: string
        MinimumMonthlyEarnings:
          description: Superannuation minimum monthly earnings.
          example: 100.5
          format: double
          type: number
          x-is-money: true
        PaymentDateForThisPeriod:
          description: Superannuation payment date for the current period (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        Percentage:
          description: Superannuation percentage
          example: 4
          format: double
          type: number
          x-is-money: true
        SuperMembershipID:
          description: Xero identifier for payroll super fund membership ID.
          example: e0eb6747-7c17-4075-b804-989f8d4e5d39
          format: uuid
          type: string
      type: object
    TFNExemptionType:
      enum:
        - NOTQUOTED
        - PENDING
        - PENSIONER
        - UNDER18
      type: string
    TaxDeclaration:
      properties:
        ApprovedWithholdingVariationPercentage:
          description: If the employee has approved withholding variation. e.g (0 - 100)
          example: 75
          format: int
          type: number
        AustralianResidentForTaxPurposes:
          description: If the employee is Australian resident for tax purposes. e.g true
            or false
          example: true
          type: boolean
        EligibleToReceiveLeaveLoading:
          description: If the employee is eligible to receive an additional percentage on
            top of ordinary earnings when they take leave (typically 17.5%). e.g
            true or false
          example: false
          type: boolean
        EmployeeID:
          description: Address line 1 for employee home address
          example: 123 Main St
          format: uuid
          type: string
        EmploymentBasis:
          $ref: "#/components/schemas/EmploymentBasis"
        HasHELPDebt:
          description: If employee has HECS or HELP debt. e.g true or false
          example: false
          type: boolean
        HasSFSSDebt:
          description: If employee has financial supplement debt. e.g true or false
          example: false
          type: boolean
        HasStudentStartupLoan:
          description: If the employee is eligible for student startup loan rules
          example: true
          type: boolean
        HasTradeSupportLoanDebt:
          description: If employee has trade support loan. e.g true or false
          example: false
          type: boolean
        ResidencyStatus:
          $ref: "#/components/schemas/ResidencyStatus"
        TFNExemptionType:
          $ref: "#/components/schemas/TFNExemptionType"
        TaxFileNumber:
          description: The tax file number e.g 123123123.
          example: 123123123
          type: string
        TaxFreeThresholdClaimed:
          description: If tax free threshold claimed. e.g true or false
          example: false
          type: boolean
        TaxOffsetEstimatedAmount:
          description: If has tax offset estimated then the tax offset estimated amount.
            e.g 100
          example: 100
          format: int
          type: number
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
        UpwardVariationTaxWithholdingAmount:
          description: If the employee has requested that additional tax be withheld each
            pay run. e.g 50
          example: 50
          format: int
          type: number
      type: object
    TaxLine:
      properties:
        Amount:
          description: The tax line amount
          example: 50
          format: double
          type: number
          x-is-money: true
        Description:
          description: Description of the tax line.
          type: string
        LiabilityAccount:
          description: The tax line liability account code. For posted pay run you should
            be able to see liability account code
          example: 620
          type: string
        ManualTaxType:
          $ref: "#/components/schemas/ManualTaxType"
        PayslipTaxLineID:
          description: Xero identifier for payslip tax line ID.
          example: e0eb6747-7c17-4075-b804-989f8d4e5d39
          format: uuid
          type: string
        TaxTypeName:
          description: Name of the tax type.
          example: Manual Adjustment
          type: string
      type: object
    Timesheet:
      properties:
        EmployeeID:
          description: The Xero identifier for an employee
          example: 72a0d0c2-0cf8-4f0b-ade1-33231f47b41b
          format: uuid
          type: string
        EndDate:
          description: Period end date (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        Hours:
          description: Timesheet total hours
          example: 31
          format: double
          type: number
          x-is-money: true
        StartDate:
          description: Period start date (YYYY-MM-DD)
          example: /Date(322560000000+0000)/
          type: string
          x-is-msdate: true
        Status:
          $ref: "#/components/schemas/TimesheetStatus"
        TimesheetID:
          description: The Xero identifier for a Payroll Timesheet
          example: 049765fc-4506-48fb-bf88-3578dec0ec47
          format: uuid
          type: string
        TimesheetLines:
          $ref: "#/components/schemas/TimesheetLines"
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
        ValidationErrors:
          description: Displays array of validation error messages from the API
          items:
            $ref: "#/components/schemas/ValidationError"
          type: array
      required:
        - EmployeeID
        - StartDate
        - EndDate
      type: object
    TimesheetLine:
      properties:
        EarningsRateID:
          description: The Xero identifier for an Earnings Rate
          example: 966c5c77-2ef0-4320-b6a9-6c27b080ecc5
          format: uuid
          type: string
        NumberOfUnits:
          description: The number of units on a timesheet line
          items:
            description: Number of units of a Timesheet line
            example: 3
            format: double
            type: number
          type: array
        TrackingItemID:
          description: The Xero identifier for a Tracking Category. The TrackingOptionID
            must belong to the TrackingCategory selected as TimesheetCategories
            under Payroll Settings.
          example: ae777a87-5ef3-4fa0-a4f0-d10e1f13073a
          format: uuid
          type: string
        UpdatedDateUTC:
          description: Last modified timestamp
          example: /Date(1583967733054+0000)/
          readOnly: true
          type: string
          x-is-msdate-time: true
      type: object
    TimesheetLines:
      items:
        $ref: "#/components/schemas/TimesheetLine"
      type: array
    TimesheetObject:
      properties:
        Timesheet:
          $ref: "#/components/schemas/Timesheet"
      type: object
    TimesheetStatus:
      enum:
        - DRAFT
        - PROCESSED
        - APPROVED
        - REJECTED
        - REQUESTED
      type: string
    Timesheets:
      properties:
        Timesheets:
          items:
            $ref: "#/components/schemas/Timesheet"
          type: array
      type: object
      x-isObjectArray: true
    ValidationError:
      externalDocs:
        url: https://developer.xero.com/documentation/api/http-response-codes
      properties:
        Message:
          description: Validation error message
          type: string
      type: object
  securitySchemes:
    OAuth2:
      description: For more information visit
        https://developer.xero.com/documentation/oauth2/overview
      flows:
        authorizationCode:
          authorizationUrl: https://login.xero.com/identity/connect/authorize
          scopes:
            accounting.attachments: Grant read-write access to attachments
            accounting.attachments.read: Grant read-only access to attachments
            accounting.contacts: Grant read-write access to contacts and contact groups
            accounting.contacts.read: Grant read-only access to contacts and contact groups
            accounting.journals.read: Grant read-only access to journals
            accounting.reports.read: Grant read-only access to accounting reports
            accounting.settings: Grant read-write access to organisation and account settings
            accounting.settings.read: Grant read-only access to organisation and account settings
            accounting.transactions: Grant read-write access to bank transactions, credit
              notes, invoices, repeating invoices
            accounting.transactions.read: Grant read-only access to invoices
            assets assets.read: Grant read-only access to fixed assets
            bankfeeds: Grant read-write access to bankfeeds
            email: Grant read-only access to your email
            files: Grant read-write access to files and folders
            files.read: Grant read-only access to files and folders
            openid: Grant read-only access to your open id
            paymentservices: Grant read-write access to payment services
            payroll: Grant read-write access to payroll
            payroll.employees: Grant read-write access to payroll employees
            payroll.employees.read: Grant read-only access to payroll employees
            payroll.leaveapplications: Grant read-write access to payroll leaveapplications
            payroll.leaveapplications.read: Grant read-only access to payroll leaveapplications
            payroll.payitems: Grant read-write access to payroll payitems
            payroll.payitems.read: Grant read-only access to payroll payitems
            payroll.payrollcalendars: Grant read-write access to payroll calendars
            payroll.payrollcalendars.read: Grant read-only access to payroll calendars
            payroll.payruns: Grant read-write access to payroll payruns
            payroll.payruns.read: Grant read-only access to payroll payruns
            payroll.payslip: Grant read-write access to payroll payslips
            payroll.payslip.read: Grant read-only access to payroll payslips
            payroll.read: Grant read-only access to payroll
            payroll.settings.read: Grant read-only access to payroll settings
            payroll.superfundproducts.read: Grant read-only access to payroll superfundproducts
            payroll.superfunds: Grant read-write access to payroll superfunds
            payroll.superfunds.read: Grant read-only access to payroll superfunds
            payroll.timesheets: Grant read-write access to payroll timesheets
            payroll.timesheets.read: Grant read-only access to payroll timesheets
            profile: your profile information
            projects: Grant read-write access to projects
            projects.read: Grant read-only access to projects
          tokenUrl: https://identity.xero.com/connect/token
      type: oauth2
