Xero PayrollNz API

The PayrollNz API from Xero — 46 operation(s) for payrollnz.

OpenAPI Specification

xero-payrollnz-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Xero Accounting PayrollNz 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: PayrollNz
paths:
  /Employees:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    get:
      security:
      - OAuth2:
        - payroll.employees
        - payroll.employees.read
      tags:
      - PayrollNz
      operationId: getEmployees
      x-hasPayrollUkProblem: true
      summary: Retrieves employees
      parameters:
      - in: query
        name: filter
        description: Filter by first name and/or lastname
        schema:
          type: string
        example: firstName==John,lastName==Smith
      - 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: 00000000-0000-0000-0000-000000000000
                providerName: provider-name
                dateTimeUTC: 2020-08-24 20:16:14.619871
                httpStatusCode: OK
                pagination:
                  page: 1
                  pageSize: 100
                  pageCount: 1
                  itemCount: 8
                problem: null
                employees:
                - employeeID: 68342973-c405-4b86-b5d3-d7b877c27995
                  firstName: Casual
                  lastName: Worker
                  dateOfBirth: 1990-12-01 00:00:00
                  gender: M
                  email: null
                  phoneNumber: null
                  startDate: 2019-02-07 00:00:00
                  address:
                    addressLine1: 30 King ST
                    addressLine2: null
                    city: Rangiora
                    suburb: null
                    countryName: NEW ZEALAND
                    postCode: '7400'
                  payrollCalendarID: 9aa56064-990f-4ad3-a189-d966d8f6a030
                  updatedDateUTC: 2019-09-24 05:08:45
                  createdDateUTC: 2019-09-22 23:58:23
                  endDate: null
                  engagementType: Casual
                  fixedTermEndDate: null
                - employeeID: 1c4f0c92-03ad-43f2-a690-ee51397ece6a
                  firstName: GST
                  lastName: Contractor
                  dateOfBirth: null
                  gender: null
                  email: null
                  phoneNumber: null
                  startDate: 2019-01-30 00:00:00
                  address:
                    addressLine1: null
                    addressLine2: null
                    city: null
                    suburb: null
                    countryName: null
                    postCode: null
                  payrollCalendarID: 9aa56064-990f-4ad3-a189-d966d8f6a030
                  updatedDateUTC: 2019-09-23 00:16:25
                  createdDateUTC: 2019-09-23 00:12:16
                  endDate: null
                  engagementType: null
                  fixedTermEndDate: null
        '400':
          description: validation error for a bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
    post:
      security:
      - OAuth2:
        - payroll.employees
      tags:
      - PayrollNz
      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: 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
      summary: Creates an employees
      parameters:
      - $ref: '#/components/parameters/idempotencyKey'
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployeeObject'
              example:
                id: 00000000-0000-0000-0000-000000000000
                providerName: provider-name
                dateTimeUTC: 2020-08-24 20:27:22.577957
                httpStatusCode: OK
                pagination: null
                problem: null
                employee:
                  employeeID: 658be485-3feb-402e-9e77-ac17623aad42
                  firstName: Mike
                  lastName: Johntzxzpxhmkgson
                  dateOfBirth: 2000-01-01 00:00:00
                  gender: M
                  email: 83139@starkindustries.com
                  phoneNumber: null
                  startDate: null
                  address:
                    addressLine1: 101 Green St
                    addressLine2: null
                    city: San Francisco
                    suburb: null
                    countryName: null
                    postCode: '4351'
                  payrollCalendarID: null
                  updatedDateUTC: 2020-08-24 20:27:22
                  createdDateUTC: 2020-08-24 20:27:22
                  endDate: null
                  engagementType: null
                  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/Employee'
            example:
              title: Mr
              firstName: Mike
              lastName: Johntzxzpxhmkgson
              dateOfBirth: '2000-01-01'
              address:
                addressLine1: 101 Green St
                city: San Francisco
                postCode: '4351'
                countryName: United Kingdom
              email: 83139@starkindustries.com
              gender: M
  /Employees/{EmployeeID}:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    get:
      security:
      - OAuth2:
        - payroll.employees
        - payroll.employees.read
      tags:
      - PayrollNz
      operationId: getEmployee
      x-hasPayrollUkProblem: true
      summary: Retrieves an employees 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: 00000000-0000-0000-0000-000000000000
                providerName: provider-name
                dateTimeUTC: 2020-08-24 20:16:15.354219
                httpStatusCode: OK
                pagination: null
                problem: null
                employee:
                  employeeID: 68342973-c405-4b86-b5d3-d7b877c27995
                  firstName: Casual
                  lastName: Worker
                  dateOfBirth: 1990-12-01 00:00:00
                  gender: M
                  email: null
                  phoneNumber: null
                  startDate: 2019-02-07 00:00:00
                  address:
                    addressLine1: 30 King ST
                    addressLine2: null
                    city: Rangiora
                    suburb: null
                    countryName: NEW ZEALAND
                    postCode: '7400'
                  payrollCalendarID: 9aa56064-990f-4ad3-a189-d966d8f6a030
                  updatedDateUTC: 2019-09-24 05:08:45
                  createdDateUTC: 2019-09-22 23:58:23
                  endDate: null
                  engagementType: FixedTerm
                  fixedTermEndDate: 2026-01-01 00:00:00
    put:
      security:
      - OAuth2:
        - payroll.employees
      tags:
      - PayrollNz
      operationId: updateEmployee
      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: 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
      summary: Updates an existing 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: 00000000-0000-0000-0000-000000000000
                providerName: provider-name
                dateTimeUTC: 2020-08-24 20:29:43.345283
                httpStatusCode: OK
                pagination: null
                problem: null
                employee:
                  employeeID: 68342973-c405-4b86-b5d3-d7b877c27995
                  firstName: Tony
                  lastName: Starkgtrzgquusrson
                  dateOfBirth: 1999-01-01 00:00:00
                  gender: M
                  email: 58315@starkindustries.com
                  phoneNumber: null
                  startDate: 2019-02-07 00:00:00
                  address:
                    addressLine1: 101 Green St
                    addressLine2: null
                    city: San Francisco
                    suburb: null
                    countryName: null
                    postCode: '4432'
                  payrollCalendarID: 9aa56064-990f-4ad3-a189-d966d8f6a030
                  updatedDateUTC: 2020-08-24 20:29:43
                  createdDateUTC: 2019-09-22 23:58:23
                  endDate: null
                  engagementType: null
                  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/Employee'
            example:
              title: Mr
              firstName: Tony
              lastName: Starkgtrzgquusrson
              dateOfBirth: '1999-01-01'
              address:
                addressLine1: 101 Green St
                city: San Francisco
                postCode: '4432'
                countryName: United Kingdom
              email: 58315@starkindustries.com
              gender: M
  /Employees/{EmployeeID}/Employment:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    post:
      security:
      - OAuth2:
        - payroll.employees
      tags:
      - PayrollNz
      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
      - engagementType: null
        is_variable: true
        key: engagementType
        keyPascal: EngagementType
        keySnake: engagement_type
        object: employment
      - fixedTermEndDate: null
        is_variable: true
        nonString: true
        key: fixedTermEndDate
        keyPascal: FixedTermEndDate
        keySnake: fixed_term_end_date
        object: employment
        is_last: true
      summary: Creates an employment detail 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/EmploymentObject'
              example:
                id: 00000000-0000-0000-0000-000000000000
                providerName: provider-name
                dateTimeUTC: 2020-08-24 20:53:58.862462
                httpStatusCode: OK
                pagination: null
                problem: null
                employment:
                  payrollCalendarID: 9aa56064-990f-4ad3-a189-d966d8f6a030
                  startDate: 2020-09-02 00:00:00
                  engagementType: FixedTerm
                  fixedTermEndDate: 2026-01-01 00:00:00
        '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: 9aa56064-990f-4ad3-a189-d966d8f6a030
              startDate: '2020-09-02'
              engagementType: FixedTerm
              fixedTermEndDate: '2026-01-01'
  /Employees/{EmployeeID}/Tax:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    get:
      security:
      - OAuth2:
        - payroll.employees
        - payroll.employees.read
      tags:
      - PayrollNz
      operationId: getEmployeeTax
      x-hasPayrollUkProblem: true
      summary: Retrieves tax records 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
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployeeTaxObject'
              example:
                id: 00000000-0000-0000-0000-000000000000
                providerName: provider-name
                dateTimeUTC: 2020-08-24 20:57:27.543449
                httpStatusCode: OK
                pagination: null
                problem: null
                employeeTax:
                  irdNumber: '111111111'
                  taxCode: M
                  esctRatePercentage: 17.5
                  isEligibleForKiwiSaver: true
                  hasSpecialStudentLoanRate: false
                  specialStudentLoanRatePercentage: null
                  specialTaxRatePercentage: null
                  kiwiSaverContributions: MakeContributions
                  kiwiSaverOptOutDate: null
                  kiwiSaverContributionHolidayEndDate: null
                  kiwiSaverEmployeeContributionRatePercentage: 3
                  kiwiSaverEmployerContributionRatePercentage: 3
                  kiwiSaverEmployerSalarySacrificeContributionRatePercentage: 0
                  hasStudentLoanBalance: false
                  studentLoanBalance: null
                  studentLoanAsAt: null
    post:
      security:
      - OAuth2:
        - payroll.employees
      tags:
      - PayrollNz
      operationId: updateEmployeeTax
      x-hasPayrollUkProblem: true
      x-example:
      - studentLoanAsAtValue: null
        key: studentLoanAsAt
        keyPascal: StudentLoanAsAt
        keySnake: student_loan_as_at
        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'''
      - employeeTax: null
        key: employeeTax
        keyPascal: EmployeeTax
        keySnake: employee_tax
        is_object: true
      - irdNumber: null
        key: irdNumber
        keyPascal: IrdNumber
        keySnake: ird_number
        default: 111111111
        object: employeeTax
      - hasSpecialStudentLoanRate: null
        key: hasSpecialStudentLoanRate
        keyPascal: HasSpecialStudentLoanRate
        keySnake: has_special_student_loan_rate
        nonString: true
        default: true
        object: employeeTax
      - specialStudentLoanRatePercentage: null
        key: specialStudentLoanRatePercentage
        keyPascal: SpecialStudentLoanRatePercentage
        keySnake: special_student_loan_rate_percentage
        nonString: true
        default: 2
        object: employeeTax
      - isEligibleForKiwiSaver: null
        key: isEligibleForKiwiSaver
        keyPascal: IsEligibleForKiwiSaver
        keySnake: is_eligible_for_kiwi_saver
        nonString: true
        default: true
        object: employeeTax
      - esctRatePercentage: null
        key: esctRatePercentage
        keyPascal: EsctRatePercentage
        keySnake: esct_rate_percentage
        default: 17.5
        nonString: true
        is_money: true
        object: employeeTax
      - kiwiSaverContributions: null
        key: kiwiSaverContributions
        keyPascal: KiwiSaverContributions
        keySnake: kiwi_saver_contributions
        nonString: true
        default: DeductionCategory.NzOther
        php: XeroAPI\XeroPHP\Models\PayrollNz\EmployeeTax\KiwiSaverContributionsEnum.MakeContributions
        node: EmployeeTax.KiwiSaverContributionsEnum.MakeContributions
        ruby: XeroRuby::PayrollNz::EmployeeTax::kiwi_saver_contributions_enum::MAKECONTRIBUTIONS
        python: kiwi_saver_contributions_enum::MAKECONTRIBUTIONS
        java: com.xero.models.payrollnz.EmployeeTax.KiwiSaverContributionsEnum.MakeContributions
        csharp: EmployeeTax.KiwiSaverContributionsEnum.MakeContributions
        object: employeeTax
      - kiwiSaverEmployeeContributionRatePercentage: null
        key: kiwiSaverEmployeeContributionRatePercentage
        keyPascal: KiwiSaverEmployeeContributionRatePercentage
        keySnake: kiwi_saver_employee_contribution_rate_percentage
        default: 4
        is_money: true
        nonString: true
        object: employeeTax
      - kiwiSaverEmployerSalarySacrificeContributionRatePercentage: null
        key: kiwiSaverEmployerSalarySacrificeContributionRatePercentage
        keyPascal: KiwiSaverEmployerSalarySacrificeContributionRatePercentage
        keySnake: kiwi_saver_employer_salary_sacrifice_contribution_rate_percentage
        default: 2
        nonString: true
        object: employeeTax
      - taxCode: null
        key: taxCode
        keyPascal: TaxCode
        keySnake: tax_code
        nonString: true
        default: TaxCode.MSL
        php: XeroAPI\XeroPHP\Models\PayrollNz\TaxCode\MSL
        node: TaxCode.MSL
        ruby: XeroRuby::PayrollNz::TaxCode::MSL
        python: tax_code:::MSL
        java: com.xero.models.payrollnz.TaxCode.MSL
        csharp: TaxCode.MSL
        object: employeeTax
      - hasStudentLoanBalance: null
        key: hasStudentLoanBalance
        keyPascal: HasStudentLoanBalance
        keySnake: has_student_loan_balance
        nonString: true
        default: true
        object: employeeTax
      - studentLoanBalance: null
        key: studentLoanBalance
        keyPascal: StudentLoanBalance
        keySnake: student_loan_balance
        default: 30.0
        nonString: true
        is_money: true
        object: employeeTax
      - studentLoanAsAt: null
        key: studentLoanAsAt
        keyPascal: StudentLoanAsAt
        keySnake: student_loan_as_at
        is_variable: true
        nonString: true
        default: studentLoanAsAt
        python: student_loan_as_at
        ruby: student_loan_as_at
        object: employeeTax
        is_last: true
      summary: Updates the tax 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/EmployeeTaxObject'
              example:
                id: 00000000-0000-0000-0000-000000000000
                providerName: provider-name
                dateTimeUTC: 2020-08-24 20:57:27.543449
                httpStatusCode: OK
                pagination: null
                problem: null
                employeeTax:
                  irdNumber: '111111111'
                  taxCode: M
                  esctRatePercentage: 17.5
                  isEligibleForKiwiSaver: true
                  hasSpecialStudentLoanRate: false
                  specialStudentLoanRatePercentage: null
                  specialTaxRatePercentage: null
                  kiwiSaverContributions: MakeContributions
                  kiwiSaverOptOutDate: null
                  kiwiSaverContributionHolidayEndDate: null
                  kiwiSaverEmployeeContributionRatePercentage: 3
                  kiwiSaverEmployerContributionRatePercentage: 3
                  kiwiSaverEmployerSalarySacrificeContributionRatePercentage: 0
                  hasStudentLoanBalance: false
                  studentLoanBalance: null
                  studentLoanAsAt: null
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmployeeTax'
            example:
              irdNumber: '111111111'
              taxCode: M
              esctRatePercentage: 17.5
              isEligibleForKiwiSaver: true
              hasSpecialStudentLoanRate: false
              specialStudentLoanRatePercentage: null
              specialTaxRatePercentage: null
              kiwiSaverContributions: MakeContributions
              kiwiSaverOptOutDate: null
              kiwiSaverContributionHolidayEndDate: null
              kiwiSaverEmployeeContributionRatePercentage: 3
              kiwiSaverEmployerContributionRatePercentage: 3
              kiwiSaverEmployerSalarySacrificeContributionRatePercentage: 0
              hasStudentLoanBalance: false
              studentLoanBalance: null
              studentLoanAsAt: null
  /Employees/{EmployeeID}/OpeningBalances:
    parameters:
    - $ref: '#/components/parameters/requiredHeader'
    get:
      security:
      - OAuth2:
        - payroll.employees
        - payroll.employees.read
      tags:
      - PayrollNz
      operationId: getEmployeeOpeningBalances
      x-hasPayrollUkProblem: true
      summary: Retrieves the opening balance 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
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployeeOpeningBalancesObject'
              example:
                id: 00000000-0000-0000-0000-000000000000
                providerName: provider-name
                dateTimeUTC: 2020-08-28 20:00:07.734396
                httpStatusCode: OK
                pagination:
                  page: 1
                  pageSize: 100
                  pageCount: 1
                  itemCount: 8
                problem: null
                openingBalances:
                - periodEndDate: 2020-10-01 00:00:00
                  daysPaid: 3
                  unpaidWeeks: 2
                  grossEarnings: 40
    post:
      security:
      - OAuth2:
        - payroll.employees
      tags:
      - PayrollNz
      operationId: createEmployeeOpeningBalances
      x-hasPayrollUkProblem: true
      summary: Creates opening balances for a specific employee
      x-example:
      - periodEndDateValue: null
        key: periodEndDate
        keyPascal: PeriodEndDate
        keySnake: period_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'''
      - employeeOpeningBalance: null
        key: employeeOpeningBalance
        keyPascal: EmployeeOpeningBalance
        keySnake: employee_opening_balance
        is_object: true
      - periodEndDate: null
        is_variable: true
        nonString: true
        key: periodEndDate
        keyPascal: PeriodEndDate
        keySnake: period_end_date
        default: periodEndDate
        python: period_end_date
        ruby: period_end_date
        object: employeeOpeningBalance
      - daysPaid: null
        key: daysPaid
        keyPascal: DaysPaid
        keySnake: days_paid
        default: 5
        nonString: true
        object: employeeOpeningBalance
      - unpaidWeeks: null
        key: unpaidWeeks
        keyPascal: UnpaidWeeks
        keySnake: unpaid_weeks
        default: 0
        nonString: true
        object: employeeOpeningBalance
      - grossEarnings: null
        key: grossEarnings
        keyPascal: GrossEarnings
        keySnake: gross_earnings
        default: 1730.77
        is_money: true
        nonString: true
        object: employeeOpeningBalance
        is_last: true
      - employeeOpeningBalances: null
        is_list: true
        key: employeeOpeningBalances
        keyPascal: EmployeeOpeningBalances
        keySnake: employee_opening_balances
        csharp: EmployeeOpeningBalance
        java: EmployeeOpeningBalance
      - addEmployeeOpeningBalance: null
        is_last: true
        is_list_add: true
        key: employeeOpeningBalances
        keyPascal: EmployeeOpeningBalances
        keySnake: employee_opening_balances
        java: EmployeeOpeningBalances
        python: employee_opening_balance
        ruby: employee_opening_balance
        csharp: EmployeeOpeningBalance
        object: employeeOpeningBalance
      parameters:
      - $ref: '#/components/

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