Xero PayrollUk API

The PayrollUk API from Xero — 47 operation(s) for payrolluk.

OpenAPI Specification

xero-payrolluk-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Xero Accounting PayrollUk API
  version: 11.1.0
  termsOfService: https://developer.xero.com/xero-developer-platform-terms-conditions/
  contact:
    name: Xero Platform Team
    email: api@xero.com
    url: https://developer.xero.com
servers:
- description: The Xero Accounting API exposes accounting and related functions of the main Xero application and can be used for a variety of purposes such as creating transactions like invoices and credit notes, right through to extracting accounting data via our reports endpoint.
  url: https://api.xero.com/api.xro/2.0
tags:
- name: PayrollUk
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-24 18: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-23 00:00:00+00:00
                  gender: M
                  email: null
                  phoneNumber: null
                  startDate: 2020-02-03 00:00:00
                  address:
                    addressLine1: 171 Midsummer Boulevard
                    city: Milton Keynes
                    county: null
                    countryName: UNITED KINGDOM
                    postCode: MK9 1EB
                  payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe
                  updatedDateUTC: 2020-02-13 16:23:31
                  createdDateUTC: 2020-02-10 10:00:24
                  isOffPayrollWorker: false
                  contracts: []
                - employeeID: 67e545d4-e8a6-4f98-9f63-85c2383dfe12
                  firstName: Charlotte
                  lastName: Danes
                  dateOfBirth: 1993-10-24 00:00:00+00:00
                  gender: F
                  email: null
                  phoneNumber: null
                  startDate: 2020-02-03 00:00:00
                  address:
                    addressLine1: 171 Midsummer Blvd
                    city: Milton Keynes
                    county: null
                    countryName: UNITED KINGDOM
                    postCode: MK9 1EB
                  payrollCalendarID: 5e813d9e-949c-461f-8a89-e9ee8955a254
                  updatedDateUTC: 2020-02-13 16:48:51
                  createdDateUTC: 2020-02-13 16:32:12
                  isOffPayrollWorker: false
                  contracts:
                  - publicKey: b4d71548-2800-4fb9-be6c-d496a617428c
                    isFixedTerm: false
                    employmentStatus: Employee
                    contractType: PartTime
                    startDate: 2020-02-03 00:00:00
                    fixedTermEndDate: null
                - employeeID: eb4a0c3b-b0d6-440d-bccc-348b7dc92321
                  firstName: Chelsea
                  lastName: Serati
                  dateOfBirth: 1976-02-16 00:00:00+00:00
                  gender: F
                  email: null
                  phoneNumber: null
                  startDate: 2019-07-01 00:00:00
                  address:
                    addressLine1: 171 Midsummer Boulevard
                    city: Milton Keynes
                    county: null
                    countryName: UNITED KINGDOM
                    postCode: MK9 1EB
                  payrollCalendarID: d45bc68f-59d6-4000-929d-1058dcfa79e1
                  updatedDateUTC: 2020-02-13 16:53:12
                  createdDateUTC: 2020-02-13 16:46:41
                  isOffPayrollWorker: false
                  contracts:
                  - publicKey: 3a8243d5-a14a-4c06-a71b-930194928ee9
                    isFixedTerm: false
                    employmentStatus: Worker
                    contractType: PartTime
                    startDate: 2019-07-01 00:00:00
                    fixedTermEndDate: null
                  - publicKey: ce4fe24d-bb85-4b17-a461-3e56917457d6
                    isFixedTerm: true
                    employmentStatus: Employee
                    contractType: FullTime
                    startDate: 2020-07-01 00:00:00
                    fixedTermEndDate: 2026-08-01 00:00:00
                    developmentalRoleDetails:
                      developmentalRolePublicKey: 05bceb91-89c0-4ecc-864c-32a874143770
                      startDate: 2020-07-01 00:00:00
                      endDate: 2026-06-30 00:00:00
                      developmentalRole: Apprentice
        '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: null
        key: dateOfBirth
        keyPascal: DateOfBirth
        keySnake: date_of_birth
        is_date: true
        object: employee
        java_datatype: LocalDate
        csharp_datatype: DateTime
        default: LocalDate.of(2000, Month.OCTOBER, 28)
        java: LocalDate.of(2000, Month.OCTOBER, 28)
        csharp: new DateTime(2000, 10, 10)
        php: new DateTime('2000-10-28')
        node: '''2000-10-28'''
        python: dateutil.parser.parse('2000-10-28T00:00:00Z')
        ruby: '''YYYY-MM-DD'''
      - Address: null
        key: address
        keyPascal: Address
        keySnake: address
        is_object: true
      - addressLine1: null
        key: addressLine1
        keyPascal: AddressLine1
        keySnake: address_line_1
        default: 123 Test st
        object: address
      - city: null
        key: city
        keyPascal: City
        keySnake: city
        object: address
        default: Rangiora
      - postCode: null
        key: postCode
        keyPascal: PostCode
        keySnake: post_code
        object: address
        default: 7400
      - countryName: null
        key: countryName
        keyPascal: CountryName
        keySnake: country_name
        default: UNITED KINGDOM
        object: address
        is_last: true
      - employee: null
        key: employee
        keyPascal: Employee
        is_object: true
      - firstName: null
        key: firstName
        keyPascal: FirstName
        keySnake: first_name
        default: Adam
        object: employee
      - lastName: null
        key: lastName
        keyPascal: LastName
        keySnake: last_name
        default: Adamson
        object: employee
      - dateOfBirth: null
        is_variable: true
        nonString: true
        key: dateOfBirth
        keyPascal: DateOfBirth
        keySnake: date_of_birth
        default: dateOfBirth
        python: date_of_birth
        ruby: date_of_birth
        object: employee
      - setHomeAddress: null
        is_last: true
        is_variable: true
        nonString: true
        key: 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-25 03: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-01
                  gender: M
                  email: mike@starkindustries.com
                  phoneNumber: null
                  startDate: null
                  nationalInsuranceNumber: null
                  isOffPayrollWorker: false
                  address:
                    addressLine1: 171 Midsummer
                    city: Milton Keyness
                    county: null
                    countryName: UNITED KINGDOM
                    postCode: MK9 1EB
                  payrollCalendarID: null
                  updatedDateUTC: '2020-03-25T03:12:10Z'
                  createdDateUTC: '2020-03-25T03:12:10Z'
                  niCategory: null
                  employeeNumber: 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-01 00:00:00+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
                employee:
                  employeeID: d17e008e-3381-45c0-b50c-2fab7757e503
                  title: Mr.
                  firstName: Edgar
                  lastName: Allan Po
                  dateOfBirth: '1985-03-24'
                  gender: M
                  email: tester1@gmail.com
                  phoneNumber: '0400123456'
                  nationalInsuranceNumber: AB123456C
                  isOffPayrollWorker: false
                  address:
                    addressLine1: 171 Midsummer
                    city: Milton Keyness
                    county: null
                    countryName: UNITED KINGDOM
                    postCode: MK9 1EB
                  payrollCalendarID: 216d80e6-af55-47b1-b718-9457c3f5d2fe
                  updatedDateUTC: '2017-05-12T10:00:24Z'
                  createdDateUTC: '2017-05-12T10:00:24Z'
                  niCategories:
                  - startDate: '2020-05-01'
                    niCategory: I
                    workplacePostcode: SW1A 1AA
                  - startDate: '2020-05-02'
                    niCategory: F
                    niCategoryID: 1
                    dateFirstEmployedAsCivilian: '2020-05-01'
                    workplacePostcode: SW1A 1AA
                  employeeNumber: '2'
                  contracts:
                  - publicKey: a3d71548-2800-4fb9-be6c-d496a617428c
                    isFixedTerm: false
                    employmentStatus: Employee
                    contractType: PartTime
                    startDate: 2020-05-01 00:00:00
                    fixedTermEndDate: null
    put:
      security:
      - OAuth2:
        - payroll.employees
      tags:
      - PayrollUk
      operationId: updateEmployee
      x-hasPayrollUkProblem: true
      summary: Updates a specific employee's detail
      x-example:
      - dateOfBirthValue: null
        key: dateOfBirth
        keyPascal: DateOfBirth
        keySnake: date_of_birth
        is_date: true
        object: employee
        java_datatype: LocalDate
        csharp_datatype: DateTime
        default: LocalDate.of(2000, Month.OCTOBER, 28)
        java: LocalDate.of(2000, Month.OCTOBER, 28)
        csharp: new DateTime(2000, 10, 10)
        php: new DateTime('2000-10-28')
        node: '''2000-10-28'''
        python: dateutil.parser.parse('2000-10-28T00:00:00Z')
        ruby: '''YYYY-MM-DD'''
      - Address: null
        key: address
        keyPascal: Address
        keySnake: address
        is_object: true
      - addressLine1: null
        key: addressLine1
        keyPascal: AddressLine1
        keySnake: address_line_1
        default: 123 Test st
        object: address
      - city: null
        key: city
        keyPascal: City
        keySnake: city
        object: address
        default: Rangiora
      - postCode: null
        key: postCode
        keyPascal: PostCode
        keySnake: post_code
        object: address
        default: 7400
      - countryName: null
        key: countryName
        keyPascal: CountryName
        keySnake: country_name
        default: NEW ZEALAND
        object: address
        is_last: true
      - employee: null
        key: employee
        keyPascal: Employee
        is_object: true
      - firstName: null
        key: firstName
        keyPascal: FirstName
        keySnake: first_name
        default: Adam
        object: employee
      - lastName: null
        key: lastName
        keyPascal: LastName
        keySnake: last_name
        default: Adamson
        object: employee
      - dateOfBirth: null
        is_variable: true
        nonString: true
        key: dateOfBirth
        keyPascal: DateOfBirth
        keySnake: date_of_birth
        default: dateOfBirth
        python: date_of_birth
        ruby: date_of_birth
        object: employee
      - setHomeAddress: null
        is_last: true
        is_variable: true
        nonString: true
        key: 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-09 05:10:51.350447
                httpStatusCode: OK
                pagination: null
                problem: null
                employee:
                  employeeID: 07f0f9fc-cc95-46ac-9a8a-aa03779f2bde
                  title: Mr
                  firstName: Mike
                  lastName: Johnllsbkrhwopson
                  dateOfBirth: 1999-01-01
                  gender: M
                  email: 84044@starkindustries.com
                  phoneNumber: '0400123456'
                  startDate: '2020-02-03'
                  nationalInsuranceNumber: null
                  isOffPayrollWorker: false
                  address:
                    addressLine1: 101 Green St
                    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'
        '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-22 00:00:00+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: null
        key: startDate
        keyPascal: StartDate
        keySnake: start_date
        is_date: true
        java_datatype: LocalDate
        csharp_datatype: DateTime
        default: LocalDate.of(2020, Month.OCTOBER, 28)
        java: LocalDate.of(2020, Month.OCTOBER, 28)
        csharp: new DateTime(2020, 10, 10)
        php: new DateTime('2020-10-28')
        node: '''2020-10-28'''
        python: dateutil.parser.parse('2020-10-28T00:00:00Z')
        ruby: '''YYYY-MM-DD'''
      - employment: null
        key: employment
        keyPascal: Employment
        keySnake: employment
        is_object: true
      - payrollCalendarID: null
        key: payrollCalendarID
        keyPascal: PayrollCalendarID
        keySnake: payroll_calendar_id
        is_uuid: true
        default: 00000000-0000-0000-0000-000000000000
        object: employment
      - startDate: null
        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
      - niCategories: null
        key: niCategories
        keyPascal: NICategories
        keySnake: ni_categories
        is_object: true
        object: employment
        default: A
      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'
                  niCategories:
                  - niCategory: I
                    startDate: '2020-05-01'
                    niCategoryID: 594
                    dateFirstEmployedAsCivilian: '2020-05-01'
                    workplacePostcode: SW1A 1AA
                  employeeNumber: 123ABC
                  contracts:
                  - publicKey: ddd71548-2800-4fb9-be6c-d496a617428c
                    isFixedTerm: false
                    employmentStatus: Employee
                    contractType: FullTime
                    startDate: 2020-04-01 00:00:00
                    fixedTermEndDate: 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/Employment'
            example:
              payrollCalendarID: cdfb8371-0b21-4b8a-8903-1024df6c391e
              startDate: '2024-04-01'
              niCategories:
              - niCategory: I
                startDate: '2020-05-01'
                workplacePostcode: SW1A 1AA
              employeeNumber: 123ABC
  /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-27 00:14:41.246204
                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-27 01:13:00.659150
                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: null
        key: employeeOpeningBalances
        keyPascal: EmployeeOpeningBalances
        keySnake: employee_opening_balances
        is_object: true
      - statutoryMaternityPay: null
        key: statutoryMaternityPay
        keyPascal: StatutoryMaternityPay
        keySnake: statutory_maternity_pay
        is_money: true
        nonString: true
        default: 0.0
        object: employeeOpeningBalances
      - statutoryAdoptionPay: null
        key: statutoryAdoptionPay
        keyPascal: StatutoryAdoptionPay
        keySnake: statutory_adoption_pay
        is_money: true
        nonString: true
        default: 100.0
        object: employeeOpeningBalances
      - statutoryPaternityPay: null
        key: statutoryPaternityPay
        keyPascal: StatutoryPaternityPay
        keySnake: statutory_paternity_pay
        is_money: true
        nonString: true
        default: 0.0
        object: employeeOpeningBalances
      - statutorySharedParentalPay: null
        key: statutorySharedParentalPay
        keyPascal: StatutorySharedParentalPay
        keySnake: statutory_shared_parental_pay
        is_money: true
        nonString: true
        default: 0.0
        object: employeeOpeningBalances
      - statutorySickPay: null
        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-27 01:06:14.475660
                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: null
        key: employeeOpeningBalances
        keyPascal: EmployeeOpeningBalances
        keySnake: employee_opening_balances
        is_object: true
      - statutoryMaternityPay: null
        key: statutoryMaternityPay
        keyPascal: StatutoryMaternityPay
        keySnake: statutory_maternity_pay
        is_money: true
        nonString: true
        default: 0.0
        object: employeeOpeningBalances
      - statutoryAdoptionPay: null
        key: statutoryAdoptionPay
        keyPascal: StatutoryAdoptionPay
        keySnake: statutory_adoption_pay
        is_money: true
        nonString: true
        default: 100.0
        object: employeeOpeningBalances
      - statutoryPaternityPay: null
        key: statutoryPaternityPay
        keyPascal: StatutoryPaternityPay
        keySnake: statutory_paternity_pay
        is_money: true
        nonString: true
        default: 0.0
        object: employeeOpeningBalances
      - statutorySharedParentalPay: null
        key: statutorySharedParentalPay
        keyPascal: StatutorySharedParentalPay
        keySnake: statutory_shared_parental_pay
        is_money: true
        nonString: true
        default: 0.0
        object: employeeOpeningBalances
      - statutorySickPay: null
        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-27 15:45:09.707863
                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:
          ty

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