openapi: 3.0.0 info: version: 6.3.0 title: Xero Payroll UK description: This is the Xero Payroll API for orgs in the UK region. termsOfService: https://developer.xero.com/xero-developer-platform-terms-conditions/ contact: name: Xero Platform Team email: api@xero.com url: https://developer.xero.com tags: - name: PayrollUk servers: - description: Xero Payroll UK API url: https://api.xero.com/payroll.xro/2.0 paths: /Employees: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployees x-hasPayrollUkProblem: true summary: Retrieves employees parameters: - in: query name: filter description: Filter by first name, lastname, and/or whether they are an off-payroll worker schema: type: string example: firstName==John,lastName==Smith,isOffPayrollWorker==false - in: query name: page description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. schema: type: integer example: 5 responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/Employees' example: id: 1a14e877-773d-4cd3-b253-f559a4b4be65 providerName: provider-name dateTimeUTC: 2020-03-24T18:43:43.860852 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 3 problem: null employees: - employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 firstName: Jack lastName: Allan dateOfBirth: 1987-12-23T00:00:00 gender: M email: null phoneNumber: null startDate: 2020-02-03T00:00:00 address: addressLine1: 171 Midsummer Boulevard addressLine2: null city: Milton Keynes county: null countryName: UNITED KINGDOM postCode: MK9 1EB payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe updatedDateUTC: 2020-02-13T16:23:31 createdDateUTC: 2020-02-10T10:00:24 endDate: null isOffPayrollWorker: false - employeeID: 67e545d4-e8a6-4f98-9f63-85c2383dfe12 firstName: Charlotte lastName: Danes dateOfBirth: 1993-10-24T00:00:00 gender: F email: null phoneNumber: null startDate: 2020-02-03T00:00:00 address: addressLine1: 171 Midsummer Blvd addressLine2: null city: Milton Keynes county: null countryName: UNITED KINGDOM postCode: MK9 1EB payrollCalendarID: 5e813d9e-949c-461f-8a89-e9ee8955a254 updatedDateUTC: 2020-02-13T16:48:51 createdDateUTC: 2020-02-13T16:32:12 endDate: null isOffPayrollWorker: false - employeeID: eb4a0c3b-b0d6-440d-bccc-348b7dc92321 firstName: Chelsea lastName: Serati dateOfBirth: 1976-02-16T00:00:00 gender: F email: null phoneNumber: null startDate: 2019-07-02T00:00:00 address: addressLine1: 171 Midsummer Boulevard addressLine2: null city: Milton Keynes county: null countryName: UNITED KINGDOM postCode: MK9 1EB payrollCalendarID: d45bc68f-59d6-4000-929d-1058dcfa79e1 updatedDateUTC: 2020-02-13T16:53:12 createdDateUTC: 2020-02-13T16:46:41 endDate: null isOffPayrollWorker: false "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' post: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: createEmployee x-hasPayrollUkProblem: true x-example: - dateOfBirthValue: key: dateOfBirth keyPascal: DateOfBirth keySnake: date_of_birth is_date: true object: employee java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2000, Month.OCTOBER, 28) java: LocalDate.of(2000, Month.OCTOBER, 28) csharp: new DateTime(2000, 10, 10) php: new DateTime('2000-10-28') node: '''2000-10-28''' python: dateutil.parser.parse('2000-10-28T00:00:00Z') ruby: '''YYYY-MM-DD''' - Address: key: address keyPascal: Address keySnake: address is_object: true - addressLine1: key: addressLine1 keyPascal: AddressLine1 keySnake: address_line_1 default: 123 Test st object: address - city: key: city keyPascal: City keySnake: city object: address default: Rangiora - postCode: key: postCode keyPascal: PostCode keySnake: post_code object: address default: 7400 - countryName: key: countryName keyPascal: CountryName keySnake: country_name default: UNITED KINGDOM object: address is_last: true - employee: key: employee keyPascal: Employee is_object: true - firstName: key: firstName keyPascal: FirstName keySnake: first_name default: Adam object: employee - lastName: key: lastName keyPascal: LastName keySnake: last_name default: Adamson object: employee - dateOfBirth: is_variable: true nonString: true key: dateOfBirth keyPascal: DateOfBirth keySnake: date_of_birth default: dateOfBirth python: date_of_birth ruby: date_of_birth object: employee - setHomeAddress: is_last: true is_variable: true nonString: true key: address keyPascal: Address default: address python: address ruby: address object: employee summary: Creates employees parameters: - $ref: '#/components/parameters/idempotencyKey' responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeObject' example: id: 660ff206-fc4a-42f5-8f7d-de886bc2a3d3 providerName: provider-name dateTimeUTC: 2020-03-25T03:12:10.406476 httpStatusCode: OK pagination: null problem: null employee: employeeID: 316146c7-26a4-4065-b9bd-346d0557ea96 title: Mr firstName: Mike lastName: Fancy dateOfBirth: 1999-01-01T00:00:00 gender: M email: mike@starkindustries.com phoneNumber: null startDate: null nationalInsuranceNumber: null isOffPayrollWorker: false address: addressLine1: 171 Midsummer addressLine2: null city: Milton Keyness county: null countryName: null postCode: MK9 1EB payrollCalendarID: null updatedDateUTC: 2020-03-25T03:12:10 createdDateUTC: 2020-03-25T03:12:10 niCategory: null employeeNumber: null endDate: null "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Employee' example: title: Mr firstName: Mike lastName: Fancy dateOfBirth: 1999-01-01T00:00:00 gender: M email: mike@starkindustries.com isOffPayrollWorker: false address: addressLine1: 171 Midsummer city: Milton Keyness postCode: MK9 1EB /Employees/{EmployeeID}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployee x-hasPayrollUkProblem: true summary: Retrieves specific employees by using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeObject' example: id: 9414291b-a8c6-08fa-b165-9b30b1e6aab5 providerName: '!YLT5Y' dateTimeUTC: 2018-04-09T05:15:18.1011141 httpStatusCode: OK pagination: null problem: null employee: employeeID: d17e008e-3381-45c0-b50c-2fab7757e503 title: Mr. firstName: Edgar lastName: Allan Po dateOfBirth: 1985-03-24T00:00:00 gender: M email: tester1@gmail.com phoneNumber: "0400123456" nationalInsuranceNumber: AB123456C isOffPayrollWorker: false address: addressLine1: 171 Midsummer addressLine2: null city: Milton Keyness county: null countryName: UNITED KINGDOM postCode: MK9 1EB payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe updatedDateUTC: 2017-05-12T10:00:24 createdDateUTC: 2017-05-12T10:00:24 endDate: null put: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: updateEmployee x-hasPayrollUkProblem: true summary: Updates a specific employee's detail x-example: - dateOfBirthValue: key: dateOfBirth keyPascal: DateOfBirth keySnake: date_of_birth is_date: true object: employee java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2000, Month.OCTOBER, 28) java: LocalDate.of(2000, Month.OCTOBER, 28) csharp: new DateTime(2000, 10, 10) php: new DateTime('2000-10-28') node: '''2000-10-28''' python: dateutil.parser.parse('2000-10-28T00:00:00Z') ruby: '''YYYY-MM-DD''' - Address: key: address keyPascal: Address keySnake: address is_object: true - addressLine1: key: addressLine1 keyPascal: AddressLine1 keySnake: address_line_1 default: 123 Test st object: address - city: key: city keyPascal: City keySnake: city object: address default: Rangiora - postCode: key: postCode keyPascal: PostCode keySnake: post_code object: address default: 7400 - countryName: key: countryName keyPascal: CountryName keySnake: country_name default: NEW ZEALAND object: address is_last: true - employee: key: employee keyPascal: Employee is_object: true - firstName: key: firstName keyPascal: FirstName keySnake: first_name default: Adam object: employee - lastName: key: lastName keyPascal: LastName keySnake: last_name default: Adamson object: employee - dateOfBirth: is_variable: true nonString: true key: dateOfBirth keyPascal: DateOfBirth keySnake: date_of_birth default: dateOfBirth python: date_of_birth ruby: date_of_birth object: employee - setHomeAddress: is_last: true is_variable: true nonString: true key: address keyPascal: Address default: address python: address ruby: address object: employee parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: successful response content: application/json: schema: $ref: '#/components/schemas/EmployeeObject' example: id: 9414291b-a8c6-08fa-b165-9b30b1e6aab5 providerName: '!YLT5Y' dateTimeUTC: 2018-04-09T05:10:51.3504472 httpStatusCode: OK pagination: null problem: null employee: employeeID: 07f0f9fc-cc95-46ac-9a8a-aa03779f2bde title: Mr firstName: Mike lastName: Johnllsbkrhwopson dateOfBirth: 1999-01-01T00:00:00 gender: M email: 84044@starkindustries.com phoneNumber: "0400123456" startDate: "2020-02-03" nationalInsuranceNumber: null isOffPayrollWorker: false address: addressLine1: 101 Green St addressLine2: null city: San Francisco county: null countryName: null postCode: 6TGR4F payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe updatedDateUTC: "2020-03-25T17:03:50Z" createdDateUTC: "2020-02-10T10:00:24Z" endDate: null "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Employee' example: title: Mr. firstName: TestDataUK lastName: Tester dateOfBirth: 1992-11-22T00:00:00 gender: M email: tester@gmail.com phoneNumber: "0400123456" isOffPayrollWorker: false address: addressLine1: 171 Midsummer city: Milton Keyness postCode: MK9 1EB /Employees/{EmployeeID}/Employment: parameters: - $ref: '#/components/parameters/requiredHeader' post: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: createEmployment x-hasPayrollUkProblem: true x-example: - startDateValue: key: startDate keyPascal: StartDate keySnake: start_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 28) java: LocalDate.of(2020, Month.OCTOBER, 28) csharp: new DateTime(2020, 10, 10) php: new DateTime('2020-10-28') node: '''2020-10-28''' python: dateutil.parser.parse('2020-10-28T00:00:00Z') ruby: '''YYYY-MM-DD''' - employment: key: employment keyPascal: Employment keySnake: employment is_object: true - payrollCalendarID: key: payrollCalendarID keyPascal: PayrollCalendarID keySnake: payroll_calendar_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: employment - startDate: is_variable: true nonString: true key: startDate keyPascal: StartDate keySnake: start_date default: startDate python: start_date ruby: start_date object: employment is_last: true summary: Creates employment detail for a specific employee using a unique employee ID parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmploymentObject' example: id: 0160a355-1e6d-4fdc-9532-c0857feaa515 providerName: provider-name dateTimeUTC: 2020-03-26T18:09:11.6235442 httpStatusCode: OK pagination: null problem: null employment: payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe startDate: 2020-04-01T00:00:00 niCategory: A employeeNumber: 123ABC "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Employment' example: PayrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe StartDate: "2020-04-01" EmployeeNumber: 123ABC NICategory: A /Employees/{EmployeeID}/Tax: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployeeTax x-hasPayrollUkProblem: true summary: Retrieves tax records for a specific employee using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeTaxObject' example: id: a8577248-393a-4e7a-8a03-b43b90800b69 providerName: provider-name dateTimeUTC: 2020-03-27T00:14:41.2462046 httpStatusCode: OK pagination: null problem: null employeeTax: starterType: New Employee with P45 starterDeclaration: B.) This is currently their only job taxCode: 1185L w1M1: false previousTaxablePay: 2000 previousTaxPaid: 200 studentLoanDeduction: null hasPostGraduateLoans: false isDirector: false directorshipStartDate: null nicCalculationMethod: null /Employees/{EmployeeID}/ukopeningbalances: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployeeOpeningBalances x-hasPayrollUkProblem: true summary: Retrieves a specific employee's openingbalances using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeOpeningBalancesObject' example: id: ab1c33de-1927-4210-bf4f-2a55965cb4a9 providerName: provider-name dateTimeUTC: 2020-03-27T01:13:00.6591505 httpStatusCode: OK pagination: null problem: null openingBalances: statutoryAdoptionPay: 10 statutoryMaternityPay: 10 statutoryPaternityPay: 10 statutorySharedParentalPay: 10 statutorySickPay: 10 priorEmployeeNumber: "10.0" post: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: createEmployeeOpeningBalances x-hasPayrollUkProblem: true x-example: - employeeOpeningBalances: key: employeeOpeningBalances keyPascal: EmployeeOpeningBalances keySnake: employee_opening_balances is_object: true - statutoryMaternityPay: key: statutoryMaternityPay keyPascal: StatutoryMaternityPay keySnake: statutory_maternity_pay is_money: true nonString: true default: 0.0 object: employeeOpeningBalances - statutoryAdoptionPay: key: statutoryAdoptionPay keyPascal: StatutoryAdoptionPay keySnake: statutory_adoption_pay is_money: true nonString: true default: 100.0 object: employeeOpeningBalances - statutoryPaternityPay: key: statutoryPaternityPay keyPascal: StatutoryPaternityPay keySnake: statutory_paternity_pay is_money: true nonString: true default: 0.0 object: employeeOpeningBalances - statutorySharedParentalPay: key: statutorySharedParentalPay keyPascal: StatutorySharedParentalPay keySnake: statutory_shared_parental_pay is_money: true nonString: true default: 0.0 object: employeeOpeningBalances - statutorySickPay: key: statutorySickPay keyPascal: StatutorySickPay keySnake: statutory_sick_pay is_money: true nonString: true default: 0.0 object: employeeOpeningBalances is_last: true summary: Creates an opening balance for a specific employee parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeOpeningBalancesObject' example: id: 0d30ef37-2fb4-4925-b563-faaee361c9cd providerName: provider-name dateTimeUTC: 2020-03-27T01:06:14.47566 httpStatusCode: OK pagination: null problem: null openingBalances: null "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmployeeOpeningBalances' example: statutoryAdoptionPay: 10 statutoryMaternityPay: 10 statutoryPaternityPay: 10 statutorySharedParentalPay: 10 statutorySickPay: 10 priorEmployeeNumber: 10 put: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: updateEmployeeOpeningBalances x-hasPayrollUkProblem: true x-example: - employeeOpeningBalances: key: employeeOpeningBalances keyPascal: EmployeeOpeningBalances keySnake: employee_opening_balances is_object: true - statutoryMaternityPay: key: statutoryMaternityPay keyPascal: StatutoryMaternityPay keySnake: statutory_maternity_pay is_money: true nonString: true default: 0.0 object: employeeOpeningBalances - statutoryAdoptionPay: key: statutoryAdoptionPay keyPascal: StatutoryAdoptionPay keySnake: statutory_adoption_pay is_money: true nonString: true default: 100.0 object: employeeOpeningBalances - statutoryPaternityPay: key: statutoryPaternityPay keyPascal: StatutoryPaternityPay keySnake: statutory_paternity_pay is_money: true nonString: true default: 0.0 object: employeeOpeningBalances - statutorySharedParentalPay: key: statutorySharedParentalPay keyPascal: StatutorySharedParentalPay keySnake: statutory_shared_parental_pay is_money: true nonString: true default: 0.0 object: employeeOpeningBalances - statutorySickPay: key: statutorySickPay keyPascal: StatutorySickPay keySnake: statutory_sick_pay is_money: true nonString: true default: 0.0 object: employeeOpeningBalances is_last: true summary: Updates a specific employee's opening balances parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: successful response content: application/json: schema: $ref: '#/components/schemas/EmployeeOpeningBalancesObject' example: id: 21953776-783c-426c-bf15-cbde997839c4 providerName: provider-name dateTimeUTC: 2020-03-27T15:45:09.7078637 httpStatusCode: OK pagination: null problem: null openingBalances: null "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmployeeOpeningBalances' example: statutoryAdoptionPay: 20 statutoryMaternityPay: 20 statutoryPaternityPay: 20 statutorySharedParentalPay: 20 statutorySickPay: 20 priorEmployeeNumber: 20 /Employees/{EmployeeID}/Leave: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployeeLeaves x-hasPayrollUkProblem: true summary: Retrieves a specific employee's leave records using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeLeaves' example: id: e4d42712-4876-4b32-987d-1f62538089de providerName: provider-name dateTimeUTC: 2020-03-27T15:58:16.0929399 httpStatusCode: OK pagination: null problem: null leave: - leaveID: 384bf62a-5884-484d-b675-a3ad9c662f8e leaveTypeID: ed08dffe-788e-4b24-9630-f0fa2f4d164c description: Vacation to Majorca startDate: 2020-02-17T00:00:00 endDate: 2020-02-21T00:00:00 periods: - periodStartDate: 2020-02-17T00:00:00 periodEndDate: 2020-02-23T00:00:00 numberOfUnits: 40 periodStatus: Approved updatedDateUTC: 2020-02-10T10:15:53 post: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: createEmployeeLeave x-hasPayrollUkProblem: true x-example: - startDateValue: key: startDate keyPascal: StartDate keySnake: start_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 28) java: LocalDate.of(2020, Month.OCTOBER, 28) csharp: new DateTime(2020, 10, 10) php: new DateTime('2020-10-28') node: '''2020-10-28''' python: dateutil.parser.parse('2020-10-28T00:00:00Z') ruby: '''YYYY-MM-DD''' - endDateValue: key: endDate keyPascal: EndDate keySnake: end_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 30) java: LocalDate.of(2020, Month.OCTOBER, 30) csharp: new DateTime(2020, 10, 12) php: new DateTime('2020-10-30') node: '''2020-10-30''' python: dateutil.parser.parse('2020-10-30T00:00:00Z') ruby: '''YYYY-MM-DD''' - employeeLeave: key: employeeLeave keyPascal: EmployeeLeave keySnake: employee_leave is_object: true - leaveTypeID: key: leaveTypeID keyPascal: LeaveTypeID keySnake: leave_type_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: employeeLeave - startDate: is_variable: true nonString: true key: startDate keyPascal: StartDate keySnake: start_date default: startDate python: start_date ruby: start_date object: employeeLeave - endDate: is_last: true is_variable: true nonString: true key: endDate keyPascal: EndDate keySnake: end_date default: endDate python: end_date ruby: end_date object: employeeLeave summary: Creates leave records for a specific employee parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeLeaveObject' example: id: ef91410a-2be1-42cc-86db-e625344a82e9 providerName: provider-name dateTimeUTC: 2020-03-31T04:32:57.0247198 httpStatusCode: OK pagination: null problem: null leave: leaveID: bdfedc6b-363b-4801-8ba6-9a074d400b31 leaveTypeID: 1d2778ee-86ea-45c0-bbf8-1045485f6b3f description: Creating a Description startDate: 2020-03-24T00:00:00 endDate: 2020-03-26T00:00:00 periods: - periodStartDate: 2020-03-23T00:00:00 periodEndDate: 2020-03-29T00:00:00 numberOfUnits: 24 periodStatus: Approved updatedDateUTC: 2020-03-31T04:32:56.9537857 "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmployeeLeave' example: leaveTypeID: 1d2778ee-86ea-45c0-bbf8-1045485f6b3f description: Creating a Description startDate: "2020-03-24" endDate: "2020-03-26" /Employees/{EmployeeID}/Leave/{LeaveID}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployeeLeave x-hasPayrollUkProblem: true summary: Retrieves a specific employee's leave record using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c - name: LeaveID x-snake: leave_id in: path required: true description: Leave id for single object schema: type: string format: uuid example: c4be24e5-e840-4c92-9eaa-2d86cd596314 responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeLeaveObject' example: id: 6ae25805-fef3-4c9b-9e69-9ccc71a6a8da providerName: provider-name dateTimeUTC: 2020-03-27T19:58:03.8455417 httpStatusCode: OK pagination: null problem: null leave: leaveID: 384bf62a-5884-484d-b675-a3ad9c662f8e leaveTypeID: ed08dffe-788e-4b24-9630-f0fa2f4d164c description: Vacation to Majorca startDate: 2020-02-17T00:00:00 endDate: 2020-02-21T00:00:00 periods: - periodStartDate: 2020-02-17T00:00:00 periodEndDate: 2020-02-23T00:00:00 numberOfUnits: 40 periodStatus: Approved updatedDateUTC: 2020-02-10T10:15:53 put: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: updateEmployeeLeave x-hasPayrollUkProblem: true x-example: - startDateValue: key: startDate keyPascal: StartDate keySnake: start_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 28) java: LocalDate.of(2020, Month.OCTOBER, 28) csharp: new DateTime(2020, 10, 10) php: new DateTime('2020-10-28') node: '''2020-10-28''' python: dateutil.parser.parse('2020-10-28T00:00:00Z') ruby: '''YYYY-MM-DD''' - endDateValue: key: endDate keyPascal: EndDate keySnake: end_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 30) java: LocalDate.of(2020, Month.OCTOBER, 30) csharp: new DateTime(2020, 10, 12) php: new DateTime('2020-10-30') node: '''2020-10-30''' python: dateutil.parser.parse('2020-10-30T00:00:00Z') ruby: '''YYYY-MM-DD''' - employeeLeave: key: employeeLeave keyPascal: EmployeeLeave keySnake: employee_leave is_object: true - leaveTypeID: key: leaveTypeID keyPascal: LeaveTypeID keySnake: leave_type_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: employeeLeave - startDate: is_variable: true nonString: true key: startDate keyPascal: StartDate keySnake: start_date default: startDate python: start_date ruby: start_date object: employeeLeave - endDate: is_last: true is_variable: true nonString: true key: endDate keyPascal: EndDate keySnake: end_date default: endDate python: end_date ruby: end_date object: employeeLeave summary: Updates a specific employee's leave records parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c - name: LeaveID x-snake: leave_id in: path required: true description: Leave id for single object schema: type: string format: uuid example: c4be24e5-e840-4c92-9eaa-2d86cd596314 responses: "200": description: successful response content: application/json: schema: $ref: '#/components/schemas/EmployeeLeaveObject' example: id: ea115d89-61a0-4a2d-ad77-e3c63a2b401f providerName: provider-name dateTimeUTC: 2020-04-17T18:18:30.5118218 httpStatusCode: OK pagination: null problem: null leave: leaveID: 8340b795-50c1-428e-9fda-90badf081ab4 leaveTypeID: ed08dffe-788e-4b24-9630-f0fa2f4d164c description: Creating a Description startDate: 2020-04-24T00:00:00 endDate: 2020-04-26T00:00:00 periods: - periodStartDate: 2020-04-20T00:00:00 periodEndDate: 2020-04-26T00:00:00 numberOfUnits: 1 periodStatus: Approved updatedDateUTC: 2020-04-17T18:18:30.614537 "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmployeeLeave' example: leaveTypeID: ed08dffe-788e-4b24-9630-f0fa2f4d164c description: Creating a Description startDate: "2020-04-24" endDate: "2020-04-26" periods: - periodStartDate: "2020-04-20" periodEndDate: "2020-04-26" numberOfUnits: 1 periodStatus: Approved delete: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: deleteEmployeeLeave x-hasPayrollUkProblem: true summary: Deletes a specific employee's leave record parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c - name: LeaveID x-snake: leave_id in: path required: true description: Leave id for single object schema: type: string format: uuid example: c4be24e5-e840-4c92-9eaa-2d86cd596314 responses: "200": description: successful response content: application/json: schema: $ref: '#/components/schemas/EmployeeLeaveObject' example: id: b0ab87f6-bbca-4c81-b616-c545592f6988 providerName: provider-name dateTimeUTC: 2020-03-31T04:11:42.422139 httpStatusCode: OK pagination: null problem: null /Employees/{EmployeeID}/LeaveBalances: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployeeLeaveBalances x-hasPayrollUkProblem: true summary: Retrieves a specific employee's leave balances using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeLeaveBalances' example: id: a9b96d49-fc15-4e25-8b62-818462ea6dbd providerName: provider-name dateTimeUTC: 2020-03-31T04:45:06.125346 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 2 problem: null leaveBalances: - name: Holiday leaveTypeID: ed08dffe-788e-4b24-9630-f0fa2f4d164c balance: 32 typeOfUnits: Hours - name: Parental Leave leaveTypeID: 1d2778ee-86ea-45c0-bbf8-1045485f6b3f balance: -80 typeOfUnits: Hours /Employees/{EmployeeID}/StatutoryLeaveBalance: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployeeStatutoryLeaveBalances x-hasPayrollUkProblem: true summary: Retrieves a specific employee's leave balances using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c - name: LeaveType x-snake: leave_type in: query description: Filter by the type of statutory leave schema: type: string example: sick - name: AsOfDate x-snake: as_of_date in: query description: The date from which to calculate balance remaining. If not specified, current date UTC is used. schema: type: string format: date responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeStatutoryLeaveBalanceObject' example: id: ee863df3-c394-4102-bb91-2b14de404c1c providerName: provider-name dateTimeUTC: 2020-03-31T05:03:47.418497 httpStatusCode: OK pagination: null problem: null leaveBalance: leaveType: Sick balanceRemaining: 1120 units: Hours /StatutoryLeaves/Summary/{EmployeeID}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getStatutoryLeaveSummary x-hasPayrollUkProblem: true summary: Retrieves a specific employee's summary of statutory leaves using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c - name: activeOnly x-snake: active_only in: query description: Filter response with leaves that are currently active or yet to be taken. If not specified, all leaves (past, current, and future scheduled) are returned schema: type: boolean responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeStatutoryLeavesSummaries' example: id: 1908f4d1-b85d-4d6d-a885-6b6e2922ad03 providerName: provider-name dateTimeUTC: 2020-04-02T19:47:06.0791382 httpStatusCode: OK pagination: null problem: null statutoryLeaves: - statutoryLeaveID: 17f4c3c7-d65c-4572-9118-03798f26f813 employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 type: Sick endDate: "2020-04-01" startDate: "2020-03-28" isEntitled: false status: Pending /StatutoryLeaves/Sick: parameters: - $ref: '#/components/parameters/requiredHeader' post: security: - OAuth2: - payroll.settings tags: - PayrollUk operationId: createEmployeeStatutorySickLeave x-hasPayrollUkProblem: true x-example: - startDateValue: key: startDate keyPascal: StartDate keySnake: start_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 28) java: LocalDate.of(2020, Month.OCTOBER, 28) csharp: new DateTime(2020, 10, 10) php: new DateTime('2020-10-28') node: '''2020-10-28''' python: dateutil.parser.parse('2020-10-28T00:00:00Z') ruby: '''YYYY-MM-DD''' - endDateValue: key: endDate keyPascal: EndDate keySnake: end_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 30) java: LocalDate.of(2020, Month.OCTOBER, 30) csharp: new DateTime(2020, 10, 12) php: new DateTime('2020-10-30') node: '''2020-10-30''' python: dateutil.parser.parse('2020-10-30T00:00:00Z') ruby: '''YYYY-MM-DD''' - employeeStatutorySickLeave: key: employeeStatutorySickLeave keyPascal: EmployeeStatutorySickLeave keySnake: employee_statutory_sick_leave is_object: true - isPregnancyRelated: key: isPregnancyRelated keyPascal: IsPregnancyRelated keySnake: is_pregnancy_related nonString: true default: true object: employeeStatutorySickLeave - leaveTypeID: key: leaveTypeID keyPascal: LeaveTypeID keySnake: leave_type_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: employeeStatutorySickLeave - startDate: is_variable: true nonString: true key: startDate keyPascal: StartDate keySnake: start_date default: startDate python: start_date ruby: start_date object: employeeStatutorySickLeave - endDate: is_last: true is_variable: true nonString: true key: endDate keyPascal: EndDate keySnake: end_date default: endDate python: end_date ruby: end_date object: employeeStatutorySickLeave summary: Creates statutory sick leave records parameters: - $ref: '#/components/parameters/idempotencyKey' responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeStatutorySickLeaveObject' example: id: 35c840a3-04aa-43f1-9171-f7eaf4fd4454 providerName: provider-name dateTimeUTC: 2020-04-20T18:59:28.3440854 httpStatusCode: OK pagination: null problem: null statutorySickLeave: statutoryLeaveID: a2b5a1fb-ae21-47b4-876d-0b61fa6b37ab employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 leaveTypeID: aab78802-e9d3-4bbd-bc87-df858054988f startDate: "2020-04-21" endDate: "2020-04-24" workPattern: - Monday - Tuesday - Wednesday - Thursday - Friday isPregnancyRelated: false sufficientNotice: true isEntitled: false entitlementWeeksRequested: 0.8 entitlementWeeksQualified: 27.2 entitlementWeeksRemaining: 26.4 overlapsWithOtherLeave: false entitlementFailureReasons: - NotQualifiedInPreviousPiw "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmployeeStatutorySickLeave' example: employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 leaveTypeID: aab78802-e9d3-4bbd-bc87-df858054988f startDate: "2020-04-21" endDate: "2020-04-24" workPattern: - Monday - Tuesday - Wednesday - Thursday - Friday isPregnancyRelated: false sufficientNotice: true /StatutoryLeaves/Sick/{StatutorySickLeaveID}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getEmployeeStatutorySickLeave x-hasPayrollUkProblem: true summary: Retrieves a statutory sick leave for an employee parameters: - name: StatutorySickLeaveID x-snake: statutory_sick_leave_id in: path required: true description: Statutory sick leave id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeStatutorySickLeaveObject' example: id: c484213d-6225-4ede-bc5e-e81ef350af41 providerName: provider-name dateTimeUTC: 2020-04-17T18:31:49.3895522 httpStatusCode: OK pagination: null problem: null statutorySickLeave: statutoryLeaveID: 17f4c3c7-d65c-4572-9118-03798f26f813 employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 leaveTypeID: 054a2b5e-fe51-4494-9486-3e3130323c69 startDate: "2020-03-28" endDate: "2020-04-01" workPattern: - Monday - Tuesday - Wednesday - Thursday - Friday isPregnancyRelated: false sufficientNotice: true isEntitled: false entitlementWeeksRequested: 0.6 entitlementWeeksQualified: 28 entitlementWeeksRemaining: 0 overlapsWithOtherLeave: false entitlementFailureReasons: - AweLowerThanLel /Employees/{EmployeeID}/LeavePeriods: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployeeLeavePeriods x-hasPayrollUkProblem: true summary: Retrieves a specific employee's leave periods using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 - in: query name: startDate x-snake: start_date description: Filter by start date schema: type: string format: date - in: query name: endDate x-snake: end_date description: Filter by end date schema: type: string format: date responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/LeavePeriods' example: id: 00000000-0000-0000-0000-000000000000 providerName: provider-name dateTimeUTC: 2020-04-07T20:33:42.1904008 httpStatusCode: OK pagination: null problem: null periods: - periodStartDate: 2020-02-24T00:00:00 periodEndDate: 2020-03-01T00:00:00 numberOfUnits: 40 periodStatus: null - periodStartDate: 2020-03-02T00:00:00 periodEndDate: 2020-03-08T00:00:00 numberOfUnits: 32 periodStatus: null "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' /Employees/{EmployeeID}/LeaveTypes: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployeeLeaveTypes x-hasPayrollUkProblem: true summary: Retrieves a specific employee's leave types using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeLeaveTypes' example: id: d86959c6-94f5-437a-9367-581cb145fc4f providerName: provider-name dateTimeUTC: 2020-03-27T16:25:56.2931034 httpStatusCode: OK pagination: null problem: null leaveTypes: - leaveTypeID: ed08dffe-788e-4b24-9630-f0fa2f4d164c scheduleOfAccrual: OnAnniversaryDate hoursAccruedAnnually: 200 maximumToAccrue: 0 openingBalance: 72 rateAccruedHourly: 0 scheduleOfAccrualDate: null "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' post: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: createEmployeeLeaveType x-hasPayrollUkProblem: true x-example: - employeeLeaveType: key: employeeLeaveType keyPascal: EmployeeLeaveType keySnake: employee_leave_type is_object: true - leaveTypeID: key: leaveTypeID keyPascal: LeaveTypeID keySnake: leave_type_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: employeeLeaveType - scheduleOfAccrual: key: scheduleOfAccrual keyPascal: ScheduleOfAccrual keySnake: schedule_of_accrual nonString: true default: ScheduleOfAccrualEnum.BeginningOfCalendarYear php: XeroAPI\XeroPHP\Models\PayrollUk\EmployeeLeaveType\ScheduleOfAccrualEnum.BeginningOfCalendarYear node: EmployeeLeaveType.ScheduleOfAccrualEnum.BeginningOfCalendarYear ruby: XeroRuby::PayrollUk::EmployeeLeaveType::schedule_of_accrual::BEGINNINGOFCALENDARYEAR python: schedule_of_accrual::BEGINNINGOFCALENDARYEAR java: com.xero.models.payrolluk.EmployeeLeaveType.ScheduleOfAccrualEnum.BeginningOfCalendarYear csharp: EmployeeLeaveType.ScheduleOfAccrualEnum.BeginningOfCalendarYear object: employeeLeaveType - openingBalance: key: openingBalance keyPascal: OpeningBalance keySnake: opening_balance nonString: true default: 5.25 object: employeeLeaveType - scheduleOfAccrualDate: is_variable: true nonString: true key: scheduleOfAccrualDate keyPascal: ScheduleOfAccrualDate keySnake: schedule_of_accrual_date object: employeeLeaveType default: 2024-05-01 is_last: true summary: Creates employee leave type records parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeeLeaveTypeObject' example: id: 3245e4c9-1ec5-4f3e-b659-fdb722733060 providerName: provider-name dateTimeUTC: 2020-04-20T20:24:25.8151387 httpStatusCode: OK pagination: null problem: null leaveType: leaveTypeID: 4918f233-bd31-43f9-9633-bcc6de1178f2 scheduleOfAccrual: BeginningOfCalendarYear hoursAccruedAnnually: 10 maximumToAccrue: 0 openingBalance: 0 rateAccruedHourly: 0 "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmployeeLeaveType' example: leaveTypeID: 4918f233-bd31-43f9-9633-bcc6de1178f2 scheduleOfAccrual: BeginningOfCalendarYear hoursAccruedAnnually: 10 /Employees/{EmployeeID}/PaymentMethods: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployeePaymentMethod x-hasPayrollUkProblem: true summary: Retrieves a specific employee's payment method using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/PaymentMethodObject' example: id: 33c27fe9-de53-4114-8455-a6392add88b8 providerName: provider-name dateTimeUTC: 2020-04-13T18:22:18.9003328 httpStatusCode: OK pagination: null problem: null paymentMethod: paymentMethod: Electronically bankAccounts: - accountName: Oliver Furniss - Santander accountNumber: "12345678" sortCode: "111111" "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' post: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: createEmployeePaymentMethod x-hasPayrollUkProblem: true x-example: - bankAccount: key: bankAccount keyPascal: BankAccount keySnake: bank_account is_object: true - accountName: key: accountName keyPascal: AccountName keySnake: account_name default: Charlotte Danes object: bankAccount - accountNumber: key: accountNumber keyPascal: AccountNumber keySnake: account_number default: 123456 object: bankAccount - sortCode: key: sortCode keyPascal: SortCode keySnake: sort_code default: 123411 is_last: true object: bankAccount - bankAccounts: is_list: true key: bankAccounts keyPascal: BankAccounts keySnake: bank_accounts csharp: BankAccount java: BankAccount object: bankAccount - addBankAccount: is_last: true is_list_add: true key: bankAccounts keyPascal: BankAccounts keySnake: bank_accounts java: BankAccounts python: bank_account ruby: bank_account csharp: BankAccount object: bankAccount - paymentMethod: key: paymentMethod keyPascal: PaymentMethod keySnake: payment_method is_object: true - setBankAccount: is_last: true is_variable: true nonString: true key: bankAccounts keyPascal: BankAccounts default: bankAccounts object: paymentMethod summary: Creates an employee payment method parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/PaymentMethodObject' example: id: 6c5eab91-8f3c-4569-a5ce-ab4eec112d35 providerName: provider-name dateTimeUTC: 2020-04-13T18:48:16.6038123 httpStatusCode: OK pagination: null problem: null paymentMethod: paymentMethod: Electronically bankAccounts: - accountName: Sid BofA accountNumber: "24987654" sortCode: "287654" "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentMethod' example: paymentMethod: Electronically bankAccounts: - accountName: Sid BofA accountNumber: "24987654" sortCode: "287654" /Employees/{EmployeeID}/PayTemplates: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployeePayTemplate x-hasPayrollUkProblem: true summary: Retrieves a specific employee pay templates using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeePayTemplateObject' example: id: 3138be2b-96d9-44d0-a01e-80fd527555c8 providerName: provider-name dateTimeUTC: 2020-04-17T15:10:54.4464048 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 0 itemCount: 0 problem: null payTemplate: employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 earningTemplates: - payTemplateEarningID: 4e2a0753-56b9-423d-8068-624473bd1c00 ratePerUnit: 25 numberOfUnits: 10 fixedAmount: null earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 name: Regular Hours "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' # 503 /Employees/{EmployeeID}/PayTemplates/earnings: parameters: - $ref: '#/components/parameters/requiredHeader' post: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: createEmployeeEarningsTemplate x-hasPayrollUkProblem: true x-example: - earningsTemplate: key: earningsTemplate keyPascal: EarningsTemplate keySnake: earnings_template is_object: true - payTemplateEarningID: key: payTemplateEarningID keyPascal: PayTemplateEarningID keySnake: pay_template_earning_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: earningsTemplate - ratePerUnit: key: ratePerUnit keyPascal: RatePerUnit keySnake: rate_per_unit nonString: true default: 14.25 object: earningsTemplate is_money: true - numberOfUnits: key: numberOfUnits keyPascal: NumberOfUnits keySnake: number_of_units default: 35.50 nonString: true is_money: true object: earningsTemplate - fixedAmount: key: fixedAmount keyPascal: FixedAmount keySnake: fixed_amount default: 50 nonString: true object: earningsTemplate - earningsRateId: key: earningsRateID keyPascal: EarningsRateID keySnake: earnings_rate_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: earningsTemplate - name: key: name keyPascal: Name keySnake: name default: Overtime Hours object: earningsTemplate is_last: true - earningsTemplates: is_list: true key: earningsTemplates keyPascal: EarningsTemplates keySnake: earnings_templates csharp: EarningsTemplate java: EarningsTemplate - addEarningsTemplate: is_last: true is_list_add: true key: earningsTemplates keyPascal: EarningsTemplates keySnake: earnings_templates java: EarningsTemplates python: earnings_template ruby: earnings_template csharp: EarningsTemplate object: earningsTemplate summary: Creates an earnings template records for a specific employee parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EarningsTemplateObject' "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EarningsTemplate' /Employees/{EmployeeID}/PayTemplates/earnings/{PayTemplateEarningID}: parameters: - $ref: '#/components/parameters/requiredHeader' put: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: updateEmployeeEarningsTemplate x-hasPayrollUkProblem: true x-example: - earningsTemplate: key: earningsTemplate keyPascal: EarningsTemplate keySnake: earnings_template is_object: true - payTemplateEarningID: key: payTemplateEarningID keyPascal: PayTemplateEarningID keySnake: pay_template_earning_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: earningsTemplate - ratePerUnit: key: ratePerUnit keyPascal: RatePerUnit keySnake: rate_per_unit nonString: true default: 14.25 object: earningsTemplate is_money: true - numberOfUnits: key: numberOfUnits keyPascal: NumberOfUnits keySnake: number_of_units default: 35.50 nonString: true is_money: true object: earningsTemplate - fixedAmount: key: fixedAmount keyPascal: FixedAmount keySnake: fixed_amount default: 50 nonString: true object: earningsTemplate - earningsRateId: key: earningsRateID keyPascal: EarningsRateID keySnake: earnings_rate_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: earningsTemplate - name: key: name keyPascal: Name keySnake: name default: Overtime Hours object: earningsTemplate is_last: true - earningsTemplates: is_list: true key: earningsTemplates keyPascal: EarningsTemplates keySnake: earnings_templates csharp: EarningsTemplate java: EarningsTemplate - addEarningsTemplate: is_last: true is_list_add: true key: earningsTemplates keyPascal: EarningsTemplates keySnake: earnings_templates java: EarningsTemplates python: earnings_template ruby: earnings_template csharp: EarningsTemplate object: earningsTemplate summary: Updates a specific employee's earnings template records parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c - name: PayTemplateEarningID x-snake: pay_template_earning_id in: path required: true description: Id for single pay template earnings object schema: type: string format: uuid example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EarningsTemplateObject' example: id: 39603f09-e06f-4cd4-8291-e3ad1df8b35b providerName: provider-name dateTimeUTC: 2020-04-17T15:52:35.0247503 httpStatusCode: OK pagination: null problem: null earningTemplate: payTemplateEarningID: 4e2a0753-56b9-423d-8068-624473bd1c00 ratePerUnit: 30 numberOfUnits: 4 fixedAmount: null earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 name: Regular Hours "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EarningsTemplate' example: ratePerUnit: 30 numberOfUnits: 4 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 delete: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: deleteEmployeeEarningsTemplate summary: Deletes a specific employee's earnings template record parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c - name: PayTemplateEarningID x-snake: pay_template_earning_id in: path required: true description: Id for single pay template earnings object schema: type: string format: uuid example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 responses: "200": description: deletion successful /Employees/{EmployeeID}/paytemplateearnings: parameters: - $ref: '#/components/parameters/requiredHeader' post: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: createMultipleEmployeeEarningsTemplate x-hasPayrollUkProblem: true x-example: - earningsTemplate: key: earningsTemplate keyPascal: EarningsTemplate keySnake: earnings_template is_object: true - payTemplateEarningID: key: payTemplateEarningID keyPascal: PayTemplateEarningID keySnake: pay_template_earning_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: earningsTemplate - ratePerUnit: key: ratePerUnit keyPascal: RatePerUnit keySnake: rate_per_unit nonString: true default: 14.25 object: earningsTemplate is_money: true - numberOfUnits: key: numberOfUnits keyPascal: NumberOfUnits keySnake: number_of_units default: 35.50 nonString: true is_money: true object: earningsTemplate - fixedAmount: key: fixedAmount keyPascal: FixedAmount keySnake: fixed_amount default: 50 nonString: true object: earningsTemplate - earningsRateId: key: earningsRateID keyPascal: EarningsRateID keySnake: earnings_rate_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: earningsTemplate - name: key: name keyPascal: Name keySnake: name default: Overtime Hours object: earningsTemplate is_last: true - earningsTemplates: is_list: true key: earningsTemplates keyPascal: EarningsTemplates keySnake: earnings_templates csharp: EarningsTemplate java: EarningsTemplate - addEarningsTemplate: is_last: true is_list_add: true key: earningsTemplates keyPascal: EarningsTemplates keySnake: earnings_templates java: EarningsTemplates python: earnings_template ruby: earnings_template csharp: EarningsTemplate object: earningsTemplate summary: Creates multiple earnings template records for a specific employee using a unique employee ID parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EmployeePayTemplates' example: id: 1c08b529-0827-4e91-a6a1-c479765aa65f providerName: provider-name dateTimeUTC: 2020-04-17T16:56:35.6264368 httpStatusCode: OK pagination: null problem: null earningTemplates: - payTemplateEarningID: 6b32533d-1111-4a92-ac52-7641315a1719 ratePerUnit: 20 numberOfUnits: 8 fixedAmount: null earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 name: Regular Hours - payTemplateEarningID: b8b16366-6a60-4b72-97c1-57af555da375 ratePerUnit: 20 numberOfUnits: 8 fixedAmount: null earningsRateID: 973365f3-66b2-4c33-8ae6-14b75f78f68b name: Overtime Hours "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EarningsTemplates' example: '[ { "ratePerUnit":20.0, "numberOfUnits":8.0, "earningsRateID":"87f5b43a-cf51-4b74-92de-94c819e82d27" }, { "ratePerUnit":20.0, "numberOfUnits":8.0, "earningsRateID":"973365f3-66b2-4c33-8ae6-14b75f78f68b" } ]' /Benefits: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getBenefits x-hasPayrollUkProblem: true summary: Retrieves employee benefits parameters: - in: query name: page description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. schema: type: integer responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/Benefits' example: id: 079865dc-f3df-4783-98a9-67db747ab82c providerName: provider-name dateTimeUTC: 2020-04-15T18:45:03.617089 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 1 problem: null benefits: - id: 17ee7e28-9f4c-4675-9590-cc0547c9f7ac name: Mind The Gap Pensions category: StakeholderPension liabilityAccountId: d659ebbf-0760-4e07-a1fb-8de6b9ecdff9 expenseAccountId: edda7154-dfc8-4486-a82b-e5e955408eaa standardAmount: null percentage: 3 calculationType: PercentageOfGross currentRecord: true showBalanceToEmployee: false subjectToNIC: null subjectToPension: null subjectToTax: null isCalculatingOnQualifyingEarnings: null post: security: - OAuth2: - payroll.settings tags: - PayrollUk operationId: createBenefit x-hasPayrollUkProblem: true summary: Creates a new employee benefit parameters: - $ref: '#/components/parameters/idempotencyKey' x-example: - benefit: key: benefit keyPascal: Benefit keySnake: benefit is_object: true - name: key: name keyPascal: Name keySnake: name default: Benefit Name object: benefit - expenseAccountID: key: expenseAccountID keyPascal: ExpenseAccountID keySnake: expense_account_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: benefit - liabilityAccountID: key: liabilityAccountID keyPascal: LiabilityAccountID keySnake: liability_account_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: benefit - isCalculatingOnQualifyingEarnings: key: isCalculatingOnQualifyingEarnings keyPascal: IsCalculatingOnQualifyingEarnings keySnake: is_calculating_on_qualifying_earnings nonString: true default: true object: benefit is_last: true responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/BenefitObject' example: id: 95352407-6477-42f1-bd9c-bab28af8b0d9 providerName: provider-name dateTimeUTC: 2020-04-15T18:59:01.5812362 httpStatusCode: OK pagination: null problem: null benefit: id: d295bf25-fb61-4f91-9b62-a9ae87633746 name: My Big Bennie category: StakeholderPension liabilityAccountId: e0faa299-ca0d-4b0a-9e32-0dfabdf9179a expenseAccountId: 4b03500d-32fd-4616-8d70-e1e56e0519c6 standardAmount: null percentage: 25 calculationType: PercentageOfGross currentRecord: true showBalanceToEmployee: true subjectToNIC: null subjectToPension: null subjectToTax: null isCalculatingOnQualifyingEarnings: null "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Benefit' example: name: My Big Bennie category: StakeholderPension liabilityAccountId: e0faa299-ca0d-4b0a-9e32-0dfabdf9179a expenseAccountId: 4b03500d-32fd-4616-8d70-e1e56e0519c6 standardAmount: 50 percentage: 25 calculationType: PercentageOfGross /Benefits/{id}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getBenefit x-hasPayrollUkProblem: true summary: Retrieves a specific benefit by using a unique benefit ID parameters: - in: path name: id required: true description: Identifier for the benefit schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/BenefitObject' example: id: e7959d7b-370d-47e5-bb15-4b68f136ddae providerName: provider-name dateTimeUTC: 2020-04-15T18:45:04.5134277 httpStatusCode: OK pagination: null problem: null benefit: id: 17ee7e28-9f4c-4675-9590-cc0547c9f7ac name: Mind The Gap Pensions category: StakeholderPension liabilityAccountId: d659ebbf-0760-4e07-a1fb-8de6b9ecdff9 expenseAccountId: edda7154-dfc8-4486-a82b-e5e955408eaa standardAmount: null percentage: 3 calculationType: PercentageOfGross currentRecord: true showBalanceToEmployee: false subjectToNIC: null subjectToPension: null subjectToTax: null isCalculatingOnQualifyingEarnings: null /Deductions: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getDeductions x-hasPayrollUkProblem: true summary: Retrieves deductions parameters: - in: query name: page description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. schema: type: integer responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/Deductions' example: id: 846b81f3-7192-4a78-a05c-ae5d2c402546 providerName: provider-name dateTimeUTC: 2020-04-20T20:57:39.6123797 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 2 problem: null deductions: - deductionId: 7c736d59-a624-4584-920b-e9910d2887a0 deductionName: Mind The Gap Pensions (NPA) deductionCategory: StakeholderPension liabilityAccountId: d659ebbf-0760-4e07-a1fb-8de6b9ecdff9 currentRecord: true standardAmount: null reducesSuperLiability: null reducesTaxLiability: null calculationType: PercentageOfGross percentage: 5 subjectToNIC: null subjectToTax: null isReducedByBasicRate: null applyToPensionCalculations: null isCalculatingOnQualifyingEarnings: null isPension: null - deductionId: 49f301d4-2746-43a6-ba4a-e7001b5b83fc deductionName: Post-Tax Pension deductionCategory: StakeholderPensionPostTax liabilityAccountId: d659ebbf-0760-4e07-a1fb-8de6b9ecdff9 currentRecord: true standardAmount: null reducesSuperLiability: null reducesTaxLiability: null calculationType: PercentageOfGross percentage: 0 subjectToNIC: null subjectToTax: null isReducedByBasicRate: null applyToPensionCalculations: false isCalculatingOnQualifyingEarnings: null isPension: true post: security: - OAuth2: - payroll.settings tags: - PayrollUk operationId: createDeduction x-hasPayrollUkProblem: true x-example: - deduction: key: deduction keyPascal: Deduction keySnake: deduction is_object: true - deductionName: key: deductionName keyPascal: DeductionName keySnake: deduction_name default: Test Deduction object: deduction - deductionCategory: key: deductionCategory keyPascal: DeductionCategory keySnake: deduction_category nonString: true default: DeductionCategoryEnum.StakeholderPension php: XeroAPI\XeroPHP\Models\PayrollUk\Deduction\DeductionCategoryEnum.StakeholderPension node: Deduction.DeductionCategoryEnum.StakeholderPension ruby: XeroRuby::PayrollUk::Deduction::deduction_category_enum::STAKEHOLDERPENSION python: deduction_category_enum::STAKEHOLDERPENSION java: com.xero.models.payrolluk.Deduction.DeductionCategoryEnum.StakeholderPension csharp: Deduction.DeductionCategoryEnum.StakeholderPension object: deduction - liabilityAccountID: key: liabilityAccountId keyPascal: LiabilityAccountId keySnake: liability_account_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: deduction - calculationType: key: calculationType keyPascal: CalculationType keySnake: calculation_type nonString: true default: CalculationTypeEnum.PercentageOfGross php: XeroAPI\XeroPHP\Models\PayrolUk\Deduction\CalculationTypeEnum.PercentageOfGross node: Deduction.CalculationTypeEnum.PercentageOfGross ruby: XeroRuby::PayrollUk::Deduction::calculation_type_enum::PERCENTAGEOFGROSS python: calculation_type_enum::PERCENTAGEOFGROSS java: com.xero.models.payrolluk.Deduction.CalculationTypeEnum.PercentageOfGross csharp: Deduction.CalculationTypeEnum.PercentageOfGross object: deduction is_last: true summary: Creates a new deduction parameters: - $ref: '#/components/parameters/idempotencyKey' responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/DeductionObject' example: id: 26cf94f5-6b62-4f76-8e89-44e4d0062566 providerName: provider-name dateTimeUTC: 2020-04-20T23:03:00.7012103 httpStatusCode: OK pagination: null problem: null deduction: deductionId: b3695b29-750f-4957-98b4-678e4a529043 deductionName: My new deduction deductionCategory: SalarySacrifice liabilityAccountId: e0faa299-ca0d-4b0a-9e32-0dfabdf9179a currentRecord: true standardAmount: null reducesSuperLiability: null reducesTaxLiability: null calculationType: FixedAmount percentage: null subjectToNIC: null subjectToTax: null isReducedByBasicRate: null applyToPensionCalculations: null isCalculatingOnQualifyingEarnings: null isPension: null "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Deduction' example: deductionName: My new deduction deductionCategory: SalarySacrifice liabilityAccountId: e0faa299-ca0d-4b0a-9e32-0dfabdf9179a calculationType: FixedAmount /Deductions/{deductionId}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getDeduction x-hasPayrollUkProblem: true summary: Retrieves a specific deduction by using a unique deduction ID parameters: - in: path name: deductionId x-snake: deduction_id required: true description: Identifier for the deduction schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/DeductionObject' example: id: addf44c5-5a3b-4d25-a61c-4e9e85cb27b3 providerName: provider-name dateTimeUTC: 2020-04-20T22:42:54.5394384 httpStatusCode: OK pagination: null problem: null deduction: deductionId: 7c736d59-a624-4584-920b-e9910d2887a0 deductionName: Mind The Gap Pensions (NPA) deductionCategory: StakeholderPension liabilityAccountId: d659ebbf-0760-4e07-a1fb-8de6b9ecdff9 currentRecord: true standardAmount: null reducesSuperLiability: null reducesTaxLiability: null calculationType: PercentageOfGross percentage: 5 subjectToNIC: null subjectToTax: null isReducedByBasicRate: null applyToPensionCalculations: null isCalculatingOnQualifyingEarnings: null isPension: null # NZ PAYROLL # /StatutoryDeductions: # parameters: # - $ref: '#/components/parameters/requiredHeader' # get: # security: # - OAuth2: [payroll.settings, payroll.settings.read] # tags: # - PayrollNZ # operationId: getStatutoryDeductions # summary: searches statutory deductions # parameters: # - in: query # name: page # description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. # schema: # type: integer # responses: # '200': # description: search results matching criteria # content: # application/json: # schema: # $ref: '#/components/schemas/StatutoryDeductions' # /StatutoryDeductions/{ID}: # parameters: # - $ref: '#/components/parameters/requiredHeader' # get: # security: # - OAuth2: [payroll.settings, payroll.settings.read] # tags: # - PayrollUk # operationId: getStatutoryDeduction # summary: retrieve a single statutory deduction by id # parameters: # - in: path # name: Id # required: true # description: Identifier for the statutory deduction # schema: # type: string # format: uuid # responses: # '200': # description: search results matching criteria # content: # application/json: # schema: # $ref: '#/components/schemas/Benefit' /EarningsOrders: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getEarningsOrders x-hasPayrollUkProblem: true summary: Retrieves earnings orders parameters: - in: query name: page description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. schema: type: integer responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EarningsOrders' example: id: 5bf85b65-c2de-4632-8e5e-cc0ab3d18ff0 providerName: provider-name dateTimeUTC: 2020-04-20T23:21:36.0480051 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 8 problem: null statutoryDeductions: - id: d00d0128-500b-4685-8332-8fc8743a395c name: AEO (maintenance) liabilityAccountId: 921237ae-76ff-4f4c-bf70-5c3c177b149d statutoryDeductionCategory: PriorityOrder currentRecord: true - id: f7a63612-a68d-431e-96d4-3fd0708e46b5 name: AEO (fines) liabilityAccountId: 921237ae-76ff-4f4c-bf70-5c3c177b149d statutoryDeductionCategory: PriorityOrder currentRecord: true - id: dabd9a53-25ac-4349-9fb3-8005ea781574 name: AEO (civil debts) liabilityAccountId: 921237ae-76ff-4f4c-bf70-5c3c177b149d statutoryDeductionCategory: NonPriorityOrder currentRecord: true - id: 73ae94bb-182c-4242-8d67-1a281597ca9c name: CTAEO liabilityAccountId: 921237ae-76ff-4f4c-bf70-5c3c177b149d statutoryDeductionCategory: PriorityOrder currentRecord: true - id: 649a3c59-3937-43d2-b0e4-5e8942f17ffa name: Child Support DEO liabilityAccountId: 921237ae-76ff-4f4c-bf70-5c3c177b149d statutoryDeductionCategory: PriorityOrder currentRecord: true - id: d4a4441f-452a-4067-97ac-ded4d157c319 name: Earnings Arrestment (Scotland) liabilityAccountId: 921237ae-76ff-4f4c-bf70-5c3c177b149d statutoryDeductionCategory: TableBased currentRecord: true - id: deec134a-2378-439c-89db-a71fa57fb28a name: Conjoined Arrestment Order (Scotland) liabilityAccountId: 921237ae-76ff-4f4c-bf70-5c3c177b149d statutoryDeductionCategory: TableBased currentRecord: true - id: 750c7c89-0579-45b4-becc-221a52119bd4 name: Current Maintenance Arrest (Scotland) liabilityAccountId: 921237ae-76ff-4f4c-bf70-5c3c177b149d statutoryDeductionCategory: NonPriorityOrder currentRecord: true /EarningsOrders/{id}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getEarningsOrder x-hasPayrollUkProblem: true summary: Retrieves a specific earnings orders by using a unique earnings orders id parameters: - in: path name: id required: true description: Identifier for the deduction schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EarningsOrderObject' example: id: e0fd1c57-e9d0-4c3f-9a1a-0355ddf7c060 providerName: provider-name dateTimeUTC: 2020-04-20T23:37:30.3398526 httpStatusCode: OK pagination: null problem: null statutoryDeduction: id: d00d0128-500b-4685-8332-8fc8743a395c name: AEO (maintenance) liabilityAccountId: 921237ae-76ff-4f4c-bf70-5c3c177b149d statutoryDeductionCategory: PriorityOrder currentRecord: true /EarningsRates: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getEarningsRates x-hasPayrollUkProblem: true summary: Retrieves earnings rates parameters: - in: query name: page description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. schema: type: integer responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EarningsRates' example: id: fbe7a960-fad3-4293-8de9-0fabfbea615f providerName: provider-name dateTimeUTC: 2020-04-15T15:00:05.2418623 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 13 problem: null earningsRates: - earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 name: Regular Hours earningsType: RegularEarnings rateType: RatePerUnit typeOfUnits: hours currentRecord: true expenseAccountID: 81da553d-c6c6-411e-95df-cc4ac8f7e1c2 fixedAmount: null ratePerUnit: null multipleOfOrdinaryEarningsRate: null - earningsRateID: 973365f3-66b2-4c33-8ae6-14b75f78f68b name: Overtime Hours earningsType: OvertimeEarnings rateType: MultipleOfOrdinaryEarningsRate typeOfUnits: null currentRecord: true expenseAccountID: 81da553d-c6c6-411e-95df-cc4ac8f7e1c2 fixedAmount: null ratePerUnit: null multipleOfOrdinaryEarningsRate: 1.5 post: security: - OAuth2: - payroll.settings tags: - PayrollUk operationId: createEarningsRate x-hasPayrollUkProblem: true summary: Creates a new earnings rate parameters: - $ref: '#/components/parameters/idempotencyKey' x-example: - earningsRate: key: earningsRate keyPascal: EarningsRate keySnake: earnings_rate is_object: true - earningsType: key: earningsType keyPascal: EarningsType keySnake: earnings_type nonString: true default: EarningsTypeEnum.RegularEarnings php: XeroAPI\XeroPHP\Models\PayrollUk\EarningsRate\EarningsTypeEnum.RegularEarnings node: EarningsRate.EarningsTypeEnum.RegularEarnings ruby: XeroRuby::PayrollUk::EarningsRate::earnings_type_enum::REGULAREARNINGS python: earnings_type_enum::REGULAREARNINGS java: com.xero.models.payrolluk.EarningsRate.EarningsTypeEnum.RegularEarnings csharp: EarningsRate.EarningsTypeEnum.RegularEarnings object: earningsRate - rateType: key: rateType keyPascal: RateType keySnake: rate_type php: XeroAPI\XeroPHP\Models\PayrollUk\EarningsRate\RateTypeEnum.RatePerUnit node: EarningsRate.RateTypeEnum.RatePerUnit ruby: XeroRuby::PayrollUk::EarningsRate::RateTypeEnum::ACCPAYCREDIT python_string: RATEPERUNIT java: com.xero.models.payrolluk.EarningsRate.RateTypeEnum.RATEPERUNIT csharp: EarningsRate.RateTypeEnum.RatePerUnit default: RatePerUnit object: earningsRate nonString: true - expenseAccountID: key: expenseAccountID keyPascal: ExpenseAccountID keySnake: expense_account_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: earningsRate - typeOfUnits: key: typeOfUnits keyPascal: TypeOfUnits keySnake: type_of_units default: Type object: earningsRate is_last: true responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EarningsRateObject' example: id: cc5341dd-c652-47f0-b8a3-67a22617ca7b providerName: provider-name dateTimeUTC: 2020-04-15T18:12:04.6341065 httpStatusCode: OK pagination: null problem: null earningsRate: earningsRateID: fcf811a8-3843-4e87-8431-c62e83158aef name: My Earnings Rate earningsType: RegularEarnings rateType: RatePerUnit typeOfUnits: hours currentRecord: true expenseAccountID: 4b03500d-32fd-4616-8d70-e1e56e0519c6 fixedAmount: null ratePerUnit: null multipleOfOrdinaryEarningsRate: null "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EarningsRate' example: name: My Earnings Rate earningsType: RegularEarnings rateType: RatePerUnit typeOfUnits: hours expenseAccountID: 4b03500d-32fd-4616-8d70-e1e56e0519c6 /EarningsRates/{EarningsRateID}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getEarningsRate x-hasPayrollUkProblem: true summary: Retrieves a specific earnings rates by using a unique earnings rate id parameters: - in: path name: EarningsRateID x-snake: earnings_rate_id required: true description: Identifier for the earnings rate schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/EarningsRateObject' example: id: 85375ff5-6ccf-4d8c-a976-0531c94597de providerName: provider-name dateTimeUTC: 2020-04-15T16:54:51.8240698 httpStatusCode: OK pagination: null problem: null earningsRate: earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 name: Regular Hours earningsType: RegularEarnings rateType: RatePerUnit typeOfUnits: hours currentRecord: true expenseAccountID: 81da553d-c6c6-411e-95df-cc4ac8f7e1c2 fixedAmount: null ratePerUnit: null multipleOfOrdinaryEarningsRate: null /LeaveTypes: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getLeaveTypes x-hasPayrollUkProblem: true summary: Retrieves leave types parameters: - in: query name: page description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. schema: type: integer - in: query name: ActiveOnly x-snake: active_only description: Filters leave types by active status. By default the API returns all leave types. schema: type: boolean responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/LeaveTypes' example: id: cb429b37-78d3-4b15-9788-83cbd1fd3f72 providerName: provider-name dateTimeUTC: 2020-03-27T18:32:57.9928041 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 12 problem: null leaveTypes: - leaveTypeID: ed08dffe-788e-4b24-9630-f0fa2f4d164c name: Holiday isPaidLeave: true showOnPayslip: true updatedDateUTC: "2020-02-13T15:56:11Z" isStatutoryLeave: false isActive: true - leaveTypeID: 1d2778ee-86ea-45c0-bbf8-1045485f6b3f name: Parental Leave isPaidLeave: true showOnPayslip: true updatedDateUTC: "2020-03-27T18:19:53Z" isStatutoryLeave: false isActive: true post: security: - OAuth2: - payroll.settings tags: - PayrollUk operationId: createLeaveType x-hasPayrollUkProblem: true x-example: - leaveType: key: leaveType keyPascal: LeaveType keySnake: leave_type is_object: true - name: key: name keyPascal: Name keySnake: name object: leaveType default: LeaveType - isPaidLeave: key: isPaidLeave keyPascal: IsPaidLeave keySnake: is_paid_leave nonString: true object: leaveType default: true - showOnPayslip: key: showOnPayslip keyPascal: ShowOnPayslip keySnake: show_on_payslip nonString: true object: leaveType default: true is_last: true summary: Creates a new leave type parameters: - $ref: '#/components/parameters/idempotencyKey' responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/LeaveTypeObject' example: id: 89aeb982-d6e8-45dd-a853-fcaee4fc99cc providerName: provider-name dateTimeUTC: 2020-04-21T02:59:35.5461123 httpStatusCode: OK pagination: null problem: null leaveType: leaveTypeID: 4c027a23-6e7b-4547-808b-c34b2b140fef name: My opebvwbfxf Leave isPaidLeave: false showOnPayslip: true updatedDateUTC: "2020-04-21T02:59:35.3831249Z" isStatutoryLeave: null isActive: true "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LeaveType' example: name: My opebvwbfxf Leave isPaidLeave: false showOnPayslip: true /LeaveTypes/{LeaveTypeID}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getLeaveType x-hasPayrollUkProblem: true summary: Retrieves a specific leave type by using a unique leave type ID parameters: - in: path name: LeaveTypeID x-snake: leave_type_id required: true description: Identifier for the leave type schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/LeaveTypeObject' example: id: 684454f6-d808-46e0-b83d-5593a560b9d0 providerName: provider-name dateTimeUTC: 2020-04-21T02:59:34.9401664 httpStatusCode: OK pagination: null problem: null leaveType: leaveTypeID: ed08dffe-788e-4b24-9630-f0fa2f4d164c name: Holiday isPaidLeave: true showOnPayslip: true updatedDateUTC: 2020-04-20T20:14:31 isStatutoryLeave: false isActive: true /Reimbursements: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getReimbursements x-hasPayrollUkProblem: true summary: Retrieves reimbursements parameters: - in: query name: page description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. schema: type: integer responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/Reimbursements' example: id: eea19a1d-a714-41c0-8730-94b6d4fbac84 providerName: provider-name dateTimeUTC: 2020-04-15T00:17:27.1947108 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 5 problem: null reimbursements: - reimbursementID: fef6115f-1606-4a74-be54-312d46b0eb0e name: Travel Allowance accountID: c7b73345-7f25-428a-bb97-7b20a1470a53 currentRecord: true - reimbursementID: 8e8d7849-26e1-41d1-a41f-7e1d0bfa147b name: Mileage accountID: 0be1631e-cc7e-4c27-951f-308c3307c0fe currentRecord: true post: security: - OAuth2: - payroll.settings tags: - PayrollUk operationId: createReimbursement x-hasPayrollUkProblem: true x-example: - reimbursement: key: reimbursement keyPascal: Reimbursement keySnake: reimbursement is_object: true - name: key: name keyPascal: Name keySnake: name default: Test Reimbursement object: reimbursement - accountID: key: accountID keyPascal: AccountID keySnake: account_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: reimbursement is_last: true summary: Creates a new reimbursement parameters: - $ref: '#/components/parameters/idempotencyKey' responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/ReimbursementObject' example: id: 310ecff7-8577-4e05-98a3-3ce7ecb2868a providerName: provider-name dateTimeUTC: 2020-04-15T00:43:39.0988382 httpStatusCode: OK pagination: null problem: null reimbursement: reimbursementID: 2b1b587a-39f6-43f8-9dd9-a858314333c8 name: My new Reimburse accountID: 9ee28149-32a9-4661-8eab-a28738696983 currentRecord: true "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Reimbursement' example: name: My new Reimburse accountID: 9ee28149-32a9-4661-8eab-a28738696983 /Reimbursements/{ReimbursementID}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getReimbursement x-hasPayrollUkProblem: true summary: Retrieves a specific reimbursement by using a unique reimbursement id parameters: - in: path name: ReimbursementID x-snake: reimbursement_id required: true description: Identifier for the reimbursement schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/ReimbursementObject' example: id: 9c727a87-a96b-4998-b7e7-6b79347915cc providerName: provider-name dateTimeUTC: 2020-04-21T03:05:16.5248369 httpStatusCode: OK pagination: null problem: null reimbursement: reimbursementID: fef6115f-1606-4a74-be54-312d46b0eb0e name: Travel Allowance accountID: c7b73345-7f25-428a-bb97-7b20a1470a53 currentRecord: true /Timesheets: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.timesheets - payroll.timesheets.read tags: - PayrollUk operationId: getTimesheets x-hasPayrollUkProblem: true summary: Retrieves timesheets parameters: - in: query name: page description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. schema: type: integer example: 5 - in: query name: filter description: Filter by employeeId and/or payrollCalendarId schema: type: string example: employeeId==00000000-0000-0000-0000-000000000000,payrollCalendarId==00000000-0000-0000-0000-000000000000 - in: query name: status description: filter results by any timesheets with a matching timesheet status schema: type: string example: Draft - in: query name: startDate x-snake: start_date description: filter results by any timesheets with a startDate on or after the provided date schema: type: string example: "2019-01-02" - in: query name: endDate x-snake: end_date description: filter results by any timesheets with a endDate on or before the provided date schema: type: string example: "2020-01-02" - in: query name: sort description: sort the order of timesheets returned. The default is based on the timesheets createdDate, sorted oldest to newest. Currently, the only other option is to reverse the order based on the timesheets startDate, sorted newest to oldest. schema: type: string example: startDate responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/Timesheets' example: id: d81c2087-3ecb-4d91-b775-73d85f593370 providerName: provider-name dateTimeUTC: 2020-04-13T21:54:01.8865016 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 1 problem: null timesheets: - timesheetID: 0c94d453-3d8c-4167-8c25-b4025121d18b payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 startDate: 2020-04-13T00:00:00 endDate: 2020-04-19T00:00:00 status: Approved totalHours: 16 updatedDateUTC: 2020-04-13T21:53:39 post: security: - OAuth2: - payroll.timesheets tags: - PayrollUk operationId: createTimesheet x-hasPayrollUkProblem: true x-example: - startDateValue: key: startDate keyPascal: StartDate keySnake: start_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 28) java: LocalDate.of(2020, Month.OCTOBER, 28) csharp: new DateTime(2020, 10, 10) php: new DateTime('2020-10-28') node: '''2020-10-28''' python: dateutil.parser.parse('2020-10-28T00:00:00Z') ruby: '''YYYY-MM-DD''' - endDateValue: key: endDate keyPascal: EndDate keySnake: end_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 30) java: LocalDate.of(2020, Month.OCTOBER, 30) csharp: new DateTime(2020, 10, 12) php: new DateTime('2020-10-30') node: '''2020-10-30''' python: dateutil.parser.parse('2020-10-30T00:00:00Z') ruby: '''YYYY-MM-DD''' - timesheet: key: timesheet keyPascal: Timesheet keySnake: timesheet is_object: true - payrollCalendarID: key: payrollCalendarID keyPascal: PayrollCalendarID keySnake: payroll_calendar_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: timesheet - employeeID: key: employeeID keyPascal: EmployeeID keySnake: employee_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: timesheet - startDate: is_variable: true nonString: true key: startDate keyPascal: StartDate keySnake: start_date default: startDate python: start_date ruby: start_date object: timesheet - endDate: is_last: true is_variable: true nonString: true key: endDate keyPascal: EndDate keySnake: end_date default: endDate python: end_date ruby: end_date object: timesheet summary: Creates a new timesheet parameters: - $ref: '#/components/parameters/idempotencyKey' responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/TimesheetObject' example: id: ef0aa7e2-6f7f-43f6-9186-af670dce7c69 providerName: provider-name dateTimeUTC: 2020-04-21T03:07:37.0148822 httpStatusCode: OK pagination: null problem: null timesheet: timesheetID: 88d2038a-06f7-4b8a-bdab-809804c0aa1d payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 startDate: 2020-04-13T00:00:00 endDate: 2020-04-19T00:00:00 status: Draft totalHours: 14 updatedDateUTC: 2020-04-21T03:07:36.8132834 timesheetLines: - timesheetLineID: 03060d0c-b14a-4339-aced-51cb2e5313b7 date: 2020-04-15T00:00:00 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 trackingItemID: null numberOfUnits: 6 - timesheetLineID: 53ebdb54-b604-4d15-8c42-5162a7fe88e6 date: 2020-04-13T00:00:00 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 trackingItemID: null numberOfUnits: 8 "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Timesheet' example: payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 startDate: "2020-04-13" endDate: "2020-04-19" timesheetLines: - date: "2020-04-13" earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 numberOfUnits: 8 - date: "2020-04-15" earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 numberOfUnits: 6 /Timesheets/{TimesheetID}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.timesheets - payroll.timesheets.read tags: - PayrollUk operationId: getTimesheet x-hasPayrollUkProblem: true summary: Retrieve a specific timesheet by using a unique timesheet ID parameters: - in: path name: TimesheetID x-snake: timesheet_id required: true description: Identifier for the timesheet schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/TimesheetObject' example: id: 504259ac-df26-482e-bd0a-d792d96453bb providerName: provider-name dateTimeUTC: 2020-04-14T16:41:00.5013526 httpStatusCode: OK pagination: null problem: null timesheet: timesheetID: 25c59963-5df2-43c3-88f6-25a3caa63084 payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 startDate: 2020-04-13T00:00:00 endDate: 2020-04-19T00:00:00 status: Draft totalHours: 14 updatedDateUTC: 2020-04-14T16:31:35 timesheetLines: - timesheetLineID: 6cc1e5c3-f080-4dbc-a82b-bea256ef939f date: 2020-04-13T00:00:00 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 trackingItemID: null numberOfUnits: 8 - timesheetLineID: 3d900df1-9859-492b-9b00-155860158c0d date: 2020-04-15T00:00:00 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 trackingItemID: null numberOfUnits: 6 delete: security: - OAuth2: - payroll.timesheets tags: - PayrollUk operationId: deleteTimesheet summary: Deletes a specific timesheet parameters: - in: path name: TimesheetID x-snake: timesheet_id required: true description: Identifier for the timesheet schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/TimesheetLine' "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' /Timesheets/{TimesheetID}/Lines: parameters: - $ref: '#/components/parameters/requiredHeader' post: security: - OAuth2: - payroll.timesheets tags: - PayrollUk operationId: createTimesheetLine x-hasPayrollUkProblem: true x-example: - dateValue: key: date keyPascal: Date keySnake: date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 28) java: LocalDate.of(2020, Month.OCTOBER, 28) csharp: new DateTime(2020, 10, 10) php: new DateTime('2020-10-28') node: '''2020-10-28''' python: dateutil.parser.parse('2020-10-28T00:00:00Z') ruby: '''YYYY-MM-DD''' - timesheetLine: key: timesheetLine keyPascal: TimesheetLine keySnake: timesheet_line is_object: true - timesheetLineID: key: timesheetLineID keyPascal: TimesheetLineID keySnake: timesheet_line_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: timesheetLine - date: key: date keyPascal: Date keySnake: date default: date python: date ruby: date is_variable: true nonString: true object: timesheetLine - earningsRateID: key: earningsRateID keyPascal: EarningsRateID keySnake: earnings_rate_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: timesheetLine - trackingItemID: key: trackingItemID keyPascal: TrackingItemID keySnake: tracking_item_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: timesheetLine - numberOfUnits: key: numberOfUnits keyPascal: NumberOfUnits keySnake: number_of_units default: 6 object: timesheetLine nonString: true is_last: true summary: Creates a new timesheet line for a specific timesheet using a unique timesheet ID parameters: - $ref: '#/components/parameters/idempotencyKey' - in: path name: TimesheetID x-snake: timesheet_id required: true description: Identifier for the timesheet schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/TimesheetLineObject' example: id: cf701261-529e-47cd-8156-5ec9ab3394ff providerName: provider-name dateTimeUTC: 2020-04-14T17:19:22.8599292 httpStatusCode: OK pagination: null problem: null timesheetLine: timesheetLineID: 56fce87e-7f0d-4c19-8f74-7f5656651c81 date: 2020-04-14T00:00:00 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 trackingItemID: null numberOfUnits: 1 "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TimesheetLine' example: date: "2020-04-14" earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 numberOfUnits: 1 /Timesheets/{TimesheetID}/Approve: parameters: - $ref: '#/components/parameters/requiredHeader' post: security: - OAuth2: - payroll.timesheets tags: - PayrollUk operationId: approveTimesheet x-hasPayrollUkProblem: true summary: Approves a specific timesheet parameters: - $ref: '#/components/parameters/idempotencyKey' - in: path name: TimesheetID x-snake: timesheet_id required: true description: Identifier for the timesheet schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/TimesheetObject' example: id: 94c27148-2749-4d85-bc1a-986e6de230ae providerName: provider-name dateTimeUTC: 2020-06-01T20:32:19.7577043 httpStatusCode: OK pagination: null problem: null timesheet: timesheetID: 62bd8b5f-8e90-4868-a0e6-62f994f7d659 payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 startDate: 2020-04-13T00:00:00 endDate: 2020-04-19T00:00:00 status: Approved totalHours: 9 updatedDateUTC: 2020-06-01T20:32:19.9534744 timesheetLines: - timesheetLineID: ce6db38f-efe9-49dc-ae42-7e6bad3cb167 date: 2020-04-14T00:00:00 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 trackingItemID: null numberOfUnits: 2 - timesheetLineID: bc8004d2-5965-4f4e-8e46-0519040b4a05 date: 2020-04-15T00:00:00 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 trackingItemID: null numberOfUnits: 6 - timesheetLineID: fd00cd5a-7d0c-4cb7-85ff-66bd3ed2439a date: 2020-04-14T00:00:00 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 trackingItemID: null numberOfUnits: 1 "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' /Timesheets/{TimesheetID}/RevertToDraft: parameters: - $ref: '#/components/parameters/requiredHeader' post: security: - OAuth2: - payroll.timesheets tags: - PayrollUk operationId: revertTimesheet x-hasPayrollUkProblem: true summary: Reverts a specific timesheet to draft parameters: - $ref: '#/components/parameters/idempotencyKey' - in: path name: TimesheetID x-snake: timesheet_id required: true description: Identifier for the timesheet schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/TimesheetObject' example: id: a774530a-a50c-4480-a094-358cf80a7d98 providerName: provider-name dateTimeUTC: 2020-04-14T17:49:23.1119111 httpStatusCode: OK pagination: null problem: null timesheet: timesheetID: 0fd483c0-3302-48c6-bbd5-7247c9a02460 payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 startDate: 2020-04-13T00:00:00 endDate: 2020-04-19T00:00:00 status: Draft totalHours: 15 updatedDateUTC: 2020-04-14T17:49:23.2188538 timesheetLines: - timesheetLineID: 17a08549-1ed1-416b-83e2-c65040119a02 date: 2020-04-13T00:00:00 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 trackingItemID: null numberOfUnits: 8 - timesheetLineID: 0e912b7d-dc3f-4b95-a466-3f0f5c8581cb date: 2020-04-15T00:00:00 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 trackingItemID: null numberOfUnits: 6 - timesheetLineID: d0faac99-f2d4-42b9-ab00-9c2bc6e8fe3a date: 2020-04-14T00:00:00 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 trackingItemID: null numberOfUnits: 1 "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' /Timesheets/{TimesheetID}/Lines/{TimesheetLineID}: parameters: - $ref: '#/components/parameters/requiredHeader' put: security: - OAuth2: - payroll.timesheets tags: - PayrollUk operationId: updateTimesheetLine x-hasPayrollUkProblem: true x-example: - dateValue: key: date keyPascal: Date keySnake: date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 28) java: LocalDate.of(2020, Month.OCTOBER, 28) csharp: new DateTime(2020, 10, 10) php: new DateTime('2020-10-28') node: '''2020-10-28''' python: dateutil.parser.parse('2020-10-28T00:00:00Z') ruby: '''YYYY-MM-DD''' - timesheetLine: key: timesheetLine keyPascal: TimesheetLine keySnake: timesheet_line is_object: true - timesheetLineID: key: timesheetLineID keyPascal: TimesheetLineID keySnake: timesheet_line_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: timesheetLine - date: key: date keyPascal: Date keySnake: date default: date python: date ruby: date is_variable: true nonString: true object: timesheetLine - earningsRateID: key: earningsRateID keyPascal: EarningsRateID keySnake: earnings_rate_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: timesheetLine - trackingItemID: key: trackingItemID keyPascal: TrackingItemID keySnake: tracking_item_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: timesheetLine - numberOfUnits: key: numberOfUnits keyPascal: NumberOfUnits keySnake: number_of_units default: 6 object: timesheetLine nonString: true is_last: true summary: Updates a specific timesheet line for a specific timesheet parameters: - $ref: '#/components/parameters/idempotencyKey' - in: path name: TimesheetID x-snake: timesheet_id required: true description: Identifier for the timesheet schema: type: string format: uuid - in: path name: TimesheetLineID x-snake: timesheet_line_id required: true description: Identifier for the timesheet line schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/TimesheetLineObject' example: id: 582b87a6-14f3-409b-be89-f9b9c49db983 providerName: provider-name dateTimeUTC: 2020-04-14T18:07:30.718153 httpStatusCode: OK pagination: null problem: null timesheetLine: timesheetLineID: c88edcad-af32-4536-a682-9a4772c21c8d date: 2020-04-14T00:00:00 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 trackingItemID: null numberOfUnits: 2 "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TimesheetLine' example: date: "2020-04-14" earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 numberOfUnits: 2 delete: security: - OAuth2: - payroll.timesheets tags: - PayrollUk operationId: deleteTimesheetLine summary: Deletes a specific timesheet line parameters: - in: path name: TimesheetID x-snake: timesheet_id required: true description: Identifier for the timesheet schema: type: string format: uuid - in: path name: TimesheetLineID x-snake: timesheet_line_id required: true description: Identifier for the timesheet line schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/TimesheetLine' "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' /PayRunCalendars: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getPayRunCalendars x-hasPayrollUkProblem: true summary: Retrieves payrun calendars parameters: - in: query name: page description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. schema: type: integer responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/PayRunCalendars' example: id: f66c8da6-06c1-47c7-a415-366cb3991858 providerName: provider-name dateTimeUTC: 2020-03-25T18:39:43.9215965 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 3 problem: null payRunCalendars: - payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe name: 'Weekly ' calendarType: Weekly periodStartDate: 2020-02-10T00:00:00 periodEndDate: 2020-02-16T00:00:00 paymentDate: 2020-02-17T00:00:00 updatedDateUTC: 2020-02-13T16:53:54 - payrollCalendarID: d45bc68f-59d6-4000-929d-1058dcfa79e1 name: 'Fortnightly ' calendarType: Fortnightly periodStartDate: 2020-02-03T00:00:00 periodEndDate: 2020-02-16T00:00:00 paymentDate: 2020-02-10T00:00:00 updatedDateUTC: 2020-02-10T10:02:09 - payrollCalendarID: 5e813d9e-949c-461f-8a89-e9ee8955a254 name: 'Monthly ' calendarType: Monthly periodStartDate: 2020-03-03T00:00:00 periodEndDate: 2020-04-02T00:00:00 paymentDate: 2020-03-31T00:00:00 updatedDateUTC: 2020-02-13T16:54:07 post: security: - OAuth2: - payroll.settings tags: - PayrollUk operationId: createPayRunCalendar x-hasPayrollUkProblem: true x-example: - startDateValue: key: startDate keyPascal: StartDate keySnake: start_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 28) java: LocalDate.of(2020, Month.OCTOBER, 28) csharp: new DateTime(2020, 10, 10) php: new DateTime('2020-10-28') node: '''2020-10-28''' python: dateutil.parser.parse('2020-10-28T00:00:00Z') ruby: '''YYYY-MM-DD''' - paymentDateValue: key: paymentDate keyPascal: PaymentDate keySnake: payment_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 30) java: LocalDate.of(2020, Month.OCTOBER, 30) csharp: new DateTime(2020, 10, 12) php: new DateTime('2020-10-30') node: '''2020-10-30''' python: dateutil.parser.parse('2020-10-30T00:00:00Z') ruby: '''YYYY-MM-DD''' - payRunCalendar: key: payRunCalendar keyPascal: PayRunCalendar keySnake: pay_run_calendar is_object: true - calendarType: key: calendarType keyPascal: CalendarType keySnake: calendar_type nonString: true default: PayRunCalendar.CalendarTypeEnum.Weekly php: XeroAPI\XeroPHP\Models\PayrollUk\PayRunCalendar\CalendarTypeEnum.WEEKLY node: PayRunCalendar.CalendarTypeEnum.Weekly ruby: XeroRuby::PayrollUk::PayRunCalendar::calendar_type_enum::WEEKLY python: calendar_type_enum.WEEKLY java: com.xero.models.payrolluk.PayRunCalendar.CalendarTypeEnum.WEEKLY csharp: PayRunCalendar.CalendarTypeEnum.Weekly object: payRunCalendar - periodStartDate: key: periodStartDate keyPascal: PeriodStartDate keySnake: period_start_date is_variable: true nonString: true default: startDate python: start_date ruby: start_date object: payRunCalendar - paymentDate: key: paymentDate keyPascal: PaymentDate keySnake: payment_date is_last: true is_variable: true nonString: true default: paymentDate python: payment_date ruby: payment_date object: payRunCalendar summary: Creates a new payrun calendar parameters: - $ref: '#/components/parameters/idempotencyKey' responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/PayRunCalendarObject' example: id: ef25e7f2-b5d6-454c-8147-396c373565dd providerName: provider-name dateTimeUTC: 2020-04-13T17:01:06.2708245 httpStatusCode: OK pagination: null problem: null payRunCalendar: payrollCalendarID: 5f29322d-9123-49be-bef0-9b14c35653d1 name: My Weekly Cal calendarType: Weekly periodStartDate: 2020-05-01T00:00:00 periodEndDate: 2020-05-07T00:00:00 paymentDate: 2020-05-15T00:00:00 updatedDateUTC: 2020-04-13T17:01:06.4944331 "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PayRunCalendar' example: name: My Weekly Cal calendarType: Weekly periodStartDate: "2020-05-01" paymentDate: "2020-05-15" /PayRunCalendars/{PayRunCalendarID}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getPayRunCalendar x-hasPayrollUkProblem: true summary: Retrieves a specific payrun calendar by using a unique payrun calendar ID parameters: - in: path name: PayRunCalendarID x-snake: pay_run_calendar_id required: true description: Identifier for the payrun calendars schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/PayRunCalendarObject' example: id: dae942a3-b4fb-4b24-839b-14e1073f8cca providerName: provider-name dateTimeUTC: 2020-04-13T16:48:49.6902155 httpStatusCode: OK pagination: null problem: null payRunCalendar: payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe name: 'Weekly ' calendarType: Weekly periodStartDate: 2020-02-10T00:00:00 periodEndDate: 2020-02-16T00:00:00 paymentDate: 2020-02-17T00:00:00 updatedDateUTC: 2020-02-13T16:53:54 /Employees/{EmployeeID}/SalaryAndWages: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployeeSalaryAndWages x-hasPayrollUkProblem: true summary: Retrieves a specific employee's salary and wages by using a unique employee ID parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c - in: query name: page description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. schema: type: integer responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/SalaryAndWages' example: id: 56273e64-dff0-4542-96f3-54ad3ac27431 providerName: provider-name dateTimeUTC: 2020-04-10T22:47:38.8995493 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 1 problem: null salaryAndWages: - salaryAndWagesID: 49c33012-c1ac-456c-91fd-cb7e6db6f5fe earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 numberOfUnitsPerWeek: 40 ratePerUnit: null numberOfUnitsPerDay: null daysPerWeek: null effectiveFrom: 2020-04-01T00:00:00 annualSalary: 25000 status: Active paymentType: Salary "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' post: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: createEmployeeSalaryAndWage x-hasPayrollUkProblem: true x-example: - salaryAndWage: key: salaryAndWage keyPascal: SalaryAndWage keySnake: salary_and_wage is_object: true - earningsRateID: key: earningsRateID keyPascal: EarningsRateID keySnake: earnings_rate_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: salaryAndWage - numberOfUnitsPerDay: key: numberOfUnitsPerDay keyPascal: NumberOfUnitsPerDay keySnake: number_of_units_per_day default: 0 nonString: true object: salaryAndWage - numberOfUnitsPerWeek: key: numberOfUnitsPerWeek keyPascal: NumberOfUnitsPerWeek keySnake: number_of_units_per_week default: 0 nonString: true object: salaryAndWage - paymentType: key: paymentType keyPascal: PaymentType keySnake: payment_type nonString: true default: SalaryAndWage.PaymentTypeEnum.Salary php: XeroAPI\XeroPHP\Models\PayrollUk\SalaryAndWage\PaymentTypeEnum.SALARY node: SalaryAndWage.PaymentTypeEnum.Salary ruby: XeroRuby::PayrollUk::SalaryAndWage::payment_type_enum::SALARY python: payment_type_enum.Salary java: com.xero.models.payrolluk.SalaryAndWage.PaymentTypeEnum.SALARY csharp: SalaryAndWage.PaymentTypeEnum.Salary object: salaryAndWage - status: key: status keyPascal: Status keySnake: status nonString: true default: SalaryAndWage.StatusEnum.Active php: XeroAPI\XeroPHP\Models\PayrollUk\SalaryAndWage\StatusEnum.ACTIVE node: SalaryAndWage.StatusEnum.Active ruby: XeroRuby::PayrollUk::SalaryAndWage::status_enum::ACTIVE python: status_enum.Active java: com.xero.models.payrolluk.SalaryAndWage.StatusEnum.ACTIVE csharp: SalaryAndWage.StatusEnum.Active object: salaryAndWage is_last: true summary: Creates a salary and wage record for a specific employee parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/SalaryAndWageObject' example: id: a15f15ec-a8ed-420b-82f6-1546a9bf6d57 providerName: provider-name dateTimeUTC: 2020-04-10T23:46:35.2234544 httpStatusCode: OK pagination: null problem: null salaryAndWages: salaryAndWagesID: 1477fc72-b38d-4c0e-a46e-8657f0f32340 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 numberOfUnitsPerWeek: 2 ratePerUnit: null numberOfUnitsPerDay: 2 daysPerWeek: null effectiveFrom: 2020-05-01T00:00:00 annualSalary: 100 status: Pending paymentType: Salary "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SalaryAndWage' example: earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 numberOfUnitsPerWeek: 2 ratePerUnit: 10 numberOfUnitsPerDay: 2 effectiveFrom: "2020-05-01" annualSalary: 100 status: ACTIVE paymentType: Salary /Employees/{EmployeeID}/SalaryAndWages/{SalaryAndWagesID}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.employees - payroll.employees.read tags: - PayrollUk operationId: getEmployeeSalaryAndWage x-hasPayrollUkProblem: true summary: Retrieves a specific salary and wages record for a specific employee using a unique salary and wage id parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c - name: SalaryAndWagesID x-snake: salary_and_wages_id in: path required: true description: Id for single pay template earnings object schema: type: string format: uuid example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/SalaryAndWages' example: id: cd4f35e7-5062-494a-96c4-f81e9083b0b9 providerName: provider-name dateTimeUTC: 2020-04-10T23:21:48.6291438 httpStatusCode: OK pagination: null problem: null salaryAndWages: - salaryAndWagesID: 49c33012-c1ac-456c-91fd-cb7e6db6f5fe earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 numberOfUnitsPerWeek: 40 ratePerUnit: null numberOfUnitsPerDay: null daysPerWeek: null effectiveFrom: 2020-04-01T00:00:00 annualSalary: 25000 status: Active paymentType: Salary put: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: updateEmployeeSalaryAndWage x-hasPayrollUkProblem: true x-example: - salaryAndWage: key: salaryAndWage keyPascal: SalaryAndWage keySnake: salary_and_wage is_object: true - earningsRateID: key: earningsRateID keyPascal: EarningsRateID keySnake: earnings_rate_id is_uuid: true default: 00000000-0000-0000-0000-000000000000 object: salaryAndWage - numberOfUnitsPerDay: key: numberOfUnitsPerDay keyPascal: NumberOfUnitsPerDay keySnake: number_of_units_per_day default: 0 nonString: true object: salaryAndWage - numberOfUnitsPerWeek: key: numberOfUnitsPerWeek keyPascal: NumberOfUnitsPerWeek keySnake: number_of_units_per_week default: 0 nonString: true object: salaryAndWage - paymentType: key: paymentType keyPascal: PaymentType keySnake: payment_type nonString: true default: SalaryAndWage.PaymentTypeEnum.Salary php: XeroAPI\XeroPHP\Models\PayrollUk\SalaryAndWage\PaymentTypeEnum.SALARY node: SalaryAndWage.PaymentTypeEnum.Salary ruby: XeroRuby::PayrollUk::SalaryAndWage::payment_type_enum::SALARY python: payment_type_enum.Salary java: com.xero.models.payrolluk.SalaryAndWage.PaymentTypeEnum.SALARY csharp: SalaryAndWage.PaymentTypeEnum.Salary object: salaryAndWage - status: key: status keyPascal: Status keySnake: status nonString: true default: SalaryAndWage.StatusEnum.Active php: XeroAPI\XeroPHP\Models\PayrollUk\SalaryAndWage\StatusEnum.ACTIVE node: SalaryAndWage.StatusEnum.Active ruby: XeroRuby::PayrollUk::SalaryAndWage::status_enum::ACTIVE python: status_enum.Active java: com.xero.models.payrolluk.SalaryAndWage.StatusEnum.ACTIVE csharp: SalaryAndWage.StatusEnum.Active object: salaryAndWage is_last: true summary: Updates salary and wages record for a specific employee parameters: - $ref: '#/components/parameters/idempotencyKey' - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c - name: SalaryAndWagesID x-snake: salary_and_wages_id in: path required: true description: Id for single pay template earnings object schema: type: string format: uuid example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/SalaryAndWageObject' example: id: d12a31ee-e094-4e67-9092-0d5e1d7569a6 providerName: provider-name dateTimeUTC: 2020-04-13T16:39:11.7310047 httpStatusCode: OK pagination: null problem: null salaryAndWages: salaryAndWagesID: e9c7f567-b0a0-483c-b45f-d072e399352b earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 numberOfUnitsPerWeek: 3 ratePerUnit: null numberOfUnitsPerDay: null daysPerWeek: null effectiveFrom: 2020-05-15T00:00:00 annualSalary: 101 status: Pending paymentType: Salary "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SalaryAndWage' example: earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 numberOfUnitsPerWeek: 3 ratePerUnit: 11 effectiveFrom: "2020-05-15" annualSalary: 101 status: ACTIVE paymentType: Salary delete: security: - OAuth2: - payroll.employees tags: - PayrollUk operationId: deleteEmployeeSalaryAndWage summary: Deletes a salary and wages record for a specific employee parameters: - name: EmployeeID x-snake: employee_id in: path required: true description: Employee id for single object schema: type: string format: uuid example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c - name: SalaryAndWagesID x-snake: salary_and_wages_id in: path required: true description: Id for single salary and wages object schema: type: string format: uuid example: 3fa85f64-5717-4562-b3fc-2c963f66afa6 responses: "200": description: deletion successful /PayRuns: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.payruns - payroll.payruns.read tags: - PayrollUk operationId: getPayRuns x-hasPayrollUkProblem: true summary: Retrieves pay runs parameters: - in: query name: page description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. schema: type: integer - in: query name: status description: By default get payruns will return all the payruns for an organization. You can add GET https://api.xero.com/payroll.xro/2.0/payRuns?statu={PayRunStatus} to filter the payruns by status. schema: type: string enum: - Draft - Posted responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/PayRuns' example: id: d748445b-fd11-4832-a85a-905fbfcf3d7c providerName: provider-name dateTimeUTC: 2020-04-10T21:55:55.0725037 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 2 problem: null payRuns: - payRunID: e0a59d82-6229-4be4-9d66-49891b4d933e payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe periodStartDate: 2020-02-03T00:00:00 periodEndDate: 2020-02-09T00:00:00 paymentDate: 2020-02-10T00:00:00 totalCost: 490.39 totalPay: 376.92 payRunStatus: Draft payRunType: Scheduled calendarType: Weekly postedDateTime: null payslipMessage: null - payRunID: ea4f0a14-2c41-4583-9845-9e455972b326 payrollCalendarID: 5e813d9e-949c-461f-8a89-e9ee8955a254 periodStartDate: 2020-02-03T00:00:00 periodEndDate: 2020-03-02T00:00:00 paymentDate: 2020-02-28T00:00:00 totalCost: 1502.08 totalPay: 1294.65 payRunStatus: Posted payRunType: Scheduled calendarType: Monthly postedDateTime: 2020-02-13T16:54:11 payslipMessage: null /PayRuns/{PayRunID}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.payruns - payroll.payruns.read tags: - PayrollUk operationId: getPayRun x-hasPayrollUkProblem: true summary: Retrieves a specific pay run by using a unique pay run ID parameters: - in: path name: PayRunID x-snake: pay_run_id required: true description: Identifier for the pay run schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/PayRunObject' example: id: 84471d62-74b6-4b21-845c-6d1e6f031172 providerName: provider-name dateTimeUTC: 2020-04-10T21:55:55.745211 httpStatusCode: OK pagination: null problem: null payRun: payRunID: e0a59d82-6229-4be4-9d66-49891b4d933e payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe periodStartDate: 2020-02-03T00:00:00 periodEndDate: 2020-02-09T00:00:00 paymentDate: 2020-02-10T00:00:00 totalCost: 490.39 totalPay: 376.92 payRunStatus: Draft payRunType: Scheduled calendarType: Weekly postedDateTime: null paySlips: - paySlipID: ed3fb9b3-e9a1-44fa-a224-8be49facbbe8 employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 lastEdited: null firstName: Mike lastName: Johnpitragibigson totalEarnings: 480.77 grossEarnings: 480.77 totalPay: 386.54 totalEmployerTaxes: 0 totalEmployeeTaxes: 94.23 totalDeductions: 9.62 totalReimbursements: 0 totalCourtOrders: 0 totalBenefits: 9.62 bacsHash: null paymentMethod: null payslipMessage: null invalidPayeeIDs: null put: security: - OAuth2: - payroll.payruns tags: - PayrollUk operationId: updatePayRun x-hasPayrollUkProblem: true x-example: - startDateValue: key: startDate keyPascal: StartDate keySnake: start_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 28) java: LocalDate.of(2020, Month.OCTOBER, 28) csharp: new DateTime(2020, 10, 10) php: new DateTime('2020-10-28') node: '''2020-10-28''' python: dateutil.parser.parse('2020-10-28T00:00:00Z') ruby: '''YYYY-MM-DD''' - paymentDateValue: key: paymentDate keyPascal: PaymentDate keySnake: payment_date is_date: true java_datatype: LocalDate csharp_datatype: DateTime default: LocalDate.of(2020, Month.OCTOBER, 30) java: LocalDate.of(2020, Month.OCTOBER, 30) csharp: new DateTime(2020, 10, 12) php: new DateTime('2020-10-30') node: '''2020-10-30''' python: dateutil.parser.parse('2020-10-30T00:00:00Z') ruby: '''YYYY-MM-DD''' - payRunCalendar: key: payRunCalendar keyPascal: PayRunCalendar keySnake: pay_run_calendar is_object: true - calendarType: key: calendarType keyPascal: CalendarType keySnake: calendar_type nonString: true default: CalendarType.Weekly php: XeroAPI\XeroPHP\Models\PayrollUk\CalendarType.WEEKLY node: CalendarType.Weekly ruby: XeroRuby::PayrollUk::calendar_type::WEEKLY python: calendar_type.WEEKLY java: com.xero.models.payrolluk.CalendarType.WEEKLY csharp: CalendarType.Weekly object: payRunCalendar - periodStartDate: key: periodStartDate keyPascal: PeriodStartDate keySnake: period_start_date is_variable: true nonString: true default: startDate python: start_date ruby: start_date object: payRunCalendar - paymentDate: key: paymentDate keyPascal: PaymentDate keySnake: payment_date is_last: true is_variable: true nonString: true default: paymentDate python: payment_date ruby: payment_date object: payRunCalendar summary: Updates a specific pay run parameters: - $ref: '#/components/parameters/idempotencyKey' - in: path name: PayRunID x-snake: pay_run_id required: true description: Identifier for the pay run schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/PayRunObject' example: id: f567524d-34d6-412b-97e3-f97152c1bbc2 providerName: provider-name dateTimeUTC: 2020-06-03T18:33:25.3607921 httpStatusCode: OK pagination: null problem: null payRun: payRunID: e0a59d82-6229-4be4-9d66-49891b4d933e payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe periodStartDate: 2020-02-03T00:00:00 periodEndDate: 2020-02-09T00:00:00 paymentDate: 2020-05-01T00:00:00 totalCost: 523.79 totalPay: 445.04 payRunStatus: Draft payRunType: Scheduled calendarType: Weekly postedDateTime: null paySlips: - paySlipID: ed3fb9b3-e9a1-44fa-a224-8be49facbbe8 employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 lastEdited: null firstName: Mike lastName: Johncfvhitgezvson totalEarnings: 480.77 grossEarnings: 480.77 totalPay: 445.04 totalEmployerTaxes: 43.02 totalEmployeeTaxes: 35.73 totalDeductions: 0 totalReimbursements: 0 totalCourtOrders: 0 totalBenefits: 0 bacsHash: null paymentMethod: Electronically payslipMessage: null invalidPayeeIDs: null "400": description: validation error for a bad request content: application/json: schema: $ref: '#/components/schemas/Problem' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PayRun' example: paymentDate: "2020-05-01" /Payslips: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.payslip - payroll.payslip.read tags: - PayrollUk operationId: getPaySlips x-hasPayrollUkProblem: true summary: Retrieves payslips parameters: - in: query name: page description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100. schema: type: integer - in: query required: true name: PayRunID x-snake: pay_run_id description: PayrunID which specifies the containing payrun of payslips to retrieve. By default, the API does not group payslips by payrun. schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/Payslips' example: id: c07aa280-478b-48b5-a778-499cf95c9781 providerName: provider-name dateTimeUTC: 2020-04-10T21:50:46.3775117 httpStatusCode: OK pagination: page: 1 pageSize: 100 pageCount: 1 itemCount: 1 problem: null paySlips: - paySlipID: ed3fb9b3-e9a1-44fa-a224-8be49facbbe8 employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 payRunID: e0a59d82-6229-4be4-9d66-49891b4d933e lastEdited: null firstName: Mike lastName: Johnpitragibigson totalEarnings: 480.77 grossEarnings: 480.77 totalPay: 386.54 totalEmployerTaxes: 0 totalEmployeeTaxes: 94.23 totalDeductions: 9.62 totalReimbursements: 0 totalCourtOrders: 0 totalBenefits: 9.62 bacsHash: null paymentMethod: null earningsLines: - earningsLineID: 87f5b43a-cf51-4b74-92de-94c819e82d27 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 displayName: Regular Hours ratePerUnit: 12.019231 numberOfUnits: 40 fixedAmount: null amount: 480.77 isLinkedToTimesheet: false isAverageDailyPayRate: null leaveEarningsLines: [] timesheetEarningsLines: [] deductionLines: [] reimbursementLines: [] leaveAccrualLines: - leaveTypeID: ed08dffe-788e-4b24-9630-f0fa2f4d164c numberOfUnits: 0 benefitLines: [] paymentLines: - paymentLineID: 08ceb312-07af-4ce0-ae9a-176532f07009 amount: 384.3 accountNumber: null sortCode: null accountName: null employeeTaxLines: - taxLineID: e7dc717a-4399-4702-9e15-adb87e568dc9 description: PAYE amount: 48.6 globalTaxTypeID: 1 manualAdjustment: false - taxLineID: c774af0b-4776-4c81-9c96-ad18e4b35f40 description: Employee National Insurance Contribution amount: 38.25 globalTaxTypeID: 2 manualAdjustment: false employerTaxLines: - taxLineID: 8de7a488-57ed-4d58-b76a-d9f9460ebded description: Employer National Insurance Contribution amount: 43.99 globalTaxTypeID: 3 manualAdjustment: false courtOrderLines: [] /Payslips/{PayslipID}: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.payslip - payroll.payslip.read tags: - PayrollUk operationId: getPaySlip x-hasPayrollUkProblem: true summary: Retrieves a specific payslip by using a unique payslip ID parameters: - in: path name: PayslipID x-snake: payslip_id required: true description: Identifier for the payslip schema: type: string format: uuid responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/PayslipObject' example: id: 80c558c3-bc7a-48d0-91b2-20b8ec784f0d providerName: provider-name dateTimeUTC: 2020-04-10T22:04:35.1798025 httpStatusCode: OK pagination: null problem: null paySlip: paySlipID: ed3fb9b3-e9a1-44fa-a224-8be49facbbe8 employeeID: aad6b292-7b94-408b-93f6-e489867e3fb0 payRunID: e0a59d82-6229-4be4-9d66-49891b4d933e lastEdited: null firstName: Mike lastName: Johnpitragibigson totalEarnings: 480.77 grossEarnings: 480.77 totalPay: 386.54 totalEmployerTaxes: 0 totalEmployeeTaxes: 94.23 totalDeductions: 9.62 totalReimbursements: 0 totalCourtOrders: 0 totalBenefits: 9.62 bacsHash: null paymentMethod: null earningsLines: - earningsLineID: 87f5b43a-cf51-4b74-92de-94c819e82d27 earningsRateID: 87f5b43a-cf51-4b74-92de-94c819e82d27 displayName: Regular Hours ratePerUnit: 12.019231 numberOfUnits: 40 fixedAmount: null amount: 480.77 isLinkedToTimesheet: false isAverageDailyPayRate: null leaveEarningsLines: [] timesheetEarningsLines: [] deductionLines: [] reimbursementLines: [] leaveAccrualLines: - leaveTypeID: ed08dffe-788e-4b24-9630-f0fa2f4d164c numberOfUnits: 0 benefitLines: [] paymentLines: - paymentLineID: 08ceb312-07af-4ce0-ae9a-176532f07009 amount: 384.3 accountNumber: null sortCode: null accountName: null employeeTaxLines: - taxLineID: e7dc717a-4399-4702-9e15-adb87e568dc9 description: PAYE amount: 48.6 globalTaxTypeID: 1 manualAdjustment: false - taxLineID: c774af0b-4776-4c81-9c96-ad18e4b35f40 description: Employee National Insurance Contribution amount: 38.25 globalTaxTypeID: 2 manualAdjustment: false employerTaxLines: - taxLineID: 8de7a488-57ed-4d58-b76a-d9f9460ebded description: Employer National Insurance Contribution amount: 43.99 globalTaxTypeID: 3 manualAdjustment: false courtOrderLines: [] /Settings: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getSettings x-hasPayrollUkProblem: true summary: Retrieves payroll settings responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/Settings' example: id: 3cb41871-980a-47e4-878f-7c576b0d3677 providerName: provider-name dateTimeUTC: 2020-04-10T21:27:04.8905569 httpStatusCode: OK pagination: null problem: null settings: accounts: - accountID: 9ee28149-32a9-4661-8eab-a28738696983 type: WAGESPAYABLE code: "814" name: Wages Payable - Payroll - accountID: 81da553d-c6c6-411e-95df-cc4ac8f7e1c2 type: WAGESEXPENSE code: "477" name: Salaries - accountID: bd9e85e0-0478-433d-ae9f-0b3c4f04bfe4 type: BANK code: "090" name: Business Bank Account - accountID: 43072840-e67b-45df-8b90-f52ebedb2779 type: PAYELIABILITY code: "825" name: PAYE Payable - accountID: a2377a9f-f5bd-4327-8f85-e3461b591912 type: NICLIABILITY code: "826" name: NIC Payable - accountID: 4e24254c-2770-433d-9845-8925ded5e14a type: EMPLOYERSNIC code: "479" name: Employers National Insurance - accountID: 9ee28149-32a9-4661-8eab-a28738696983 type: PAYEECONTRIBUTION code: "814" name: Wages Payable - Payroll /Settings/trackingCategories: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: - payroll.settings - payroll.settings.read tags: - PayrollUk operationId: getTrackingCategories x-hasPayrollUkProblem: true summary: Retrieves tracking categories responses: "200": description: search results matching criteria content: application/json: schema: $ref: '#/components/schemas/TrackingCategories' example: id: e56628f7-a25e-4d23-88c5-56e2895e2143 providerName: provider-name dateTimeUTC: 2020-04-10T21:13:21.498344 httpStatusCode: OK pagination: null problem: null trackingCategories: employeeGroupsTrackingCategoryID: 9d8ad8f6-0d0f-41e0-8851-ef47e8b54ae6 timesheetTrackingCategoryID: 1d7d2015-10e7-4ecb-8b44-f331c8b63e2d components: securitySchemes: OAuth2: type: oauth2 description: For more information visit https://developer.xero.com/documentation/oauth2/overview flows: authorizationCode: authorizationUrl: https://login.xero.com/identity/connect/authorize tokenUrl: https://identity.xero.com/connect/token scopes: payroll.employees: Grant read-write access to payroll employees payroll.employees.read: Grant read-only access to payroll employees 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.settings: Grant read-write access to payroll settings payroll.settings.read: Grant read-only access to payroll settings payroll.timesheets: Grant read-write access to payroll timesheets payroll.timesheets.read: Grant read-only access to payroll timesheets parameters: requiredHeader: in: header name: Xero-Tenant-Id x-snake: xero_tenant_id description: Xero identifier for Tenant schema: type: string required: true idempotencyKey: in: header name: Idempotency-Key x-snake: idempotency_key description: This allows you to safely retry requests without the risk of duplicate processing. 128 character max. example: KEY_VALUE schema: type: string schemas: Pagination: properties: page: type: integer example: 1 pageSize: type: integer example: 10 pageCount: type: integer example: 1 itemCount: type: integer example: 2 Problem: description: The object returned for a bad request type: object properties: type: description: The type of error format type: string example: application/problem+json title: description: The type of the error type: string example: BadRequest status: description: The error status code type: string example: 400 detail: description: A description of the error type: string example: Validation error occurred. instance: type: string invalidFields: type: array items: $ref: '#/components/schemas/InvalidField' InvalidField: type: object properties: name: description: The name of the field that caused the error type: string example: DateOfBirth reason: description: The reason the error occurred type: string example: The Date of Birth is required. Employees: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' employees: type: array items: $ref: '#/components/schemas/Employee' EmployeeObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' employee: $ref: '#/components/schemas/Employee' problem: $ref: '#/components/schemas/Problem' Employee: type: object required: - title - firstName - lastName - dateOfBirth - gender - address properties: employeeID: description: Xero unique identifier for the employee type: string format: uuid example: d90457c4-f1be-4f2e-b4e3-f766390a7e30 title: description: Title of the employee type: string example: Mrs firstName: description: First name of employee type: string example: Karen lastName: description: Last name of employee type: string example: Jones dateOfBirth: description: Date of birth of the employee (YYYY-MM-DD) type: string format: date example: 2019-01-02 x-is-date: true address: $ref: '#/components/schemas/Address' email: description: The email address for the employee type: string example: developer@me.com gender: description: The employee’s gender type: string enum: - M - F example: F phoneNumber: description: Employee phone number type: string example: 415-555-1212 startDate: description: Employment start date of the employee at the time it was requested type: string format: date example: 2020-01-19 x-is-date: true endDate: description: Employment end date of the employee at the time it was requested type: string format: date example: 2020-01-19 x-is-date: true payrollCalendarID: description: Xero unique identifier for the payroll calendar of the employee type: string format: uuid updatedDateUTC: description: UTC timestamp of last update to the employee type: string format: date-time x-is-datetime: true createdDateUTC: description: UTC timestamp when the employee was created in Xero type: string format: date-time x-is-datetime: true nationalInsuranceNumber: description: National insurance number of the employee type: string example: AB123456C isOffPayrollWorker: description: Whether the employee is an off payroll worker type: boolean EmploymentObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' employment: $ref: '#/components/schemas/Employment' Employment: type: object required: - payrollCalendarID - startDate - employeeNumber - niCategory properties: payrollCalendarID: description: Xero unique identifier for the payroll calendar of the employee type: string format: uuid startDate: description: Start date of the employment (YYYY-MM-DD) type: string format: date x-is-date: true employeeNumber: description: The employment number of the employee type: string example: 007 niCategory: description: The NI Category of the employee type: string enum: - A - B - C - F - H - I - J - L - M - S - V - X - Z example: A EmployeeTaxObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' employeeTax: $ref: '#/components/schemas/EmployeeTax' EmployeeTax: type: object properties: starterType: description: The Starter type. type: string example: New Employee with P45 starterDeclaration: description: Starter declaration. type: string example: B.) This is currently their only job taxCode: description: The Tax code. type: string example: 1185L w1M1: description: Describes whether the tax settings is W1M1 type: boolean previousTaxablePay: description: The previous taxable pay type: number format: double x-is-money: true previousTaxPaid: description: The tax amount previously paid type: number format: double x-is-money: true studentLoanDeduction: description: The employee's student loan deduction type type: string example: Plan Type 2 hasPostGraduateLoans: description: Describes whether the employee has post graduate loans type: boolean isDirector: description: Describes whether the employee is director type: boolean directorshipStartDate: description: The directorship start date type: string format: date x-is-date: true nicCalculationMethod: description: NICs calculation method type: string example: Annualized EmployeeOpeningBalancesObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' openingBalances: $ref: '#/components/schemas/EmployeeOpeningBalances' EmployeeOpeningBalances: type: object properties: statutoryAdoptionPay: description: The total accumulated statutory adoption pay amount received by the employee for current fiscal year to date type: number format: double x-is-money: true statutoryMaternityPay: description: The total accumulated statutory maternity pay amount received by the employee for current fiscal year to date type: number format: double x-is-money: true statutoryPaternityPay: description: The total accumulated statutory paternity pay amount received by the employee for current fiscal year to date type: number format: double x-is-money: true statutorySharedParentalPay: description: The total accumulated statutory shared parental pay amount received by the employee for current fiscal year to date type: number format: double x-is-money: true statutorySickPay: description: The total accumulated statutory sick pay amount received by the employee for current fiscal year to date type: number format: double x-is-money: true priorEmployeeNumber: description: The unique employee number issued by the employee's former employer type: number format: double EmployeeLeaves: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' leave: type: array items: $ref: '#/components/schemas/EmployeeLeave' EmployeeLeaveObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' leave: $ref: '#/components/schemas/EmployeeLeave' EmployeeLeave: type: object required: - leaveTypeID - description - startDate - endDate properties: leaveID: description: The Xero identifier for LeaveType type: string format: uuid leaveTypeID: description: The Xero identifier for LeaveType type: string format: uuid description: description: The description of the leave (max length = 50) type: string startDate: description: Start date of the leave (YYYY-MM-DD) type: string format: date x-is-date: true endDate: description: End date of the leave (YYYY-MM-DD) type: string format: date x-is-date: true periods: description: The leave period information. The StartDate, EndDate and NumberOfUnits needs to be specified when you do not want to calculate NumberOfUnits automatically. Using incorrect period StartDate and EndDate will result in automatic computation of the NumberOfUnits. type: array items: $ref: '#/components/schemas/LeavePeriod' updatedDateUTC: description: UTC timestamp of last update to the leave type note type: string format: date-time x-is-datetime: true LeavePeriods: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' periods: type: array items: $ref: '#/components/schemas/LeavePeriod' LeavePeriod: type: object properties: periodStartDate: description: The Pay Period Start Date (YYYY-MM-DD) type: string format: date x-is-date: true periodEndDate: description: The Pay Period End Date (YYYY-MM-DD) type: string format: date x-is-date: true numberOfUnits: description: The Number of Units for the leave type: number format: double periodStatus: description: Period Status type: string enum: - Approved - Completed EmployeeLeaveBalances: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' leaveBalances: type: array items: $ref: '#/components/schemas/EmployeeLeaveBalance' EmployeeLeaveBalance: type: object properties: name: description: Name of the leave type. type: string example: Holiday leaveTypeID: description: The Xero identifier for leave type type: string format: uuid balance: description: The employees current balance for the corresponding leave type. type: number format: double typeOfUnits: description: The type of the units of the leave. type: string example: hours EmployeeStatutoryLeaveBalanceObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' leaveBalance: $ref: '#/components/schemas/EmployeeStatutoryLeaveBalance' EmployeeStatutoryLeaveBalance: type: object properties: leaveType: description: The type of statutory leave type: string enum: - Sick - Adoption - Maternity - Paternity - Sharedparental balanceRemaining: description: The balance remaining for the corresponding leave type as of specified date. type: number format: double units: description: The units will be "Hours" type: string enum: - Hours EmployeeStatutoryLeavesSummaries: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' statutoryLeaves: type: array items: $ref: '#/components/schemas/EmployeeStatutoryLeaveSummary' EmployeeStatutoryLeaveSummary: type: object properties: statutoryLeaveID: description: The unique identifier (guid) of a statutory leave. type: string format: uuid employeeID: description: The unique identifier (guid) of the employee type: string format: uuid type: description: The category of statutory leave type: string enum: - Sick - Adoption - Maternity - Paternity - Sharedparental startDate: description: The date when the leave starts type: string format: date x-is-date: true endDate: description: The date when the leave ends type: string format: date x-is-date: true isEntitled: description: Whether the leave was entitled to receive payment type: boolean status: description: The status of the leave type: string enum: - Pending - In-Progress - Completed EmployeeStatutorySickLeaves: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' statutorySickLeave: type: array items: $ref: '#/components/schemas/EmployeeStatutorySickLeave' EmployeeStatutorySickLeaveObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' statutorySickLeave: $ref: '#/components/schemas/EmployeeStatutorySickLeave' EmployeeStatutorySickLeave: type: object required: - employeeID - startDate - endDate - workPattern - leaveTypeID - isPregnancyRelated - sufficientNotice properties: statutoryLeaveID: description: The unique identifier (guid) of a statutory leave type: string format: uuid employeeID: description: The unique identifier (guid) of the employee type: string format: uuid leaveTypeID: description: The unique identifier (guid) of the "Statutory Sick Leave (non-pensionable)" pay item type: string format: uuid startDate: description: The date when the leave starts type: string format: date x-is-date: true endDate: description: The date when the leave ends type: string format: date x-is-date: true type: description: the type of statutory leave type: string example: Sick status: description: the type of statutory leave type: string example: Pending workPattern: description: The days of the work week the employee is scheduled to work at the time the leave is taken type: array items: type: string isPregnancyRelated: description: Whether the sick leave was pregnancy related type: boolean sufficientNotice: description: Whether the employee provided sufficient notice and documentation as required by the employer supporting the sick leave request type: boolean isEntitled: description: Whether the leave was entitled to receive payment type: boolean entitlementWeeksRequested: description: The amount of requested time (in weeks) type: number format: double entitlementWeeksQualified: description: The amount of statutory sick leave time off (in weeks) that is available to take at the time the leave was requested type: number format: double entitlementWeeksRemaining: description: A calculated amount of time (in weeks) that remains for the statutory sick leave period type: number format: double overlapsWithOtherLeave: description: Whether another leave (Paternity, Shared Parental specifically) occurs during the requested leave's period. While this is allowed it could affect payment amounts type: boolean entitlementFailureReasons: description: If the leave requested was considered "not entitled", the reasons why are listed here. type: array items: type: string enum: - UnableToCalculateAwe - AweLowerThanLel - NotQualifiedInPreviousPiw - ExceededMaximumEntitlementWeeksOfSsp - ExceededMaximumDurationOfPiw - SufficientNoticeNotGiven EmployeeLeaveTypes: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' leaveTypes: type: array items: $ref: '#/components/schemas/EmployeeLeaveType' EmployeeLeaveTypeObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' leaveType: $ref: '#/components/schemas/EmployeeLeaveType' EmployeeLeaveType: type: object required: - leaveTypeID - scheduleOfAccrual properties: leaveTypeID: description: The Xero identifier for leave type type: string format: uuid scheduleOfAccrual: description: The schedule of accrual type: string enum: - BeginningOfCalendarYear - OnAnniversaryDate - EachPayPeriod - OnHourWorked hoursAccruedAnnually: description: The number of hours accrued for the leave annually. This is 0 when the scheduleOfAccrual chosen is "OnHourWorked" type: number format: double maximumToAccrue: description: The maximum number of hours that can be accrued for the leave type: number format: double openingBalance: description: The initial number of hours assigned when the leave was added to the employee type: number format: double rateAccruedHourly: description: The number of hours added to the leave balance for every hour worked by the employee. This is normally 0, unless the scheduleOfAccrual chosen is "OnHourWorked" type: number format: double scheduleOfAccrualDate: description: The date when an employee becomes entitled to their accrual. Only applicable when scheduleOfAccrual is "OnAnniversaryDate" type: string format: date example: 2024-04-01 x-is-date: true EmployeePayTemplateObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' payTemplate: $ref: '#/components/schemas/EmployeePayTemplate' EmployeePayTemplates: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' earningTemplates: $ref: '#/components/schemas/EarningsTemplates' EmployeePayTemplate: type: object required: - EarningTemplates properties: employeeID: description: Unique identifier for the employee type: string format: uuid earningTemplates: $ref: '#/components/schemas/EarningsTemplates' EarningsTemplates: type: array items: $ref: '#/components/schemas/EarningsTemplate' EarningsTemplateObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' earningTemplate: $ref: '#/components/schemas/EarningsTemplate' EarningsTemplate: type: object properties: payTemplateEarningID: description: The Xero identifier for the earnings template type: string format: uuid ratePerUnit: description: The rate per unit type: number format: double x-is-money: true numberOfUnits: description: The rate per unit type: number format: double x-is-money: true fixedAmount: description: The fixed amount per period type: number format: double x-is-money: true earningsRateID: description: The corresponding earnings rate identifier type: string format: uuid name: description: The read-only name of the Earning Template. type: string Benefits: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' benefits: type: array items: $ref: '#/components/schemas/Benefit' BenefitObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' benefit: $ref: '#/components/schemas/Benefit' Benefit: type: object required: - name - category - liabilityAccountId - expenseAccountId - calculationType - percentage properties: id: description: unique identifier in Xero type: string format: uuid name: description: Name of the employer pension type: string category: description: Category type of the employer pension type: string enum: - StakeholderPension - Other liabilityAccountId: description: Xero identifier for Liability Account type: string format: uuid expenseAccountId: description: Xero identifier for Expense Account type: string format: uuid standardAmount: description: Standard amount of the employer pension type: number format: double x-is-money: true percentage: description: Percentage of gross of the employer pension type: number format: double x-is-money: true calculationType: description: Calculation Type of the employer pension (FixedAmount or PercentageOfGross). type: string enum: - FixedAmount - PercentageOfGross currentRecord: description: Identifier of a record is active or not. type: boolean subjectToNIC: description: Identifier of subject To NIC type: boolean subjectToPension: description: Identifier of subject To pension type: boolean subjectToTax: description: Identifier of subject To Tax type: boolean isCalculatingOnQualifyingEarnings: description: Identifier of calculating on qualifying earnings type: boolean showBalanceToEmployee: description: display the balance to employee type: boolean Deductions: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' deductions: type: array items: $ref: '#/components/schemas/Deduction' DeductionObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' deduction: $ref: '#/components/schemas/Deduction' Deduction: type: object required: - deductionName - liabilityAccountId properties: deductionId: description: The Xero identifier for Deduction type: string format: uuid deductionName: description: Name of the deduction type: string deductionCategory: description: Deduction Category type type: string enum: - CapitalContributions - ChildCareVoucher - MakingGood - PostgraduateLoanDeductions - PrivateUsePayments - SalarySacrifice - StakeholderPension - StakeholderPensionPostTax - StudentLoanDeductions - UkOther liabilityAccountId: description: Xero identifier for Liability Account type: string format: uuid currentRecord: description: Identifier of a record is active or not. type: boolean standardAmount: description: Standard amount of the deduction type: number format: double x-is-money: true reducesSuperLiability: description: Identifier of reduces super liability type: boolean reducesTaxLiability: description: Identifier of reduces tax liability type: boolean calculationType: description: determine the calculation type whether fixed amount or percentage of gross type: string enum: - FixedAmount - PercentageOfGross percentage: description: Percentage of gross type: number format: double x-is-money: true subjectToNIC: description: Identifier of subject To NIC type: boolean subjectToTax: description: Identifier of subject To Tax type: boolean isReducedByBasicRate: description: Identifier of reduced by basic rate applicable or not type: boolean applyToPensionCalculations: description: Identifier for apply to pension calculations type: boolean isCalculatingOnQualifyingEarnings: description: Identifier of calculating on qualifying earnings type: boolean isPension: description: Identifier of applicable for pension or not type: boolean StatutoryDeductions: type: array items: $ref: '#/components/schemas/StatutoryDeduction' StatutoryDeduction: type: object properties: id: description: The Xero identifier for earnings order type: string format: uuid name: description: Name of the earnings order type: string statutoryDeductionCategory: $ref: '#/components/schemas/StatutoryDeductionCategory' liabilityAccountId: description: Xero identifier for Liability Account type: string format: uuid currentRecord: description: Identifier of a record is active or not. type: boolean StatutoryDeductionCategory: description: Statutory Deduction Category type: string enum: - AdditionalStudentLoan - ChildSupport - CourtFines - Creditor - FederalLevy - InlandRevenueArrears - KiwiSaver - MsdRepayments - NonPriorityOrder - PriorityOrder - TableBased - StudentLoan - VoluntaryStudentLoan - USChildSupport EarningsOrders: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' statutoryDeductions: type: array items: $ref: '#/components/schemas/EarningsOrder' EarningsOrderObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' statutoryDeduction: $ref: '#/components/schemas/EarningsOrder' EarningsOrder: type: object required: - name properties: id: description: Xero unique identifier for an earning rate type: string format: uuid name: description: Name of the earning order type: string statutoryDeductionCategory: $ref: '#/components/schemas/StatutoryDeductionCategory' liabilityAccountId: description: Xero identifier for Liability Account type: string format: uuid currentRecord: description: Identifier of a record is active or not. type: boolean default: true EarningsRates: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' earningsRates: type: array items: $ref: '#/components/schemas/EarningsRate' EarningsRateObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' earningsRate: $ref: '#/components/schemas/EarningsRate' EarningsRate: type: object required: - name - earningsType - rateType - typeOfUnits - expenseAccountID properties: earningsRateID: description: Xero unique identifier for an earning rate type: string format: uuid name: description: Name of the earning rate type: string earningsType: description: Indicates how an employee will be paid when taking this type of earning type: string enum: - Allowance - BackPay - Bonus - Commission - LumpSum - OtherEarnings - OvertimeEarnings - RegularEarnings - StatutoryAdoptionPay - StatutoryAdoptionPayNonPensionable - StatutoryBereavementPay - StatutoryMaternityPay - StatutoryMaternityPayNonPensionable - StatutoryPaternityPay - StatutoryPaternityPayNonPensionable - StatutoryParentalBereavementPayNonPensionable - StatutorySharedParentalPay - StatutorySharedParentalPayNonPensionable - StatutorySickPay - StatutorySickPayNonPensionable - TipsNonDirect - TipsDirect - TerminationPay rateType: description: Indicates the type of the earning rate type: string enum: - RatePerUnit - MultipleOfOrdinaryEarningsRate - FixedAmount typeOfUnits: description: The type of units used to record earnings type: string currentRecord: description: Indicates whether an earning type is active type: boolean expenseAccountID: description: The account that will be used for the earnings rate type: string format: uuid ratePerUnit: description: Default rate per unit (optional). Only applicable if RateType is RatePerUnit type: number format: double x-is-money: true multipleOfOrdinaryEarningsRate: 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 MultipleOfOrdinaryEarningsRate type: number format: double x-is-money: true fixedAmount: description: Optional Fixed Rate Amount. Applicable for FixedAmount Rate type: number format: double x-is-money: true LeaveTypes: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' leaveTypes: type: array items: $ref: '#/components/schemas/LeaveType' LeaveTypeObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' leaveType: $ref: '#/components/schemas/LeaveType' LeaveType: type: object required: - name - isPaidLeave - showOnPayslip properties: leaveID: description: Xero unique identifier for the leave type: string format: uuid leaveTypeID: description: Xero unique identifier for the leave type type: string format: uuid name: description: Name of the leave type type: string isPaidLeave: description: Indicate that an employee will be paid when taking this type of leave type: boolean showOnPayslip: description: Indicate that a balance for this leave type to be shown on the employee’s payslips type: boolean updatedDateUTC: description: UTC timestamp of last update to the leave type note type: string format: date-time x-is-datetime: true isActive: description: Shows whether the leave type is active or not type: boolean isStatutoryLeave: description: Shows whether the leave type is a statutory leave type or not type: boolean Reimbursements: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' reimbursements: type: array items: $ref: '#/components/schemas/Reimbursement' ReimbursementObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' reimbursement: $ref: '#/components/schemas/Reimbursement' Reimbursement: type: object required: - name - accountID properties: reimbursementID: description: Xero unique identifier for a reimbursement type: string format: uuid name: description: Name of the reimbursement type: string accountID: description: Xero unique identifier for the account used for the reimbursement type: string format: uuid currentRecord: description: Indicates that whether the reimbursement is active type: boolean Timesheets: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' timesheets: type: array items: $ref: '#/components/schemas/Timesheet' TimesheetObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' timesheet: $ref: '#/components/schemas/Timesheet' Timesheet: type: object required: - payrollCalendarID - employeeID - startDate - endDate properties: timesheetID: description: The Xero identifier for a Timesheet type: string format: uuid payrollCalendarID: description: The Xero identifier for the Payroll Calendar that the Timesheet applies to type: string format: uuid employeeID: description: The Xero identifier for the Employee that the Timesheet is for type: string format: uuid startDate: description: The Start Date of the Timesheet period (YYYY-MM-DD) type: string format: date x-is-date: true endDate: description: The End Date of the Timesheet period (YYYY-MM-DD) type: string format: date x-is-date: true status: description: Status of the timesheet type: string enum: - Draft - Approved - Completed totalHours: description: The Total Hours of the Timesheet type: number format: double updatedDateUTC: description: The UTC date time that the Timesheet was last updated type: string format: date-time x-is-datetime: true timesheetLines: $ref: '#/components/schemas/TimesheetLines' TimesheetLines: type: array items: $ref: '#/components/schemas/TimesheetLine' TimesheetLineObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' timesheetLine: $ref: '#/components/schemas/TimesheetLine' TimesheetLine: type: object required: - date - earningsRateID - numberOfUnits properties: timesheetLineID: description: The Xero identifier for a Timesheet Line type: string format: uuid date: description: The Date that this Timesheet Line is for (YYYY-MM-DD) type: string format: date x-is-date: true earningsRateID: description: The Xero identifier for the Earnings Rate that the Timesheet is for type: string format: uuid trackingItemID: description: The Xero identifier for the Tracking Item that the Timesheet is for type: string format: uuid numberOfUnits: description: The Number of Units of the Timesheet Line type: number format: double PayRunCalendars: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' payRunCalendars: type: array items: $ref: '#/components/schemas/PayRunCalendar' PayRunCalendarObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' payRunCalendar: $ref: '#/components/schemas/PayRunCalendar' PayRunCalendar: type: object required: - name - calendarType - periodStartDate - paymentDate properties: payrollCalendarID: description: Xero unique identifier for the payroll calendar type: string format: uuid name: description: Name of the calendar type: string calendarType: description: Type of the calendar type: string enum: - Weekly - Fortnightly - FourWeekly - Monthly - Annual - Quarterly periodStartDate: description: Period start date of the calendar type: string format: date x-is-date: true periodEndDate: description: Period end date of the calendar type: string format: date x-is-date: true paymentDate: description: Payment date of the calendar type: string format: date x-is-date: true updatedDateUTC: description: UTC timestamp of the last update to the pay run calendar type: string format: date-time x-is-datetime: true PaymentMethodObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' paymentMethod: $ref: '#/components/schemas/PaymentMethod' PaymentMethod: type: object required: - paymentMethod properties: paymentMethod: description: The payment method code type: string enum: - Cheque - Electronically - Manual bankAccounts: type: array items: $ref: '#/components/schemas/BankAccount' SalaryAndWages: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' salaryAndWages: type: array items: $ref: '#/components/schemas/SalaryAndWage' SalaryAndWageObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' salaryAndWages: $ref: '#/components/schemas/SalaryAndWage' SalaryAndWage: type: object required: - earningsRateID - numberOfUnitsPerWeek - effectiveFrom - annualSalary - status - paymentType properties: salaryAndWagesID: description: Xero unique identifier for a salary and wages record type: string format: uuid earningsRateID: description: Xero unique identifier for an earnings rate type: string format: uuid numberOfUnitsPerWeek: description: The Number of Units per week for the corresponding salary and wages type: number format: double ratePerUnit: description: The rate of each unit for the corresponding salary and wages type: number format: double numberOfUnitsPerDay: description: The Number of Units per day for the corresponding salary and wages type: number format: double effectiveFrom: description: The effective date of the corresponding salary and wages type: string format: date x-is-date: true annualSalary: description: The annual salary type: number format: double status: description: The current status of the corresponding salary and wages type: string enum: - Active - Pending - History paymentType: description: The type of the payment of the corresponding salary and wages type: string enum: - Salary - Hourly PayRuns: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' payRuns: type: array items: $ref: '#/components/schemas/PayRun' PayRunObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' payRun: $ref: '#/components/schemas/PayRun' PayRun: type: object properties: payRunID: description: Xero unique identifier for the pay run type: string format: uuid payrollCalendarID: description: Xero unique identifier for the payroll calendar type: string format: uuid periodStartDate: description: Period start date of the payroll calendar type: string format: date x-is-date: true periodEndDate: description: Period end date of the payroll calendar type: string format: date x-is-date: true paymentDate: description: Payment date of the pay run type: string format: date x-is-date: true totalCost: description: Total cost of the pay run type: number format: double totalPay: description: Total pay of the pay run type: number format: double payRunStatus: description: Pay run status type: string enum: - Draft - Posted payRunType: description: Pay run type type: string enum: - Scheduled - Unscheduled - EarlierYearUpdate calendarType: description: Calendar type of the pay run type: string enum: - Weekly - Fortnightly - FourWeekly - Monthly - Annual - Quarterly postedDateTime: description: Posted date time of the pay run type: string format: date x-is-date: true paySlips: type: array items: $ref: '#/components/schemas/Payslip' PayslipObject: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' paySlip: $ref: '#/components/schemas/Payslip' Payslips: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' paySlips: type: array items: $ref: '#/components/schemas/Payslip' Payslip: type: object properties: paySlipID: description: The Xero identifier for a Payslip type: string format: uuid employeeID: description: The Xero identifier for payroll employee type: string format: uuid payRunID: description: The Xero identifier for the associated payrun type: string format: uuid lastEdited: description: The date payslip was last updated type: string format: date x-is-datetime: true firstName: description: Employee first name type: string lastName: description: Employee last name type: string totalEarnings: description: Total earnings before any deductions. Same as gross earnings for UK. type: number format: double grossEarnings: description: Total earnings before any deductions. Same as total earnings for UK. type: number format: double totalPay: description: The employee net pay type: number format: double totalEmployerTaxes: description: The employer's tax obligation type: number format: double totalEmployeeTaxes: description: The part of an employee's earnings that is deducted for tax purposes type: number format: double totalDeductions: description: Total amount subtracted from an employee's earnings to reach total pay type: number format: double totalReimbursements: description: Total reimbursements are nontaxable payments to an employee used to repay out-of-pocket expenses when the person incurs those expenses through employment type: number format: double totalCourtOrders: description: Total amounts required by law to subtract from the employee's earnings type: number format: double totalBenefits: description: Benefits (also called fringe benefits, perquisites or perks) are various non-earnings compensations provided to employees in addition to their normal earnings or salaries type: number format: double bacsHash: description: BACS Service User Number type: string paymentMethod: description: The payment method code type: string enum: - Cheque - Electronically - Manual earningsLines: $ref: '#/components/schemas/EarningsLines' leaveEarningsLines: $ref: '#/components/schemas/LeaveEarningsLines' timesheetEarningsLines: $ref: '#/components/schemas/TimesheetEarningsLines' deductionLines: $ref: '#/components/schemas/DeductionLines' reimbursementLines: $ref: '#/components/schemas/ReimbursementLines' leaveAccrualLines: $ref: '#/components/schemas/LeaveAccrualLines' benefitLines: $ref: '#/components/schemas/BenefitLines' paymentLines: $ref: '#/components/schemas/PaymentLines' employeeTaxLines: $ref: '#/components/schemas/TaxLines' employerTaxLines: $ref: '#/components/schemas/TaxLines' courtOrderLines: $ref: '#/components/schemas/CourtOrderLines' EarningsLines: type: array items: $ref: '#/components/schemas/EarningsLine' EarningsLine: type: object properties: earningsLineID: description: Xero identifier for payroll earnings line type: string format: uuid earningsRateID: description: Xero identifier for payroll earnings rate type: string format: uuid displayName: description: name of earnings rate for display in UI type: string ratePerUnit: description: Rate per unit for earnings line type: number format: double numberOfUnits: description: Earnings number of units type: number format: double fixedAmount: description: Earnings fixed amount. Only applicable if the EarningsRate RateType is Fixed type: number format: double amount: description: The amount of the earnings line. type: number format: double isLinkedToTimesheet: description: Identifies if the earnings is taken from the timesheet. False for earnings line type: boolean isAverageDailyPayRate: description: Identifies if the earnings is using an average daily pay rate type: boolean LeaveEarningsLines: type: array items: $ref: '#/components/schemas/LeaveEarningsLine' LeaveEarningsLine: type: object properties: earningsRateID: description: Xero identifier for payroll leave earnings rate type: string format: uuid ratePerUnit: description: Rate per unit for leave earnings line type: number format: double numberOfUnits: description: Leave earnings number of units type: number format: double fixedAmount: description: Leave earnings fixed amount. Only applicable if the EarningsRate RateType is Fixed type: number format: double amount: description: The amount of the earnings line. type: number format: double isLinkedToTimesheet: description: Identifies if the leave earnings is taken from the timesheet. False for leave earnings line type: boolean TimesheetEarningsLines: type: array items: $ref: '#/components/schemas/TimesheetEarningsLine' TimesheetEarningsLine: type: object properties: earningsRateID: description: Xero identifier for payroll timesheet earnings rate type: string format: uuid ratePerUnit: description: Rate per unit for timesheet earnings line type: number format: double numberOfUnits: description: Timesheet earnings number of units type: number format: double fixedAmount: description: Timesheet earnings fixed amount. Only applicable if the EarningsRate RateType is Fixed type: number format: double amount: description: The amount of the timesheet earnings line. type: number format: double isLinkedToTimesheet: description: Identifies if the timesheet earnings is taken from the timesheet. False for leave earnings line type: boolean DeductionLines: type: array items: $ref: '#/components/schemas/DeductionLine' DeductionLine: type: object properties: deductionTypeID: description: Xero identifier for payroll deduction type: string format: uuid amount: description: The amount of the deduction line type: number format: double subjectToTax: description: Identifies if the deduction is subject to tax type: boolean percentage: description: Deduction rate percentage type: number format: double ReimbursementLines: type: array items: $ref: '#/components/schemas/ReimbursementLine' ReimbursementLine: type: object properties: reimbursementTypeID: description: Xero identifier for payroll reimbursement type: string format: uuid description: description: Reimbursement line description type: string amount: description: Reimbursement amount type: number format: double x-is-money: true LeaveAccrualLines: type: array items: $ref: '#/components/schemas/LeaveAccrualLine' LeaveAccrualLine: type: object properties: leaveTypeID: description: Xero identifier for the Leave type type: string format: uuid numberOfUnits: description: Leave accrual number of units type: number format: double BenefitLines: type: array items: $ref: '#/components/schemas/BenefitLine' BenefitLine: type: object properties: benefitTypeID: description: Xero identifier for payroll benefit type type: string format: uuid displayName: description: Benefit display name type: string amount: description: The amount of the benefit line. type: number format: double fixedAmount: description: Benefit fixed amount type: number format: double percentage: description: Benefit rate percentage type: number format: double PaymentLines: type: array items: $ref: '#/components/schemas/PaymentLine' PaymentLine: type: object properties: paymentLineID: description: Xero identifier for payroll payment line type: string format: uuid amount: description: The amount of the payment line type: number format: double accountNumber: description: The account number type: string sortCode: description: The account sort code type: string accountName: description: The account name type: string TaxLines: type: array items: $ref: '#/components/schemas/TaxLine' TaxLine: type: object properties: taxLineID: description: Xero identifier for payroll tax line type: string format: uuid description: description: Tax line description type: string isEmployerTax: description: Identifies if the amount is paid for by the employee or employer. True if employer pays the tax type: boolean amount: description: The amount of the tax line type: number format: double globalTaxTypeID: description: Tax type ID type: string manualAdjustment: description: Identifies if the tax line is a manual adjustment type: boolean CourtOrderLines: type: array items: $ref: '#/components/schemas/CourtOrderLine' CourtOrderLine: type: object properties: courtOrderTypeID: description: Xero identifier for payroll court order type type: string format: uuid amount: description: Amount type: number format: double Settings: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' settings: $ref: '#/components/schemas/Accounts' Accounts: type: object properties: accounts: type: array items: $ref: '#/components/schemas/Account' Account: type: object properties: accountID: description: The Xero identifier for Settings. type: string format: uuid type: description: The assigned AccountType type: string enum: - BANK - EMPLOYERSNIC - NICLIABILITY - PAYEECONTRIBUTION - PAYELIABILITY - WAGESPAYABLE - WAGESEXPENSE code: description: A unique 3 digit number for each Account type: string name: description: Name of the Account. type: string Address: type: object required: - addressLine1 - city - postCode properties: addressLine1: description: Address line 1 for employee home address type: string example: 123 Main St addressLine2: description: Address line 2 for employee home address type: string example: Apt 4 city: description: Suburb for employee home address type: string example: Fulham postCode: description: PostCode for employee home address type: string example: SW6 6EY countryName: description: Country of HomeAddress type: string example: United Kingdom BankAccounts: type: array items: $ref: '#/components/schemas/BankAccount' BankAccount: type: object required: - accountName - accountNumber - sortCode properties: accountName: description: Bank account name (max length = 32) type: string accountNumber: description: Bank account number (digits only; max length = 8) type: string sortCode: description: Bank account sort code (6 digits) type: string TrackingCategories: type: object properties: pagination: $ref: '#/components/schemas/Pagination' problem: $ref: '#/components/schemas/Problem' trackingCategories: $ref: '#/components/schemas/TrackingCategory' TrackingCategory: type: object properties: employeeGroupsTrackingCategoryID: description: The Xero identifier for Employee groups tracking category. type: string format: uuid timesheetTrackingCategoryID: description: The Xero identifier for Timesheet tracking category. type: string format: uuid